我想做的是,声明一个名为“data”的父元素,它有 6 个子元素,这两个元素是有条件的,这意味着如果选择元素 A,则 B 不会出现在“data”中。
像这样:
<data>
<A>text1</A>
<B>text1</B>
<C>text1</C>
<D>text1</D>
<E>text1</E> or <F>text1</F>
</data>
Run Code Online (Sandbox Code Playgroud)
要求1:所有元素可以以任意顺序、任意次数出现。
要求2:元素E和F是有条件的,意味着只有其中之一出现在数据中。
我的xsd代码是这样的:
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element name="sequence" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded" >
<xs:element ref="A" />
<xs:element ref="B" />
<xs:element ref="C" />
<xs:element ref="D" />
<xs:choice>
<xs:element ref="E" />
<xs:element ref="F" />
<xs:element ref="G" />
</xs:choice>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="status"/>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有这些链接,但仍然没有得到我的解决方案。