W3C XML Schema 活动学习笔记
什么是XML Schema?
XML Schema 是一种用于描述和验证 XML 文档结构和内容的语言。它是由 W3C 组织开发的,是 XML 标准的一部分。
XML Schema 定义了 XML 文档中元素、属性、复杂类型等各个部分的结构和规则。通过使用 XML Schema,可以确保 XML 文档符合特定的规则,并且方便进行数据的交换、存储和处理。
XML Schema 的组成部分
命名空间和导入
在 XML Schema 中,我们可以使用命名空间来避免名称冲突。为了在一个 XML 文档中引用另一个 XML Schema,我们需要使用 <xs:import>
标签来导入。
元素和属性
在 XML Schema 中,元素和属性都是由类型定义(Type Definition)来定义的。元素可以包含子元素和文本内容,而属性只能包含文本内容。
我们可以使用 <xs:element>
标签来定义元素,使用 <xs:attribute>
标签来定义属性。在这些标签中,我们可以定义元素或属性的名称、类型、默认值、最小值、最大值等属性。
类型定义
在 XML Schema 中,我们可以使用两种类型定义:简单类型(Simple Type)和复杂类型(Complex Type)。
简单类型可以用来定义属性和某些元素的值,比如字符串、数值等。我们可以使用 <xs:simpleType>
标签来定义简单类型。
复杂类型可以用来定义具有层次结构的元素,包括组合元素、顺序元素、选择元素等。我们可以使用 <xs:complexType>
标签来定义复杂类型。
实例
下面是一个使用 XML Schema 定义的示例:
xmlCopy Code<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book">
<xs:complexType>
<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:attribute name="id" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
在这个示例中,我们定义了一个名为 book
的元素,它包含三个子元素:title
、author
和 price
,以及一个名为 id
的属性。每个子元素都使用 <xs:element>
标签来定义,而 book
元素则使用 <xs:complexType>
标签来定义。
title
、author
和 price
都是简单类型,分别是字符串类型、字符串类型和十进制类型。而 book
则是一个复杂类型,由三个顺序元素和一个属性组成。通过这样的定义,我们可以确保 XML 文档符合特定的规则,并且方便进行数据的交换、存储和处理。