首頁 >後端開發 >XML/RSS教程 >XML Schema的簡單介紹

XML Schema的簡單介紹

黄舟
黄舟原創
2017-03-27 16:42:161466瀏覽

XML Schema與DTD(DTD語法概述)一樣,也是對一類XML文檔進行約束、確定其結構,元素、屬性、及資料類型。及XML文件中所使用的元素,實體,元素的屬性,元素與實體之間的關係的約束。 XML Schema 首先由微軟提出,已經被W3C接受成為一個標準。與DTD不同的是,XML Schema 檔案使用XML語法,它的設計目的很許多跟DTD相似,但在功能,擴展性方面超越了DTD。下面說說它們之間的一些區別:

一.XML Schema 是XML文檔,不像DTD有其特有的語法。對開發人員來說,你不需要懂兩種文法就能寫一個格式良好的XML文件。對開發XML分析器來說,XML Schema由於也是XML語法,實現及支援起來就更方便了。同時XML Schema 繼承了XML可擴充的優點。

二.定義資料型態。在一個DTD檔案中只能把資料宣告為字串型別或字串類型的子元素,如PCDATA、CDATA、ID等。而在XML Schema 中,可以定義跟程式語言同樣豐富的資料型別,如整數型,浮點型,布林型,日期型等。這樣的好處是顯而易見的,當你寫程式使用一個整數資料時,如用DTD定義的,就必須將它從字元型轉換為整數,而XML Schema 則可以直接定義為整型。

三.XML Schema是一個開放的模型。如下面的一個XML文件:

<item>
  <name>TG/DTLatte</name>
  <quantity>1</quantity>
  <price>2.00</price>
</item>

下面是它的DTD及Schema描述:

DTD:

<!ELEMENT name (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT item (name,quantity,price)>

schema

<ElementType name="name"/>
<ElementType name="quantity" dt:type="int"/>>
<ElementType name="price" dt:type="fixed.14.4"/>
<ElementType name="item" model="open">
<element type="name"/>
<element type="quantity"/>
<element type="price"/>
</ElementType>

當上面的XML文件增加一條50fd4fbe00dbd22c492052e666d4196f10:21 PDT8d4a8a2a17471cc2a44f0c023147b0ca元素變為:

<item xmlns:myItm="urn:myItems">
<name>TG/DT Latte</name>
<quantity>1</quantity>
<price>2.00</price>
<myItem:time>10:21 PDT</myItem:time>
</item>

以上的DTD將會引發驗證錯誤,而Schema則不會。

四.命名空間的整合。一個XML文檔只能由一個DTD文檔來描述,而可以由多個XML Schema文檔來描述。後者完全支援命名空間。

以上是XML Schema的簡單介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn