天天看點

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

如何定義XSD并在XML中使用XSD

同時XSD可以對XML中的格式進行限制,當限制失敗時給出提示。

下面以下使用VS2010為平台進行示範。

1.建立一個項目,然後在項目中添加xml架構檔案(.xsd結尾的檔案),本示例是建立一個網站,在網站中建立項XML架構檔案,字尾是.xsd,命名為XMLSchema2.xsd

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

2.平台自動生成如下内容:

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

其中xmlns在使用XML引入XSD檔案時比較重要。

3.現在開始定義XSD

<?xmlversion="1.0"encoding="utf-8"?>

<xs:schemaid="XMLSchema2"

targetNamespace="http://tempuri.org/XMLSchema2.xsd"

elementFormDefault="qualified"

xmlns="http://tempuri.org/XMLSchema2.xsd"

xmlns:mstns="http://tempuri.org/XMLSchema2.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

<xs:elementname="通訊錄">

<xs:complexType>

<xs:sequence>

<xs:elementref="記錄"maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:elementname="記錄">

<xs:elementref="姓名"/>

<xs:elementref="關系"/>

<xs:elementref="工作機關"/>

<xs:elementref="職位"/>

<xs:elementref="電話"/>

<xs:elementref="手機"/>

<xs:elementref="電子郵件"/>

<xs:attributename="編号"use="required">

<xs:simpleType>

<xs:restrictionbase="xs:decimal"/>

</xs:simpleType>

<!--說明編号屬性的類型:必須為整數-->

</xs:attribute>

<xs:elementname="姓名">

<xs:restrictionbase="xs:string"/>

<!--補充姓名的類型:字元串-->

<xs:elementname="關系">

<xs:restrictionbase="xs:string">

<xs:enumerationvalue="朋友"/>

<xs:enumerationvalue="同僚"/>

<xs:enumerationvalue="親屬"/>

<xs:enumerationvalue="一般"/>

</xs:restriction>

<!--補充關系的類型:必須為朋友、同僚、親屬、一般中的一種,不能重複-->

<xs:elementname="工作機關">

<!--補充工作機關的類型:字元串-->

<xs:elementname="職位">

<!--補充職位的類型:字元串-->

<xs:elementname="電話">

<xs:patternvalue="\d{3}-\d{8}"></xs:pattern>

<!--補充電話的類型:按照形式“區号-号碼”表示,其中區号占3位,号碼占8位-->

<xs:elementname="手機">

<xs:restrictionbase="xs:decimal">

<xs:patternvalue="\d{7,12}"/>

<!--補充手機的類型:必須為數字,長度介于7-12位之間-->

<xs:elementname="電子郵件">

<xs:patternvalue="^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"/>

<!--補充電子郵件的類型:形如“郵件名@域名”-->

</xs:schema>

“<xs:pattern”節點下的value支援正規表達式來驗證。

4.接下來在XML中引入XSD檔案,對XML的節點輸入值進行限制

5.建立一個XML檔案,并命名為XMLFile2.xml

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

平台隻生成一行代碼。

6.添加對XSD檔案的引用

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

一個XSD必定隻有一個根結點,是以,此處将根結點也寫于頭部。

添加兩個屬性:

xmlns作為XSD所在的命名空間

xmlns:xsi作為本XML檔案的命名空間,即XSD的一個執行個體(instance)。

7.開始編寫XML檔案

8.輸入<,發現它自動跳出可選的節點

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

這個就是XSD的作用之一。

9.繼續輸入,直到電話節點

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

提示模式限制失敗。這是XSD的作用之二。

實際上,XSD是這樣定義的:

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

10.改到“區号-号碼”的3+8形式,錯誤提示消失

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

11.同理,對于郵箱位址

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

12.改成正确形式

在XML裡的XSD和DTD以及standalone的使用2----具體使用詳解

13.完畢

龍騰一族至尊龍騎

繼續閱讀