Xsd 用于限制子节点的XML模式

Xsd 用于限制子节点的XML模式,xsd,Xsd,我需要创建xml模式,其中所有节点必须包含一个或多个only或only,如下所示 <main> <foo> <a></a> <b></b> <c1></c1> </foo> <foo> <a></a> <b></b> <c1></c1> &l

我需要创建xml模式,其中所有节点必须包含一个或多个only或only,如下所示

 <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>


有人能帮我吗?

当您遇到非此即彼的情况时,您的解决方案通常是。使用maxOccurs和minOccurs属性限制元素可以出现的次数。这些属性的默认值为1,如果不添加这些属性,则使用该值

元素定义的示例代码段。注意和maxOccurs=unbounded的用法

<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>
<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>