Comment ignorer JAXB annoté propriétés d'une classe parent?

Nous avons une classe avec un JAXB annotation sur une propriété. Nous avons ensuite plusieurs sous-classes qui annoter le reste des données importantes. Nous avons une sous-classe, cependant, où nous voulons ignorer la classe parent d'annotation, de sorte qu'il n'obtient pas muselé. Voici un exemple de code.

Classe Parent:

@XmlType(name="Request")
@XmlAccessorType(XmlAccessorType.NONE)
public abstract class Request {
    @XmlElement(required=true)
    private UUID uuid;

    ... setter/getter
}

Maintenant, pour la sous-classe:

@Xsd(name="concreteRequest")
@XmlRootElement("ConcreteRequest")
@XmlType(name="ConcreteRequest")
@XmlAccessorType(XmlAccessorType.FIELD)
public class ConcreteClass {
    @XmlElement(required=true)
    private String data1;
    @XmlElement(required=true)
    private String data1;

    ... setters/getters ...
}

Quand je masrhall une instance de ConcreteClass-je obtenir le code XML suivant:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConcreteRequest>
    <uuid>uuid</uuid>
    <data1>data</data1>
    <data2>data</data3>
</ConcreteRequest>

Où je veux XML comme ceci:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConcreteRequest>
    <data1>data</data1>
    <data2>data</data3>
</ConcreteRequest>

Nous avons d'autres implémentations de la Demande, mais qui ne requièrent l'UUID, c'est juste un cas particulier. Est-il possible d'ignorer l'UUID de champ dans ma ConcreteRequest?

OriginalL'auteur prozaak | 2012-10-01