xsdファイルからクラスを生成しました。JAXBで生成されるクラスフィールドは抽象的です
このクラスには、抽象クラスのフィールドが含まれています。この抽象クラスには、2つの異なる実装があります。 Impl1CLassとImpl2Classを呼び出してみましょう。
私はxsdスキーマを変更できません。生成されたクラスは変更できません。
JAXBマーシャル、このクラスと抽象フィールドがNULL値を持っているとき、私がする必要があるのは、私はこのような何かを取得する必要がありますされています。生成されたクラスに
<dep xsi:type="Impl1Class" xsi:nil="true"/>
ティ・フィールドは次のようになります。
protected Dep dep;
Depは抽象クラスです。
は、だから私は、私は抽象クラスとしてBoundTypeでXmlAdapterのを作成しようとしました
(Impl1Class)これがnilであると種類が特定のものであることを設定する必要があるとのValueTypeがJAXBElementのですが、それはreuiresので、運がなかったデフォルト以外JAXBElementにはそのようなコンストラクタはありません。xsi:nil = "true"のときは、xsi:typeと入力してください。どうやってやるの?
ここで生成されたクラスの任意の注釈
protected DepartmentKey department;
ソリリー、私はあなたを得ませんでした。私はセッターを持っていません。ですから、あなたはImpl1Class(Depクラスのサブインスタンスです)を拡張し、Setを追加してDepを自分自身に設定することを提案しますか? – Dmitriy
@Dmitriy DepとImpl1Classのコードを共有できますか?どのクラスがDepクラスのラッパーであっても、Depをnullに設定できます。それは私の答えが意味するものです。 –
私は変更された質問 – Dmitriy