為什麼要使用 XML Schemas?
XML Schema 比 DTD 更強大。
XML Schema 支援資料類型
XML Schema 最重要的能力之一就是對資料類型的支援。
透過對資料類型的支援:
可更容易描述允許的文件內容
可更容易地驗證資料的正確性
可更容易與來自資料庫的資料一併工作
可更容易定義資料約束(data facets)
可更容易定義資料模型(或稱為資料格式)
可更容易在不同的資料型別間轉換資料
編者註:資料約束,或稱為facets,是XML Schema 原型中的術語,中文可譯為"面",用來約束資料型別的容許值。
XML Schema 使用 XML 語法
另一個關於 XML Schema 的重要功能是,它們由 XML 編寫。
由XML 編寫XML Schema 有很多好處:
不必學習新的語言
可使用XML 編輯器來編輯Schema 檔案
可使用XML 解析器來解析Schema 檔案
可透過XML DOM 來處理Schema
#可透過XSLT 來轉換Schema
XML Schema 可保護資料通訊
當資料從傳送者被傳送到接受方時,其要點是雙方應有關於內容的相同的"期望值"。
透過 XML Schema,發送方可以用一種接受方能夠明白的方式來描述資料。
一種數據,如 "03-11-2004",在某些國家被解釋為11月3日,而在另一些國家為當作3月11日。
但是一個帶有資料類型的XML 元素,例如:<date type="date">2004-03-11</date>,可確保對內容一致的理解,這是因為XML的資料類型"date" 要求的格式是"YYYY-MM-DD"。
XML Schema 可擴充
XML Schema 是可擴充的,因為它們由 XML 編寫。
透過可擴展的Schema 定義,您可以:
在其他Schema 中重複使用您的Schema
創建由標準類型衍生而來的您自己的資料類型
在相同的文件中引用多重的Schema
形式良好是不夠的
我們把符合XML 語法的文檔稱為形式良好的XML 文檔,例如:
它必須以XML 聲明開頭
它必須擁有唯一的根元素
開始標籤必須與結束標籤相符
元素對大小寫敏感
所有的元素都必須關閉
所有的元素都必須正確地嵌套
#必須對特殊字元使用實體
即使文件的形式良好,仍然不能保證它們不會包含錯誤,而這些錯誤可能會產生嚴重的後果。
請考慮以下的情況:您訂購的了 5 打雷射印表機,而不是 5 台。透過 XML Schema,大部分這樣的錯誤會被您的驗證軟體捕捉到。