一、 Schema概述
在XML技术成为万维网推荐标准之后,DTD体现出的不少局限性,万维网协会又推出了用于描述、约束、检验XML文档的新方法:Schema(XML架构)。Schema也是用来定义XML文档、并利用该定义验证XML文档是否符合要求的一种技术。Schema对XML文档结构的定义和描述主要作用是用来约束XML文档,并验证XML文档有效性。
Schema文档中的元素通过使用element关键字来声明。元素声明定义了元素名称、内容和数据类型等属性。按照元素在Schema中的位置来分,在架构中处于“schema”根元素下的元素,称为“顶层元素”(Top-level elements)。在顶层元素下,包含更多的元素,这些元素和顶层元素一起使用。顶层元素包含以下几项内容。
(1)声明元素和属性(element、attribute和attributeGroup)。
(2)定义数据类型、元素组(complexType、simpleType和group)。
(3)声明表示法(notation)。
(4)注释文档(annotation)。
对XML的数据结构进行限制有两种方式:使用文档类型定义DTD(Document Type Definition)和XML Schema模式。
XML Schema模式是一个特殊的XML文件 XML Schema模式较DTD的一个最大的优势就是它能约束标记中包含的内容的数据类型 。
1、XML Schema模式是扩展名为“.xsd”的一个文本文件,使用XML语法来编写,保存时所选择的编码必须和所约束的XML文件一致
2 XML Schema模式的特点
XML Schema模式可以约束标记包含的文本的数据类型,这里所说的数据类型是指文本的表示形式。
比如,一个标记包含的文本被约束为int型,那么该标记包含的文本必须是由数字型字符组成。
3 根标记
XML Schema模式的根标记必须是schema,使用的名称空间必须是:
http://www.w3.org/2001/XMLSchema
名称空间的前缀是xsd。例如:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
… …
</xsd:schema>
4 元素标记
XML Schema模式用“element”标记来约束XML文件中的标记。“element”标记是XML Schema模式中根标记中最重要的子孙标记。
对于XML文件的中没有子标记的标记,XML Schema模式使用“简单类型”元素来给予约束。XML Schema中“简单类型”元素的格式为:<xsd:element name="标记名称" type="简单数据类型"/>
对于XML文件中有子标记的标记,XML Schema模式文件使用“复杂类型”元素来约束。XML Schema中“复杂类型”元素的格式为:
<xsd:element name="标记名称" >
<xsd:complexType>
… ….
</xsd:complexType>
</xsd:element>
5 属性标记
对于XML文件中的属性,XML Schema模式使用“attribue”标记来约束。
二、元素与属性
1、对于XML文件的中没有子标记的标记,即只有文本数据的标记,XML Schema模式可以使用内建的“简单类型”元素来约束。
<xsd:element name=“标记名称” type=“简单数据类型”/>
2、
对于XML文件中有子标记的标记,XML Schema模式使用“复杂类型”元素来给予约束。XML Schema中“复杂类型”元素的格式为:
<xsd:element name="标记名称" >
<xsd:complexType>
对子标记约束的元素
</xsd:complexType>
<xsd:element>
3、
对于XML文件中的属性,XML Schema模式使用“attribue”标记来约束,该标记的格式如下:
<xsd:attribute name=“属性名字” type=“基本数据类型” use=“条件” />
其中use可取值"required”、“optional”、“fixed”、“default”。
“attribue”标记必须在“复杂类型”元素中使用,指出“复杂类型”元素约束的XML标记应当有怎样的属性。