无序 xsd:all 个元素后跟另一个元素
Unordered xsd:all elements followed by another element
如何为以下XML写一个XSD?
<A></A>
<B></B>
<C></C>
<D></D>
<E></E>
<E></E>
A、B、C、D 只有 0 或 1。而且它们没有顺序。它可以是 D,C,B,A。最后,有 个或多个 E 个元素。
我尝试了多种方法,但无法完成。
您被 XML 架构的非正交性阻止了。您认为以下内容应该有效:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="top">
<xs:complexType>
<xs:sequence>
<xs:all>
<xs:element name="A" minOccurs="0"/>
<xs:element name="B" minOccurs="0"/>
<xs:element name="C" minOccurs="0"/>
<xs:element name="D" minOccurs="0"/>
</xs:all>
<xs:element name="E" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
然而,事实并非如此。 XSD 的 xs:all
构造是第二个 class 公民;它不能出现在 xs:sequence
.
中
建议:从您的要求中删除 "any order" 津贴:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="top">
<xs:complexType>
<xs:sequence>
<xs:element name="A" minOccurs="0"/>
<xs:element name="B" minOccurs="0"/>
<xs:element name="C" minOccurs="0"/>
<xs:element name="D" minOccurs="0"/>
<xs:element name="E" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
允许元素的任何顺序最终在实践中不如在理论上重要,特别是考虑到上述非正交性以及与 Unique Particle Attribution 冲突的可能性。
如何为以下XML写一个XSD?
<A></A>
<B></B>
<C></C>
<D></D>
<E></E>
<E></E>
A、B、C、D 只有 0 或 1。而且它们没有顺序。它可以是 D,C,B,A。最后,有 个或多个 E 个元素。
我尝试了多种方法,但无法完成。
您被 XML 架构的非正交性阻止了。您认为以下内容应该有效:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="top">
<xs:complexType>
<xs:sequence>
<xs:all>
<xs:element name="A" minOccurs="0"/>
<xs:element name="B" minOccurs="0"/>
<xs:element name="C" minOccurs="0"/>
<xs:element name="D" minOccurs="0"/>
</xs:all>
<xs:element name="E" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
然而,事实并非如此。 XSD 的 xs:all
构造是第二个 class 公民;它不能出现在 xs:sequence
.
建议:从您的要求中删除 "any order" 津贴:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="top">
<xs:complexType>
<xs:sequence>
<xs:element name="A" minOccurs="0"/>
<xs:element name="B" minOccurs="0"/>
<xs:element name="C" minOccurs="0"/>
<xs:element name="D" minOccurs="0"/>
<xs:element name="E" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
允许元素的任何顺序最终在实践中不如在理论上重要,特别是考虑到上述非正交性以及与 Unique Particle Attribution 冲突的可能性。