|
Hello all,
I am using Xerces 2.1.0. I am trying to
write an entity resolver to force validation of a file with a particular
DTD during parsing. I am getting an access validation when I
call the parse. Does anyone know what I'm doing wrong or have an
example of working code? All my XML and DTD files are on local
drives.
Thanks!
--Lora.
Here's my code:
////////////////////////////////////////
// Parser setup
///////////////////////////////////////
DOMImplementation
*p_oImpl=DOMImplementationRegistry::getDOMImplementation(
XMLString::transcode("LS")); mp_oXMLParser = ((DOMImplementationLS*)p_oImpl) ->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0); mp_oXMLErrorHandler = new clXercesErrorHandler; //my own error handler - works fine mp_oEntityResolver = new clModelEntityResolver; mp_oXMLParser->setErrorHandler(mp_oXMLErrorHandler); mp_oXMLParser->setEntityResolver(mp_oEntityResolver); mp_oXMLParser->setFeature(XMLUni::fgDOMValidation, true); //When passed some XML filename...
/******** This line gives access violation
**********/
DOM Document *p_oDoc =
mp_oXMLParser->parseURI(cFileName);
////////////////////////////////////////
// Entity resolver code - class descended from
DOMEntityResolver...
///////////////////////////////////////
DOMInputSource*
clModelEntityResolver::resolveEntity (const XMLCh* const
publicId,
const XMLCh* const systemId, const XMLCh* const baseURI) { LocalFileInputSource *p_oParserInput
=
new LocalFileInputSource(XMLString::transcode("c:\\sortie\\xml\\paramfile.dtd")); return new
Wrapper4InputSource(p_oParserInput);
} |
