我需要找到两个WSDL文件的差异。我开始漂亮地打印它们like here,但我发现在不同的顺序中定义的两个文件中(例如complexType
s)有相同的事情(因为任何愚蠢的原因)。我想进一步规范化文件,以便稍后使用标准diff
之类的东西来查找差异。
不知道是否有一个定义的WSDL规范形式,我知道有Canonical XML,但我需要更进一步,排序所有顺序无关紧要的事情。
答案 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<])", " ")
加入这些行。它似乎工作正常。