Ist es möglich, eine mit JAXB annotierte Klasseninstanz als Oberklasse zu marshallen (die auch eine JAXB-Klasse mit Anmerkungen ist)?So ordnen Sie eine JAXB-Klasseninstanz als Oberklasse an
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BenamningTYPE", propOrder = {"benamningId"})
@XmlSeeAlso({MoreDetailedBenamningTYPE.class})
public class BenamningTYPE {
...
@XmlElement(name = "BenamningId", required = true)
protected IdentifierTYPE benamningId;
...
}
Und der erweiterte Typ:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MoreDetailedBenamningTYPE", propOrder = {"modifyDetails"})
public class MoreDetailedBenamningTYPE extends BenamningTYPE {
...
@XmlElement(name = "ModifyDetails", required = true)
protected ModifyDetailsTYPE modifyDetails;
...
}
Also, wenn dieses Szenario:
BenamningTYPE b = new MoreDetailedBenamningTYPE();
...
Dann würde Ich mag die Instanz b als BenmaningTYPE Marschall zu bekommen
<BenmaningTYPE>
...
</BenmaningTYPE>
Und NICHT:
<MoreDetailedBenamningTYPE>
...
</MoreDetailedBenamningTYPE>
Wie würde diese Marschall Blick aufrufen wie, wenn möglich?
Das kopierfähige Plugin aus dem jaxb2-commons-Projekt war genau das, was ich wollte! Ich habe die JAXBCopyStrategy erweitert und instanceof checks für jede Unterklasse hinzugefügt und eine Kopie als Oberklasse erstellt, danke! – Axel
BTW, ich bin der Autor. Ich bin froh, dass du es hilfreich gefunden hast. – lexicore