[英]XML Validation - what rules-based engine or framework should I use
我需要提出一種規則引擎,在其中可以為特定的xml文件指定驗證規則。 然后,規則被讀入並針對xml進行斷言。
最好的方法是什么? 是XPath還是XQuery或XSL或XSD? 甚至是XMLUnit?
我需要做一些事情,例如檢測何時某些服裝與相似的節點不同,例如:
<root>
<customers>
<customer name="Fred">
<contact-details email="fred@company.com">
</customer>
<customer name="Barney">
<contact-details email="barney@company.com">
</customer>
<customer name="Fred">
<contact-details email="fre@company.com">
</customer>
</customers>
</root>
因此,作為一項規則,它將檢測到以上電子郵件地址不同。 還需要針對外部參考數據(例如郵政編碼查找等)驗證xml中的數據。
關於我應該如何使用以輕松指定規則的任何建議,這些建議運行得很快? XML和外部數據相當大-每個xml可能有幾個MB。
其中一些規則很簡單,並且可以在XPath中完成-檢查字段的長度是否一定,或者檢查某些ode是否填充了某些屬性-XSD在這里很合適。 但不適用於檢查外部數據或執行上述操作。 XQuery是我想要的嗎?
謝謝您的幫助。
-賈斯汀
是否有上述所有內容?
XSD將為您提供基本的XML驗證。 它將使您能夠確保元素具有正確的子級和正確的屬性,並且具有正確的順序,等等。如果要比較XML與外部XML數據,則需要使用XMLUnit。 如果要比較XML中的字段與其他地方的外部字段(例如:確保郵政編碼是有效的郵政編碼),則可能要使用XPath。 您將要了解每種工具的功能,因為它們都可以幫助進行驗證。
您應該看看Schematron
Schematron與其他模式語言的基本概念不同,它不是基於語法,而是基於在已解析文檔中查找樹模式。 這種方法允許表示多種結構,這些結構在基於語法的模式語言中不方便且困難。 如果您知道XPath或XSLT表達式語言,則可以立即開始使用Schematron。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.