Removal of threading problems, update documentation, added SAX tests, Daniel
diff --git a/doc/html/gnome-xml-parserinternals.html b/doc/html/gnome-xml-parserinternals.html
index bda1749..75e342e 100644
--- a/doc/html/gnome-xml-parserinternals.html
+++ b/doc/html/gnome-xml-parserinternals.html
@@ -59,7 +59,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN3936"
+NAME="AEN4419"
 ></A
 ><H2
 >Name</H2
@@ -67,7 +67,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN3939"
+NAME="AEN4422"
 ></A
 ><H2
 >Synopsis</H2
@@ -82,6 +82,54 @@
 CLASS="SYNOPSIS"
 >&#13;
 
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-CHAR"
+>IS_CHAR</A
+>                         (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-BLANK"
+>IS_BLANK</A
+>                        (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-BASECHAR"
+>IS_BASECHAR</A
+>                     (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-DIGIT"
+>IS_DIGIT</A
+>                        (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-COMBINING"
+>IS_COMBINING</A
+>                    (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-EXTENDER"
+>IS_EXTENDER</A
+>                     (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-IDEOGRAPHIC"
+>IS_IDEOGRAPHIC</A
+>                  (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-LETTER"
+>IS_LETTER</A
+>                       (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#IS-PUBIDCHAR"
+>IS_PUBIDCHAR</A
+>                    (c)
+#define     <A
+HREF="gnome-xml-parserinternals.html#SKIP-EOL"
+>SKIP_EOL</A
+>                        (p)
+#define     <A
+HREF="gnome-xml-parserinternals.html#MOVETO-ENDTAG"
+>MOVETO_ENDTAG</A
+>                   (p)
+#define     <A
+HREF="gnome-xml-parserinternals.html#MOVETO-STARTTAG"
+>MOVETO_STARTTAG</A
+>                 (p)
 <A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
@@ -171,6 +219,20 @@
 HREF="gnome-xml-tree.html#CHAR"
 >CHAR</A
 >*       <A
+HREF="gnome-xml-parserinternals.html#XMLSPLITQNAME"
+>xmlSplitQName</A
+>                   (const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *name,
+                                             <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> **prefix);
+<A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+>*       <A
 HREF="gnome-xml-parserinternals.html#XMLNAMESPACEPARSENCNAME"
 >xmlNamespaceParseNCName</A
 >         (<A
@@ -301,10 +363,7 @@
 >CHAR</A
 > **publicID,
                                              int strict);
-<A
-HREF="gnome-xml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
->  <A
+void        <A
 HREF="gnome-xml-parserinternals.html#XMLPARSECOMMENT"
 >xmlParseComment</A
 >                 (<A
@@ -502,9 +561,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#XMLATTRPTR"
->xmlAttrPtr</A
->  <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+>*       <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEATTRIBUTE"
 >xmlParseAttribute</A
 >               (<A
@@ -512,13 +571,10 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
-> node);
-<A
-HREF="gnome-xml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
->  <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> **value);
+void        <A
 HREF="gnome-xml-parserinternals.html#XMLPARSESTARTTAG"
 >xmlParseStartTag</A
 >                (<A
@@ -531,15 +587,7 @@
 >                  (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
-> ctxt,
-                                             <A
-HREF="gnome-xml-tree.html#XMLNSPTR"
->xmlNsPtr</A
-> *nsPtr,
-                                             <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
-> **tagPtr);
+> ctxt);
 void        <A
 HREF="gnome-xml-parserinternals.html#XMLPARSECDSECT"
 >xmlParseCDSect</A
@@ -554,10 +602,7 @@
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);
-<A
-HREF="gnome-xml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
->  <A
+void        <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEELEMENT"
 >xmlParseElement</A
 >                 (<A
@@ -632,7 +677,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4098"
+NAME="AEN4592"
 ></A
 ><H2
 >Description</H2
@@ -642,14 +687,727 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4101"
+NAME="AEN4595"
 ></A
 ><H2
 >Details</H2
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4103"
+NAME="AEN4597"
+></A
+><H3
+><A
+NAME="IS-CHAR"
+></A
+>IS_CHAR()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     IS_CHAR(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4611"
+></A
+><H3
+><A
+NAME="IS-BLANK"
+></A
+>IS_BLANK()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     IS_BLANK(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4625"
+></A
+><H3
+><A
+NAME="IS-BASECHAR"
+></A
+>IS_BASECHAR()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     IS_BASECHAR(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4639"
+></A
+><H3
+><A
+NAME="IS-DIGIT"
+></A
+>IS_DIGIT()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     IS_DIGIT(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4653"
+></A
+><H3
+><A
+NAME="IS-COMBINING"
+></A
+>IS_COMBINING()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     IS_COMBINING(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4667"
+></A
+><H3
+><A
+NAME="IS-EXTENDER"
+></A
+>IS_EXTENDER()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     IS_EXTENDER(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4681"
+></A
+><H3
+><A
+NAME="IS-IDEOGRAPHIC"
+></A
+>IS_IDEOGRAPHIC()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define IS_IDEOGRAPHIC(c)						\
+    ((((c) &gt;= 0x4e00) &amp;&amp; ((c) &lt;= 0x9fa5)) ||				\
+     (((c) &gt;= 0xf900) &amp;&amp; ((c) &lt;= 0xfa2d)) ||				\
+     (((c) &gt;= 0x3021) &amp;&amp; ((c) &lt;= 0x3029)) ||				\
+      ((c) == 0x3007))</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4695"
+></A
+><H3
+><A
+NAME="IS-LETTER"
+></A
+>IS_LETTER()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     IS_LETTER(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4709"
+></A
+><H3
+><A
+NAME="IS-PUBIDCHAR"
+></A
+>IS_PUBIDCHAR()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define IS_PUBIDCHAR(c)							\
+    (((c) == 0x20) || ((c) == 0x0D) || ((c) == 0x0A) ||			\
+     (((c) &gt;= 'a') &amp;&amp; ((c) &lt;= 'z')) ||					\
+     (((c) &gt;= 'A') &amp;&amp; ((c) &lt;= 'Z')) ||					\
+     (((c) &gt;= '0') &amp;&amp; ((c) &lt;= '9')) ||					\
+     ((c) == '-') || ((c) == '\'') || ((c) == '(') || ((c) == ')') ||	\
+     ((c) == '+') || ((c) == ',') || ((c) == '.') || ((c) == '/') ||	\
+     ((c) == ':') || ((c) == '=') || ((c) == '?') || ((c) == ';') ||	\
+     ((c) == '!') || ((c) == '*') || ((c) == '#') || ((c) == '@') ||	\
+     ((c) == '$') || ((c) == '_') || ((c) == '%'))</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4723"
+></A
+><H3
+><A
+NAME="SKIP-EOL"
+></A
+>SKIP_EOL()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define SKIP_EOL(p) 							\
+    if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; }			\
+    if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4737"
+></A
+><H3
+><A
+NAME="MOVETO-ENDTAG"
+></A
+>MOVETO_ENDTAG()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define MOVETO_ENDTAG(p)						\
+    while (IS_CHAR(*p) &amp;&amp; (*(p) != '&gt;')) (p)++</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4751"
+></A
+><H3
+><A
+NAME="MOVETO-STARTTAG"
+></A
+>MOVETO_STARTTAG()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define MOVETO_STARTTAG(p)						\
+    while (IS_CHAR(*p) &amp;&amp; (*(p) != '&lt;')) (p)++</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4765"
 ></A
 ><H3
 ><A
@@ -728,7 +1486,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4123"
+NAME="AEN4785"
 ></A
 ><H3
 ><A
@@ -808,7 +1566,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4143"
+NAME="AEN4805"
 ></A
 ><H3
 ><A
@@ -904,7 +1662,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4167"
+NAME="AEN4829"
 ></A
 ><H3
 ><A
@@ -929,7 +1687,7 @@
 ></TABLE
 ><P
 >Free all the memory used by a parser context. However the parsed
-document in ctxt-&gt;doc is not freed.</P
+document in ctxt-&gt;myDoc is not freed.</P
 ><P
 ></P
 ><DIV
@@ -968,7 +1726,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4183"
+NAME="AEN4845"
 ></A
 ><H3
 ><A
@@ -1054,7 +1812,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4204"
+NAME="AEN4866"
 ></A
 ><H3
 ><A
@@ -1156,7 +1914,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4230"
+NAME="AEN4892"
 ></A
 ><H3
 ><A
@@ -1241,7 +1999,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4251"
+NAME="AEN4913"
 ></A
 ><H3
 ><A
@@ -1325,7 +2083,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4273"
+NAME="AEN4935"
 ></A
 ><H3
 ><A
@@ -1388,7 +2146,116 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4289"
+NAME="AEN4951"
+></A
+><H3
+><A
+NAME="XMLSPLITQNAME"
+></A
+>xmlSplitQName()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#E8E8F8"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+>*       xmlSplitQName                   (const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *name,
+                                             <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> **prefix);</PRE
+></TD
+></TR
+></TABLE
+><P
+>parse an XML qualified name string</P
+><P
+>[NS 5] QName ::= (Prefix ':')? LocalPart</P
+><P
+>[NS 6] Prefix ::= NCName</P
+><P
+>[NS 7] LocalPart ::= NCName</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFE0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  an XML parser context</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>prefix</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  a CHAR ** </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the function returns the local part, and prefix is updated
+to get the Prefix if any.</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4980"
 ></A
 ><H3
 ><A
@@ -1474,7 +2341,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4312"
+NAME="AEN5003"
 ></A
 ><H3
 ><A
@@ -1583,7 +2450,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4341"
+NAME="AEN5032"
 ></A
 ><H3
 ><A
@@ -1668,7 +2535,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4364"
+NAME="AEN5055"
 ></A
 ><H3
 ><A
@@ -1749,7 +2616,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4385"
+NAME="AEN5076"
 ></A
 ><H3
 ><A
@@ -1816,7 +2683,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4402"
+NAME="AEN5093"
 ></A
 ><H3
 ><A
@@ -1904,7 +2771,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4426"
+NAME="AEN5117"
 ></A
 ><H3
 ><A
@@ -1989,7 +2856,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4449"
+NAME="AEN5140"
 ></A
 ><H3
 ><A
@@ -2073,7 +2940,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4471"
+NAME="AEN5162"
 ></A
 ><H3
 ><A
@@ -2157,7 +3024,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4493"
+NAME="AEN5184"
 ></A
 ><H3
 ><A
@@ -2240,7 +3107,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4515"
+NAME="AEN5206"
 ></A
 ><H3
 ><A
@@ -2323,7 +3190,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4537"
+NAME="AEN5228"
 ></A
 ><H3
 ><A
@@ -2407,7 +3274,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4558"
+NAME="AEN5249"
 ></A
 ><H3
 ><A
@@ -2538,7 +3405,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4591"
+NAME="AEN5282"
 ></A
 ><H3
 ><A
@@ -2554,10 +3421,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
-><A
-HREF="gnome-xml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
->  xmlParseComment                 (<A
+>void        xmlParseComment                 (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt,
@@ -2573,9 +3437,6 @@
 ><P
 >[15] Comment ::= '&lt;!--' ((Char - '-') | ('-' (Char - '-')))* '--&gt;'</P
 ><P
->TODO: this should call a SAX function which will handle (or not) the
-creation of the comment !</P
-><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -2622,21 +3483,6 @@
 VALIGN="TOP"
 > should we create a node, or just skip the content</TD
 ></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><I
-CLASS="EMPHASIS"
->Returns</I
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->the comment node, or NULL</TD
-></TR
 ></TABLE
 ><P
 ></P
@@ -2645,7 +3491,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4618"
+NAME="AEN5303"
 ></A
 ><H3
 ><A
@@ -2728,7 +3574,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4640"
+NAME="AEN5325"
 ></A
 ><H3
 ><A
@@ -2795,7 +3641,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4658"
+NAME="AEN5343"
 ></A
 ><H3
 ><A
@@ -2870,7 +3716,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4678"
+NAME="AEN5363"
 ></A
 ><H3
 ><A
@@ -2945,7 +3791,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4700"
+NAME="AEN5385"
 ></A
 ><H3
 ><A
@@ -3056,7 +3902,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4729"
+NAME="AEN5414"
 ></A
 ><H3
 ><A
@@ -3141,7 +3987,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4752"
+NAME="AEN5437"
 ></A
 ><H3
 ><A
@@ -3224,7 +4070,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4774"
+NAME="AEN5459"
 ></A
 ><H3
 ><A
@@ -3327,7 +4173,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4801"
+NAME="AEN5486"
 ></A
 ><H3
 ><A
@@ -3433,7 +4279,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4829"
+NAME="AEN5514"
 ></A
 ><H3
 ><A
@@ -3500,7 +4346,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4847"
+NAME="AEN5532"
 ></A
 ><H3
 ><A
@@ -3592,7 +4438,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4871"
+NAME="AEN5556"
 ></A
 ><H3
 ><A
@@ -3684,7 +4530,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4896"
+NAME="AEN5581"
 ></A
 ><H3
 ><A
@@ -3807,7 +4653,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4927"
+NAME="AEN5612"
 ></A
 ><H3
 ><A
@@ -3889,7 +4735,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4949"
+NAME="AEN5634"
 ></A
 ><H3
 ><A
@@ -3957,7 +4803,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4967"
+NAME="AEN5652"
 ></A
 ><H3
 ><A
@@ -4044,7 +4890,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4990"
+NAME="AEN5675"
 ></A
 ><H3
 ><A
@@ -4127,7 +4973,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5012"
+NAME="AEN5697"
 ></A
 ><H3
 ><A
@@ -4211,7 +5057,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5034"
+NAME="AEN5719"
 ></A
 ><H3
 ><A
@@ -4294,7 +5140,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5056"
+NAME="AEN5741"
 ></A
 ><H3
 ><A
@@ -4360,7 +5206,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5073"
+NAME="AEN5758"
 ></A
 ><H3
 ><A
@@ -4377,16 +5223,16 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#XMLATTRPTR"
->xmlAttrPtr</A
->  xmlParseAttribute               (<A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+>*       xmlParseAttribute               (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
-> node);</PRE
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> **value);</PRE
 ></TD
 ></TR
 ></TABLE
@@ -4441,14 +5287,14 @@
 ><TT
 CLASS="PARAMETER"
 ><I
->node</I
+>value</I
 ></TT
 >&nbsp;:</TD
 ><TD
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node carrying the attribute</TD
+>  a CHAR ** used to store the value of the attribute</TD
 ></TR
 ><TR
 ><TD
@@ -4463,7 +5309,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the attribute just parsed of NULL in case of error.</TD
+>the attribute name, and the value in *value.</TD
 ></TR
 ></TABLE
 ><P
@@ -4473,7 +5319,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5104"
+NAME="AEN5789"
 ></A
 ><H3
 ><A
@@ -4489,10 +5335,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
-><A
-HREF="gnome-xml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
->  xmlParseStartTag                (<A
+>void        xmlParseStartTag                (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -4542,21 +5385,6 @@
 VALIGN="TOP"
 >  an XML parser context</TD
 ></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><I
-CLASS="EMPHASIS"
->Returns</I
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->the XML new node or NULL.</TD
-></TR
 ></TABLE
 ><P
 ></P
@@ -4565,7 +5393,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5130"
+NAME="AEN5810"
 ></A
 ><H3
 ><A
@@ -4584,15 +5412,7 @@
 >void        xmlParseEndTag                  (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
-> ctxt,
-                                             <A
-HREF="gnome-xml-tree.html#XMLNSPTR"
->xmlNsPtr</A
-> *nsPtr,
-                                             <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
-> **tagPtr);</PRE
+> ctxt);</PRE
 ></TD
 ></TR
 ></TABLE
@@ -4603,9 +5423,7 @@
 ><P
 >With namespace</P
 ><P
->[9] ETag ::= '&lt;/' QName S? '&gt;'</P
-><P
->tagPtr receive the tag name just read</P
+>[NS 9] ETag ::= '&lt;/' QName S? '&gt;'</P
 ><P
 ></P
 ><DIV
@@ -4636,40 +5454,6 @@
 VALIGN="TOP"
 >  an XML parser context</TD
 ></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->nsPtr</I
-></TT
->&nbsp;:</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->  the current node namespace definition</TD
-></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->tagPtr</I
-></TT
->&nbsp;:</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->  CHAR** receive the tag value</TD
-></TR
 ></TABLE
 ><P
 ></P
@@ -4678,7 +5462,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5160"
+NAME="AEN5829"
 ></A
 ><H3
 ><A
@@ -4749,7 +5533,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5180"
+NAME="AEN5849"
 ></A
 ><H3
 ><A
@@ -4814,7 +5598,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5197"
+NAME="AEN5866"
 ></A
 ><H3
 ><A
@@ -4830,10 +5614,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
-><A
-HREF="gnome-xml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
->  xmlParseElement                 (<A
+>void        xmlParseElement                 (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -4876,21 +5657,6 @@
 VALIGN="TOP"
 >  an XML parser context</TD
 ></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><I
-CLASS="EMPHASIS"
->Returns</I
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->the XML new node or NULL</TD
-></TR
 ></TABLE
 ><P
 ></P
@@ -4899,7 +5665,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5220"
+NAME="AEN5884"
 ></A
 ><H3
 ><A
@@ -4982,7 +5748,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5242"
+NAME="AEN5906"
 ></A
 ><H3
 ><A
@@ -5067,7 +5833,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5265"
+NAME="AEN5929"
 ></A
 ><H3
 ><A
@@ -5150,7 +5916,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5287"
+NAME="AEN5951"
 ></A
 ><H3
 ><A
@@ -5235,7 +6001,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5310"
+NAME="AEN5974"
 ></A
 ><H3
 ><A
@@ -5316,7 +6082,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5331"
+NAME="AEN5995"
 ></A
 ><H3
 ><A
@@ -5381,7 +6147,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5348"
+NAME="AEN6012"
 ></A
 ><H3
 ><A