Hi!
I am currently working on a project which involves mapping a large domain model on a XSD schema. For this we use Toplink 10.1.3.1 which is mostly great. But now I have a problem while wanting to use class inheritance.
In my XSD I have the following defined
<xs:complexType name="Traject">
<xs:sequence>
<xs:element name="SoortTraject" type="SoortTraject"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SpecialTraject">
<xs:complexContent>
<xs:extension base="Traject">
<xs:sequence>
[some elements]
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
My XML is an implementation of this XSD and looks like this
<Trajecten>
<Traject xsi:type="SpecialTraject">
[implementation of the elements]
</Traject>
</Trajecten>
My domain model corresponts to the XSD, so there is a
Traject
object and an inherited
SpecialTraject
object.
In the mapping I used the Advanced properties->inheritance on both descriptors telling the Traject descriptor that it was the 'Root Parent Descriptor' ('Use class indicator field' -> 'use XML Schema Type attribute', 'Use class indicator dictionary') and the SpecialTraject what it Child Descriptor was ('Traject').
When I test my mapping it always results in the same error (no matter how I configure this inheritance mapping). It says :
[TOPLINK-44] missing class indicator field
Descriptor: XMLDescriptor(Traject --> [])
What am I doing wrong? Does anybody know a sollution?
Best regards,
Jouke Stoel
Developer