Hi,
ich habe eine Menge von Schemas in denen u.A. folgende Typen definiert sind.
[XML]
<xsd:complexType name="CT_Objekt" abstract="true">
<xsd:sequence>
<xsd:element name="Erweiterung" type="CT_Erweiterung" minOccurs="0" maxOccurs="1" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CT_Erweiterung" abstract="true">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="CT_Filter" abstract="true">
<xsd:complexContent>
<xsd:extension base="allgemein:CT_Objekt">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CT_Suche">
<xsd:complexContent>
<xsd:extension base="kontext:CT_Filter">
<xsd:sequence>
<xsd:element name="Nummer" type="daten:ST_Text030" minOccurs="0" maxOccurs="1" nillable="true">
</xsd:element>
....
....
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>[/XML]
Ich habe mit xjc die entsprechenden Java-Klassen generiert und stehe jetzt vor dem Problem, dass beim Instanziieren eines CT_Suche-Objektes immer auch versucht wird, eine Instanz von CT_Erweiterung zu erzeugen, was natürlich fehlschlägt, da dieser Typ abstrakt ist.
Die Frage die ich mir stelle ist, wo liegt hier der Fehler. Hätte der Schreiber der Schemas CT_Erweiterung nicht abstrakt definieren dürfen oder sollte JAXB so schlau sein zu merken, dass ein Objekt des Typs nicht erzeugt werden darf?
Gruß
minos
ich habe eine Menge von Schemas in denen u.A. folgende Typen definiert sind.
[XML]
<xsd:complexType name="CT_Objekt" abstract="true">
<xsd:sequence>
<xsd:element name="Erweiterung" type="CT_Erweiterung" minOccurs="0" maxOccurs="1" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CT_Erweiterung" abstract="true">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="CT_Filter" abstract="true">
<xsd:complexContent>
<xsd:extension base="allgemein:CT_Objekt">
<xsd:sequence/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CT_Suche">
<xsd:complexContent>
<xsd:extension base="kontext:CT_Filter">
<xsd:sequence>
<xsd:element name="Nummer" type="daten:ST_Text030" minOccurs="0" maxOccurs="1" nillable="true">
</xsd:element>
....
....
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>[/XML]
Ich habe mit xjc die entsprechenden Java-Klassen generiert und stehe jetzt vor dem Problem, dass beim Instanziieren eines CT_Suche-Objektes immer auch versucht wird, eine Instanz von CT_Erweiterung zu erzeugen, was natürlich fehlschlägt, da dieser Typ abstrakt ist.
Die Frage die ich mir stelle ist, wo liegt hier der Fehler. Hätte der Schreiber der Schemas CT_Erweiterung nicht abstrakt definieren dürfen oder sollte JAXB so schlau sein zu merken, dass ein Objekt des Typs nicht erzeugt werden darf?
Gruß
minos