Hi Guys

I was playing with this stuff a couple of months ago. Did you try to embed you XML string in CDATA Tag. I works fine for me. Then you prevent your XML parser to deal with that string.

Hope it'll help

Regards


-- Stephane Antonietti Sr Technical Consultant

Experian-Scorex, Monaco
-----------------------------------------------
Tel : +377 97 98 54 89
Fax: +377 97 98 54 54
Mob:+377 678 635 347
-----------------------------------------------
[EMAIL PROTECTED]
www.experian-scorex.com
John Bodfish wrote:
Bruce:



Embedding an XML document in a SOAP message (which is an XML document itself) is nearly impossible to do in with any guarantee that it will work for any arbitrary document – unless you transform the XML document into a character encoding that won’t contain any characters that are treated specially by the XML parser at the receiving end.



See http://webservices.xml.com/pub/a/ws/2002/08/28/endpoints.html for more details. The author’s conclusion: “Unfortunately, while it can be prohibitively expensive (in terms of message size and memory use), Base64 strings have been the only approach that works and is portable.” Note that if you choose this approach your application (and those you exchange message with) will have to convert the embedded XML document to and from Base64.



John



------------------------------------------------------------------------

*From:* Bruce McHaffie [mailto:[EMAIL PROTECTED]
*Sent:* Tuesday, February 08, 2005 4:36 PM
*To:* '[email protected]'
*Subject:* returning XML as xsd:string



Hi, I have a Java web service that returns xsd:string data to the Axis C++ client. I have noticed that if the returned string contains angle brackets (<>) then the client fails (with a heap corruption message -- I'm running in debug). The SOAP message is returned correctly, and the start element is found. The error seems to happen when the client tries to parse the message for the content of the string.



Client fails at:  getElementAsString( AxisChar* pName, AxisChar* pNamespace)

File is: SoapDeSerializer.cpp

Line number is: 3049 in Axis C++ 1.4,

Call is: m_pNode = m_pParser->next (true);



Sample SOAP message that fails:



<soapenv:Envelope>
<soapenv:Body>
<getEnvelopeRecipientResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
<getEnvelopeRecipientReturn xsi:type="xsd:string"><Any string at all></getEnvelopeRecipientReturn>
</getEnvelopeRecipientResponse>
</soapenv:Body>
</soapenv:Envelope>




Sample SOAP message that works:



<soapenv:Envelope>
<soapenv:Body>
<getEnvelopeRecipientResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
<getEnvelopeRecipientReturn xsi:type="xsd:string">Any string at all</getEnvelopeRecipientReturn>
</getEnvelopeRecipientResponse>
</soapenv:Body>
</soapenv:Envelope>




I tried escaping the angle brackets with &lt; and &gt; but that didn't solve the problem. Any ideas?



Thanks,



Bruce.



*************************************************************************************************************************************** This e-mail and any attachments may be confidential and/or legally privileged. If you have received this e-mail and you are not a named addressee, please inform the Experian-Scorex IT Service Desk on +377 97 98 54 54 and then delete the e-mail from your system. If you are not a named addressee you must not use, disclose, distribute, copy, print or rely on this e-mail. Although Experian-Scorex routinely screens for viruses, addressees should scan this e-mail and any attachments for viruses. Experian-Scorex makes no representation or warranty as to the absence of viruses in this E-mail or any attachments. Please note that to ensure regulatory compliance and for the protection of its clients and business, Experian-Scorex may monitor and read e-mails sent to and from its servers **************************************************************************************************************************************

Reply via email to