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