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

xml – XSD – 如何允许任何顺序任意次数的元素?

发布时间:2020-12-16 08:16:05 所属栏目:百科 来源:网络整理
导读:我试图创建一个XSD,并试图写下具有以下要求的定义: 允许指定的子元素出现任意次数(0到无限制) 允许子元素以任何顺序排列 我环顾四周,发现了各种解决方案,如this: xs:element name="foo" xsl:complexType xs:choice minOccurs="0" maxOccurs="unbounded"
我试图创建一个XSD,并试图写下具有以下要求的定义:

>允许指定的子元素出现任意次数(0到无限制)
>允许子元素以任何顺序排列

我环顾四周,发现了各种解决方案,如this:

<xs:element name="foo">
  <xsl:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="child1" type="xs:int"/>
      <xs:element name="child2" type="xs:string"/>
    </xs:choice>
  </xs:complexType>
</xs:element>

但从我的理解xs:选择仍然只允许单个元素选择。因此,将MaxOccurs设置为无限的像这样应该只意味着子元素的“任何一个”可以出现多次。这是准确吗?

如果上面的解决方案不正确,我该如何实现我上面所说的我的要求?

编辑:如果要求如下?

>元素child1 child2可以出现任何
次数(0到无限)
>元素以任何顺序
>元素child3和child4应该只出现一次。

例如,
此xml有效:

<foo>
<child1> value </child1>
<child1> value </child1>
<child3> value </child3>
<child2> value </child2>
<child4> value </child4>
<child1> value </child1>
</foo>

但是这不是(缺少child3)

<foo>
<child1> value </child1>
<child1> value </child1>
<child2> value </child2>
<child4> value </child4>
<child1> value </child1>
</foo>
在您的问题中的模式中,child1或child2可以以任何顺序显示任意次数。所以这听起来像你正在寻找。

编辑:如果你只想要其中一个出现无限次,无界的将不得不去的元素,而不是:

编辑:固定类型的XML。

编辑:maxOccurs中的大写O

<xs:element name="foo">
   <xs:complexType>
     <xs:choice maxOccurs="unbounded">
       <xs:element name="child1" type="xs:int" maxOccurs="unbounded"/>
       <xs:element name="child2" type="xs:string" maxOccurs="unbounded"/>
     </xs:choice>
   </xs:complexType>
</xs:element>

(编辑:李大同)

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

    推荐文章
      热点阅读