这是xml文件:
<section>
<number>1</number>
<title>A Title goes here...</title>
<code>TheCode</code>
<element></element>
<element></element>
</section>
在节节点中,有数字,标题和代码节点。他们的顺序不能修复。 然后,节节点下也有多个元素。
我们的想法是使用以下架构:
<xs:complexType name="Type-section">
<xs:all>
<xs:element name="number" minOccurs="0"></xs:element>
<xs:element name="code" minOccurs="1"></xs:element>
<xs:element name="title" minOccurs="1"></xs:element>
</xs:all>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="element"></xs:element>
</xs:sequence>
</xs:complexType>
但它无效。我只是不能把“序列”和“所有”放在同一级别。我该如何解决?
答案 0 :(得分:1)
如果订单不重要,那么您可以这样做的方法是列出所有排列并将其作为选择。然而,随着选择数量增加O(n!),将很难维持。由于XML Schema上存在这些限制,我不得不重新编写我编写的一些内容的序列。
e.g。
<choice>
<sequence>
<element name="a" />
<element name="b" />
<element name="c" />
</sequence>
<sequence>
<element name="a" />
<element name="c" />
<element name="b" />
</sequence>
<sequence>
<element name="b" />
<element name="a" />
<element name="c" />
</sequence>
<sequence>
<element name="b" />
<element name="c" />
<element name="a" />
</sequence>
<sequence>
<element name="c" />
<element name="a" />
<element name="b" />
</sequence>
<sequence>
<element name="c" />
<element name="b" />
<element name="a" />
</sequence>
</choice>