XML模式
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"/>