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