Wie zu ignorieren, JAXB annotierte Eigenschaften in einer übergeordneten Klasse?

Haben wir eine Klasse mit JAXB Annotationen auf eine Eigenschaft. Wir haben dann mehrere Unterklassen, die kommentieren den rest der wichtigen Daten. Wir haben eine Unterklasse, aber da, wo wir wollen, ignorieren Sie die übergeordnete Klasse annotation, so dass es nicht gemarshallt. Hier einige Beispiel-code.

Übergeordneten Klasse:

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

    ... setter/getter
}

Nun für die Unterklasse:

@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 ...
}

Wenn ich masrhall eine Instanz von ConcreteClass bekomme ich die folgende XML:

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

Hier will ich die XML wie diese:

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

Wir haben andere Implementierungen der Anfrage, jedoch benötigen Sie die UUID, dies ist nur ein spezieller Fall. Gibt es eine Möglichkeit zu ignorieren, die UUID-Feld in meinem ConcreteRequest?

InformationsquelleAutor prozaak | 2012-10-01
Schreibe einen Kommentar