【发布时间】:2011-01-30 05:48:39
【问题描述】:
我有一个 XML 模式 (XSD),它将一个元素定义为必需的(称为父元素);假设这个父元素有五个子元素,它们都可以是可选的,但至少必须出现一个子元素。
如何在 xsd 中指定这个?
澄清:孩子是不同的元素和可选的。 例如。
<Parent>
<Child1>contents are different to other siblings and arbitrary</Child1>
<Child2>can be text, a simple element, or another complex element</Child2>
<Child3>etc.. etc</Child3>
</Parent>
<xs:complexType name="Parent">
<xs:sequence>
<xs:element minOccurs="0" name="Child1" type="xs:string"/>
<xs:element minOccurs="0" name="Child2" />
<xs:element minOccurs="0" name="Child3" />
</xs:sequence>
</xs:complexType>
即使每个孩子都是可选的,但父母至少需要有一个孩子。
【问题讨论】:
-
在查看了答案(以及大量谷歌搜索)之后,似乎 xsd 中没有简单的构造来指定这一点;麻烦多于其价值,我选择让验证软件强制执行附加规则(例如必须至少有一个孩子)。