2

我需要找出两个 WSDL 文件的不同之处。我开始像这里一样漂亮地打印它们,但我看到complexType在定义的两个文件中(无论出于何种愚蠢的原因)以不同的顺序有相同的东西(例如s)。我想进一步规范化文件,以便以后可以使用标准之类diff的东西来查找差异。

不知道是否有为 WSDL 定义的规范形式,我知道有Canonical XML,但我需要更进一步,对所有顺序无关紧要的东西进行排序。

4

2 回答 2

1

您可以从http://www.jclark.com/xml/下载一个将 XML 转换为规范 XML的 Java 程序。这也应该适用于 WSDL 文件。

于 2011-06-23T11:51:01.843 回答
0

我递归地遍历树并对所有节点匹配的子节点进行排序schema|wsdl:binding|wsdl:portType|wsdl:types|wsdl:definitions。我用这个答案来漂亮地打印输出。无论出于何种原因format.setLineWidth(65);都不起作用,所以我不得不使用replaceAll("\\s*\n\\s*(?=[^\\s<])", " "). 它似乎工作正常。

于 2011-06-28T08:37:17.943 回答