Some extra information related to my question:
Our aim is to define a generic envelope that can
contain a wide range of
request or response objects as payload. To achieve
this we are using
inheritance: the definition of the envelope (called
'djiMessage') defines
that it contains a 'message' in it's body. At runtime
this will be an
object/element that inherits from 'message', for
instance
'opvoerenJustitiabeleRequest'. .
We can generate our JAXB classes just fine but when we
use them to
marshall an envelope instance that contains such a
'opvoerenJustitiabeleRequest' the resulting element
is 'message'. So
that's the most generic element, while we expect that
to be the most
specific element 'opvoerenJustitiabeleRequest'.
So our question is: what is going wrong and how can we
fix this.
When we marshal the classes generated based on the
following XSD:
<xs:element name="djiMessage" type="djiMessageType"/>
<xs:complexType name="djiMessageType">
<xs:sequence>
<xs:element name="header" type="header"/>
<xs:element name="body" type="body"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="error"/>
<xs:complexType name="errors">
<xs:sequence>
<xs:element name="error" type="error"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="header">
<xs:sequence>
<xs:element name="serviceName"
type="xs:string"/>
<xs:element name="messageType"
type="xs:string"/>
<xs:element name="errors" type="errors"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="body">
<xs:sequence>
<xs:element name="message" type="message" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="message">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="opvoerenJustitiabeleRequest" >
<xs:complexContent>
<xs:extension base="message">
<xs:sequence>
<xs:element name="justitiabele"
type="justitiabele"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="justitiabele">
<xs:sequence>
<xs:element name="nummerDji" type="xs:int"/>
<xs:element name="vipNummer" type="xs:int"/>
</xs:sequence>
</xs:complexType>
we get the XML mentioned bellow:
<djiMessage>
<header>
<serviceName>justitiabeleService</serviceName>
<messageType>msg_type</messageType>
<errors>
<error/>
</errors>
</header>
<body>
<message>
<justitiabele>
<nummerDji>24</nummerDji>
<vipNummer>34</vipNummer>
</justitiabele>
</message>
</body>
</djiMessage>
Regards,
Levente
__________________________________
Do you Yahoo!?
Yahoo! Mail - More reliable, more storage, less spam
http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
For additional commands, e-mail: users-help_at_jaxb.dev.java.net