我试图创建一个XSD,并试图写下具有以下要求的定义:
>允许指定的子元素出现任意次数(0到无限制)
>允许子元素以任何顺序排列
<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可以以任何顺序显示任意次数。所以这听起来像你正在寻找。
原文链接:https://www.f2er.com/xml/294098.html编辑:如果你只想要其中一个出现无限次,无界的将不得不去的元素,而不是:
编辑:固定类型的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>