XML模式被稱為XML架構定義(XSD)。它是用來描述和驗證的結構和XML資料的內容。 XML模式定義的元素,屬性和資料型別。Schema元素的名稱空間支援。它類似於描述了資料庫中的資料的資料庫模式.
在XML文件中,您需要如下宣告模式:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
下面的範例演示了如何使用模式:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="contact"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="company" type="xs:string" /> <xs:element name="phone" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
XML模式的基本思路是,它描述了合法格式的XML文件可以接受.
我們可以在 XML中看到的 - 元素一章的 元素是XML文件的組成部分。一個元件可以為XSD中定義如下:
<xs:element name="x" type="y"/>
您可以定義下列方式XML架構元素:
簡單的型別 - 簡單型元件被用來只在文字的上下文。一些預定義的簡單型別有:XS:整數,XS:布林,XS:字串,XS:日期。例如:
<xs:element name="phone_number" type="xs:int" />
複雜型別 - 複雜型別可以包含其他元素定義。這使您可以指定哪些子元素的元素可以包含和你的XML文件中提供了一些結構。例如:
<xs:element name="Address"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="company" type="xs:string" /> <xs:element name="phone" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element>
在上面的例子中,地址元素是由子元素。這是一個容器,其他與LT; XS:元素和GT;定義,允許構建部件的簡單分層結構的XML文件中.
全域性型別 - 隨著全球性的型別,你可以定義你的檔案,可以使用所有其他參照在一個單一的型別。例如,假設你想推廣的人員和公司對公司的地址不同,在這種情況下,您可以定義如下的一般型別:
<xs:element name="AddressType"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="company" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element>
現在讓我們用這種型別在我們的例子如下:
<xs:element name="Address1"> <xs:complexType> <xs:sequence> <xs:element name="address" type="AddressType" /> <xs:element name="phone1" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Address2"> <xs:complexType> <xs:sequence> <xs:element name="address" type="AddressType" /> <xs:element name="phone2" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element>
而不必定義名稱,該公司兩次(一次在地址1,一次用於地址2,我們現在有一個單一的定義。如果你決定新增“郵編”元素的地址,你需要將它們新增在一個地方.
在XSD屬性提供了一個元素中的額外資訊。屬性具有名稱和型別屬性,如下所示:
<xs:attribute name="x" type="y"/>