peiyongz 2004/04/29 13:19:10
Modified: c/src/xercesc/validators/DTD DTDValidator.cpp
Log:
XML1.0-3rd: only and only ONE #x20 is allowed to be the delimiter for
Names and Nmtokens
Revision Changes Path
1.23 +15 -6 xml-xerces/c/src/xercesc/validators/DTD/DTDValidator.cpp
Index: DTDValidator.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDValidator.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- DTDValidator.cpp 21 Apr 2004 18:00:13 -0000 1.22
+++ DTDValidator.cpp 29 Apr 2004 20:19:10 -0000 1.23
@@ -315,7 +315,7 @@
{
// If its not, emit and error but try to keep going
if (!getReaderMgr()->getCurrentReader()->isFirstNameChar(*valPtr))
- emitError(XMLValid::AttrValNotName, fullName);
+ emitError(XMLValid::AttrValNotName, valPtr, fullName);
valPtr++;
}
@@ -326,13 +326,22 @@
// If we hit a whitespace, its either a break between two
// or more values, or an error if we have a single value.
//
- if (getReaderMgr()->getCurrentReader()->isWhitespace(*valPtr))
+ //
+ // XML1.0-3rd
+ //
+ // [6] Names ::= Name (#x20 Name)*
+ // [8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*
+ //
+ // only and only ONE #x20 is allowed to be the delimiter
+ //
+ if (*valPtr==chSpace)
{
if (!multipleValues)
{
emitError(XMLValid::NoMultipleValues, fullName);
return;
}
+
break;
}
@@ -346,7 +355,7 @@
if (!getReaderMgr()->getCurrentReader()->isNameChar(*valPtr))
{
- emitError(XMLValid::AttrValNotName, fullName);
+ emitError(XMLValid::AttrValNotName, valPtr, fullName);
return;
}
valPtr++;
@@ -412,7 +421,7 @@
if (decl)
{
if (!decl->isUnparsed())
- emitError(XMLValid::BadEntityRefAttr, fullName);
+ emitError(XMLValid::BadEntityRefAttr, pszTmpVal, fullName);
}
else
{
@@ -435,7 +444,7 @@
// this value will be legal since it matches one of them.
//
if (!XMLString::isInList(pszTmpVal, enumList))
- emitError(XMLValid::DoesNotMatchEnumList, fullName);
+ emitError(XMLValid::DoesNotMatchEnumList, pszTmpVal, fullName);
}
// If not doing multiple values, then we are done
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]