2

是否可以将 JAXB 注释类实例编组为其超类(这也是 JAXB 注释类)?

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BenamningTYPE", propOrder = {"benamningId"})
@XmlSeeAlso({MoreDetailedBenamningTYPE.class})
public class BenamningTYPE {
    ...
    @XmlElement(name = "BenamningId", required = true)
    protected IdentifierTYPE benamningId;
    ...
}

和扩展类型:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MoreDetailedBenamningTYPE", propOrder = {"modifyDetails"})
public class MoreDetailedBenamningTYPE extends BenamningTYPE {
    ...
    @XmlElement(name = "ModifyDetails", required = true)
    protected ModifyDetailsTYPE modifyDetails;
    ...
}

因此,如果这种情况:

BenamningTYPE b = new MoreDetailedBenamningTYPE();
...

然后我想将实例b编组为BenmaningTYPE以获得

<BenmaningTYPE>
    ...
</BenmaningTYPE>

不是

<MoreDetailedBenamningTYPE>
    ...
</MoreDetailedBenamningTYPE>

如果可能的话,这个元帅调用会是什么样子?

4

1 回答 1

2

我还没有检查它,但我会先尝试:

new JAXBElement(new QName("BenmaningType"),
    BenManingTYPE.class, moreDetailedBenmaningTYPEInstance)

如果您从 XML 模式生成类,还要检查可复制插件。您可以将数据从实例复制MoreDetailedBenamningTYPE到实例BenmaningTYPE并编组。

还有更多的可能性,但它们有点复杂。

于 2010-11-24T07:40:35.713 回答