JAXB アノテーション付きオブジェクトを反映して、マーシャリング中にクラス/フィールド/メソッドが xsi:type 属性になるかどうかを判断する方法はありますか?
annotation.type != javax.xml.bind.annotation.XmlElement.DEFAULT.class
心配する必要があるのは XmlElement アノテーションだけですか?
通常の xml 型情報の多くを削除した Lua アンマーシャラーを作成しており、受信した Lua を JAXB に一致させる方法を見つけようとしています。
ありがとう。
- アップデート -
問題を示す簡単な例を次に示します。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement()
@XmlSeeAlso({ Cat.class, Dog.class })
public class Animal {
@XmlElement()
public List<Animal> critters;
@XmlAttribute
public String type;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement()
public class Dog extends Animal {
public Dog() {
this.type = "German Shepherd";
}
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement()
public class Cat extends Animal {
public Cat() {
this.type = "Black";
}
}
Animal オブジェクトを受け取ったときに、動物の注釈をクエリして、それが Animal ではなく Dog または Cat であることを検出できますか?