回顾 JAXB 注释对象,有没有办法确定一个类/字段/方法是否会在封送处理期间导致 xsi:type 属性?
XmlElement 注释是
annotation.type != javax.xml.bind.annotation.XmlElement.DEFAULT.class
我唯一需要担心的情况吗?
我正在编写一个 Lua 解组器,我们在其中删除了许多常用的 xml 类型信息,并且我试图弄清楚如何将传入的 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 对象时,我可以查询 critter 的注释以检测它应该是 Dog 还是 Cat 而不是 Animal?