XML Schema(XML模式)是一种用于定义和描述XML文档结构的语言。XML Schema定义了XML文档中元素的结构、数据类型、约束等规则。以下是一个简单的XML Schema教程,介绍XML Schema的基本概念和语法。

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