1. XML Schema 的基本结构:
XML Schema通常以.xsd为文件扩展名。一个简单的XML Schema文档的基本结构如下:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- 在这里定义元素和数据类型 -->
</xs:schema>
2. 定义元素和数据类型:
定义简单元素:
<xs:element name="book" type="xs:string"/>
上述代码定义了一个名为 "book" 的简单元素,其数据类型为字符串(xs:string)。
定义复杂元素:
<xs:element name="book">
<xs:complexType>
<!-- 在这里定义复杂元素的结构 -->
</xs:complexType>
</xs:element>
复杂元素可以包含其他元素或属性,其结构在 <xs:complexType> 元素内定义。
3. 定义元素结构和属性:
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
</xs:sequence>
<xs:attribute name="isbn" type="xs:string"/>
</xs:complexType>
</xs:element>
上述代码定义了一个包含 title 和 author 元素以及 isbn 属性的复杂元素。
4. 引入其他命名空间的类型:
<xs:import namespace="http://www.example.com/other" schemaLocation="other.xsd"/>
如果你想在当前的XML Schema中使用其他命名空间中定义的类型,可以使用 <xs:import> 元素。
5. 引用和约束:
引用元素:
<xs:element name="library">
<xs:complexType>
<xs:sequence>
<xs:element ref="book" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
上述代码中,<xs:element ref="book"/> 引用了之前定义的名为 "book" 的元素。
约束元素值:
<xs:element name="price" type="xs:decimal">
<xs:restriction base="xs:decimal">
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:element>
上述代码定义了一个名为 "price" 的元素,其类型为十进制数(xs:decimal),并对其值进行了约束,最大值为100。
6. 示例 XML 文档:
<?xml version="1.0" encoding="UTF-8"?>
<library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="library.xsd">
<book>
<title>Introduction to XML</title>
<author>John Doe</author>
</book>
<book>
<title>XML Schema Tutorial</title>
<author>Jane Smith</author>
<price>75</price>
</book>
</library>
在上述示例中,xmlns:xsi 和 xsi:noNamespaceSchemaLocation 属性用于指定XML Schema的位置,以便验证XML文档的结构。
以上是一个简单的XML Schema教程,涵盖了基本的XML Schema结构、元素定义、数据类型、引入其他命名空间的类型等方面。XML Schema支持更多的特性,包括命名空间、约束、键和引用等,可以根据实际需求进一步深入学习。
转载请注明出处:http://www.pingtaimeng.com/article/detail/12276/XML