Hallo,
ich sitze seit einigen Stunden an folgendem Problem:
Ich habe eine abstrakte Klasse "Location"
Das Interface ist ebenfalls als XmlTransient annotiert.
Nun habe ich mehrere Klassen, die von Location erben. Eine davon ist wiederum abstrakt und mit @XmlTransient annotiert.
Mein Wunschergebnis ist nun, dass ich in der XML Datei folgendes schreiben kann:
JAXB sollte dann idealerweise anhand des xsi:type die entsprechende Klasse instanziieren und die Elemente den Feldern zumappen.
Leider klappt das nicht so, wie gewollt, denn entweder meckert er, weil er Location nicht instantiieren kann (logisch, weil abstrakt) oder, nachdem ich es eben als @XmlTransient annotiert hatte, bietet er mir unter xsi:type nur anyType an, und damit eben keine entsprechenden Elemente. Das muss doch aber eigentlich möglich sein, oder???
Meine Frage lautet nun, ob ich das Gebilde aus Klassen anders annotieren muss, oder ob mein Vorhaben nicht möglich ist???
ich sitze seit einigen Stunden an folgendem Problem:
Ich habe eine abstrakte Klasse "Location"
Java:
@XmlTransient
public abstract class StoreLocation implements IStoreLocation
{
@XmlElement(name="base-uri", nillable=true, required=false)
private String _baseUri = null;
}
Das Interface ist ebenfalls als XmlTransient annotiert.
Nun habe ich mehrere Klassen, die von Location erben. Eine davon ist wiederum abstrakt und mit @XmlTransient annotiert.
Mein Wunschergebnis ist nun, dass ich in der XML Datei folgendes schreiben kann:
Java:
...
<location xsi:type="meineSpezielleLocation">
...Elemente der speziellenLocation
</location>
JAXB sollte dann idealerweise anhand des xsi:type die entsprechende Klasse instanziieren und die Elemente den Feldern zumappen.
Leider klappt das nicht so, wie gewollt, denn entweder meckert er, weil er Location nicht instantiieren kann (logisch, weil abstrakt) oder, nachdem ich es eben als @XmlTransient annotiert hatte, bietet er mir unter xsi:type nur anyType an, und damit eben keine entsprechenden Elemente. Das muss doch aber eigentlich möglich sein, oder???
Meine Frage lautet nun, ob ich das Gebilde aus Klassen anders annotieren muss, oder ob mein Vorhaben nicht möglich ist???