我想编写一个xml架构,它可以接受任何可以按任何顺序出现任意次数的元素。像下面的例子。它应该满足所有类似的组合。租约帮助我,并提前谢谢。
<root>
<node1> one </node1>
<node1> two </node1>
<node2> three </node2>
<node1> four </node1>
<node2> five </node2>
<node2> six </node2>
</root>
<root>
<node1> one </node1>
<node2> two </node2>
<node1> three </node1>
<node2> four </node2>
<node2> five </node2>
<node1> six </node1>
<node1> seven </node1>
</root>
答案 0 :(得分:4)
这样的事情应该有效:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="root" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="node1" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="node2" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
基本上,<xs:choice>
可让您选择任何一个包含的节点,例如<node1>
或<node2>
中的任何一个。有关各种选项的更多说明,请参阅W3Schools' article。
由于<xs:choice>
具有属性minOccurs="0"
和maxOccurs="unbounded"
,因此您可以多次重复“选择任何包含的节点”方案。
最后,您可以选择任意数量的节点,每次都可以选择node1或node2(或者更多,如果您向<xs:choice>
添加更多选项)
答案 1 :(得分:1)
当我编写模式时,我发现这个资源非常有用:http://www.w3schools.com/Schema/schema_elements_ref.asp