2012-09-15 60 views
1

請原諒說明。什麼是XML驗證的含義?

XML驗證實際上意味着什麼?

做「驗證XML數據」,「驗證XML文檔」和「驗證XML模式」是否意味着同樣的事情?

XSD文檔如何幫助驗證XML文檔/數據/架構?

注意:有很多關於XML驗證的文章。但是,這些都很複雜。討論使用的是jargons,因此無法理解。

回答

2

也許這簡單的解釋可以幫助:

有不同程度的XML文檔的「正確性」。

先來良構。如果文檔符合爲XML文件規定的語法規則,則文檔是完整的。 G。標籤正確嵌套和關閉,遵循命名規則等。

可以純粹基於XML標準檢查XML文檔的格式良好性。您不需要了解XML文檔及其結構中包含的任何數據。

這是驗證進來:

甲DTD(文檔類型定義)或XSD指定的規則如何建立某種類型的XML文檔,例如哪些標籤被允許在其上下文中,這屬性和值可能用於每個標籤,以及標籤之間的交叉引用是否正確處理。

例如,如果將標記定義爲ID字段,則其值只能在XML文件中出現一次。


比較這對編程語言:

在Python,以下將是一個SyntaxError

f("Hello)  # not "well-formed" 

下面是語法正確的,但還是失敗了,因爲功能是使用不正確:

def f(a): 
    return a+1 

f("Hello")  # "well-formed" but invalid (TypeError) 
0

簡單的話,一個模式(如XSD,RelaxNG等文檔)定義了XML文檔的語法。

處理器應該能夠解析XML文件並檢查它是否對模式中定義的語法有效。

該模式通常指定(除別的以外)元素的層次結構,屬性的類和屬性值的數據類型。

在W3School的介紹是IMO非常有幫助:http://www.w3schools.com/schema/schema_intro.asp

雖然你可能想在某個時候檢查出RelaxNG:http://relaxng.org/tutorial-20011203.html

0

模式是一組將「有效」與「無效」文檔區分開來的規則。針對特定模式驗證文檔是確定文檔是否滿足該模式中的規則的過程。