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);
 
}

Reply via email to