I have a problem, which I could not find in the archive or browsing the net.
We are using Castor 0.95.
We manage and process our Request Payload information via xml schema and use
Castor generated beans as our principal mode data transfer and business
objects.
In our latest release we need to support a very specific information of our
customer.
<CatalogRequest>
<header>
...
</header>
<payload>
<Item>
<field1>
....
<field10>
<custom><!![CDATA[<customerData>......</customerData>]CDATA]</custom>
</Item>
Since we can ill-afford to describe the customer specific information in our
schema , we have the customer send the data as CDATA. as described above
<custom>
We have specified the custom element as StringType .
Problem:
The approach we have decided is to Create a new class non castor say
ItemWrapper extends Item (castor generated).
I have created a ItemWrapperDescriptor which extends ItemDescriptor (castor
generated).
When I marshal / unmarshal ItemWrapper independently I get the <Item> xml as
described the schema.
However, When I unmarshal the CatalogRequest object, for the Item elementI
need to generated the object ItemWrapper.
How can I do this? I need to do this because the ItemWrapper object has some
methods which parses the CDATA during unmarshal and converts it back to
CDATA eleement while marshalling.
So to Summarize,
Is there a way during unmarshall we can ask the Unmarshaller to unmarshal a
specific element to an Extended class of a Castor generated Class.
I tried this via a mappng as listed below and with no success.
Please note that the class I need to overide during unmarshal is not the
root element.
<mapping>
<class name="xxx.xx.xx.xx.xx.beans.ItemWrapper"
extends="xx.xx.xx.xx.xx.xx.beans.Item">
</class>
</mapping>
Any help will be deeply appreciated ..
regds,
Chiths