如何在XSD中允许一个元素或其他元素的选择?
问题描述:
假设我有一个<scene>
元件,其可以包含以下元素:如何在XSD中允许一个元素或其他元素的选择?
-
<episode>
和/或<season>
- OR
<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模式中做到这一点。我尝试过群体和复杂的内容而没有成功。有任何想法吗?
答
使用化合物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
元件*混合物。
告诉我们你已经有了什么。这将有助于答案;) –