Xml 如何允许XSD中的一个元素或另一个元素选择?
假设我有一个Xml 如何允许XSD中的一个元素或另一个元素选择?,xml,xsd,xsd-validation,xml-validation,Xml,Xsd,Xsd Validation,Xml Validation,假设我有一个元素,它可以包含以下元素: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="scene"> <xs:complexType> <xs:choice> <xs:element name="part" ma
元素,它可以包含以下元素:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="scene">
<xs:complexType>
<xs:choice>
<xs:element name="part" maxOccurs="unbounded"/>
<xs:choice maxOccurs="unbounded">
<xs:element name="episode"/>
<xs:element name="season"/>
</xs:choice>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
和/或- 或
<scene>
<part></part>
</scene>
另一个例子:
<scene>
<episode></episode>
<episode></episode>
<season></season>
</scene>
另一个:
<scene>
<episode></episode>
<season></season>
<episode></episode>
</scene>
所以这里的想法是允许
中的剧集
和季节
(具有无限的限制)。如果这两个元素(季节和剧集)不存在,您可以在
中使用
元素,并具有无限的限制
我试图在XML模式中实现这一点。我尝试了分组和复杂内容,但没有成功。有什么想法吗?使用复合
xs:choice
元素:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="scene">
<xs:complexType>
<xs:choice>
<xs:element name="part" maxOccurs="unbounded"/>
<xs:choice maxOccurs="unbounded">
<xs:element name="episode"/>
<xs:element name="season"/>
</xs:choice>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
这意味着,
场景
可以由无限数量的部分
元素组成,也可以由无限数量的插曲
和季节
元素组成。向我们展示您已经拥有的内容。这将有助于回答问题;)不过,这能确保元素是互斥的吗?@Therley:在部分
元素和插曲
和季节
元素的无限混合之间存在互斥,是的,但在插曲
和季节
之间不存在互斥,因为最大值=“无界的
在xs:choice上
包装这些元素。