Как канонизировать файлы WSDL в Java? - PullRequest
2 голосов
/ 23 июня 2011

Мне нужно найти различия в двух файлах WSDL. Я начал с красивой распечатки их , как здесь , но я вижу, что в двух файлах, определенных (по любой глупой причине) в другом порядке, есть одинаковые вещи (например, complexType s). Я хочу еще больше канонизировать файлы, чтобы потом использовать такие вещи, как стандартный diff, чтобы найти различия.

Не знаю, есть ли определенная каноническая форма для WSDL, я знаю, что есть Канонический XML , но мне нужно пойти немного дальше и отсортировать все вещи, порядок которых не имеет значения.

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Вы можете загрузить программу Java с http://www.jclark.com/xml/, которая преобразует XML в канонический XML. Это должно быть применимо и к файлам WSDL.

0 голосов
/ 28 июня 2011

Я рекурсивно пробежал по дереву и отсортировал все дочерние узлы, соответствующие schema|wsdl:binding|wsdl:portType|wsdl:types|wsdl:definitions.Я использовал этот ответ для красивой печати вывода.По какой-то причине format.setLineWidth(65); не работает, поэтому мне пришлось объединить строки, используя replaceAll("\\s*\n\\s*(?=[^\\s<])", " ").Вроде нормально работает.

...