JAXB编组可空的抽象类

时间:2015-03-30 13:13:25

标签: xml jaxb abstract nullable null

你好我有空抽象类的编组问题,例如我有:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "envelop ", propOrder = {animal})
class Envelop {    
@XmlElement(required = true, nillable = true)
public Animal animal;    
}

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Animal")
@XmlSeeAlso({
    Cat.class,
    Dog.class
})
public abstract class Animal {

}

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Dog", propOrder = {
   ...
})
public class Dog extend Animal {...}


@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Cat", propOrder = {
   ...
})
public class Cat extend Animal {...}

所以问题是,如果不在动画中设置任何东西,它会被编组到xml中,如

<animal xsi:nil="true"/>

但我需要xsi:type。

<animal xsi:type="Cat" xsi:nil="true"/>

那么我怎么能说jaxb设置一些默认的xsi:type if if是否为空? 如果字段不为null,则可以正常工作 对于具有普通类的空字段,它正确地唤醒了,但是如何处理抽象??

0 个答案:

没有答案