如何在 XSD 中允许一个元素或另一种元素选择?
How to allow one element or another choice of elements in XSD?
假设我有一个 <scene>
元素,它可以包含以下元素:
<episode>
and/or <season>
- 或
<part>
一些例子:
<scene>
<part></part>
</scene>
另一个例子:
<scene>
<episode></episode>
<episode></episode>
<season></season>
</scene>
另一个:
<scene>
<episode></episode>
<season></season>
<episode></episode>
</scene>
所以这里的想法是在 <scene>
中允许 episodes
和 seasons
(具有无限限制)。如果这两个元素(季节和剧集)不存在,您可以在 <scene>
内使用 <part>
元素,并且没有限制。
我正在尝试在 XML 架构中执行此操作。我尝试了 groups 和 complexContent 但没有成功。有什么想法吗?
使用复合 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>
这表示 scene
可以由无限数量的 part
元素或 episode
和 season
元素的无限组合组成。
假设我有一个 <scene>
元素,它可以包含以下元素:
<episode>
and/or<season>
- 或
<part>
一些例子:
<scene>
<part></part>
</scene>
另一个例子:
<scene>
<episode></episode>
<episode></episode>
<season></season>
</scene>
另一个:
<scene>
<episode></episode>
<season></season>
<episode></episode>
</scene>
所以这里的想法是在 <scene>
中允许 episodes
和 seasons
(具有无限限制)。如果这两个元素(季节和剧集)不存在,您可以在 <scene>
内使用 <part>
元素,并且没有限制。
我正在尝试在 XML 架构中执行此操作。我尝试了 groups 和 complexContent 但没有成功。有什么想法吗?
使用复合 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>
这表示 scene
可以由无限数量的 part
元素或 episode
和 season
元素的无限组合组成。