top
Loading...
為什么使用 XML Schema?

為什么使用 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,大部分這樣的錯誤會被您的驗證軟件捕獲到。

北斗有巢氏 有巢氏北斗