Author: scantor Date: Tue Jul 11 23:39:09 2017 New Revision: 1801664 URL: http://svn.apache.org/viewvc?rev=1801664&view=rev Log: XERCESC-2090 - Incorrect Parsing of NOTATION declarations
Modified: xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp Modified: xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp?rev=1801664&r1=1801663&r2=1801664&view=diff ============================================================================== --- xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp (original) +++ xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp Tue Jul 11 23:39:09 2017 @@ -1657,6 +1657,8 @@ void AbstractDOMParser::notationDecl fInternalSubset.append(notDecl.getName()); + bool publicKeywordPrinted = false; + const XMLCh* id = notation->getPublicId(); if (id != 0) { fInternalSubset.append(chSpace); @@ -1665,16 +1667,21 @@ void AbstractDOMParser::notationDecl fInternalSubset.append(chDoubleQuote); fInternalSubset.append(id); fInternalSubset.append(chDoubleQuote); + + publicKeywordPrinted = true; } id = notation->getSystemId(); if (id != 0) { fInternalSubset.append(chSpace); - fInternalSubset.append(XMLUni::fgSysIDString); - fInternalSubset.append(chSpace); + + if ( !publicKeywordPrinted ){ + fInternalSubset.append(XMLUni::fgSysIDString); + fInternalSubset.append(chSpace); + } + fInternalSubset.append(chDoubleQuote); fInternalSubset.append(id); fInternalSubset.append(chDoubleQuote); - } fInternalSubset.append(chCloseAngle); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@xerces.apache.org For additional commands, e-mail: commits-h...@xerces.apache.org