Time to work on helping the Gnome Doc project, first step is reintegrating
the SGML DocBook parser in libxml2 distrib:
- DOCBparser.c DOCBparser.h testDocbook.c configure.in Makefile.am
xmlversion.h.in: started (re)integrating the DocBook SGML parser.
- SAX.[ch]: cleanup and updates for DocBook
- debugXML.c parser.h tree.[ch] valid.c xpath.c: small macro or
ex SGML identifier changes
- valid.c: removed a static unused function.
Daniel
diff --git a/include/libxml/DOCBparser.h b/include/libxml/DOCBparser.h
new file mode 100644
index 0000000..24d867d
--- /dev/null
+++ b/include/libxml/DOCBparser.h
@@ -0,0 +1,73 @@
+/*
+ * SGMLparser.h : interface for a DocBook SGML non-verifying parser
+ *
+ * See Copyright for the status of this software.
+ *
+ * Daniel.Veillard@w3.org
+ */
+
+#ifndef __DOCB_PARSER_H__
+#define __DOCB_PARSER_H__
+#include <parser.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Most of the back-end structures from XML and SGML are shared
+ */
+typedef xmlParserCtxt docbParserCtxt;
+typedef xmlParserCtxtPtr docbParserCtxtPtr;
+typedef xmlParserNodeInfo docbParserNodeInfo;
+typedef xmlSAXHandler docbSAXHandler;
+typedef xmlSAXHandlerPtr docbSAXHandlerPtr;
+typedef xmlParserInput docbParserInput;
+typedef xmlParserInputPtr docbParserInputPtr;
+typedef xmlDocPtr docbDocPtr;
+typedef xmlNodePtr docbNodePtr;
+
+/*
+ * There is only few public functions.
+ */
+int docbEncodeEntities(unsigned char* out,
+ int *outlen,
+ const unsigned char* in,
+ int *inlen, int quoteChar);
+
+docbDocPtr docbSAXParseDoc (xmlChar *cur,
+ const char *encoding,
+ docbSAXHandlerPtr sax,
+ void *userData);
+docbDocPtr docbParseDoc (xmlChar *cur,
+ const char *encoding);
+docbDocPtr docbSAXParseFile(const char *filename,
+ const char *encoding,
+ docbSAXHandlerPtr sax,
+ void *userData);
+docbDocPtr docbParseFile (const char *filename,
+ const char *encoding);
+
+/**
+ * Interfaces for the Push mode
+ */
+void docbFreeParserCtxt (docbParserCtxtPtr ctxt);
+docbParserCtxtPtr docbCreatePushParserCtxt(docbSAXHandlerPtr sax,
+ void *user_data,
+ const char *chunk,
+ int size,
+ const char *filename,
+ xmlCharEncoding enc);
+int docbParseChunk (docbParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ int terminate);
+docbParserCtxtPtr docbCreateFileParserCtxt(const char *filename,
+ const char *encoding);
+int docbParseDocument (docbParserCtxtPtr ctxt);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DOCB_PARSER_H__ */
diff --git a/include/libxml/SAX.h b/include/libxml/SAX.h
index 4fabbdf..1673475 100644
--- a/include/libxml/SAX.h
+++ b/include/libxml/SAX.h
@@ -113,7 +113,7 @@
void xmlDefaultSAXHandlerInit (void);
void htmlDefaultSAXHandlerInit (void);
-void sgmlDefaultSAXHandlerInit (void);
+void docbDefaultSAXHandlerInit (void);
#ifdef __cplusplus
}
#endif
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 1820af9..61f61ae 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -303,7 +303,7 @@
LIBXML_DLL_IMPORT extern xmlSAXLocator xmlDefaultSAXLocator;
LIBXML_DLL_IMPORT extern xmlSAXHandler xmlDefaultSAXHandler;
LIBXML_DLL_IMPORT extern xmlSAXHandler htmlDefaultSAXHandler;
-LIBXML_DLL_IMPORT extern xmlSAXHandler sgmlDefaultSAXHandler;
+LIBXML_DLL_IMPORT extern xmlSAXHandler docbDefaultSAXHandler;
/**
* entity substitution default behaviour.
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index 08321a2..be03864 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -54,8 +54,8 @@
XML_NAMESPACE_DECL= 18,
XML_XINCLUDE_START= 19,
XML_XINCLUDE_END= 20
-#ifdef LIBXML_SGML_ENABLED
- ,XML_SGML_DOCUMENT_NODE= 21
+#ifdef LIBXML_DOCB_ENABLED
+ ,XML_DOCB_DOCUMENT_NODE= 21
#endif
} xmlElementType;
diff --git a/include/libxml/xmlversion.h.in b/include/libxml/xmlversion.h.in
index 211a5e2..6725b84 100644
--- a/include/libxml/xmlversion.h.in
+++ b/include/libxml/xmlversion.h.in
@@ -62,13 +62,13 @@
#endif
/*
- * Whether the Docbook support is configured in
-#if @WITH_SGML@
-#define LIBXML_SGML_ENABLED
-#else
-#define LIBXML_SGML_DISABLED
-#endif
+ * Whether the SGML Docbook support is configured in
*/
+#if @WITH_DOCB@
+#define LIBXML_DOCB_ENABLED
+#else
+#define LIBXML_DOCB_DISABLED
+#endif
/*
* Whether XPath is configured in