Schema

来源:互联网 发布:单片机音乐播放器 编辑:程序博客网 时间:2024/04/30 13:07
一个有效的Schema文件的结构如下:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- 这里编写内容 -->
 </xs:schema>

Schema类型的元素是Schema文件的根元素,每个Schema文件必须包含Schema类型的元素。Schema类型元素的属性有以下几种:
xmlns: xmlns是xhtml namespace的缩写,称为“命名空间” xmlns属性的值是一个URI或URL地址 xmlns属性不可缺少
targetNamespace: 该属性的值是在xmlns已经定义好的命名空间中选择。该属性可有可无
elementFormDefault:用于指示子元素是否放到命名空间中,有“qualified”和“unqualified”两种取值
attributeFormDefault: 用于指示是否把某个子元素的属性放到命名空间中,有“qualified”和“unqualified”两种取值
还有其他属性

简单类型元素主要有:
simpleType类型元素、element类型元素、attribute类型元素、enumeration类型元素、pattern类型元素、list类型元素 union类型元素。

simpleType类型元素:

simpleType类型的属性有“final”、“id”和“name”。“final”属性指出派生的类型,防止该simpleType元素的指定派生类型,该值可以包含一个列表,该列表是list、union或restriction元素的子集。

element类型元素:
element用于定义一个普通的元素。一般格式如下:

<element name="name" type="string"></element>
<element name="age" type="int"></element>
<element name="address" type="string"></element>
element元素的属性有name、abstract、block、default、final、fixed、id、nillable、maxOccurs、minOccurs、substitutionGroup和type
name属性的值是该element元素的元素名。
type属性的值是该element元素的数据类型。
ref属性的值必须指向一个全局元素。
maxOccurs属性的值是元素在其父元素中出现的最大次数,它的取值为大于0或等于0的数,在默认状态下为unbounded。
minOccurs属性的值是元素在其父元素中出现的最小次数,它的取值为大于0或等于0的数,在默认状态下为1。

attribute类型元素:
attribute用于声明一个属性元素。如:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:attribute name="a"></xs:attribute>
</xs:schema>

attribute主要有name、default、fixed、id、 ref、type、use几种属性。

(1)Default:指该attribute类型元素的名称具有默认值;
(2)fixed:指该attribute类型元素的名称具有固定的值 ;
(3)use:指示如何使用该attribute类型元素。use属性的值必须是“optional”、“prohibited”、“required”中的一种。“optional”表示该属性可以是任何值,并且该属性是可选的;“prohibited”表示不能使用该属性;“required”表示该属性必须出现一次。在默认状态下use的值是“optional”。

sequence类型元素:

sequence类型要求组中的元素以指定的顺序出现在父元素中。与DTD中逗号的用法类似,sequence类型的属性如下:
id属性:唯一标识该sequence类型的元素。 
 maxOccurs和minOccurs属性:限制该元素组在父元素中出现的次数。

complexType类型元素:

complexType类型用于定义一个复合类型的元素。

complexType类型的属性有以下几种:

name属性:该复合类型元素的名称。

abstract属性:指示在实例文档中是否可以使用复杂类型。如果该值为true,则元素不能直接使用该复杂类型,而是必须使用从该复杂类型派生的复杂类型。默认值为false。

final属性:防止从该复杂类型元素派生出指定的类型。

mixed属性:指示是否允许字符数据出现在该复杂类型的子元素之间。如果值为“false”,则不允许字符数据出现,反之,可以。

choice类型元素 :

choice类型限制唯一的一个元素从某个组中被选择。choice类型的属性主要有以下几种:

id属性:唯一标识该元素,id属性的值必须唯一。

maxOccurs和minOccurs属性:限制该元素组在父元素中出现的次数。