更改JAXB带注释的子类的元素名称

时间:2010-11-16 01:04:50

标签: java xml jaxb

我正在尝试为Web服务域创建jaxb类层次结构。我发现覆盖超类中的getter方法的子类可以更改JAXB输出的元素名称,但是超类的一个也被写入输出。我想知道是否有办法抑制超类中的吸气剂。

代码:

@XmlType
class SuperClass
{
    @XmlElement(name = "Name")
    public String getName(){}
}

@XmlType
class SubClass extends SuperClass
{
    @Override
    @XmlElement(name = "CoolName")
    public String getName(){}
}

当我将SubClass元素添加到XmlRootElement中时,输出XML包含两个元素,< Name>和< CoolName>。有没有办法抑制< Name>被封送?

1 个答案:

答案 0 :(得分:2)

您是否需要在SuperClass上映射名称属性?如果没有,你可以只标记该属性@XmlTransient。

class SuperClass
{
    @XmlTransient
    public String getName(){}
}