XSD:使用选择的序列划分方案

时间:2017-08-07 06:48:03

标签: xsd

我的xsd的一部分如下:

<xs:element name="my_element" minOccurs="1 maxOccurs="unbounded">
    <xs:complexType>
        <xs:choice>
            <xs:sequence>
                <xs:element name="sequence_1" type="xs:string"/>
                <xs:element name="ID1" type="xs:string"/>
                <xs:element name="TYPE1" type="xs:string"/>
            </xs:sequence>
            <xs:sequence>
                <xs:element name="sequence_2" type="xs:string"/>
                <xs:element name="ID2" type="xs:string"/>
                <xs:element name="TYPE2" type="xs:string"/>
            </xs:sequence>   
        </xs:choice>
    </xs:complexType>
</xs:element>

序列的第一个元素名称决定了以下节点。 如果我现在有很多不同的序列,我的xsd里面有一些元素,看起来不是很清楚。

是否可以分离序列(就像我可以为complexType做的那样)?

1 个答案:

答案 0 :(得分:0)

您可以使用群组:

<xs:group name="seqGroup_x">
    <xs:sequence>
        <xs:element name="sequence_x" type="xs:string"/>
        <xs:element name="ID" type="xs:string"/>
        ...
    </xs:sequence>
</xs:group>

<xs:complexType name="yourType">
    <xs:group ref="seqGroup_x"/>
    <xs:attribute name="anotherattr" type="xs:string"/>
</xs:complexType>