什麼是XML架構?
XML模式描述XML文檔的結構。
XML模式語言也稱為XML模式定義(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模式的目的是定義XML文檔的合法積木:
- 可以出現在文檔中的元素和屬性
- 的數量(and order of)子元素
- 數據類型元素和屬性
- 元素和屬性的默認值和固定值
為什麼要學習XML模式?
在XML的世界裡,數以百計的標準化的XML格式在日常使用。
許多這些XML標準是由XML模式定義。
XML Schema是基於XML的(and more powerful)的替代DTD。
XML架構支持的數據類型
一個XML架構的最大優勢是數據類型的支持。
- 這是比較容易描述允許的文檔內容
- 這是比較容易驗證數據的正確性
- 這是比較容易確定數據刻面(restrictions on data)
- 這是比較容易定義數據模式(data formats)
- 這是比較容易的不同數據類型之間的數據轉換
XML模式使用XML語法
有關XML架構的另一個偉大的力量在於都寫在XML。
- 你不必去學習一門新語言
- 您可以使用XML編輯器來編輯Schema文件
- 您可以使用XML解析器解析Schema文件
- 您可以使用XML DOM操作你的架構
- 你可以用XSLT轉換的模式
XML模式是可擴展的,因為他們是用XML編寫的。
有了一個可擴展的架構定義,您可以:
- 重用其他架構的架構
- 創建自己的數據類型從標準衍生類型
- 參考多個模式在同一文件中
XML架構安全數據通信
當從發送器向接收器發送數據時,至關重要的是,這兩個部分具有相同的"expectations"有關的內容。
用XML模式,發送者可以在一個方式,接收器會理解描述數據。
一個日期,如: "03-11-2004"會,在一些國家,被解釋為3.November和在其他國家11.March。
然而,這樣的數據類型的XML元素:
<date type="date">2004-03-11</date>
保證了內容的相互理解,因為XML數據類型"date"要求的格式"YYYY-MM-DD"
合式是不夠的
格式良好的XML文檔是符合XML語法規則,就像一個文件:
- 它必須以XML聲明開始
- 它必須有一個唯一的根元素
- 起始標籤必須有匹配的結束標記
- 元素是區分大小寫
- 所有元素都必須被關閉
- 所有的元素必須正確地嵌套
- 所有屬性值必須加引號
- 實體必須使用特殊字符
即使是格式良好的文檔,他們仍然可以包含錯誤,這些錯誤可能會造成嚴重後果。
想想以下情況:您訂購5毛激光打印機,而不是5激光打印機。 在XML Schema,大多數這樣的錯誤會由檢驗軟件捕獲。