用于重复元素序列的Xml Schema

blu*_*ech 4 xml xsd

我有xml如下

<Search>
    <Term />
    <And />
    <Term />
    <And />
    <Term />
</Search>
Run Code Online (Sandbox Code Playgroud)

如图所示,序列中可以有n个术语和n-1个And(n> 0).我尝试了以下xml架构,但上面的xml不会针对架构进行验证. 错误:cvc-complex-type.2.4.b:元素"搜索"的内容不完整.其中一个'{And}'是预料之中的.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Search">
        <xs:complexType>
            <xs:sequence>               
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="Term" type="xs:string" />
                    <xs:element name="And" type="xs:string" />
                </xs:sequence>              
                <xs:element name="Term" minOccurs="1" maxOccurs="1" type="xs:string" />             
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

感谢xml架构的任何帮助.

use*_*279 9

像这样重新排序他们似乎做到了.我错过了什么吗?

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Search">
        <xs:complexType>
            <xs:sequence>
              <xs:element name="Term" minOccurs="1" maxOccurs="1" type="xs:string" />
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="And" type="xs:string" />
                  <xs:element name="Term" type="xs:string" />
                </xs:sequence>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)