You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by pe...@apache.org on 2004/04/23 23:19:59 UTC
cvs commit: xml-xerces/c/src/xercesc/internal DGXMLScanner.cpp IGXMLScanner.cpp
peiyongz 2004/04/23 14:19:59
Modified: c/src/xercesc/internal DGXMLScanner.cpp IGXMLScanner.cpp
Log:
XML1.0-3rd: EMPTY Element can not have content (not even entity references, comments, PIs or white space).
Revision Changes Path
1.43 +20 -1 xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp
Index: DGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- DGXMLScanner.cpp 7 Apr 2004 14:15:12 -0000 1.42
+++ DGXMLScanner.cpp 23 Apr 2004 21:19:59 -0000 1.43
@@ -582,6 +582,7 @@
case Token_Comment :
scanComment();
+ fElemStack.setCommentOrPISeen();
break;
case Token_EndTag :
@@ -590,6 +591,7 @@
case Token_PI :
scanPI();
+ fElemStack.setCommentOrPISeen();
break;
case Token_StartTag :
@@ -704,6 +706,23 @@
// this element and let him validate it.
if (fValidate)
{
+
+ //
+ // XML1.0-3rd
+ // Validity Constraint:
+ // The declaration matches EMPTY and the element has no content (not even
+ // entity references, comments, PIs or white space).
+ //
+ if ( (topElem->fCommentOrPISeen) &&
+ (((DTDElementDecl*) topElem->fThisElement)->getModelType() == DTDElementDecl::Empty))
+ {
+ fValidator->emitError
+ (
+ XMLValid::EmptyElemHasContent
+ , topElem->fThisElement->getFullName()
+ );
+ }
+
int res = fValidator->checkContent
(
topElem->fThisElement
1.65 +21 -1 xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
Index: IGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- IGXMLScanner.cpp 14 Apr 2004 21:33:57 -0000 1.64
+++ IGXMLScanner.cpp 23 Apr 2004 21:19:59 -0000 1.65
@@ -911,6 +911,7 @@
case Token_Comment :
scanComment();
+ fElemStack.setCommentOrPISeen();
break;
case Token_EndTag :
@@ -919,6 +920,7 @@
case Token_PI :
scanPI();
+ fElemStack.setCommentOrPISeen();
break;
case Token_StartTag :
@@ -1085,6 +1087,24 @@
DatatypeValidator* psviMemberType = 0;
if (fValidate)
{
+
+ //
+ // XML1.0-3rd
+ // Validity Constraint:
+ // The declaration matches EMPTY and the element has no content (not even
+ // entity references, comments, PIs or white space).
+ //
+ if ( (fGrammarType == Grammar::DTDGrammarType) &&
+ (topElem->fCommentOrPISeen) &&
+ (((DTDElementDecl*) topElem->fThisElement)->getModelType() == DTDElementDecl::Empty))
+ {
+ fValidator->emitError
+ (
+ XMLValid::EmptyElemHasContent
+ , topElem->fThisElement->getFullName()
+ );
+ }
+
int res = fValidator->checkContent
(
topElem->fThisElement
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org