定義編輯
它的作用是定義一份XML文檔的合法組件群,就像文檔類型定義(外語縮寫:
DTD)的作用一樣,一份XML Schema定義了:
可以出現在文檔里的元素;
可以出現在文檔里的屬性;
哪些元素是子元素;
子元素的順序;
子元素的數量;
一個元素應是否能包含文本,或應該是空的;
元素和屬性的數據類型;
元素和屬性的默認值和固定值。
優劣點編輯
優點
XML Schema 比 DTD 更強大。其優勢包括以下幾點:[1]
1、支持數據類型
XML Schema 最重要的能力之一就是對數據類型的支持。通過對數據類型的支持:
可更容易地描述允許的文檔內容
可更容易地驗證數據的正確性
可更容易地與來自資料庫的數據一併工作
可更容易地定義數據約束(data facets)
可更容易地定義數據模型(或稱數據格式)
可更容易地在不同的數據類型間轉換數據
2、它使用 XML 語法
另一個關於 XML Schema 的重要特性是,它們由 XML 編寫。由 XML 編寫 XML Schema 有很多好處:
不必學習新的語言
可使用 XML 編輯器來編輯 Schema 檔案
可使用 XML 解析器來解析 Schema 檔案
可通過 XML DOM 來處理 Schema
可通過 XSLT 來轉換 Schema
3、可保護數據通信
當數據從傳送方被傳送到接受方時,其要點是雙方應有關於內容的相同的"期望值"。
通過 XML Schema,傳送方可以用一種接受方能夠明白的方式來描述數據。
一種數據,比如 "03-11-2004",在某些國家被解釋為11月3日,而在另一些國家為當作3月11日。
但是一個帶有數據類型的 XML 元素,比如:<date type="date">2004-03-11</date>,可確保對內容一致的理解,這是因為 XML 的數據類型 "date" 要求的格式是 "YYYY-MM-DD"。
4、可擴展性
XML Schema 是可擴展的,因為它們由 XML 編寫。
通過可擴展的 Schema 定義,您可以:
5、可捕獲到錯誤
即使文檔的形式良好,仍然不能保證它們不會包含錯誤,並且這些錯誤可能會產生嚴重的後果。
請考慮下面的情況:您訂購的了 5 打雷射印表機,而不是 5 台。通過 XML Schema,大部分這樣的錯誤會被您的驗證軟體捕獲到。
劣點
雖然被寫入XML是一個優勢,在某些方面也是一個缺點。W3C XML Schema語言特別是可能非常冗長,而DTD可以簡潔且相對容易編輯。
W3C XML Schema沒有實現大部分提供的數據元素到文檔的DTD能力。
繼承性編輯
XML Schema可能很快就會替代文檔類型定義(外語縮寫:
DTD)在大多數的網路應用程式中被廣泛使用。[2]