XML Schema 教程
什麼是 XML Schema?
XML Schema 描述了 XML 文件的結構。
XML Schema 語言也稱為 XML Schema Definition (XSD)。
XSD 示例
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML Schema 的目的是定義 XML 文件的合法構建塊
- 文件中可以出現的元素和屬性
- 子元素的數量(和順序)
- 元素和屬性的資料型別
- 元素和屬性的預設值和固定值
為什麼學習 XML Schema?
在 XML 世界中,每天都在使用數百種標準化的 XML 格式。
其中許多 XML 標準由 XML Schema 定義。
XML Schema 是 DTD 的一種基於 XML 的(且功能更強大)的替代方案。
XML Schema 支援資料型別
XML Schema 最強大的優點之一是支援資料型別。
- 更容易描述允許的文件內容
- 更容易驗證資料的正確性
- 更容易定義資料方面(資料限制)
- 更容易定義資料模式(資料格式)
- 更容易在不同資料型別之間轉換資料
XML Schema 使用 XML 語法
XML Schema 的另一個優點是它們是用 XML 編寫的。
- 您不必學習一門新語言
- 您可以使用 XML 編輯器來編輯您的 Schema 檔案
- 您可以使用 XML 解析器來解析您的 Schema 檔案
- 您可以使用 XML DOM 來操作您的 Schema
- 您可以使用 XSLT 來轉換您的 Schema
XML Schema 是可擴充套件的,因為它們是用 XML 編寫的。
使用可擴充套件的 Schema 定義,您可以
- 在其他 Schema 中重用您的 Schema
- 建立派生自標準型別的自己的資料型別
- 在同一文件中引用多個 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 文件是符合 XML 語法規則的文件,例如
- 它必須以 XML 宣告開頭
- 它必須有一個唯一的根元素
- 開始標籤必須有匹配的結束標籤
- 元素區分大小寫
- 所有元素都必須關閉
- 所有元素都必須正確巢狀
- 所有屬性值都必須加引號
- 必須為特殊字元使用實體
即使文件格式良好,它們仍然可能包含錯誤,而這些錯誤可能導致嚴重後果。
試想一下以下情況:您訂購了 5 打雷射印表機,而不是 5 臺雷射印表機。使用 XML Schema,其中大部分錯誤都可以被您的驗證軟體捕獲。