better SAX interfaces. preparing for 1.7.2, Daniel.
diff --git a/testSAX.c b/testSAX.c
index be242cb..8311ffb 100644
--- a/testSAX.c
+++ b/testSAX.c
@@ -32,6 +32,9 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
#include "parser.h"
@@ -77,7 +80,7 @@
/*
* Note: there is a couple of errors introduced on purpose.
*/
-static xmlChar buffer[] =
+static char buffer[] =
"<?xml version=\"1.0\"?>\n\
<?xml:namespace ns = \"http://www.ietf.org/standards/dav/\" prefix = \"D\"?>\n\
<?xml:namespace ns = \"http://www.w3.com/standards/z39.50/\" prefix = \"Z\"?>\n\
@@ -158,17 +161,19 @@
internalSubsetDebug(void *ctx, const xmlChar *name,
const xmlChar *ExternalID, const xmlChar *SystemID)
{
- xmlDtdPtr externalSubset;
+ /* xmlDtdPtr externalSubset; */
fprintf(stdout, "SAX.internalSubset(%s, %s, %s)\n",
name, ExternalID, SystemID);
+/***********
if ((ExternalID != NULL) || (SystemID != NULL)) {
externalSubset = xmlParseDTD(ExternalID, SystemID);
if (externalSubset != NULL) {
xmlFreeDtd(externalSubset);
}
}
+ ***********/
}
/**
@@ -188,7 +193,7 @@
xmlParserInputPtr
resolveEntityDebug(void *ctx, const xmlChar *publicId, const xmlChar *systemId)
{
- xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
fprintf(stdout, "SAX.resolveEntity(");
@@ -200,9 +205,11 @@
fprintf(stdout, ", %s)\n", (char *)systemId);
else
fprintf(stdout, ", )\n");
+/*********
if (systemId != NULL) {
return(xmlNewInputFromFile(ctxt, (char *) systemId));
}
+ *********/
return(NULL);
}
@@ -579,46 +586,42 @@
************************************************************************/
void parseAndPrintFile(char *filename) {
- xmlDocPtr doc;
+ int res;
/*
* Empty callbacks for checking
*/
- doc = xmlSAXParseFile(emptySAXHandler, filename, 0);
- if (doc != NULL) {
- fprintf(stdout, "xmlSAXParseFile returned non-NULL\n");
- xmlDocDump(stdout, doc);
+ res = xmlSAXUserParseFile(emptySAXHandler, NULL, filename);
+ if (res != 0) {
+ fprintf(stdout, "xmlSAXUserParseFile returned error %d\n", res);
}
/*
* Debug callback
*/
- doc = xmlSAXParseFile(debugSAXHandler, filename, 0);
- if (doc != NULL) {
- fprintf(stderr, "xmlSAXParseFile returned non-NULL\n");
- xmlDocDump(stdout, doc);
+ res = xmlSAXUserParseFile(debugSAXHandler, NULL, filename);
+ if (res != 0) {
+ fprintf(stdout, "xmlSAXUserParseFile returned error %d\n", res);
}
}
-void parseAndPrintBuffer(xmlChar *buf) {
- xmlDocPtr doc;
+void parseAndPrintBuffer(char *buf) {
+ int res;
/*
* Empty callbacks for checking
*/
- doc = xmlSAXParseDoc(emptySAXHandler, buf, 0);
- if (doc != NULL) {
- fprintf(stderr, "xmlSAXParseDoc returned non-NULL\n");
- xmlDocDump(stdout, doc);
+ res = xmlSAXUserParseMemory(emptySAXHandler, NULL, buf, strlen(buf));
+ if (res != 0) {
+ fprintf(stdout, "xmlSAXUserParseMemory returned error %d\n", res);
}
/*
* Debug callback
*/
- doc = xmlSAXParseDoc(debugSAXHandler, buf, 0);
- if (doc != NULL) {
- fprintf(stderr, "xmlSAXParseDoc returned non-NULL\n");
- xmlDocDump(stdout, doc);
+ res = xmlSAXUserParseMemory(debugSAXHandler, NULL, buf, strlen(buf));
+ if (res != 0) {
+ fprintf(stdout, "xmlSAXUserParseMemory returned error %d\n", res);
}
}