【发布时间】:2009-07-15 02:03:44
【问题描述】:
XML Schema 文档能否指定两个项目必须同时出现?
例如,有两个可选元素,它们要么都存在,要么都不存在。
a b? c d? e # giving only {ace, abcde}
# instead of all combinations: {ace, acde, abce, abcde}
<element name="root">
<complexType>
<sequence>
<element ref="a"/>
<element ref="b" minOccurs="0"/>
<element ref="c"/>
<element ref="d" minOccurs="0"/>
<element ref="e"/>
<sequence>
<complexType>
<element>
另一个例子:有两个重复的元素,无论第一个出现多少次,第二个也出现很多次:
a b^n c d^n e # where ^n is a superscript denoting number of repeats
# giving {ace, abcde, abbcdde, abbbcddde, ...}
# but no other combinations
<element name="root">
<complexType>
<sequence>
<element ref="a"/>
<element ref="b" minOccurs="0" maxOccurs="unbounded"/>
<element ref="c"/>
<element ref="d" minOccurs="0" maxOccurs="unbounded"/>
<element ref="e"/>
<sequence>
<complexType>
<element>
也许在 XML Schema 规范中的 identity constraints 中有一些内容,但这似乎是关于获得一个具有特定特征的实例,而不是确保两个实例具有相同的特征。
【问题讨论】: