xml

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: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" 是其子元素

参考: 请问Schema中elementFormDefault="qualified"是起什么作用呀

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>
  

参考: define child elements 0-* in any order

你可能感兴趣的:(xml)