XML Schema學習(一)
來源:互聯網
上載者:User
最近埋頭苦讀WMFC定義的介面1標準文檔,其中對XML格式的定義都使用了XML Schema,由於XML Schema在很多方面都有很大的作用,大有取代DTD的趨勢,所以在此寫了一些學習筆記,有疏漏的地方請大家指正!
XML Schema的其他方面偶就不在這裡羅嗦了,直接進入主題,關於XML Schema的基本文法。
XSDL(XML Schema定義語言)由元素、屬性、命名空間和XML文檔種的其他節點構成的。
一、XSD中的元素
XSD文檔至少要包含:schema根項目和XML模式命名空間的定義、元素定義。
1、schema根項目
文法如下:
<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>
…
</xsd:schema>
在XSD中必須定義一個且只能定義一個schema根項目。根項目中包括模式的約束、XML模式命名空間的定義,其他命名空間的定義、版本資訊、語言資訊和其他一些屬性。
2、元素
文法如下:
<xsd:element name=”user” type=”xsd:string” />
XSD中的元素是利用element標識符來聲明的。其中name屬性是元素的名字,type屬性是元素值的類型,在這裡可以是XML Schema中內建的資料類型或其他類型。
例子:
<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>
<xsd:element name=”user” type=”xsd:string” />
</xsd:schema>
以上文檔對應的有效XML文檔如下:
<?xml version=”1.0”?>
<user>string</user>
在元素的定義中還有2個屬性:minOccurs和maxOccurs。其中minOccurs定義了該元素在父元素中出現的最少次數(預設為1,值為大於等於0的整數),maxOccurs定義了該元素在父元素中出現的最多次數(預設為1,值為大於等於0的整數)。在maxOccurs中可以把值設定為unbounded,表示對元素出現的最多次數沒有限制。