1.xml中targetSchema的说明:
targetSchema是和elementFormDefault以及attributeFormDefault 结合在一起使用的。
Schema文件定义的目的就是为了效检,那Schema文件到底定义了一些什么东西呢?就是Element和Type,还有Attribute。 就是说,elementFormDefault和attributeFormDefault的值设为qualified之后,Element和Type,还有Attribute的默认命名空间就是targetNameSpace定义的命名空间。
翻译过来就是 元素,类型以及属性,而这些东西是可以定义命名空间也可以不定义命名空间,定义命名空间的作用就是为了避免重复,特别是在大型的系统中,出现重复的可能性很高,而这个命名空间是如何定义的呢,就是通过targetSchema 来定义的,elementFormDefault 和 attributeFormDefault 两个属性决定了 targetSchema 所定义的命名空间的作用范围
是这样的,如果elementFormDefault和attributeFormDefault的值设为qualified之后,那么他们的命名空间就是 targetSchema 定义的命名空间
如果 elementFormDefault 定义为 elementFormDefault="unqualified" ,则只是元素的根元 素的命名空间为 targetSchema 所定义,其子元素 则是 没有命名空间的
xs:element name="c" 是根,xs:element name="c1" 是其子元素
参考:[url=http://bbs.w3china.org/dispbbs.asp?BoardID=23&id=25672&replyID=17053&star=1&skin=0]请问Schema中elementFormDefault="qualified"是起什么作用呀[/url]
2.Schema Compositor说明
Compositor表示元素节点出现的顺序,它包含三种类型sequence、all、choice。
sequence -- 元素出现有先后顺序
all -- 元素必须都出现,且只出现一次
choice -- 只能从元素中选择一个
那如何实现 元素出现的个数无限制,顺序也没有限制呢?
参考:[url=http://stackoverflow.com/questions/3607454/xml-schema-define-child-elements-0-in-any-order/]define child elements 0-* in any order[/url]
targetSchema是和elementFormDefault以及attributeFormDefault 结合在一起使用的。
Schema文件定义的目的就是为了效检,那Schema文件到底定义了一些什么东西呢?就是Element和Type,还有Attribute。 就是说,elementFormDefault和attributeFormDefault的值设为qualified之后,Element和Type,还有Attribute的默认命名空间就是targetNameSpace定义的命名空间。
翻译过来就是 元素,类型以及属性,而这些东西是可以定义命名空间也可以不定义命名空间,定义命名空间的作用就是为了避免重复,特别是在大型的系统中,出现重复的可能性很高,而这个命名空间是如何定义的呢,就是通过targetSchema 来定义的,elementFormDefault 和 attributeFormDefault 两个属性决定了 targetSchema 所定义的命名空间的作用范围
是这样的,如果elementFormDefault和attributeFormDefault的值设为qualified之后,那么他们的命名空间就是 targetSchema 定义的命名空间
如果 elementFormDefault 定义为 elementFormDefault="unqualified" ,则只是元素的根元 素的命名空间为 targetSchema 所定义,其子元素 则是 没有命名空间的
<xs:Schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="aaaa" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:element name="c">
<xs:complexType>
<xs:Sequence>
<xs:element name="c1" type="xs:Double"/>
<xs:element name="c2" type="xs:String"/>
</xs:Sequence>
</xs:complexType>
</xs:element>
</xs:Schema>
xs:element name="c" 是根,xs:element name="c1" 是其子元素
参考:[url=http://bbs.w3china.org/dispbbs.asp?BoardID=23&id=25672&replyID=17053&star=1&skin=0]请问Schema中elementFormDefault="qualified"是起什么作用呀[/url]
2.Schema Compositor说明
Compositor表示元素节点出现的顺序,它包含三种类型sequence、all、choice。
sequence -- 元素出现有先后顺序
all -- 元素必须都出现,且只出现一次
choice -- 只能从元素中选择一个
那如何实现 元素出现的个数无限制,顺序也没有限制呢?
<xs:element name="Connectors">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Association" />
<xs:element ref="Message" />
<xs:element ref="Sequence" />
</xs:choice>
</xs:complexType>
</xs:element>
参考:[url=http://stackoverflow.com/questions/3607454/xml-schema-define-child-elements-0-in-any-order/]define child elements 0-* in any order[/url]