Click to See Complete Forum and Search --> : Bianry data in XML


SutapaDasgupta
December 18th, 2002, 07:15 PM
Hello,

I am creating XML on fly and my data is stored in WTL::CString object and this data is having some Binary data

e.g.

These are the steps I do to create my XML and "strFailedDesc" is WTL::CString object and contains binary data.

sipNode = m_sipXMLDoc->createElement(_bstr_t("FailedDesc"));
strFailedTransactionXML = "<![CDATA[";
strFailedTransactionXML += strFailedDesc;
strFailedTransactionXML += "]]>";
sipNode->text = _bstr_t(strFailedTransactionXML) ;

sipNode->text = _bstr_t(strFailedTransactionXML) ; ..This soperation falies and gives error:

"Code = 80004005, Message = Unspecified error Source = msxml4.dll Description = An invalid character was found in text content."

This works perfectly well when there is no binary data in "strFailedDesc"

I am new in XML programming, Can somebody tell me why this error is comming and what is the way around.

Thanks

TheCPUWizard
December 18th, 2002, 09:27 PM
Simple.

XML is a text based protocol!

SutapaDasgupta
December 19th, 2002, 12:15 PM
Even when we enclose the binary data in CDATA section XML parser works?

Isn't it supposed to ignore it.

So there is no way of passing binary data in XML.

TheCPUWizard
December 19th, 2002, 12:25 PM
Well, there are a number of techniques for passing binary data in a test wrapper. UUENCODE is probably the granddady of them all. Microsoft SOAP protocol is XML based and supports extended types of data transfer.