Pushing xml structure into CDATA.

View: New views
1 Messages — Rating Filter:   Alert me  

Pushing xml structure into CDATA.

by waez :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I have a requirement to generate xml that should have request payload enclosed within CDATA.

I was trying with test example

------java main method------
        OutputFormat format = new OutputFormat(Method.XML, "UTF-8", true);
        String[] cdata = {"castor:Client","castor:Address"};
        format.setCDataElements(cdata);
        format.setNonEscapingElements(cdata);
        StringWriter writer = new StringWriter();
                       
        //Create the serializer
        XMLSerializer serializer = new XMLSerializer(writer, format);
             Marshaller marshaller = new Marshaller(serializer.asDocumentHandler());
        marshaller.setMapping(mapping);
        marshaller.marshal(order);

--------Mapping
<mapping>
  <class name="com.xyz.test.MyOrder" >
  <map-to xml="Order"
     ns-uri="http://castor.org/sample/mapping/"
     ns-prefix="castor"/>
      <field name="ClientData"
           type="com.xyz.test.ClientData">
      <bind-xml name="Client"/>
    </field>
  </class>
<class name="com.xyz.test.ClientData">
    <map-to ns-uri="http://castor.org/sample/mapping/"
            ns-prefix="castor"/>
    <field name="Name"
           type="java.lang.String">
      <bind-xml name="Name" node="element"/>
    </field>
    <field name="Address"
           type="java.lang.String">
      <bind-xml name="Address" node="element"/>
    </field>
  </class>
----------------Current out put xml
<?xml version="1.0" encoding="UTF-8"?>
<castor:Order xmlns:castor="http://castor.org/sample/mapping/"
    reference="sss" total-price="12.3">
    <castor:Client>
        <castor:Name>SQ</castor:Name>
        <castor:Address><![CDATA[ABC><!#@]]></castor:Address>
    </castor:Client>  
</castor:Order>
-----------------Expected out put xml               
<?xml version="1.0" encoding="UTF-8"?>
<castor:Order xmlns:castor="http://castor.org/sample/mapping/"
    reference="sss" total-price="12.3">
    <castor:Client> <![CDATA[
        <castor:Name>SQ</castor:Name>
        <castor:Address><![CDATA[ABC><!#@]]></castor:Address>
         ]]
    </castor:Client>  
</castor:Order>


Please suggest how can I get the xml structure into the CDATA ?