[Expat-discuss] Expat 1.95.8 fails on XML with newline

Karl Waclawek karl at waclawek.net
Tue Nov 23 14:50:08 CET 2004


AFAIK, starting an XML document with whitespace is an error,
i.e. your document is not well-formed.

Karl

----- Original Message ----- 
From: "Jeff Lambert" <jeffl at hypershell.com>
To: <expat-discuss at libexpat.org>
Sent: Tuesday, November 23, 2004 8:46 AM
Subject: [Expat-discuss] Expat 1.95.8 fails on XML with newline


> I saw something similar on the sourceforge bugs list but it was from 
> 2001 so I assume it's fixed by now.
> 
> O/S: WinXP SP2 and WinCE. Expat lib linked in VC++ 6 SP6.
> 
> I have the following XML (simplified for discussion purposes) The XML 
> starts and ends with the braces.
> 
> {
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope 
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <soapenv:Body>
>   </soapenv:Body>
> </soapenv:Envelope>}
> 
> NOTICE the newline(0A) at the beginning of the file. Now I use the 
> following C++ code to read from the XML file:
> 
> do
> {
>    size_t len = fread(buf, 1, sizeof(buf), xmlfile);
>    done = len < sizeof(buf);
>    if (XML_Parse(parser, buf, len, done) == XML_STATUS_ERROR)
>    {
>      return ReturnLua(State, 1, "Error while parsing.");
>    }
> } while (!done);
> 
> This works mint on all other XML files, but not with that one. This is 
> how the XML file is returned to me by a SOAP server. What happens is 
> that on first pass through the while loop, XML_Parse doesn't even go 
> into the functions previously set, it instantly returns 
> XML_STATUS_ERROR, and the rest is history.
> 
> I would like to know if the error is in my file reading code or an Expat 
> bug. If it is the latter, is there a patch or quick fix? And if it is my 
>   code, then what could I do to strip the initial newline(s)?
> 
> Thanks in advance!
> 
> Jeff Lambert
> _______________________________________________
> Expat-discuss mailing list
> Expat-discuss at libexpat.org
> http://mail.libexpat.org/mailman/listinfo/expat-discuss
> 


More information about the Expat-discuss mailing list