Setting up the framework for structured error reporting, touches a lot of

* HTMLparser.c c14n.c catalog.c error.c globals.c parser.c
  parserInternals.c relaxng.c valid.c xinclude.c xmlIO.c xmlregexp.c
  xmlschemas.c xpath.c xpointer.c include/libxml/globals.h
  include/libxml/parser.h include/libxml/valid.h
  include/libxml/xmlerror.h: Setting up the framework for structured
  error reporting, touches a lot of modules, but little code now
  the error handling trail has been cleaned up.
Daniel
diff --git a/xmlIO.c b/xmlIO.c
index 6642a59..41a7d9c 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -350,6 +350,7 @@
 static void
 xmlLoaderErr(xmlParserCtxtPtr ctxt, const char *msg, const char *filename)
 {
+    xmlStructuredErrorFunc schannel = NULL;
     xmlGenericErrorFunc channel = NULL;
     void *data = NULL;
     xmlErrorLevel level = XML_ERR_ERROR;
@@ -362,9 +363,10 @@
 	    channel = ctxt->sax->warning;
 	    level = XML_ERR_WARNING;
 	}
+	schannel = ctxt->sax->serror;
 	data = ctxt->userData;
     }
-    __xmlRaiseError(channel, data, ctxt, NULL, XML_FROM_IO,
+    __xmlRaiseError(schannel, channel, data, ctxt, NULL, XML_FROM_IO,
                     XML_IO_LOAD_ERROR, level, NULL, 0,
 		    filename, NULL, NULL, 0, 0,
 		    msg, filename);