如何在Java中规范化WSDL文件?

时间:2011-06-22 21:43:18

标签: java xml wsdl canonicalization

我需要找到两个WSDL文件的差异。我开始漂亮地打印它们like here,但我发现在不同的顺序中定义的两个文件中(例如complexType s)有相同的事情(因为任何愚蠢的原因)。我想进一步规范化文件,以便稍后使用标准diff之类的东西来查找差异。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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