XML教學 | XML Schema
XML Schema
是什麼?
XML Schema
是基於XML
的DTD
替代者,可描述XML
檔的結構,也可作為XSD
(縮寫:XML Schema Definition
)來引用。
XML Schema
的作用是定義XML
檔的合法構建模塊,類似DTD
。
- 定義可出現在文檔中的元素。
- 定義可出現在文檔中的屬性。
- 定義哪個元素是子元素。
- 定義子元素的次序。
- 定義子元素的數目。
- 定義元素是否為空,或者是否可包含文本。
- 定義元素和屬性的資料類型。
- 定義元素和屬性的預設值以及固定值。
為何說XML Schema
替代了DTD
:
XML Schema
可針對未來的需求進行擴展。- 在其他
Schema
中重複使用Schema
。 - 創建由標準類型衍生而來自己的數據類型。
- 在相同的文檔中引用多重的
Schema
。
- 在其他
XML Schema
基於XML
編寫。- 不必學習新的語言。
- 可使用
XML
編輯器來編輯Schema
文件。 - 可使用
XML
解析器來解析Schema
文件。 - 可通過
XML DOM
來處理Schema
。 - 可通過
XSLT
來轉換Schema
。
XML Schema
支持資料類型。- 可更容易描述允許的文檔內容。
- 可更容易驗證資料的正確性。
- 可更容易與來自資料庫的資料一併工作。
- 可更容易定義資料約束(
data facets
)。 - 可更容易定義資料模型(或稱資料格式)。
- 可更容易在不同的資料類型間轉換資料。
XML Schema
支持命名空間。XML Schema
更完善,功能更強大。
要知道XML
形式良好仍然不能保證它們不會包含錯誤,並且這些錯誤可能會產生嚴重的後果。
說明:訂購的了5
打雷射印表機,而不是5
台。通過XML Schema
,大部分這樣的錯誤會驗證軟體捕獲到。
簡單的範例
1 | <xs:element name="note"> |
Schema
說明如下:
語法 | 說明 |
---|---|
<xs:element name=”note”> | 定義名為note 的元素 |
<xs:complexType> | “note” 元素是複雜類型 |
<xs:sequence> | 複雜類型是一個元素序列 |
<xs:element name=”to” type=”xs:string”> | 元素“to”是字符串類型 |
<xs:element name=”from” type=”xs:string”> | 元素“from”是字符串類型 |
<xs:element name=”heading” type=”xs:string”> | 元素“heading”是字符串類型 |
<xs:element name=”body” type=”xs:string”> | 元素“body”是字符串類型 |
結語
此章節「簡單」介紹了XML Schema
,關於這一整個語法的使用語教學其實滿複雜的,這邊就不在深入。
簡單來說語DTD
是做一樣的事情,驗證XML
,但是XML Schema
更加靈活簡單好用。
至此基本的XML
教學和相關的延伸介紹就告一段落了。關於延伸介紹是否再深入學習…就再看看狀況。
註:以上參考了
維基百科-XML
w3resource.com - XML , XLink 和 XPointer
Family with 220 icons by inipagi