我需要创建xml架构,其中所有节点<foo>
必须只包含一个或多个<c1>
或<c2>
只有 <main>
<foo>
<a></a>
<b></b>
<c1></c1>
</foo>
<foo>
<a></a>
<b></b>
<c1></c1>
</foo>
<foo>
<a></a>
<b></b>
<c1></c1>
</foo>
</main>
出现,如下所示。
<main>
<foo>
<a></a>
<b></b>
<c2></c2>
</foo>
<foo>
<a></a>
<b></b>
<c2></c2>
</foo>
<foo>
<a></a>
<b></b>
<c2></c2>
</foo>
</main>
或
{{1}}
任何人都可以帮助我吗?
答案 0 :(得分:0)
当您遇到“或 - 或”情况时,您的解决方案通常为<xs:choice>
。使用maxOccurs
和minOccurs
属性可限制元素出现的次数。这些属性的默认值为“1”,如果不添加这些属性,则使用该值。
<foo>
元素定义的示例代码段。请注意<xs:choice>
和maxOccurs="unbounded"
<xs:element name="foo">
<xs:complexType>
<xs:sequence>
<xs:element name="a" type="xs:string />
<xs:element name="b" type="xs:string />
<xs:choice>
<xs:element name="c1" maxOccurs="unbounded" type="xs:string />
<xs:element name="c2" type="xs:string />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>