我在父元素中有三个可能的元素:
<parent>
<a>...</a>
<b>...</b>
<c>...</c>
</parent>
在parent
内,仅当元素b
存在时才允许元素a
。此外,仅当元素c
(因此也是b
)存在时,才允许使用元素a
。换句话说,允许以下配置:
<parent>
<a>...</a>
<b>...</b>
<c>...</c>
</parent>
<parent>
<a>...</a>
<b>...</b>
</parent>
<parent>
<a>...</a>
</parent>
以下配置无效:
<parent>
<b>...</b>
</parent>
<parent>
<c>...</c>
</parent>
<parent>
<b>...</b>
<c>...</c>
</parent>
此约束是否可在XSD中表达?
答案 0 :(得分:1)
当然,语法是
( a, (b, (c)?)?)
转换为
<xs:sequence>
<xs:element name="a"/>
<xs:sequence minOccurs="0">
<xs:element name="b"/>
<xs:element name="c" minOccurs="0"/>
</xs:sequence>
</xs:sequence>