<xs:complexType name="test">
<xs:choice >
<xs:element ref="mstns:element1" ></xs:element>
<xs:element ref="mstns:element2" ></xs:element>
<xs:sequence>
<xs:element ref="mstns:element1" minOccurs="1" maxOccurs="1"></xs:element>
<xs:element ref="mstns:element2" minOccurs="1" maxOccurs="1" ></xs:element>
</xs:sequence>
</xs:choice>
您好,
我目前正在尝试编写XSD架构文件,但我不知道如何指定 两个元素出现在两个元素中,或者其中之一。我尝试了上面的代码片段,但它不起作用,因为它似乎不允许多个元素名称。
怎么办?
感谢您的帮助。
答案 0 :(得分:1)
您的内容模型是:(A | B | AB)
,还是(A | B | AB | BA)
?
在第一种情况下,您需要将其写为
(A B? | B)
在第二种情况下,您需要将其写为
(A B? | B A?)
其中“|”代表选择和“?”表示可选性(和连接表示序列)。
或者你可以使用xs:all。
这需要满足XSD对明确性的要求而不需要前瞻:当有选择时,你必须始终能够决定在输入中没有任何前瞻的情况下采用哪个分支。