簡體   English   中英

XML驗證-我應該使用哪種基於規則的引擎或框架

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM