tng 2002/11/05 13:38:27 Modified: c/src/xercesc/internal XMLScanner2.cpp Log: Oasis test fix: Should check if content model allow character for CDataSection case. Revision Changes Path 1.18 +20 -5 xml-xerces/c/src/xercesc/internal/XMLScanner2.cpp Index: XMLScanner2.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner2.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- XMLScanner2.cpp 4 Nov 2002 14:58:19 -0000 1.17 +++ XMLScanner2.cpp 5 Nov 2002 21:38:27 -0000 1.18 @@ -2302,6 +2302,21 @@ } } + if (fValidate) { + // And see if the current element is a 'Children' style content model + const ElemStack::StackElem* topElem = fElemStack.topElement(); + + // Get the character data opts for the current element + XMLElementDecl::CharDataOpts charOpts = topElem->fThisElement->getCharDataOpts(); + + if (charOpts != XMLElementDecl::AllCharData) + { + // They definitely cannot handle any type of char data + fValidator->emitError(XMLValid::NoCharDataInCM); + } + } + + // Add it to the buffer bbCData.append(nextCh); } @@ -2897,12 +2912,12 @@ } // - // XML 1.0 Section 2.9 + // XML 1.0 Section 4.1 // If we are a standalone document, then it has to have been declared - // in the internal subset. Keep going though. + // in the internal subset. // - if (fStandalone && !decl->getDeclaredInIntSubset() && fValidate) - fValidator->emitError(XMLValid::IllegalRefInStandalone, bbName.getRawBuffer()); + if (fStandalone && !decl->getDeclaredInIntSubset()) + emitError(XMLErrs::IllegalRefInStandalone, bbName.getRawBuffer()); if (decl->isExternal()) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]