XML XSD 元素无序的问题

   在 xsd  定义元素时,使用Order 指示器来定义元素的顺序:

    

     All 指示器

     <all> 指示器规定子元素可以按照任意顺序出现,且每个子元素必须只出现一次

      注:当使用 <all> 指示器时,你可以把 <minOccurs> 设置为 0 或者 1,而只能把 <maxOccurs> 指示器设置为 1(稍后将讲解 <minOccurs> 以及 <maxOccurs>)。

   

    Choice 指示器

    <choice> 指示器规定可出现某个子元素或者可出现另外一个子元素(非此即彼

   注:如需设置子元素出现任意次数,可将 <maxOccurs> (稍后会讲解)设置为 unbounded(无限次)。

        

     Sequence 指示器

     <sequence> 规定子元素必须按照特定的顺序出现。

    按照设计xsd 中 sequence下元素属性有序,all下元素最多出现一次,当我们需要无序的元素时,如 <A> </A> <B></B><A><A/> ... 时,则不太好解决;

   

 解决方式: 给choice  添加 maxOccurs 和 minOccurs 来解决;

    <xs:element name="Transaction">
        <xs:complexType>
            <xs:choice>            <!-- 用choice来解决无序的问题 -->
                <xs:element ref="DynSentence" maxOccurs="unbounded" minOccurs="0" />   
                <xs:element ref="Function" maxOccurs="unbounded" minOccurs="0" />   
                <xs:element ref="FlowCtrl" />        
            </xs:choice>
            <xs:attributeGroup ref="transactionGroup" />
        </xs:complexType>
    </xs:element>

 

    maxOccurs 指示器

   <maxOccurs> 指示器可规定某个元素可出现的最大次数

 

   minOccurs 指示器

   <minOccurs> 指示器可规定某个元素能够出现的最小次数






  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值