2
JAXBアノテーション付きクラスインスタンスをスーパークラス(これも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();
...
その後、私は取得するBenmaningTYPEとしてインスタンスBをマーシャリングしたいと思います
<BenmaningTYPE>
...
</BenmaningTYPE>
そしてませ:可能であれば
<MoreDetailedBenamningTYPE>
...
</MoreDetailedBenamningTYPE>
どのようにこのマーシャルは、のような表情を呼び出すでしょうか?
jaxb2-commonsプロジェクトのCopyable Pluginは、私が欲しがっていたものでした!私はJAXBCopyStrategyを拡張し、各サブクラスごとにinstanceofチェックを追加し、そのスーパークラスとしてコピーを作成しました。ありがとうございます! – Axel
ところで、私は著者です。うれしいことがわかってうれしいです。 – lexicore