2010-11-16 3 views
4

Я пытаюсь создать иерархию классов jaxb для домена веб-сервисов. Мне кажется неудобным, что подкласс, который переопределяет метод getter в суперклассе, может изменить имя элемента, которое выдает JAXB, но на него также записывается суперкласс. Мне интересно, есть ли способ подавить геттер в суперклассе.Изменить имя элемента аннотированного подкласса 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 содержит два элемента, < Имя > и <CoolName>. Есть ли способ подавить < Название > быть маршалированным?

ответ

2

Нужно ли иметь свойство name на карте SuperClass? Если нет, вы можете просто отметить это свойство @XmlTransient.

class SuperClass 
{ 
    @XmlTransient 
    public String getName(){} 
} 
Смежные вопросы