DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13639>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13639 Failure to parse xsi:schemaLocation attribute value correctly Summary: Failure to parse xsi:schemaLocation attribute value correctly Product: Xerces-C++ Version: 2.1.0 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Critical Priority: Other Component: Validating Parser (Schema) (Xerces 1.5 or up only) AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Assume an XML document starts like this: <?xml version="1.0" encoding="UTF-8" ?> <wfs:FeatureCollection xmlns:wfs="http://www.my-namespace.com/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.my-namespace.com/wfs http://www.my-host.com/my- isapi.dll? request=DescribeFeatureType&service=WFS&version=1.0.0&typename=MyTyp e"> When the XML document is parsed with schema validation, the parser tries but fails to load the XSD document referenced in the xsi:schemaLocation attribute. The problem lies in the '&' entities in the URL. The parser properly converts the '&' entities into '&' characters, but it inserts an 0xFFFF character immediately before the '&' as a flag for some other purpose. But when the URL is being opened the 0xFFFF character is still there and the resource can't be found. I could fix this bug in XMLScanner2.cpp: void XMLScanner::normalizeURI(const XMLCh* const systemURI, XMLBuffer& normalizedURI) { const XMLCh* pszSrc = systemURI; normalizedURI.reset(); while (*pszSrc) { if ((*(pszSrc) == chPercent) && (*(pszSrc+1) == chDigit_2) && (*(pszSrc+2) == chDigit_0)) { pszSrc += 3; normalizedURI.append(chSpace); } else if (*pszSrc == 0xFFFF) { // added MS pszSrc++; // added MS } // added MS else { normalizedURI.append(*pszSrc); pszSrc++; } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]