首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >maxOccurs是无界的,但不要考虑元素的顺序(xs:all)

maxOccurs是无界的,但不要考虑元素的顺序(xs:all)
EN

Stack Overflow用户
提问于 2013-09-11 13:18:00
回答 1查看 524关注 0票数 0

我有一个XSD文件,其中有以下情况:

代码语言:javascript
运行
复制
<xs:element name='test'>
  <xs:complexType>
   <xs:all>
    <xs:element ref='el1' minOccurs='0' maxOccurs='1'/>
    <xs:element ref='el2' minOccurs='0' maxOccurs='1'/>
    <xs:element ref='el3' minOccurs='0' maxOccurs='1'/>
    <xs:element ref='el4' minOccurs='0' maxOccurs='1'/>
    <xs:element ref='el5' minOccurs='0' maxOccurs='1'/>
    <xs:element ref='el6' minOccurs='0' maxOccurs='1'/>
    <xs:element ref='el7' minOccurs='0' maxOccurs='1'/>    
    <xs:element ref='el8' minOccurs='0' maxOccurs='unbounded'/>  
   </xs:all>
   <xs:attribute name='attr1' use='optional' type='yesno'/>
  </xs:complexType>
 </xs:element>

现在的问题是,到目前为止,这还不起作用,因为我不能在maxOccurs='unbounded'元素中使用all。是否有任何方法可以实现这一点,例如使用xs:choice

EN

Stack Overflow用户

回答已采纳

发布于 2013-09-11 13:29:32

为了保持所需的基数,XSD 1.0中唯一的方法是用另一个元素包装重复元素,如下所示:

代码语言:javascript
运行
复制
<xs:element name='test'>
    <xs:complexType>
        <xs:all>
            <xs:element ref='el1' minOccurs='0'/>
            <xs:element ref='el2' minOccurs='0'/>
            <xs:element ref='el3' minOccurs='0'/>
            <xs:element ref='el4' minOccurs='0'/>
            <xs:element ref='el5' minOccurs='0'/>
            <xs:element ref='el6' minOccurs='0'/>
            <xs:element ref='el7' minOccurs='0'/>
            <xs:element ref='el8w' minOccurs='0'/>
        </xs:all>
        <xs:attribute name='attr1' type='yesno'/>
    </xs:complexType>
</xs:element>
<xs:element name="el8w">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="el8" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

模仿xs:all的(重复)选择(即允许带有指示基数的散列元素)不能强制单个粒子的出现。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18742314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档