2010-11-16 5 views
4

Je tente de créer une hiérarchie de classe jaxb pour un domaine de services Web. Je trouve incommode qu'une sous-classe qui remplace une méthode getter dans la super classe puisse changer le nom de l'élément que JAXB sort, mais celui de la super classe est également écrit dans la sortie. Je me demande s'il existe un moyen de supprimer le getter dans la super classe.Modification du nom d'élément d'une sous-classe annotée JAXB

code:

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

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

Lorsque j'ajoute l'élément SubClass dans un XmlRootElement, le fichier XML de sortie contient deux éléments, <Nom> et <CoolName>. Existe-t-il un moyen de supprimer <Nom> étant marshalé?

Répondre

2

Avez-vous besoin de faire correspondre la propriété name sur SuperClass? Sinon, vous pouvez simplement marquer cette propriété @XmlTransient.

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