我在xs中需要一个元素:all要重复两次

时间:2017-07-25 02:25:51

标签: xsd

    <xs:complexType>
        <xs:all>
            <xs:element name="AN" minOccurs="0"/>
            <xs:element name="ME" minOccurs="0"/>
            <xs:element name="preview" minOccurs="0"/>
            <xs:element name="NZ" minOccurs="0"/>
            <xs:element name="RE" minOccurs="0"/>
            <xs:element name="RU" minOccurs="0"/>
            <xs:element name="AU" minOccurs="0"/>
            <xs:element name="SE" minOccurs="0"/>
            <xs:element name="CM" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
</xs:element>

在上面的代码中,我希望元素“ME”在XML中使用两次,其他元素应该只使用一次,但任何顺序。

1 个答案:

答案 0 :(得分:0)

您想要做的是以下内容。然而,虽然这在XSD 1.1下很好,但它不在XSD 1.0下。

<xs:element name="MyElm">
    <xs:complexType>
        <xs:all>
            <xs:element name="AN" />
            <xs:element name="ME" minOccurs="2" maxOccurs="2" />
            <xs:element name="preview" />
            <xs:element name="NZ" />
            <xs:element name="RE" />
            <xs:element name="RU" />
            <xs:element name="AU" />
            <xs:element name="SE" />
            <xs:element name="CM" />
        </xs:all>
    </xs:complexType>
</xs:element>

在XSD 1.0中,我很确定这是不可能的。如果你能够在没有他们的情况下生活在任何秩序中。然后你可以使用xs:序列,如果你可以使用0-1和0-2项目,那么你可以使用xs:choice。但是,你可以尽可能接近。