[英]How to canonicalize WSDL files in Java?
我需要找到两个WSDL文件中的差异。 我从这里像这样漂亮地打印它们开始 ,但是我看到在两个定义的文件中(出于任何愚蠢的原因)以不同的顺序有相同的事物(例如complexType
)。 我想进一步规范化文件,因此以后可以使用诸如标准diff
类的东西来查找差异。
不知道WSDL是否有定义的规范形式,我知道有Canonical XML ,但是我需要进一步讲解并排序所有顺序无关紧要的东西。
您可以从http://www.jclark.com/xml/下载Java程序,该程序会将XML转换为Canonical XML。 这也应该适用于WSDL文件。
我递归地遍历了树,并对与schema|wsdl:binding|wsdl:portType|wsdl:types|wsdl:definitions
匹配的节点的所有子节点进行排序。 我用这个答案来漂亮地打印输出。 无论出于何种原因format.setLineWidth(65);
不起作用,因此我不得不使用replaceAll("\\\\s*\\n\\\\s*(?=[^\\\\s<])", " ")
。 似乎工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.