我想使用 XSD 验证我的 XML。XML 应该包含复杂元素,其中包含给定集合的一些(没有全部)元素。我认为复杂元素的直接解决方案是
<xs:sequence>
<xs:element name="foo" minOccurs="0" maxOccurs="1"/>
<xs:element name="bar" minOccurs="0" maxOccurs="1"/>
<xs:element name="bee" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
我想摆脱元素的设置顺序,再加上我想摆脱minOccurs="0"
每一行中的
<foo>text</foo>
<bee>text</bee>
<bar>text</bar>
也是有效的。我的想法是写
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element1>
<xs:element2>
...
</xs:choice>
</xs:sequence>
这应该转换为“根据需要多次选择列表中的一个元素”。
但它不允许我maxOccurs=1
对单个元素施加外观限制(如 )。有没有更好的方法来验证 XML 而不强制元素的给定顺序?