Like Share Discussion Bookmark Smile

J.J. Huang   2022-11-28   XML 2.延伸介紹   瀏覽次數:次   DMCA.com Protection Status

XML教學 | XML Schema

XML Schema是什麼?

XML Schema是基於XMLDTD替代者,可描述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
2
3
4
5
6
7
8
9
10
11
12
<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>

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