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();
...

次に、インスタンスbBenmaningTYPEとしてマーシャリングして取得します

<BenmaningTYPE>
    ...
</BenmaningTYPE>

そしてではありません

<MoreDetailedBenamningTYPE>
    ...
</MoreDetailedBenamningTYPE>

可能であれば、この元帥の呼び出しはどのようになりますか?

4

1 に答える 1

2

私はそれをチェックしていませんが、最初に試してみます:

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

XML スキーマからクラスを生成している場合は、copyable pluginも確認してください。のインスタンスからインスタンスにデータをコピーして、それをマーシャリングすることができMoreDetailedBenamningTYPEますBenmaningTYPE

他にも可能性はありますが、もう少し複雑です。

于 2010-11-24T07:40:35.713 に答える