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