加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML XSD 元素无序的问题

发布时间:2020-12-16 08:47:45 所属栏目:百科 来源:网络整理
导读:在 xsd 定义元素时,使用Order 指示器来定义元素的顺序: All 指示器 all 指示器规定子元素可以按照任意顺序出现,且每个子元素必须只出现一次 注:当使用 all 指示器时,你可以把 minOccurs 设置为 0 或者 1,而只能把 maxOccurs 指示器设置为 1(稍后将讲

在 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>指示器可规定某个元素能够出现的最小次数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读