IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
Expand all | Collapse all

Send CDATA through soapClient

  • 1.  Send CDATA through soapClient

    Posted Tue February 10, 2009 01:46 PM

    Hi!

    My problem is that I have to call a webservice that needs to process some XML data. Before wM integration we used to call this webservice using CDATA in xml, something like this:

    <sendXmlMsgRequest>
    <msgData><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <request messageID="6d8259f2-f2be-11dd-b017-9b4c6a8d7079" messageDateTime="2009-02-04T14:19:17.330" requestersId="testId">
    <senderInsCo>01</senderInsCo>
    <targetInsCo>01</targetInsCo>
    <reRequest>false</reRequest>
    <policyNo>1327</policyNo>
    <reasonOfRequest>01</reasonOfRequest>
    <licensePlate>awer46</licensePlate>
    </request>]]></msgData>
    </sendXmlMsgRequest>

    The problem is that I can’t make wM call the webservice not escpaing the reserved XML character in the tag, and the message being sent looks like this:

    <schema:sendXmlMsgRequest >
    <schema:msgData><![CDATA[<?xml version="1.0"?>
    <request messageID="da42515a-f770-11dd-8771-f182a6d5e6d6" messageDateTime="2009-02-10T13:46:36.116" highPriorityRequest="true">
    <senderInsCo>03</senderInsCo>
    <targetInsCo>03</targetInsCo>
    <reRequest>false</reRequest>
    <policyNo>1238</policyNo>
    <reasonOfRequest>01</reasonOfRequest>
    <licensePlate>EOP100</licensePlate>
    </request>]]></schema:msgData>
    </schema:sendXmlMsgRequest>

    Is there some way to avoid escaping the XML characters?

    thanks,
    Pete


    #Flow-and-Java-services
    #webMethods
    #Integration-Server-and-ESB


  • 2.  RE: Send CDATA through soapClient

    Posted Tue February 10, 2009 05:12 PM

    One approach (the correct one IMO) is to escape the chars and remove the CDATA wrapper. Semantically both representations have the same meaning.

    Another thing to look at: I assume you’re using documentToXMLString to convert the IS doc to an XML string. Set encode to false. Be careful with this because, if your XML fragment that you posted is part of a larger document, this will impact the entire XML string. So if another field has something like “Mr. & Mrs. John Smith” as content, the XML will be broken because the & will not be converted to a character entity. If you know for sure that no field will ever have an XML markup character as data, then setting encode to false is safe.


    #webMethods
    #Flow-and-Java-services
    #Integration-Server-and-ESB