位置:首頁 > Web開發 > XML教學 > XML模式

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"/>