我需要找到两个WSDL文件中的差异。我从这里像这样漂亮地打印它们开始,但是我看到complexType在两个定义的文件中(无论出于何种愚蠢的原因)都以不同的顺序进行了相同的操作(例如s)。我想进一步规范化这些文件,以便以后可以使用诸如standard之类的东西diff来查找差异。
complexType
diff
不知道WSDL是否有定义的规范形式,我知道有Canonical XML,但是我需要进一步讲解并排序所有顺序无关紧要的东西。
我递归地穿过树,对所有匹配的节点子节点进行排序schema|wsdl:binding|wsdl:portType|wsdl:types|wsdl:definitions。我用这个答案来漂亮地打印输出。无论出于什么原因format.setLineWidth(65);都不起作用,所以我不得不使用来加入这些行replaceAll("\\s*\n\\s*(?=[^\\s<])", " ")。它似乎工作正常。
schema|wsdl:binding|wsdl:portType|wsdl:types|wsdl:definitions
format.setLineWidth(65);
replaceAll("\\s*\n\\s*(?=[^\\s<])", " ")