5

为什么 jaxb 不生成指定类型?它生成通用 List<JAXBElement<?>> 而不是生成指定类型。

案例是我使用 xjc 将我的 xsd 转换为 java Obj,

我的xsd

<xs:complexType name="InputType">
    <xs:choice maxOccurs="unbounded">
        <xs:element name="add" type="AddInputType"/>
        <xs:element name="get" type="GetInputType"/>
        <xs:element name="del" type="DeleteInputType"/>
    </xs:choice>
</xs:complexType> 

生成的java类,

public class InputType {

@XmlElementRefs({
    @XmlElementRef(name = "add", type = JAXBElement.class),
    @XmlElementRef(name = "get", type = JAXBElement.class),
    @XmlElementRef(name = "del", type = JAXBElement.class)
})
protected List<JAXBElement<?>> addOrGetOrDel;

public List<JAXBElement<?>> getAddOrGetOrDel() {
    if (addOrGetOrDel == null) {
        addOrGetOrDel = new ArrayList<JAXBElement<?>>();
    }
    return this.addOrGetOrDel;
}
}
4

0 回答 0