[英]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.