On Fri, 18 May 2012 18:54:14 +0200 Manfred Lotz <manfred.l...@arcor.de> wrote:
> Hi there, > I was playing with SAX2Count and among others I tried the following 2 > test cases where I took the xml stuff from the samples as well. > > 1. I have a personal.xml where I changed the DTD name to something > which does not exist. > > When now calling: SAX2Count -v=never personal.xml > I get > > Fatal Error at file .... > Message: unable to open DTD document ... > > 2. I have a personal-schema.xml where I changed the schema name to > something not existing. > > When now calling: SAX2Count -v=never personal-schema.xml > I get > > Warning at file... > Message: unable to open primary document entity .... > > > Question: Why do I get a warning in case 2 but a fatal erros in case > 1? What could I do to prevent the DTD not found message to be fatal. > > > Well I added this in the error handler which does work: void SAX2CountHandlers::fatalError(const SAXParseException& e) { const XMLCh *emsg = e.getMessage(); const XMLCh *dtdmsg = XMLString::transcode("unable to open DTD document"); // We want to make it a warning if dtd will not be found if ( XMLString::compareString(emsg, dtdmsg) ) { warning(e); return; } fSawErrors = true; XERCES_STD_QUALIFIER cerr << "\nFatal Error at file " << StrX(e.getSystemId()) << ", line " << e.getLineNumber() << ", char " << e.getColumnNumber() << "\n Message: " << StrX(e.getMessage()) << XERCES_STD_QUALIFIER endl; } However, I could imagine there is something better I could do. -- Manfred