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

前端之家收集整理的这篇文章主要介绍了xml – XSD – 如何允许任何顺序任意次数的元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图创建一个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>
原文链接:https://www.f2er.com/xml/294098.html

猜你在找的XML相关文章