派生クラスで XMLAttribute をマーシャリングしたいのですが、問題があります。
次のように、2 つの派生クラスと 1 つのスーパー クラスがあります。
public class Dog extends Animal {
@XmlAttribute(name = "type")
private String type;
@XmlElement
private String name;
}
public class Cat extends Animal {
@XmlAttribute(name = "type")
private String type;
@XmlElement
private String name;
}
@XmlSeeAlso({Dog.class, Cat.class})
public class Animal {
}
@XmlRootElement(name="some_element_wrapper")
public SomeElementWrapper() {
List<Animal> listAnimal;
@XmlElement(name = "animals")
public List<Animal> getListAnimal() {}
public void setListAnimal(List<Animal> listAnimal) {}
}
いくつかのデータが入力された List があるとします。次のようにクラスから XML を生成したい:
<some_element_wrapper>
<animals>
<animal type="dog">....</animal>
<animal type="cat">....</animal>
</animals>
</some_element_wrapper>
私の問題は、 type 属性以外に必要なものを取得することです。スーパークラスで属性タイプを移動するか、派生タイプフィールドをオーバーライドするなど、他のさまざまなソリューションを試しましたが、結果はありませんでした。何か提案はありますか?