I feel sure this is simple but after a day of reading code and googling I'm not
getting it.
I want to implement a resolveEntity callback on a simple SAX parser in libxml2
so I can supply a DTD. I have the following
xmlSAXHandlerPtr hdlrPtr = calloc( 1, sizeof( xmlSAXHandler ) );
hdlrPtr->startDocument = &startDocument;
hdlrPtr->endDocument = &endDocument;
hdlrPtr->resolveEntity = &resolveEntity;
int result = xmlSAXUserParseMemory( hdlrPtr, NULL, buf, size );
my resolveEntity code is never called even when fed a document which has a
SYSTEM entity in the DOCTYPE. The startDocument and endDocument callbacks are
called.
<!DOCTYPE testxml SYSTEM "TestXML.dtd">
...
Is this the wrong callback? I see the xmlParserOption enum which includes DTD
loading and validation but there's nothing in the simple SAX interface which
seems to use that, it appears to be a level further up, I'm just trying to use
xmlSAXUserParseMemory() and calls at that level. Since the handler contains a
resolveEntity function I would have expected it to be called.
What basic misunderstanding do I have here? _______________________________________________
xml mailing list, project page http://xmlsoft.org/
[email protected]
https://mail.gnome.org/mailman/listinfo/xml