将多个变量映射到一个xsd:choice

时间:2018-06-28 14:03:18

标签: java xsd jaxb xjc

如果我们这样编写简单的xsd:

<xs:element name="myChoice" >  
    <xs:complexType>
        <xs:choice>
          <xs:element name="choice1" type="xs:string"/>
          <xs:element name="choice2" type="xs:string"/>
        </xs:choice>
    </xs:complexType>      
</xs:element>

使用xjc工具,我们可以生成带有两个String变量的Java类MyChoice:choice1和choice2。

但是我更喜欢先编写Java代码并使用jaxb生成xsd文件。是否可以在java类中具有两个String变量,并使用jaxb注释生成一个 xsd选择,就像上面的代码一样?

我知道可以通过使用像这样的jaxb注释来生成xsd选择:

@XmlElements(value = {
    @XmlElement(name="choice1", type=String.class),
    @XmlElement(name="choice2", type=String.class)
})
private String choice;

但这不是我想要的,因为我们不知道'choice'是否包含choice1或choice2的值。

是否可以通过使用jaxb注释或其他方式来做到这一点? 预先感谢!

0 个答案:

没有答案