XSD选择序列或单个元素

时间:2016-03-07 14:31:43

标签: xml xsd jaxb choice xml-binding

我正在尝试在两个元素的序列和一个元素之间创建一个选择:

<xs:element name="LoadStationsRequest">
<xs:choice>

    <xs:complexType>
        <xs:sequence> 
            <xs:element name="path" type="xs:string" />
            <xs:element name="fileName" type="xs:string" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType>
        <xs:sequence>
            <xs:element name="row" type="xs:string" />
        </xs:sequence>
    </xs:complexType>

</xs:choice>
</xs:element>

问题是,choice标签接受其中的三个元素中的任何一个,“path”,“fileName”和“row”。

我想要的是路径和文件名,或者只是行。

这可行吗?如何解决这个问题的任何线索?

当前输出:

     <v1:LoadStationsRequest>
     <!--You have a CHOICE of the next 2 items at this level-->
     <v1:path>?</v1:path>
     <v1:fileName>?</v1:fileName>
     <v1:row>?</v1:row>
     </v1:LoadStationsRequest>

1 个答案:

答案 0 :(得分:2)

适合我:

<xs:element name="LoadStationsRequest">
    <xs:complexType>
        <xs:choice>
            <xs:sequence> 
                <xs:element name="path" type="xs:string" />
                <xs:element name="fileName" type="xs:string" />
            </xs:sequence>          
            <xs:sequence>
                <xs:element name="row" type="xs:string" />
            </xs:sequence>
        </xs:choice>
    </xs:complexType>
</xs:element>