XML Schema

XML Schema

可擴展標記語言架構是以可擴展標記語言(標準通用標記語言的子集)為基礎的,它用於可替代文檔類型定義(外語縮寫:XSD);一份XML schema文件描述了可擴展標記語言文檔的結構。

定義


它的作用是定義一份XML文檔的合法組件群,就像文檔類型定義(外語縮寫:DTD)的作用一樣,一份XML Schema定義了:
• 可以出現在文檔里的元素;
• 可以出現在文檔里的屬性;
• 哪些元素是子元素;
• 子元素的順序;
• 子元素的數量;
• 一個元素應是否能包含文本,或應該是空的;
• 元素和屬性的數據類型;
• 元素和屬性的默認值和固定值。

優劣點


優點

XML Schema 比 DTD 更強大。其優勢包括以下幾點:
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 元素,比如:2004-03-11,可確保對內容一致的理解,這是因為 XML 的數據類型 "date" 要求的格式是 "YYYY-MM-DD"。
4、可擴展性
XML Schema 是可擴展的,因為它們由 XML 編寫。
通過可擴展的 Schema 定義,您可以:
• 在其他 Schema 中重複使用您的 Schema
• 創建由標準類型衍生而來的您自己的數據類型
• 在相同的文檔中引用多重的 Schema
5、可捕獲到錯誤
即使文檔的形式良好,仍然不能保證它們不會包含錯誤,並且這些錯誤可能會產生嚴重的後果。
請考慮下面的情況:您訂購的了 5 打激光印表機,而不是 5 台。通過 XML Schema,大部分這樣的錯誤會被您的驗證軟體捕獲到。

劣點

雖然被寫入XML是一個優勢,在某些方面也是一個缺點。W3C XML Schema語言特點是可能非常冗長,而DTD可以簡潔且相對容易編輯。
W3C XML Schema沒有實現大部分提供的數據元素到文檔的DTD能力。

繼承性


XML Schema可能很快就會替代文檔類型定義(外語縮寫:DTD)在大多數的網路應用程序中被廣泛使用。
• 針對將來的額外內容是可擴展的;
• 內容比文檔類型定義(外語縮寫:DTD)豐富,作用也更大;
• 是以XML語言編寫而成的;
• 支持數據類型;
• 支持名稱空間(外語:namespaces)。

標準


XML Schema於2001年5月2日成為萬維網聯盟(外語縮寫:W3C)推薦使用的標準,在萬維網聯盟教程中你能閱讀到更多關於XML Schema標準。