我试图创建一个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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。