|
Hello, I’m trying to unmarshall an input XML file which
contains a MessageHolder class. This class has a single class variable Object
object. Basically the MessageHolder can contain an Object of any type. So
the XML input file could have a MessageHolder containing a simple String or something
very complex like CustomerOrders. <?xml version="1.0"?> <mapping> <class
name=" Root"> <map-to
xml="data"/> <field
name="Id" type="java.lang.Integer"> <bind-xml
name="cmdId" node="element"/> </field> <field
name="msgHolder" type="MessageHolder"> <bind-xml
name="get" /> </field> </class> <class
name= "Get"> <field
name="object"> <bind-xml
name="test" /> </field> </class> <class
name=”CustomerDetails”> <field
name=”billingAddress” type =” BillingAddress” >
<bind-xml
name="billAddr"/>
</field> <field
name=”shippingAddress” type =” ShippingAddress” collection="set">
<bind-xml
name="shipAddr"/>
</field> </class> <class
name=”CustomerOrders”> <field
name=”currentOrders” type =”CurrentOrders” collection="set">
<bind-xml
name="currOrders"/>
</field> </class> </mapping> I tried to use the method suggested in http://www.codecomments.com/archive413-2006-1-749262.html But the problem is that when I try to unmarshall the data
stored in the XML file, the object stored in the MessageHolder object is
returned as an instance of AnyNode. ByteArrayInputStream bis = new
ByteArrayInputStream(xml.getBytes()); Root root = (Root) unmar.unmarshal(new InputSource(bis)); MessageHolder messageHolder = (MessageHolder)root.getMessageHolder; AnyNode actionObject = (AnyNode)messageHolder.getObject(); I would like to unmarshall the object as an instance of the
actual class it belongs to eg CustomerOrders or CustomerDetails. Is there any way to do this ? Thanks for reading my question. Best Regards, Trish. Patricia Hartnett Software Engineer fax : +353 1
806 1025 THE
INFORMATION IN THIS E-MAIL IS CONFIDENTIAL AND MAY BE LEGALLY PRIVILEGED.
IT IS INTENDED SOLELY FOR THE ADDRESSEE. ACCESS TO THIS E-MAIL BY ANYONE
ELSE IS UNAUTHORISED. IF YOU ARE NOT THE INTENDED RECIPIENT, ANY
DISCLOSURE, COPYRIGHT, DISTRIBUTION OR ANY ACTION TAKEN OR OMITTED TO BE TAKEN
IN RELIANCE ON IT, IS PROHIBITED AND MAY BE UNLAWFUL. |
- [castor-user] question about dynamic mapping and AnyNode Patricia Hartnett
- Re: [castor-user] question about dynamic mapping an... Werner Guttmann

