knoaman 2002/12/03 18:47:27
Modified: c/src/xercesc/internal Makefile.in
c/src/xercesc/validators/DTD DTDGrammar.cpp DTDScanner.cpp
DTDScanner.hpp
c/src/xercesc/validators/schema SchemaValidator.cpp
Log:
scanner re-organization.
Revision Changes Path
1.5 +9 -3 xml-xerces/c/src/xercesc/internal/Makefile.in
Index: Makefile.in
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/Makefile.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Makefile.in 17 Sep 2002 21:23:19 -0000 1.4
+++ Makefile.in 4 Dec 2002 02:47:24 -0000 1.5
@@ -83,12 +83,15 @@
ElemStack.hpp \
EndOfEntityException.hpp \
IANAEncodings.hpp \
+ IGXMLScanner.hpp \
ReaderMgr.hpp \
VecAttrListImpl.hpp \
VecAttributesImpl.hpp \
+ WFXMLScanner.hpp \
XMLInternalErrorHandler.hpp \
XMLReader.hpp \
- XMLScanner.hpp
+ XMLScanner.hpp \
+ XMLScannerResolver.hpp
INTERNAL_CPP_PRIVHEADERS =
@@ -96,12 +99,15 @@
INTERNAL_CPP_OBJECTS = \
ElemStack.$(TO) \
+ IGXMLScanner.$(TO) \
+ IGXMLScanner2.$(TO) \
ReaderMgr.$(TO) \
VecAttrListImpl.$(TO) \
VecAttributesImpl.$(TO) \
+ WFXMLScanner.$(TO) \
XMLReader.$(TO) \
XMLScanner.$(TO) \
- XMLScanner2.$(TO)
+ XMLScannerResolver.$(TO)
all:: includes $(INTERNAL_CPP_OBJECTS)
1.4 +8 -17 xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.cpp
Index: DTDGrammar.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DTDGrammar.cpp 4 Nov 2002 14:50:40 -0000 1.3
+++ DTDGrammar.cpp 4 Dec 2002 02:47:25 -0000 1.4
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.4 2002/12/04 02:47:25 knoaman
+ * scanner re-organization.
+ *
* Revision 1.3 2002/11/04 14:50:40 tng
* C++ Namespace Support.
*
@@ -89,18 +92,6 @@
XERCES_CPP_NAMESPACE_BEGIN
-// ---------------------------------------------------------------------------
-// Local const data
-//
-// These are the text for the require char refs that must always be present.
-// We init these into the entity pool upon construction.
-// ---------------------------------------------------------------------------
-static const XMLCh gAmp[] = { chLatin_a, chLatin_m, chLatin_p, chNull };
-static const XMLCh gLT[] = { chLatin_l, chLatin_t, chNull };
-static const XMLCh gGT[] = { chLatin_g, chLatin_t, chNull };
-static const XMLCh gQuot[] = { chLatin_q, chLatin_u, chLatin_o, chLatin_t, chNull };
-static const XMLCh gApos[] = { chLatin_a, chLatin_p, chLatin_o, chLatin_s, chNull };
-
//---------------------------------------------------------------------------
// DTDGrammar: Constructors and Destructor
// ---------------------------------------------------------------------------
@@ -204,11 +195,11 @@
// We also mark them as special char entities, which allows them to be
// used in places whether other non-numeric general entities cannot.
//
- fEntityDeclPool->put(new DTDEntityDecl(gAmp, chAmpersand, true, true));
- fEntityDeclPool->put(new DTDEntityDecl(gLT, chOpenAngle, true, true));
- fEntityDeclPool->put(new DTDEntityDecl(gGT, chCloseAngle, true, true));
- fEntityDeclPool->put(new DTDEntityDecl(gQuot, chDoubleQuote, true, true));
- fEntityDeclPool->put(new DTDEntityDecl(gApos, chSingleQuote, true, true));
+ fEntityDeclPool->put(new DTDEntityDecl(XMLUni::fgAmp, chAmpersand, true, true));
+ fEntityDeclPool->put(new DTDEntityDecl(XMLUni::fgLT, chOpenAngle, true, true));
+ fEntityDeclPool->put(new DTDEntityDecl(XMLUni::fgGT, chCloseAngle, true, true));
+ fEntityDeclPool->put(new DTDEntityDecl(XMLUni::fgQuot, chDoubleQuote, true,
true));
+ fEntityDeclPool->put(new DTDEntityDecl(XMLUni::fgApos, chSingleQuote, true,
true));
}
XERCES_CPP_NAMESPACE_END
1.17 +26 -0 xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.cpp
Index: DTDScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- DTDScanner.cpp 14 Nov 2002 22:34:11 -0000 1.16
+++ DTDScanner.cpp 4 Dec 2002 02:47:25 -0000 1.17
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.17 2002/12/04 02:47:25 knoaman
+ * scanner re-organization.
+ *
* Revision 1.16 2002/11/14 22:34:11 tng
* [Bug 14265] Access violation with Null systemId/publicId in DTDScanner
*
@@ -203,6 +206,7 @@
#include <xercesc/sax/InputSource.hpp>
#include <xercesc/framework/XMLDocumentHandler.hpp>
#include <xercesc/framework/XMLEntityHandler.hpp>
+#include <xercesc/framework/XMLValidator.hpp>
#include <xercesc/internal/EndOfEntityException.hpp>
#include <xercesc/internal/XMLScanner.hpp>
#include <xercesc/validators/common/ContentSpecNode.hpp>
@@ -211,6 +215,7 @@
#include <xercesc/validators/DTD/DocTypeHandler.hpp>
#include <xercesc/validators/DTD/DTDScanner.hpp>
+
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
@@ -280,6 +285,27 @@
delete fDumEntityDecl;
delete fPEntityDeclPool;
}
+
+// -----------------------------------------------------------------------
+// Setter methods
+// -----------------------------------------------------------------------
+void DTDScanner::setScannerInfo(XMLScanner* const owningScanner
+ , ReaderMgr* const readerMgr
+ , XMLBufferMgr* const bufMgr)
+{
+ // We don't own any of these, we just reference them
+ fScanner = owningScanner;
+ fReaderMgr = readerMgr;
+ fBufMgr = bufMgr;
+
+ if (fScanner->getDoNamespaces())
+ fEmptyNamespaceId = fScanner->getEmptyNamespaceId();
+ else
+ fEmptyNamespaceId = 0;
+
+ fDocTypeReaderId = fReaderMgr->getCurrentReaderNum();
+}
+
// ---------------------------------------------------------------------------
// DTDScanner: Private scanning methods
1.5 +5 -21 xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.hpp
Index: DTDScanner.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DTDScanner.hpp 4 Nov 2002 14:50:40 -0000 1.4
+++ DTDScanner.hpp 4 Dec 2002 02:47:25 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2002/12/04 02:47:25 knoaman
+ * scanner re-organization.
+ *
* Revision 1.4 2002/11/04 14:50:40 tng
* C++ Namespace Support.
*
@@ -92,6 +95,8 @@
XERCES_CPP_NAMESPACE_BEGIN
+class XMLScanner;
+
/*
* Default implementation of an XML DTD scanner.
*/
@@ -314,27 +319,6 @@
inline void DTDScanner::setDocTypeHandler(DocTypeHandler* const handlerToSet)
{
fDocTypeHandler = handlerToSet;
-}
-
-
-// -----------------------------------------------------------------------
-// Setter methods
-// -----------------------------------------------------------------------
-inline void DTDScanner::setScannerInfo(XMLScanner* const owningScanner
- , ReaderMgr* const readerMgr
- , XMLBufferMgr* const bufMgr)
-{
- // We don't own any of these, we just reference them
- fScanner = owningScanner;
- fReaderMgr = readerMgr;
- fBufMgr = bufMgr;
-
- if (fScanner->getDoNamespaces())
- fEmptyNamespaceId = fScanner->getEmptyNamespaceId();
- else
- fEmptyNamespaceId = 0;
-
- fDocTypeReaderId = fReaderMgr->getCurrentReaderNum();
}
// -----------------------------------------------------------------------
1.22 +11 -9 xml-xerces/c/src/xercesc/validators/schema/SchemaValidator.cpp
Index: SchemaValidator.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaValidator.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- SchemaValidator.cpp 27 Nov 2002 22:15:42 -0000 1.21
+++ SchemaValidator.cpp 4 Dec 2002 02:47:26 -0000 1.22
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.22 2002/12/04 02:47:26 knoaman
+ * scanner re-organization.
+ *
* Revision 1.21 2002/11/27 22:15:42 peiyongz
* Schema Errat E2-24 Duration 'T': allow to catch SchemaDateTimeException
*
@@ -212,6 +215,7 @@
#include <xercesc/framework/XMLDocumentHandler.hpp>
#include <xercesc/internal/XMLReader.hpp>
#include <xercesc/internal/XMLScanner.hpp>
+#include <xercesc/internal/ElemStack.hpp>
#include <xercesc/validators/datatype/DatatypeValidatorFactory.hpp>
#include <xercesc/validators/datatype/ListDatatypeValidator.hpp>
#include <xercesc/validators/datatype/UnionDatatypeValidator.hpp>
@@ -417,12 +421,11 @@
// the notation pool (after the Grammar is parsed), then
obviously
// this value will be legal since it matches one of them.
//
- XMLBuffer nameBuf(XMLString::stringLen(value)+1);
- XMLBuffer prefixBuf(XMLString::stringLen(value)+1);
- unsigned int uriId = getScanner()->resolveQName(value,
nameBuf, prefixBuf, ElemStack::Mode_Element);
+ int colonPos = -1;
+ unsigned int uriId = getScanner()->resolveQName(value,
notationBuf, ElemStack::Mode_Element, colonPos);
notationBuf.set(getScanner()->getURIText(uriId));
notationBuf.append(chColon);
- notationBuf.append(nameBuf.getRawBuffer());
+ notationBuf.append(&value[colonPos + 1]);
value = notationBuf.getRawBuffer();
}
@@ -474,7 +477,7 @@
fCurrentDV->validate(value);
}
}
- }
+ }
catch (XMLException& idve) {
emitError (XMLValid::DatatypeError, idve.getType(),
idve.getMessage());
}
@@ -647,13 +650,12 @@
// the notation pool (after the Grammar is parsed), then obviously
// this value will be legal since it matches one of them.
//
- XMLBuffer nameBuf(XMLString::stringLen(attrValue)+1);
- XMLBuffer prefixBuf(XMLString::stringLen(attrValue)+1);
XMLBuffer notationBuf;
- unsigned int uriId = getScanner()->resolveQName(attrValue, nameBuf,
prefixBuf, ElemStack::Mode_Element);
+ int colonPos = -1;
+ unsigned int uriId = getScanner()->resolveQName(attrValue,
notationBuf, ElemStack::Mode_Element, colonPos);
notationBuf.set(getScanner()->getURIText(uriId));
notationBuf.append(chColon);
- notationBuf.append(nameBuf.getRawBuffer());
+ notationBuf.append(&attrValue[colonPos + 1]);
attDefDV->validate(notationBuf.getRawBuffer());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]