Wir haben einige Entitäten mit JAXB-Annotationen, damit wir bestimmtes 'eingehendes' XML in Pojo entpacken können. Jetzt müssen wir die Pojos in XML verpacken, aber in einem anderen Format als das eingehende XML. Wie können wir das am besten machen?
Antwort
Zu viele Anzeigen?
HZhang
Punkte
166
Meine Lösung besteht darin, ein zusätzliches "Version" -Feld im JAXB-Objekt zu verwenden, um mehrere Versionen von Bindungen zu unterscheiden. Normalerweise verwende ich ein Enum als Typ, d.h., enum Version {V1, V2, ...};
Also für ein spezifisches XML-Elementfeld definiere ich die getField() -Methode als
@XmlElement
public String getField() {
if (version == Version.V1) {
return field;
} else if (version == Version.V2) {
return null; // versteckt
}
}
Vor dem Marshalling muss man nur den Version-Wert auf den gewünschten Enum-Wert setzen, und JAXB kümmert sich um den Rest.