簡體   English   中英

如何根據XSD或DTD文檔驗證XML文檔?

[英]How is the XML document validated against an XSD or DTD document?

我試圖掌握XML驗證的原理。 有一點我還沒有得到:負責根據指定的XSD(或DTD)定義實際驗證XML文檔的過程是什么?

我想知道這是默認提供的操作系統,還是由我們使用的編輯器(如Oxygen IDE)完成的? 感謝您的幫助澄清。

我想知道是否

這是默認提供的操作系統,

沒有。

或者它是由我們使用的編輯器(如Oxygen IDE)完成的?

也沒有。

它由驗證XML處理器完成。
(當然,這可以集成在像氧氣這樣的IDE中)。
一個有效的XML / XSLT處理器是Saxon的商業版:SAXON EE

Saxonica的商業企業版,支持XSLT 3.0,XPath 2.0和3.1,XQuery 3.1,XML Schema 1.0和1.1以及XQuery Update 1.0。

另一種可能性是使用Xerces,這是一個在這個SO答案中描述的開源驗證解析器

Oxygen使用Apache Xerces / J(Java)XML套件來針對DTD或XSD解析和驗證XML(參見例如https://www.oxygenxml.com/forum/topic15534.html )。 最有可能的是,Apache Xerces經過大量定制和擴展,可以在Oxygen中使用其他JAXP組件,例如DTD和XSD元數據用於交互式編輯,以及驗證RNG等。

在DTD驗證的情況下,驗證過程始終與XML解析密切相關; 許多XML解析器都可以選擇打開或關閉驗證,如果打開它,解析器將檢索DTD並針對它驗證實例,通常在解析過程中“動態”。

XML解析器可能帶有您的編程語言(例如Java,C#,Python),或者它們可能是獨立的第三方庫。 有些可能與操作系統捆綁在一起,但它們實際上並不屬於操作系統。

在XSD模式驗證的情況下,驗證器可能作為上述XML解析器的一部分捆綁在一起,或者它可能是一個單獨的組件。 因此,解析器可能具有在解析期間即時調用模式驗證的選項,或者可能存在獨立的驗證實用程序。 例如,在Java世界中,Xerces解析器具有調用XSD驗證的選項,但Saxon中還有一個模式驗證器,它包括XSLT和XQuery處理,但本身不進行XML解析。

交互式開發環境(“編輯器”),如oXygen和Altova XMLSpy,通常包括一個XSD架構驗證器; 這可能是他們自己開發的(Altova)或他們已經集成的第三方產品(oXygen允許您在Xerces和Saxon驗證器之間進行選擇)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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