XML Schema是用于定义XML文档构造跟束缚的一种言语。它不只可能帮助我们验证XML文档的合法性,还可能供给更多的功能,如数据范例定义、元素跟属性束缚等。本文将带你从入门到粗通,经由过程实战案例剖析XML Schema实例的编写。
XML Schema的重要感化是定义XML文档的构造跟束缚,确保XML文档的合法性。
与DTD比拟,XML Schema供给了更多的功能跟更丰富的数据范例定义。
一个XML Schema文档包含以下部分:
<xs:schema>
<xs:namespace>
<xs:element>
<xs:complexType>
<xs:simpleType>
创建一个XML Schema文档,并指定根元素为<xs:schema>
。
利用<xs:namespace>
定义XML Schema文档的称号空间。
利用<xs:element>
定义XML Schema文档中的元素。
利用<xs:simpleType>
或<xs:complexType>
定义元素的数据范例。
经由过程组合简单范例跟元从来创建复杂范例。
利用<xs:sequence>
、<xs:choice>
等元素定义元素组合。
利用<xs:attribute>
定义元素的属性。
利用<xs:restriction>
、<xs:pattern>
等元素定义元素跟属性的束缚。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/books"
xmlns:book="http://www.example.com/books"
elementFormDefault="qualified">
<xs:element name="books" type="book:BookListType"/>
<xs:complexType name="BookListType">
<xs:sequence>
<xs:element name="book" type="book:BookType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BookType">
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/orders"
xmlns:order="http://www.example.com/orders"
elementFormDefault="qualified">
<xs:element name="orders" type="order:OrderListType"/>
<xs:complexType name="OrderListType">
<xs:sequence>
<xs:element name="order" type="order:OrderType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OrderType">
<xs:sequence>
<xs:element name="orderid" type="xs:integer"/>
<xs:element name="customer" type="xs:string"/>
<xs:element name="items" type="order:ItemListType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ItemListType">
<xs:sequence>
<xs:element name="item" type="order:ItemType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ItemType">
<xs:sequence>
<xs:element name="productid" type="xs:integer"/>
<xs:element name="quantity" type="xs:integer"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
经由过程本文的进修,信赖你曾经控制了XML Schema实例编写的入门到粗通。在现实利用中,你可能根据须要机动应用XML Schema的各种功能,进步XML文档的坚固性跟可保护性。