We have an external web Service based on SOAP to which we have to pass a XML in a string element. We created a webservice consumer in Integration server.
We are wrapping the XML string in CDATA as follows:
<![CDATA[ ]]>
Using CDATA means that the content should not be encoded or be treated as plain string. But looks like webMethods SOAP processor still encodes the content and changes it to something like below:
<![CDATA[ ]]>
Is there a way to stop the encoding? We are using INtegration sever 7.1.3 and it uses the service pub.client:soapClient
When you use the service pub.xml:documentToXMLString to create an xml string specify the input “encode” to false, which means do not HTML?encode the data.
That part is done. I have pub.flow:debugLog after that shows the message exactly the way I want it, but when the data is returned, there is extra encoding. I had to add an extra space [here] after the &'s so that they would show.
from the log, which is the last line in my flow service:
& lt;Header DateTime="2015-01-14
what is returned in soapUI
& amp;lt;Header DateTime="2015-01-14
I have seen several posts that detail that there may be something wrong with the WSDL definition I’ve created, but I don’t know what other data type besides string to use, because for all intents, that’s how I want the data treated.
I have the encode set to false on the docToXML before I do the trace log.
I can’t use the encode option as I need the quotes to remain as is in the response node.
I have 2 distinct solution paths I have been working down.
A:Currently the IS is automatically encoding the less-than symbol, but not the greater-than symbol. I’m assuming what ever is controlling this is actually my problem.
B: Because it was only encoding the lt symbol, I tried to manually encod the gt and lt symbols. Then what happens is the IS encodes the ampersands.
I believe the service is designed by default html encoded format in the output which should be widely accepted by the apps part of the html encoded style.So may be you can use replace service function for each lt and gt and amp; how ever it is forced way of taking out the encoding style in the XML.
Perhaps I should change the line of thinking to “Why isn’t it encoding the greater than sign, rather than how do i get it to not encode the less-than and amp symbols”