Improvement of doc, Raph patch for CORBA init, support for spaces in XPath, Daniel
diff --git a/ChangeLog b/ChangeLog
index ae248b2..522f60e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Fri Oct  8 11:37:11 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+	* tree.c : Raph patch for initialization of CORBA fields
+	* parser.c, xpath.c, ...: modification of doc comments
+	* xpath.c : allow spaces in xpath expressions
+
 Mon Sep 27 10:16:43 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
 
 	* xmlmemory.h: turning off memory debug :-(
diff --git a/doc/gnome-xml.sgml b/doc/gnome-xml.sgml
index c39e959..abcae9b 100644
--- a/doc/gnome-xml.sgml
+++ b/doc/gnome-xml.sgml
@@ -15,11 +15,60 @@
 
 <book>
   <bookinfo>
-      <title>Gnome XML Library Reference Manual</title>
+    <title>Gnome XML Library Reference Manual</title>
+    <authorgroup>
+      <author>
+        <firstname>Daniel</firstname>
+        <surname>Veillard</surname>
+        <affiliation>
+	  <address>
+	    <email>Daniel.Veillard@w3.org</email>
+	  </address>
+        </affiliation>
+      </author>
+    </authorgroup>
+    <copyright>
+      <year>1999</year>
+      <holder>Daniel Veillard</holder>
+    </copyright>	
+
+    <legalnotice>
+      <para>Permission is granted to make and distribute verbatim
+      copies of this manual provided the copyright notice and this
+      permission notice are preserved on all copies.</para>
+
+      <para>Permission is granted to copy and distribute modified
+      versions of this manual under the conditions for verbatim
+      copying, provided also that the entire resulting derived work is
+      distributed under the terms of a permission notice identical to
+      this one.</para>
+
+      <para>Permission is granted to copy and distribute translations
+      of this manual into another language, under the above conditions
+      for modified versions.</para>
+    </legalnotice>
+
+    <abstract>
+      <para>This manual documents the interfaces of the libglade
+      library and has some short notes to help get you up to speed
+      with using the library.</para>
+    </abstract>
   </bookinfo>
 
-  <chapter id="libxml">
-    <title>Gnome XML Library</title>
+  <chapter id="libxml-notes">
+     <title>Libxml Programming Notes</title>
+
+     <para>Libxml is an XML toolkit library, it allows to parse, edit
+     search and write XML documents. There is also an HTML parser front-end
+     so the same range of tools can be used with HTML input.</para>
+  </chapter>
+  <chapter id="libxml-lib">
+    <title>Libxml Library Reference</title>
+
+    <para>This section contains the API reference for libxml. All
+    the public interfaces are documented here. This reference guide is
+    build by extracting comments from the code sources. </para>
+
     &parser;
     &SAX;
     &tree;
@@ -29,9 +78,9 @@
     &HTMLparser;
     &HTMLtree;
     &xpath;
+    &nanohttp;
     &parserInternals;
     &xmlmemory;
-    &nanohttp;
   </chapter>
 </book>
 
diff --git a/doc/html/book1.html b/doc/html/book1.html
index 77bdef7..08f4515 100644
--- a/doc/html/book1.html
+++ b/doc/html/book1.html
@@ -115,7 +115,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-entities.html b/doc/html/gnome-xml-entities.html
index 5db0294..3ef6390 100644
--- a/doc/html/gnome-xml-entities.html
+++ b/doc/html/gnome-xml-entities.html
@@ -1796,7 +1796,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-htmlparser.html b/doc/html/gnome-xml-htmlparser.html
index c49aa23..11c9922 100644
--- a/doc/html/gnome-xml-htmlparser.html
+++ b/doc/html/gnome-xml-htmlparser.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6155"
+NAME="AEN6107"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6158"
+NAME="AEN6110"
 ></A
 ><H2
 >Synopsis</H2
@@ -277,7 +277,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6196"
+NAME="AEN6148"
 ></A
 ><H2
 >Description</H2
@@ -287,14 +287,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6199"
+NAME="AEN6151"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6201"
+NAME="AEN6153"
 ></A
 ><H3
 ><A
@@ -307,7 +307,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6205"
+NAME="AEN6157"
 ></A
 ><H3
 ><A
@@ -320,7 +320,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6209"
+NAME="AEN6161"
 ></A
 ><H3
 ><A
@@ -333,7 +333,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6213"
+NAME="AEN6165"
 ></A
 ><H3
 ><A
@@ -346,7 +346,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6217"
+NAME="AEN6169"
 ></A
 ><H3
 ><A
@@ -359,7 +359,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6221"
+NAME="AEN6173"
 ></A
 ><H3
 ><A
@@ -372,7 +372,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6225"
+NAME="AEN6177"
 ></A
 ><H3
 ><A
@@ -385,7 +385,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6229"
+NAME="AEN6181"
 ></A
 ><H3
 ><A
@@ -398,7 +398,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6233"
+NAME="AEN6185"
 ></A
 ><H3
 ><A
@@ -411,7 +411,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6237"
+NAME="AEN6189"
 ></A
 ><H3
 ><A
@@ -492,7 +492,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6258"
+NAME="AEN6210"
 ></A
 ><H3
 ><A
@@ -575,7 +575,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6280"
+NAME="AEN6232"
 ></A
 ><H3
 ><A
@@ -679,7 +679,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6307"
+NAME="AEN6259"
 ></A
 ><H3
 ><A
@@ -763,7 +763,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6329"
+NAME="AEN6281"
 ></A
 ><H3
 ><A
@@ -830,7 +830,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6347"
+NAME="AEN6299"
 ></A
 ><H3
 ><A
@@ -970,7 +970,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6381"
+NAME="AEN6333"
 ></A
 ><H3
 ><A
@@ -1069,7 +1069,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6406"
+NAME="AEN6358"
 ></A
 ><H3
 ><A
@@ -1207,7 +1207,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6439"
+NAME="AEN6391"
 ></A
 ><H3
 ><A
@@ -1304,7 +1304,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-htmltree.html b/doc/html/gnome-xml-htmltree.html
index d43b815..dc59bb6 100644
--- a/doc/html/gnome-xml-htmltree.html
+++ b/doc/html/gnome-xml-htmltree.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6468"
+NAME="AEN6420"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6471"
+NAME="AEN6423"
 ></A
 ><H2
 >Synopsis</H2
@@ -188,7 +188,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6485"
+NAME="AEN6437"
 ></A
 ><H2
 >Description</H2
@@ -198,14 +198,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6488"
+NAME="AEN6440"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6490"
+NAME="AEN6442"
 ></A
 ><H3
 ><A
@@ -231,7 +231,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6495"
+NAME="AEN6447"
 ></A
 ><H3
 ><A
@@ -257,7 +257,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6500"
+NAME="AEN6452"
 ></A
 ><H3
 ><A
@@ -283,7 +283,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6505"
+NAME="AEN6457"
 ></A
 ><H3
 ><A
@@ -386,7 +386,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6530"
+NAME="AEN6482"
 ></A
 ><H3
 ><A
@@ -470,7 +470,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6551"
+NAME="AEN6503"
 ></A
 ><H3
 ><A
@@ -566,7 +566,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-parser.html b/doc/html/gnome-xml-parser.html
index 104bab1..a31cfe5 100644
--- a/doc/html/gnome-xml-parser.html
+++ b/doc/html/gnome-xml-parser.html
@@ -1179,7 +1179,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->typedef enum xmlParserInputState {
+>typedef enum {
     XML_PARSER_EOF = 0,
     XML_PARSER_PROLOG,
     XML_PARSER_CONTENT,
@@ -7506,7 +7506,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-parserinternals.html b/doc/html/gnome-xml-parserinternals.html
index 366e639..f85c208 100644
--- a/doc/html/gnome-xml-parserinternals.html
+++ b/doc/html/gnome-xml-parserinternals.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6848"
+NAME="AEN6800"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6851"
+NAME="AEN6803"
 ></A
 ><H2
 >Synopsis</H2
@@ -886,7 +886,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7062"
+NAME="AEN7014"
 ></A
 ><H2
 >Description</H2
@@ -896,14 +896,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7065"
+NAME="AEN7017"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7067"
+NAME="AEN7019"
 ></A
 ><H3
 ><A
@@ -929,7 +929,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7072"
+NAME="AEN7024"
 ></A
 ><H3
 ><A
@@ -942,7 +942,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7076"
+NAME="AEN7028"
 ></A
 ><H3
 ><A
@@ -1000,7 +1000,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7090"
+NAME="AEN7042"
 ></A
 ><H3
 ><A
@@ -1058,7 +1058,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7104"
+NAME="AEN7056"
 ></A
 ><H3
 ><A
@@ -1116,7 +1116,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7118"
+NAME="AEN7070"
 ></A
 ><H3
 ><A
@@ -1174,7 +1174,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7132"
+NAME="AEN7084"
 ></A
 ><H3
 ><A
@@ -1232,7 +1232,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7146"
+NAME="AEN7098"
 ></A
 ><H3
 ><A
@@ -1290,7 +1290,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7160"
+NAME="AEN7112"
 ></A
 ><H3
 ><A
@@ -1348,7 +1348,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7174"
+NAME="AEN7126"
 ></A
 ><H3
 ><A
@@ -1406,7 +1406,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7188"
+NAME="AEN7140"
 ></A
 ><H3
 ><A
@@ -1464,7 +1464,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7202"
+NAME="AEN7154"
 ></A
 ><H3
 ><A
@@ -1522,7 +1522,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7216"
+NAME="AEN7168"
 ></A
 ><H3
 ><A
@@ -1580,7 +1580,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7230"
+NAME="AEN7182"
 ></A
 ><H3
 ><A
@@ -1638,7 +1638,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7244"
+NAME="AEN7196"
 ></A
 ><H3
 ><A
@@ -1696,7 +1696,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7258"
+NAME="AEN7210"
 ></A
 ><H3
 ><A
@@ -1754,7 +1754,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7272"
+NAME="AEN7224"
 ></A
 ><H3
 ><A
@@ -1835,7 +1835,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7293"
+NAME="AEN7245"
 ></A
 ><H3
 ><A
@@ -1915,7 +1915,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7313"
+NAME="AEN7265"
 ></A
 ><H3
 ><A
@@ -2011,7 +2011,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7337"
+NAME="AEN7289"
 ></A
 ><H3
 ><A
@@ -2075,7 +2075,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7353"
+NAME="AEN7305"
 ></A
 ><H3
 ><A
@@ -2136,7 +2136,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7369"
+NAME="AEN7321"
 ></A
 ><H3
 ><A
@@ -2221,7 +2221,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7390"
+NAME="AEN7342"
 ></A
 ><H3
 ><A
@@ -2308,7 +2308,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7412"
+NAME="AEN7364"
 ></A
 ><H3
 ><A
@@ -2410,7 +2410,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7438"
+NAME="AEN7390"
 ></A
 ><H3
 ><A
@@ -2495,7 +2495,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7459"
+NAME="AEN7411"
 ></A
 ><H3
 ><A
@@ -2577,7 +2577,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7480"
+NAME="AEN7432"
 ></A
 ><H3
 ><A
@@ -2640,7 +2640,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7496"
+NAME="AEN7448"
 ></A
 ><H3
 ><A
@@ -2739,7 +2739,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7521"
+NAME="AEN7473"
 ></A
 ><H3
 ><A
@@ -2847,7 +2847,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7550"
+NAME="AEN7502"
 ></A
 ><H3
 ><A
@@ -2933,7 +2933,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7573"
+NAME="AEN7525"
 ></A
 ><H3
 ><A
@@ -3041,7 +3041,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7602"
+NAME="AEN7554"
 ></A
 ><H3
 ><A
@@ -3126,7 +3126,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7625"
+NAME="AEN7577"
 ></A
 ><H3
 ><A
@@ -3208,7 +3208,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7646"
+NAME="AEN7598"
 ></A
 ><H3
 ><A
@@ -3277,7 +3277,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7664"
+NAME="AEN7616"
 ></A
 ><H3
 ><A
@@ -3366,7 +3366,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7688"
+NAME="AEN7640"
 ></A
 ><H3
 ><A
@@ -3454,7 +3454,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7712"
+NAME="AEN7664"
 ></A
 ><H3
 ><A
@@ -3539,7 +3539,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7735"
+NAME="AEN7687"
 ></A
 ><H3
 ><A
@@ -3644,7 +3644,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7762"
+NAME="AEN7714"
 ></A
 ><H3
 ><A
@@ -3730,7 +3730,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7784"
+NAME="AEN7736"
 ></A
 ><H3
 ><A
@@ -3813,7 +3813,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7806"
+NAME="AEN7758"
 ></A
 ><H3
 ><A
@@ -3896,7 +3896,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7828"
+NAME="AEN7780"
 ></A
 ><H3
 ><A
@@ -3980,7 +3980,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7849"
+NAME="AEN7801"
 ></A
 ><H3
 ><A
@@ -4108,7 +4108,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7882"
+NAME="AEN7834"
 ></A
 ><H3
 ><A
@@ -4175,7 +4175,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7899"
+NAME="AEN7851"
 ></A
 ><H3
 ><A
@@ -4258,7 +4258,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7921"
+NAME="AEN7873"
 ></A
 ><H3
 ><A
@@ -4325,7 +4325,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7939"
+NAME="AEN7891"
 ></A
 ><H3
 ><A
@@ -4400,7 +4400,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7959"
+NAME="AEN7911"
 ></A
 ><H3
 ><A
@@ -4478,7 +4478,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7982"
+NAME="AEN7934"
 ></A
 ><H3
 ><A
@@ -4616,7 +4616,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8019"
+NAME="AEN7971"
 ></A
 ><H3
 ><A
@@ -4705,7 +4705,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8043"
+NAME="AEN7995"
 ></A
 ><H3
 ><A
@@ -4792,7 +4792,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8066"
+NAME="AEN8018"
 ></A
 ><H3
 ><A
@@ -4895,7 +4895,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8093"
+NAME="AEN8045"
 ></A
 ><H3
 ><A
@@ -5039,7 +5039,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8131"
+NAME="AEN8083"
 ></A
 ><H3
 ><A
@@ -5106,7 +5106,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8149"
+NAME="AEN8101"
 ></A
 ><H3
 ><A
@@ -5204,7 +5204,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8175"
+NAME="AEN8127"
 ></A
 ><H3
 ><A
@@ -5306,7 +5306,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8201"
+NAME="AEN8153"
 ></A
 ><H3
 ><A
@@ -5429,7 +5429,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8232"
+NAME="AEN8184"
 ></A
 ><H3
 ><A
@@ -5512,7 +5512,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8254"
+NAME="AEN8206"
 ></A
 ><H3
 ><A
@@ -5591,7 +5591,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8273"
+NAME="AEN8225"
 ></A
 ><H3
 ><A
@@ -5679,7 +5679,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8296"
+NAME="AEN8248"
 ></A
 ><H3
 ><A
@@ -5780,7 +5780,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8320"
+NAME="AEN8272"
 ></A
 ><H3
 ><A
@@ -5854,7 +5854,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8339"
+NAME="AEN8291"
 ></A
 ><H3
 ><A
@@ -5940,7 +5940,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8360"
+NAME="AEN8312"
 ></A
 ><H3
 ><A
@@ -6010,7 +6010,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8378"
+NAME="AEN8330"
 ></A
 ><H3
 ><A
@@ -6135,7 +6135,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8412"
+NAME="AEN8364"
 ></A
 ><H3
 ><A
@@ -6235,7 +6235,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8440"
+NAME="AEN8392"
 ></A
 ><H3
 ><A
@@ -6325,7 +6325,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8464"
+NAME="AEN8416"
 ></A
 ><H3
 ><A
@@ -6396,7 +6396,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8484"
+NAME="AEN8436"
 ></A
 ><H3
 ><A
@@ -6461,7 +6461,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8501"
+NAME="AEN8453"
 ></A
 ><H3
 ><A
@@ -6543,7 +6543,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8520"
+NAME="AEN8472"
 ></A
 ><H3
 ><A
@@ -6626,7 +6626,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8542"
+NAME="AEN8494"
 ></A
 ><H3
 ><A
@@ -6711,7 +6711,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8565"
+NAME="AEN8517"
 ></A
 ><H3
 ><A
@@ -6794,7 +6794,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8587"
+NAME="AEN8539"
 ></A
 ><H3
 ><A
@@ -6879,7 +6879,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8610"
+NAME="AEN8562"
 ></A
 ><H3
 ><A
@@ -6974,7 +6974,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8632"
+NAME="AEN8584"
 ></A
 ><H3
 ><A
@@ -7039,7 +7039,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8649"
+NAME="AEN8601"
 ></A
 ><H3
 ><A
@@ -7104,7 +7104,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8666"
+NAME="AEN8618"
 ></A
 ><H3
 ><A
@@ -7213,7 +7213,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8694"
+NAME="AEN8646"
 ></A
 ><H3
 ><A
@@ -7239,7 +7239,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8699"
+NAME="AEN8651"
 ></A
 ><H3
 ><A
@@ -7265,7 +7265,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8704"
+NAME="AEN8656"
 ></A
 ><H3
 ><A
@@ -7291,7 +7291,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8709"
+NAME="AEN8661"
 ></A
 ><H3
 ><A
@@ -7317,7 +7317,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8714"
+NAME="AEN8666"
 ></A
 ><H3
 ><A
@@ -7499,7 +7499,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8759"
+NAME="AEN8711"
 ></A
 ><H3
 ><A
@@ -7596,7 +7596,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8783"
+NAME="AEN8735"
 ></A
 ><H3
 ><A
@@ -7675,7 +7675,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8803"
+NAME="AEN8755"
 ></A
 ><H3
 ><A
@@ -7772,7 +7772,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8827"
+NAME="AEN8779"
 ></A
 ><H3
 ><A
@@ -7851,7 +7851,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-tree.html b/doc/html/gnome-xml-tree.html
index 52c36f4..93e8bb6 100644
--- a/doc/html/gnome-xml-tree.html
+++ b/doc/html/gnome-xml-tree.html
@@ -9187,7 +9187,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-valid.html b/doc/html/gnome-xml-valid.html
index 004a9c0..64ae9e7 100644
--- a/doc/html/gnome-xml-valid.html
+++ b/doc/html/gnome-xml-valid.html
@@ -150,18 +150,6 @@
 >)       (void *ctx,
                                              const char *msg,
                                              ...);
-void        <A
-HREF="gnome-xml-valid.html#XMLPARSERVALIDITYERROR"
->xmlParserValidityError</A
->          (void *ctx,
-                                             const char *msg,
-                                             ...);
-void        <A
-HREF="gnome-xml-valid.html#XMLPARSERVALIDITYWARNING"
->xmlParserValidityWarning</A
->        (void *ctx,
-                                             const char *msg,
-                                             ...);
 #define     <A
 HREF="gnome-xml-valid.html#XML-MIN-NOTATION-TABLE"
 >XML_MIN_NOTATION_TABLE</A
@@ -792,7 +780,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4724"
+NAME="AEN4722"
 ></A
 ><H2
 >Description</H2
@@ -802,14 +790,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4727"
+NAME="AEN4725"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4729"
+NAME="AEN4727"
 ></A
 ><H3
 ><A
@@ -903,7 +891,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4751"
+NAME="AEN4749"
 ></A
 ><H3
 ><A
@@ -997,201 +985,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4773"
-></A
-><H3
-><A
-NAME="XMLPARSERVALIDITYERROR"
-></A
->xmlParserValidityError ()</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->void        xmlParserValidityError          (void *ctx,
-                                             const char *msg,
-                                             ...);</PRE
-></TD
-></TR
-></TABLE
-><P
->Display and format an validity error messages, gives file,
-line, position and extra parameters.</P
-><P
-></P
-><DIV
-CLASS="INFORMALTABLE"
-><P
-></P
-><TABLE
-BORDER="0"
-WIDTH="100%"
-BGCOLOR="#FFD0D0"
-CELLSPACING="0"
-CELLPADDING="4"
-CLASS="CALSTABLE"
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->ctx</I
-></TT
->&nbsp;:</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->&nbsp;</TD
-></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->msg</I
-></TT
->&nbsp;:</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->&nbsp;</TD
-></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->...</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="AEN4796"
-></A
-><H3
-><A
-NAME="XMLPARSERVALIDITYWARNING"
-></A
->xmlParserValidityWarning ()</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->void        xmlParserValidityWarning        (void *ctx,
-                                             const char *msg,
-                                             ...);</PRE
-></TD
-></TR
-></TABLE
-><P
->Display and format a validity warning messages, gives file, line,
-position and extra parameters.</P
-><P
-></P
-><DIV
-CLASS="INFORMALTABLE"
-><P
-></P
-><TABLE
-BORDER="0"
-WIDTH="100%"
-BGCOLOR="#FFD0D0"
-CELLSPACING="0"
-CELLPADDING="4"
-CLASS="CALSTABLE"
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->ctx</I
-></TT
->&nbsp;:</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->&nbsp;</TD
-></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->msg</I
-></TT
->&nbsp;:</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->&nbsp;</TD
-></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->...</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="AEN4819"
+NAME="AEN4771"
 ></A
 ><H3
 ><A
@@ -1217,7 +1011,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4824"
+NAME="AEN4776"
 ></A
 ><H3
 ><A
@@ -1230,7 +1024,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4828"
+NAME="AEN4780"
 ></A
 ><H3
 ><A
@@ -1256,7 +1050,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4833"
+NAME="AEN4785"
 ></A
 ><H3
 ><A
@@ -1269,7 +1063,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4837"
+NAME="AEN4789"
 ></A
 ><H3
 ><A
@@ -1295,7 +1089,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4842"
+NAME="AEN4794"
 ></A
 ><H3
 ><A
@@ -1308,7 +1102,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4846"
+NAME="AEN4798"
 ></A
 ><H3
 ><A
@@ -1334,7 +1128,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4851"
+NAME="AEN4803"
 ></A
 ><H3
 ><A
@@ -1347,7 +1141,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4855"
+NAME="AEN4807"
 ></A
 ><H3
 ><A
@@ -1373,7 +1167,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4860"
+NAME="AEN4812"
 ></A
 ><H3
 ><A
@@ -1386,7 +1180,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4864"
+NAME="AEN4816"
 ></A
 ><H3
 ><A
@@ -1551,7 +1345,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4905"
+NAME="AEN4857"
 ></A
 ><H3
 ><A
@@ -1632,7 +1426,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4926"
+NAME="AEN4878"
 ></A
 ><H3
 ><A
@@ -1695,7 +1489,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4942"
+NAME="AEN4894"
 ></A
 ><H3
 ><A
@@ -1779,7 +1573,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4963"
+NAME="AEN4915"
 ></A
 ><H3
 ><A
@@ -1881,7 +1675,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4989"
+NAME="AEN4941"
 ></A
 ><H3
 ><A
@@ -1962,7 +1756,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5010"
+NAME="AEN4962"
 ></A
 ><H3
 ><A
@@ -2025,7 +1819,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5026"
+NAME="AEN4978"
 ></A
 ><H3
 ><A
@@ -2190,7 +1984,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5067"
+NAME="AEN5019"
 ></A
 ><H3
 ><A
@@ -2271,7 +2065,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5088"
+NAME="AEN5040"
 ></A
 ><H3
 ><A
@@ -2334,7 +2128,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5104"
+NAME="AEN5056"
 ></A
 ><H3
 ><A
@@ -2418,7 +2212,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5125"
+NAME="AEN5077"
 ></A
 ><H3
 ><A
@@ -2499,7 +2293,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5146"
+NAME="AEN5098"
 ></A
 ><H3
 ><A
@@ -2562,7 +2356,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5162"
+NAME="AEN5114"
 ></A
 ><H3
 ><A
@@ -2643,7 +2437,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5183"
+NAME="AEN5135"
 ></A
 ><H3
 ><A
@@ -2871,7 +2665,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5239"
+NAME="AEN5191"
 ></A
 ><H3
 ><A
@@ -2952,7 +2746,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5260"
+NAME="AEN5212"
 ></A
 ><H3
 ><A
@@ -3015,7 +2809,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5276"
+NAME="AEN5228"
 ></A
 ><H3
 ><A
@@ -3099,7 +2893,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5297"
+NAME="AEN5249"
 ></A
 ><H3
 ><A
@@ -3243,7 +3037,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5333"
+NAME="AEN5285"
 ></A
 ><H3
 ><A
@@ -3322,7 +3116,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5353"
+NAME="AEN5305"
 ></A
 ><H3
 ><A
@@ -3385,7 +3179,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5369"
+NAME="AEN5321"
 ></A
 ><H3
 ><A
@@ -3487,7 +3281,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5395"
+NAME="AEN5347"
 ></A
 ><H3
 ><A
@@ -3609,7 +3403,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5425"
+NAME="AEN5377"
 ></A
 ><H3
 ><A
@@ -3753,7 +3547,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5461"
+NAME="AEN5413"
 ></A
 ><H3
 ><A
@@ -3832,7 +3626,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5481"
+NAME="AEN5433"
 ></A
 ><H3
 ><A
@@ -3895,7 +3689,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5497"
+NAME="AEN5449"
 ></A
 ><H3
 ><A
@@ -4017,7 +3811,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5527"
+NAME="AEN5479"
 ></A
 ><H3
 ><A
@@ -4120,7 +3914,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5552"
+NAME="AEN5504"
 ></A
 ><H3
 ><A
@@ -4245,7 +4039,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5582"
+NAME="AEN5534"
 ></A
 ><H3
 ><A
@@ -4372,7 +4166,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5613"
+NAME="AEN5565"
 ></A
 ><H3
 ><A
@@ -4486,7 +4280,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5642"
+NAME="AEN5594"
 ></A
 ><H3
 ><A
@@ -4610,7 +4404,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5672"
+NAME="AEN5624"
 ></A
 ><H3
 ><A
@@ -4732,7 +4526,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5703"
+NAME="AEN5655"
 ></A
 ><H3
 ><A
@@ -4835,7 +4629,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5729"
+NAME="AEN5681"
 ></A
 ><H3
 ><A
@@ -4955,7 +4749,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5759"
+NAME="AEN5711"
 ></A
 ><H3
 ><A
@@ -5085,7 +4879,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5791"
+NAME="AEN5743"
 ></A
 ><H3
 ><A
@@ -5259,7 +5053,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5832"
+NAME="AEN5784"
 ></A
 ><H3
 ><A
@@ -5361,7 +5155,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5858"
+NAME="AEN5810"
 ></A
 ><H3
 ><A
@@ -5482,7 +5276,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5888"
+NAME="AEN5840"
 ></A
 ><H3
 ><A
@@ -5582,7 +5376,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5913"
+NAME="AEN5865"
 ></A
 ><H3
 ><A
@@ -5706,7 +5500,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5944"
+NAME="AEN5896"
 ></A
 ><H3
 ><A
@@ -5808,7 +5602,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5970"
+NAME="AEN5922"
 ></A
 ><H3
 ><A
@@ -5910,7 +5704,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-xml-error.html b/doc/html/gnome-xml-xml-error.html
index e77f52b..acc247e 100644
--- a/doc/html/gnome-xml-xml-error.html
+++ b/doc/html/gnome-xml-xml-error.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6001"
+NAME="AEN5953"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6004"
+NAME="AEN5956"
 ></A
 ><H2
 >Synopsis</H2
@@ -155,13 +155,13 @@
                                              const char *msg,
                                              ...);
 void        <A
-HREF="gnome-xml-valid.html#XMLPARSERVALIDITYERROR"
+HREF="gnome-xml-xml-error.html#XMLPARSERVALIDITYERROR"
 >xmlParserValidityError</A
 >          (void *ctx,
                                              const char *msg,
                                              ...);
 void        <A
-HREF="gnome-xml-valid.html#XMLPARSERVALIDITYWARNING"
+HREF="gnome-xml-xml-error.html#XMLPARSERVALIDITYWARNING"
 >xmlParserValidityWarning</A
 >        (void *ctx,
                                              const char *msg,
@@ -187,7 +187,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6016"
+NAME="AEN5968"
 ></A
 ><H2
 >Description</H2
@@ -197,14 +197,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6019"
+NAME="AEN5971"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6021"
+NAME="AEN5973"
 ></A
 ><H3
 ><A
@@ -341,7 +341,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6026"
+NAME="AEN5978"
 ></A
 ><H3
 ><A
@@ -438,7 +438,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6049"
+NAME="AEN6001"
 ></A
 ><H3
 ><A
@@ -535,7 +535,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6072"
+NAME="AEN6024"
 ></A
 ><H3
 ><A
@@ -632,7 +632,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6095"
+NAME="AEN6047"
 ></A
 ><H3
 ><A
@@ -729,7 +729,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6118"
+NAME="AEN6070"
 ></A
 ><H3
 ><A
@@ -792,7 +792,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6134"
+NAME="AEN6086"
 ></A
 ><H3
 ><A
@@ -855,7 +855,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/gnome-xml-xpath.html b/doc/html/gnome-xml-xpath.html
index 95c1138..fc7dab4 100644
--- a/doc/html/gnome-xml-xpath.html
+++ b/doc/html/gnome-xml-xpath.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6580"
+NAME="AEN6532"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6583"
+NAME="AEN6535"
 ></A
 ><H2
 >Synopsis</H2
@@ -259,7 +259,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6617"
+NAME="AEN6569"
 ></A
 ><H2
 >Description</H2
@@ -269,14 +269,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6620"
+NAME="AEN6572"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6622"
+NAME="AEN6574"
 ></A
 ><H3
 ><A
@@ -302,7 +302,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6627"
+NAME="AEN6579"
 ></A
 ><H3
 ><A
@@ -328,7 +328,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6632"
+NAME="AEN6584"
 ></A
 ><H3
 ><A
@@ -354,7 +354,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6637"
+NAME="AEN6589"
 ></A
 ><H3
 ><A
@@ -380,7 +380,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6642"
+NAME="AEN6594"
 ></A
 ><H3
 ><A
@@ -406,7 +406,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6647"
+NAME="AEN6599"
 ></A
 ><H3
 ><A
@@ -432,7 +432,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6652"
+NAME="AEN6604"
 ></A
 ><H3
 ><A
@@ -526,7 +526,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6675"
+NAME="AEN6627"
 ></A
 ><H3
 ><A
@@ -605,7 +605,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6694"
+NAME="AEN6646"
 ></A
 ><H3
 ><A
@@ -705,7 +705,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6719"
+NAME="AEN6671"
 ></A
 ><H3
 ><A
@@ -784,7 +784,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6738"
+NAME="AEN6690"
 ></A
 ><H3
 ><A
@@ -865,7 +865,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6759"
+NAME="AEN6711"
 ></A
 ><H3
 ><A
@@ -928,7 +928,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6775"
+NAME="AEN6727"
 ></A
 ><H3
 ><A
@@ -1030,7 +1030,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6801"
+NAME="AEN6753"
 ></A
 ><H3
 ><A
@@ -1093,7 +1093,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6817"
+NAME="AEN6769"
 ></A
 ><H3
 ><A
@@ -1195,7 +1195,8 @@
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/doc/html/index.sgml b/doc/html/index.sgml
index fe2580a..393a079 100644
--- a/doc/html/index.sgml
+++ b/doc/html/index.sgml
@@ -215,8 +215,6 @@
 <ANCHOR id ="GNOME-XML-VALID" href="gnome-xml/gnome-xml-valid.html">
 <ANCHOR id ="XMLVALIDITYERRORFUNC" href="gnome-xml/gnome-xml-valid.html#XMLVALIDITYERRORFUNC">
 <ANCHOR id ="XMLVALIDITYWARNINGFUNC" href="gnome-xml/gnome-xml-valid.html#XMLVALIDITYWARNINGFUNC">
-<ANCHOR id ="XMLPARSERVALIDITYERROR" href="gnome-xml/gnome-xml-valid.html#XMLPARSERVALIDITYERROR">
-<ANCHOR id ="XMLPARSERVALIDITYWARNING" href="gnome-xml/gnome-xml-valid.html#XMLPARSERVALIDITYWARNING">
 <ANCHOR id ="XML-MIN-NOTATION-TABLE" href="gnome-xml/gnome-xml-valid.html#XML-MIN-NOTATION-TABLE">
 <ANCHOR id ="XMLNOTATIONTABLEPTR" href="gnome-xml/gnome-xml-valid.html#XMLNOTATIONTABLEPTR">
 <ANCHOR id ="XML-MIN-ELEMENT-TABLE" href="gnome-xml/gnome-xml-valid.html#XML-MIN-ELEMENT-TABLE">
@@ -409,6 +407,7 @@
 <ANCHOR id ="INPUTPUSH" href="gnome-xml/gnome-xml-parserinternals.html#INPUTPUSH">
 <ANCHOR id ="INPUTPOP" href="gnome-xml/gnome-xml-parserinternals.html#INPUTPOP">
 <ANCHOR id ="GNOME-XML-XMLMEMORY" href="gnome-xml/gnome-xml-xmlmemory.html">
+<ANCHOR id ="NO-DEBUG-MEMORY" href="gnome-xml/gnome-xml-xmlmemory.html#NO-DEBUG-MEMORY">
 <ANCHOR id ="XMLFREE" href="gnome-xml/gnome-xml-xmlmemory.html#XMLFREE">
 <ANCHOR id ="XMLMALLOC" href="gnome-xml/gnome-xml-xmlmemory.html#XMLMALLOC">
 <ANCHOR id ="XMLREALLOC" href="gnome-xml/gnome-xml-xmlmemory.html#XMLREALLOC">
diff --git a/doc/html/libxml.html b/doc/html/libxml.html
index d314a30..e66d6f7 100644
--- a/doc/html/libxml.html
+++ b/doc/html/libxml.html
@@ -105,10 +105,75 @@
 NAME="LIBXML"
 >Gnome XML Library</A
 ></H1
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="gnome-xml-parser.html"
+>parser</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-tree.html"
+>tree</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-entities.html"
+>entities</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-valid.html"
+>valid</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-xml-error.html"
+>xml-error</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-htmlparser.html"
+>HTMLparser</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-htmltree.html"
+>HTMLtree</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-xpath.html"
+>xpath</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-parserinternals.html"
+>parserInternals</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-xmlmemory.html"
+>xmlmemory</A
+> &#8212; </DT
+><DT
+><A
+HREF="gnome-xml-nanohttp.html"
+>nanohttp</A
+> &#8212; </DT
+></DL
+></DIV
 ></DIV
 ><DIV
 CLASS="NAVFOOTER"
-><BR><BR><TABLE
+><BR
+CLEAR="all"><BR><TABLE
 WIDTH="100%"
 BORDER="0"
 BGCOLOR="#000000"
diff --git a/entities.h b/entities.h
index 1f6c64a..67180b1 100644
--- a/entities.h
+++ b/entities.h
@@ -30,11 +30,11 @@
 typedef struct xmlEntity {
     int type;			/* The entity type */
     int len;			/* The lenght of the name */
-    const xmlChar    *name;	/* Name of the entity */
-    const xmlChar    *ExternalID;	/* External identifier for PUBLIC Entity */
-    const xmlChar    *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
+    const xmlChar  *name;	/* Name of the entity */
+    const xmlChar  *ExternalID;	/* External identifier for PUBLIC Entity */
+    const xmlChar  *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
     xmlChar *content;		/* The entity content or ndata if unparsed */
-    xmlChar *orig;			/* The entity cont without ref substitution */
+    xmlChar *orig;		/* The entity cont without ref substitution */
 } xmlEntity;
 typedef xmlEntity *xmlEntityPtr;
 
@@ -80,7 +80,7 @@
 						 const xmlChar *name);
 const xmlChar *		xmlEncodeEntities	(xmlDocPtr doc,
 						 const xmlChar *input);
-xmlChar *			xmlEncodeEntitiesReentrant(xmlDocPtr doc,
+xmlChar *		xmlEncodeEntitiesReentrant(xmlDocPtr doc,
 						 const xmlChar *input);
 xmlEntitiesTablePtr	xmlCreateEntitiesTable	(void);
 xmlEntitiesTablePtr	xmlCopyEntitiesTable	(xmlEntitiesTablePtr table);
diff --git a/include/libxml/entities.h b/include/libxml/entities.h
index 1f6c64a..67180b1 100644
--- a/include/libxml/entities.h
+++ b/include/libxml/entities.h
@@ -30,11 +30,11 @@
 typedef struct xmlEntity {
     int type;			/* The entity type */
     int len;			/* The lenght of the name */
-    const xmlChar    *name;	/* Name of the entity */
-    const xmlChar    *ExternalID;	/* External identifier for PUBLIC Entity */
-    const xmlChar    *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
+    const xmlChar  *name;	/* Name of the entity */
+    const xmlChar  *ExternalID;	/* External identifier for PUBLIC Entity */
+    const xmlChar  *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
     xmlChar *content;		/* The entity content or ndata if unparsed */
-    xmlChar *orig;			/* The entity cont without ref substitution */
+    xmlChar *orig;		/* The entity cont without ref substitution */
 } xmlEntity;
 typedef xmlEntity *xmlEntityPtr;
 
@@ -80,7 +80,7 @@
 						 const xmlChar *name);
 const xmlChar *		xmlEncodeEntities	(xmlDocPtr doc,
 						 const xmlChar *input);
-xmlChar *			xmlEncodeEntitiesReentrant(xmlDocPtr doc,
+xmlChar *		xmlEncodeEntitiesReentrant(xmlDocPtr doc,
 						 const xmlChar *input);
 xmlEntitiesTablePtr	xmlCreateEntitiesTable	(void);
 xmlEntitiesTablePtr	xmlCopyEntitiesTable	(xmlEntitiesTablePtr table);
diff --git a/include/libxml/nanohttp.h b/include/libxml/nanohttp.h
index 9ae38ea..8551156 100644
--- a/include/libxml/nanohttp.h
+++ b/include/libxml/nanohttp.h
@@ -9,7 +9,8 @@
 #ifndef __NANO_HTTP_H__
 #define __NANO_HTTP_H__
 int	xmlNanoHTTPFetch	(const char *URL,
-				 const char *filename);
+				 const char *filename,
+				 char **contentType);
 void *	xmlNanoHTTPMethod	(const char *URL,
 				 const char *method,
 				 const char *input,
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index bc2ac94..397be04 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -78,7 +78,7 @@
  * The parser is not a state based parser, but we need to maintain
  * minimum state informations, especially for entities processing.
  */
-typedef enum xmlParserInputState {
+typedef enum {
     XML_PARSER_EOF = 0,
     XML_PARSER_PROLOG,
     XML_PARSER_CONTENT,
diff --git a/include/libxml/valid.h b/include/libxml/valid.h
index 30a2a32..73a2a54 100644
--- a/include/libxml/valid.h
+++ b/include/libxml/valid.h
@@ -29,9 +29,6 @@
     xmlValidityWarningFunc warning;	/* the callback in case of warning */
 } xmlValidCtxt, *xmlValidCtxtPtr;
 
-extern void xmlParserValidityError(void *ctx, const char *msg, ...);
-extern void xmlParserValidityWarning(void *ctx, const char *msg, ...);
-
 /*
  * ALl notation declarations are stored in a table
  * there is one table per DTD
diff --git a/nanohttp.c b/nanohttp.c
index e47d983..0445c9c 100644
--- a/nanohttp.c
+++ b/nanohttp.c
@@ -53,6 +53,7 @@
 #endif
 
 #include "xmlmemory.h"
+#include "nanohttp.h"
 
 #ifdef STANDALONE
 #define DEBUG_HTTP
@@ -731,6 +732,9 @@
     xmlNanoHTTPFreeCtxt(ctxt);
 }
 
+#ifndef DEBUG_HTTP
+#define DEBUG_HTTP
+#endif
 /**
  * xmlNanoHTTPMethod:
  * @URL:  The URL to load
@@ -747,9 +751,6 @@
  *     The contentType, if provided must be freed by the caller
  */
 
-#ifndef DEBUG_HTTP
-#define DEBUG_HTTP
-#endif
 void *
 xmlNanoHTTPMethod(const char *URL, const char *method, const char *input,
                   char **contentType, const char *headers) {
@@ -1000,7 +1001,7 @@
 
 /**
  * xmlNanoHTTPSave:
- * @ctx:  the HTTP context
+ * @ctxt:  the HTTP context
  * @filename:  the filename where the content should be saved
  *
  * This function saves the output of the HTTP transaction to a file
diff --git a/nanohttp.h b/nanohttp.h
index 9ae38ea..8551156 100644
--- a/nanohttp.h
+++ b/nanohttp.h
@@ -9,7 +9,8 @@
 #ifndef __NANO_HTTP_H__
 #define __NANO_HTTP_H__
 int	xmlNanoHTTPFetch	(const char *URL,
-				 const char *filename);
+				 const char *filename,
+				 char **contentType);
 void *	xmlNanoHTTPMethod	(const char *URL,
 				 const char *method,
 				 const char *input,
diff --git a/parser.c b/parser.c
index d46a4a5..774a993 100644
--- a/parser.c
+++ b/parser.c
@@ -1326,11 +1326,10 @@
 /**
  * xmlSwitchEncoding:
  * @ctxt:  the parser context
- * @len:  the len of @cur
+ * @enc:  the encoding value (number)
  *
  * change the input functions when discovering the character encoding
  * of a given entity.
- *
  */
 void
 xmlSwitchEncoding(xmlParserCtxtPtr ctxt, xmlCharEncoding enc)
@@ -4333,8 +4332,10 @@
 }
 
 /**
- * xmlParseExternalSubset
+ * xmlParseExternalSubset:
  * @ctxt:  an XML parser context
+ * @ExternalID: the external identifier
+ * @SystemID: the system identifier (or URL)
  * 
  * parse Markup declarations from an external subset
  *
diff --git a/parser.h b/parser.h
index bc2ac94..397be04 100644
--- a/parser.h
+++ b/parser.h
@@ -78,7 +78,7 @@
  * The parser is not a state based parser, but we need to maintain
  * minimum state informations, especially for entities processing.
  */
-typedef enum xmlParserInputState {
+typedef enum {
     XML_PARSER_EOF = 0,
     XML_PARSER_PROLOG,
     XML_PARSER_CONTENT,
diff --git a/tree.c b/tree.c
index c95e3eb..eb465d6 100644
--- a/tree.c
+++ b/tree.c
@@ -776,6 +776,10 @@
 	    prev->next = cur;
 	}
     }
+#ifndef XML_WITHOUT_CORBA
+    cur->_private = NULL;
+    cur->vepv = NULL;
+#endif    
     return(cur);
 }
 
@@ -1078,6 +1082,10 @@
 	cur->content = xmlStrdup(content);
     else 
 	cur->content = NULL;
+#ifndef XML_WITHOUT_CORBA
+    cur->_private = NULL;
+    cur->vepv = NULL;
+#endif    
     return(cur);
 }
 
@@ -1129,6 +1137,10 @@
 	cur->content = ent->content;
     else
         cur->content = NULL;
+#ifndef XML_WITHOUT_CORBA
+    cur->_private = NULL;
+    cur->vepv = NULL;
+#endif    
     return(cur);
 }
 
@@ -1186,6 +1198,10 @@
 	cur->content = xmlStrndup(content, len);
     else 
 	cur->content = NULL;
+#ifndef XML_WITHOUT_CORBA
+    cur->_private = NULL;
+    cur->vepv = NULL;
+#endif    
     return(cur);
 }
 
@@ -1244,6 +1260,10 @@
 	cur->content = xmlStrdup(content);
     else 
 	cur->content = NULL;
+#ifndef XML_WITHOUT_CORBA
+    cur->_private = NULL;
+    cur->vepv = NULL;
+#endif    
     return(cur);
 }
 
@@ -1284,6 +1304,10 @@
 	cur->content = xmlStrndup(content, len);
     } else 
 	cur->content = NULL;
+#ifndef XML_WITHOUT_CORBA
+    cur->_private = NULL;
+    cur->vepv = NULL;
+#endif    
     return(cur);
 }
 
@@ -1925,8 +1949,6 @@
  *
  * Searches the language of a node, i.e. the values of the xml:lang
  * attribute or the one carried by the nearest ancestor.
- *
- * Returns a pointer to the lang value, or NULL if not found
  */
 void
 xmlNodeSetLang(xmlNodePtr cur, const xmlChar *lang) {
diff --git a/valid.c b/valid.c
index e756b0d..123a93c 100644
--- a/valid.c
+++ b/valid.c
@@ -297,6 +297,7 @@
 
 /**
  * xmlAddElementDecl:
+ * @ctxt:  the validation context
  * @dtd:  pointer to the DTD
  * @name:  the entity name
  * @type:  the element type
@@ -2343,6 +2344,7 @@
  * @doc:  a document instance
  * @elem:  an element instance
  * @attr:  an attribute instance
+ * @value:  the attribute value (without entities processing)
  *
  * Try to validate a single attribute for an element
  * basically it * does the following checks as described by the
@@ -2852,8 +2854,6 @@
     xmlChar *value;
     int ret = 1;
 
-    /* TODO xmlValidateElement */
-
     if (elem == NULL) return(0);
     CHECK_DTD;
 
diff --git a/valid.h b/valid.h
index 30a2a32..73a2a54 100644
--- a/valid.h
+++ b/valid.h
@@ -29,9 +29,6 @@
     xmlValidityWarningFunc warning;	/* the callback in case of warning */
 } xmlValidCtxt, *xmlValidCtxtPtr;
 
-extern void xmlParserValidityError(void *ctx, const char *msg, ...);
-extern void xmlParserValidityWarning(void *ctx, const char *msg, ...);
-
 /*
  * ALl notation declarations are stored in a table
  * there is one table per DTD
diff --git a/xmlmemory.c b/xmlmemory.c
index 5e304f4..ca9e9c0 100644
--- a/xmlmemory.c
+++ b/xmlmemory.c
@@ -27,7 +27,6 @@
 #include "xmlmemory.h"
 
 #ifndef NO_DEBUG_MEMORY
-
 #ifdef xmlMalloc
 #undef xmlMalloc
 #endif
@@ -37,6 +36,7 @@
 #ifdef xmlMemStrdup
 #undef xmlMemStrdup
 #endif
+
 extern void xmlMemoryDump(void);
 
 /*
@@ -233,11 +233,7 @@
  * @ptr:  the memory block pointer
  *
  * a free() equivalent, with error checking.
- *
- * Returns a pointer to the allocated area or NULL in case of lack of memory.
  */
-
-
 void
 xmlFree(void *ptr)
 {
@@ -468,6 +464,8 @@
  * xmlInitMemory:
  *
  * Initialize the memory layer.
+ *
+ * Returns 0 on success
  */
 
 
diff --git a/xpath.c b/xpath.c
index 3b0c535..3a703bb 100644
--- a/xpath.c
+++ b/xpath.c
@@ -775,8 +775,6 @@
 /**
  * xmlXPathNewContext:
  * @doc:  the XML document
- * @variables:  the variable list
- * @functions:  the function list
  *
  * Create a new xmlXPathContext
  *
@@ -3240,6 +3238,8 @@
 	        return(xmlXPathNameFunction);
 	    if (!xmlStrcmp(name, BAD_CAST "namespace"))
 	        return(xmlXPathNamespaceFunction);
+	    if (!xmlStrcmp(name, BAD_CAST "normalize-space"))
+	        return(xmlXPathNormalizeFunction);
 	    if (!xmlStrcmp(name, BAD_CAST "normalize"))
 	        return(xmlXPathNormalizeFunction);
 	    if (!xmlStrcmp(name, BAD_CAST "number"))
@@ -3373,6 +3373,7 @@
     if (name == NULL) {
 	ERROR(XPATH_EXPR_ERROR);
     }
+    SKIP_BLANKS;
     func = xmlXPathIsFunction(ctxt, name);
     if (func == NULL) {
         xmlFree(name);
@@ -3387,6 +3388,7 @@
 	ERROR(XPATH_EXPR_ERROR);
     }
     NEXT;
+    SKIP_BLANKS;
 
     while (CUR != ')') {
         xmlXPathEvalExpr(ctxt);
@@ -3397,8 +3399,10 @@
 	    ERROR(XPATH_EXPR_ERROR);
 	}
 	NEXT;
+	SKIP_BLANKS;
     }
     NEXT;
+    SKIP_BLANKS;
     xmlFree(name);
     func(ctxt, nbargs);
 }
@@ -3417,14 +3421,17 @@
  */
 void
 xmlXPathEvalPrimaryExpr(xmlXPathParserContextPtr ctxt) {
+    SKIP_BLANKS;
     if (CUR == '$') xmlXPathEvalVariableReference(ctxt);
     else if (CUR == '(') {
         NEXT;
+	SKIP_BLANKS;
         xmlXPathEvalExpr(ctxt);
 	if (CUR != ')') {
 	    ERROR(XPATH_EXPR_ERROR);
 	}
 	NEXT;
+	SKIP_BLANKS;
     } else if (IS_DIGIT(CUR)) {
         xmlXPathEvalNumber(ctxt);
     } else if ((CUR == '\'') || (CUR == '"')) {
@@ -3458,6 +3465,7 @@
 
     xmlXPathEvalPrimaryExpr(ctxt);
     CHECK_ERROR;
+    SKIP_BLANKS;
     
     if (CUR != '[') return;
 
@@ -3465,6 +3473,7 @@
 
     while (CUR == '[') {
 	xmlXPathEvalPredicate(ctxt);
+	SKIP_BLANKS;
     }
 
     
@@ -3492,6 +3501,7 @@
     xmlChar buf[XML_MAX_NAMELEN];
     int len = 0;
 
+    SKIP_BLANKS;
     if (!IS_LETTER(CUR) && (CUR != '_') &&
         (CUR != ':')) {
 	return(NULL);
@@ -3541,12 +3551,14 @@
 xmlXPathEvalPathExpr(xmlXPathParserContextPtr ctxt) {
     xmlNodeSetPtr newset = NULL;
 
+    SKIP_BLANKS;
     if ((CUR == '$') || (CUR == '(') || (IS_DIGIT(CUR)) ||
         (CUR == '\'') || (CUR == '"')) {
 	xmlXPathEvalFilterExpr(ctxt);
 	CHECK_ERROR;
 	if ((CUR == '/') && (NXT(1) == '/')) {
 	    SKIP(2);
+	    SKIP_BLANKS;
 	    if (ctxt->context->nodelist == NULL) {
 		STRANGE
 		xmlXPathRoot(ctxt);
@@ -3562,6 +3574,7 @@
 	    xmlXPathEvalRelativeLocationPath(ctxt);
 	}
     } else {
+        /******* !!!!!!!!!! @attname */
         xmlChar *name;
 
 	name = xmlXPathScanName(ctxt);
@@ -3588,9 +3601,12 @@
 xmlXPathEvalUnionExpr(xmlXPathParserContextPtr ctxt) {
     xmlXPathEvalPathExpr(ctxt);
     CHECK_ERROR;
+    SKIP_BLANKS;
     if (CUR == '|') {
 	xmlNodeSetPtr old = ctxt->context->nodelist;
 
+	NEXT;
+	SKIP_BLANKS;
 	xmlXPathEvalPathExpr(ctxt);
 
 	if (ctxt->context->nodelist == NULL)
@@ -3617,9 +3633,11 @@
 xmlXPathEvalUnaryExpr(xmlXPathParserContextPtr ctxt) {
     int minus = 0;
 
+    SKIP_BLANKS;
     if (CUR == '-') {
         minus = 1;
 	NEXT;
+	SKIP_BLANKS;
     }
     xmlXPathEvalUnionExpr(ctxt);
     CHECK_ERROR;
@@ -3645,6 +3663,7 @@
 xmlXPathEvalMultiplicativeExpr(xmlXPathParserContextPtr ctxt) {
     xmlXPathEvalUnaryExpr(ctxt);
     CHECK_ERROR;
+    SKIP_BLANKS;
     while ((CUR == '*') || 
            ((CUR == 'd') && (NXT(1) == 'i') && (NXT(2) == 'v')) ||
            ((CUR == 'm') && (NXT(1) == 'o') && (NXT(2) == 'd'))) {
@@ -3660,6 +3679,7 @@
 	    op = 2;
 	    SKIP(3);
 	}
+	SKIP_BLANKS;
         xmlXPathEvalUnaryExpr(ctxt);
 	CHECK_ERROR;
 	switch (op) {
@@ -3691,12 +3711,14 @@
 xmlXPathEvalAdditiveExpr(xmlXPathParserContextPtr ctxt) {
     xmlXPathEvalMultiplicativeExpr(ctxt);
     CHECK_ERROR;
+    SKIP_BLANKS;
     while ((CUR == '+') || (CUR == '-')) {
 	int plus;
 
         if (CUR == '+') plus = 1;
 	else plus = 0;
 	NEXT;
+	SKIP_BLANKS;
         xmlXPathEvalMultiplicativeExpr(ctxt);
 	CHECK_ERROR;
 	if (plus) xmlXPathAddValues(ctxt);
@@ -3726,6 +3748,7 @@
 xmlXPathEvalRelationalExpr(xmlXPathParserContextPtr ctxt) {
     xmlXPathEvalAdditiveExpr(ctxt);
     CHECK_ERROR;
+    SKIP_BLANKS;
     while ((CUR == '<') ||
            (CUR == '>') ||
            ((CUR == '<') && (NXT(1) == '=')) ||
@@ -3738,6 +3761,7 @@
 	else strict = 1;
 	NEXT;
 	if (!strict) NEXT;
+	SKIP_BLANKS;
         xmlXPathEvalAdditiveExpr(ctxt);
 	CHECK_ERROR;
 	ret = xmlXPathCompareValues(ctxt, inf, strict);
@@ -3765,6 +3789,7 @@
 xmlXPathEvalEqualityExpr(xmlXPathParserContextPtr ctxt) {
     xmlXPathEvalRelationalExpr(ctxt);
     CHECK_ERROR;
+    SKIP_BLANKS;
     while ((CUR == '=') || ((CUR == '!') && (NXT(1) == '='))) {
 	xmlXPathObjectPtr res;
 	int eq, equal;
@@ -3773,6 +3798,7 @@
 	else eq = 0;
 	NEXT;
 	if (!eq) NEXT;
+	SKIP_BLANKS;
         xmlXPathEvalRelationalExpr(ctxt);
 	CHECK_ERROR;
 	equal = xmlXPathEqualValues(ctxt);
@@ -3796,10 +3822,12 @@
 xmlXPathEvalAndExpr(xmlXPathParserContextPtr ctxt) {
     xmlXPathEvalEqualityExpr(ctxt);
     CHECK_ERROR;
+    SKIP_BLANKS;
     while ((CUR == 'a') && (NXT(1) == 'n') && (NXT(2) == 'n')) {
 	xmlXPathObjectPtr arg1, arg2;
 
         SKIP(3);
+	SKIP_BLANKS;
         xmlXPathEvalEqualityExpr(ctxt);
 	CHECK_ERROR;
 	arg2 = valuePop(ctxt);
@@ -3825,10 +3853,12 @@
 xmlXPathEvalExpr(xmlXPathParserContextPtr ctxt) {
     xmlXPathEvalAndExpr(ctxt);
     CHECK_ERROR;
+    SKIP_BLANKS;
     while ((CUR == 'o') && (NXT(1) == 'r')) {
 	xmlXPathObjectPtr arg1, arg2;
 
         SKIP(2);
+	SKIP_BLANKS;
         xmlXPathEvalAndExpr(ctxt);
 	CHECK_ERROR;
 	arg2 = valuePop(ctxt);
@@ -3892,10 +3922,12 @@
     xmlNodeSetPtr newset = NULL;
     int i;
 
+    SKIP_BLANKS;
     if (CUR != '[') {
 	ERROR(XPATH_INVALID_PREDICATE_ERROR);
     }
     NEXT;
+    SKIP_BLANKS;
     if ((ctxt->context->nodelist == NULL) ||
         (ctxt->context->nodelist->nodeNr == 0)) {
         ctxt->context->node = NULL;
@@ -3928,6 +3960,7 @@
 	ERROR(XPATH_INVALID_PREDICATE_ERROR);
     }
     NEXT;
+    SKIP_BLANKS;
 #ifdef DEBUG_STEP
     fprintf(xmlXPathDebug, "After predicate : ");
     xmlXPathDebugNodeSet(xmlXPathDebug, ctxt->context->nodelist);
@@ -4226,8 +4259,10 @@
 xmlXPathEvalStep(xmlXPathParserContextPtr ctxt) {
     xmlNodeSetPtr newset = NULL;
 
+    SKIP_BLANKS;
     if ((CUR == '.') && (NXT(1) == '.')) {
 	SKIP(2);
+	SKIP_BLANKS;
 	if (ctxt->context->nodelist == NULL) {
 	    STRANGE
 	    xmlXPathRoot(ctxt);
@@ -4240,8 +4275,10 @@
 	ctxt->context->node = NULL;
     } else if (CUR == '.') {
 	NEXT;
+	SKIP_BLANKS;
     } else {
 	xmlXPathEvalBasis(ctxt);
+	SKIP_BLANKS;
 	while (CUR == '[') {
 	    xmlXPathEvalPredicate(ctxt);
 	}
@@ -4266,10 +4303,13 @@
 xmlXPathEvalRelativeLocationPath(xmlXPathParserContextPtr ctxt) {
     xmlNodeSetPtr newset = NULL;
 
+    SKIP_BLANKS;
     xmlXPathEvalStep(ctxt);
+    SKIP_BLANKS;
     while (CUR == '/') {
 	if ((CUR == '/') && (NXT(1) == '/')) {
 	    SKIP(2);
+	    SKIP_BLANKS;
 	    if (ctxt->context->nodelist == NULL) {
 		STRANGE
 		xmlXPathRoot(ctxt);
@@ -4283,8 +4323,10 @@
 	    xmlXPathEvalStep(ctxt);
 	} else if (CUR == '/') {
 	    NEXT;
+	    SKIP_BLANKS;
 	    xmlXPathEvalStep(ctxt);
 	}
+	SKIP_BLANKS;
     }
 }
 
@@ -4311,54 +4353,37 @@
 xmlXPathEvalLocationPath(xmlXPathParserContextPtr ctxt) {
     xmlNodeSetPtr newset = NULL;
 
-    while (CUR == '/') {
-	if ((CUR == '/') && (NXT(1) == '/')) {
-	    SKIP(2);
-	    if (ctxt->context->nodelist == NULL)
-		xmlXPathRoot(ctxt);
-	    newset = xmlXPathNodeCollectAndTest(ctxt, AXIS_DESCENDANT_OR_SELF,
-			     NODE_TEST_TYPE, XML_ELEMENT_NODE, NULL, NULL);
-	    if (ctxt->context->nodelist != NULL)
-		xmlXPathFreeNodeSet(ctxt->context->nodelist);
-	    ctxt->context->nodelist = newset;
-	    ctxt->context->node = NULL;
-	    xmlXPathEvalRelativeLocationPath(ctxt);
-	} else if (CUR == '/') {
-	    NEXT;
-	    xmlXPathRoot(ctxt);
-	    if (CUR != 0)
+    SKIP_BLANKS;
+    if (CUR != '/') {
+        xmlXPathEvalRelativeLocationPath(ctxt);
+    } else {
+	while (CUR == '/') {
+	    if ((CUR == '/') && (NXT(1) == '/')) {
+		SKIP(2);
+		SKIP_BLANKS;
+		if (ctxt->context->nodelist == NULL)
+		    xmlXPathRoot(ctxt);
+		newset = xmlXPathNodeCollectAndTest(ctxt,
+		                 AXIS_DESCENDANT_OR_SELF, NODE_TEST_TYPE,
+				 XML_ELEMENT_NODE, NULL, NULL);
+		if (ctxt->context->nodelist != NULL)
+		    xmlXPathFreeNodeSet(ctxt->context->nodelist);
+		ctxt->context->nodelist = newset;
+		ctxt->context->node = NULL;
 		xmlXPathEvalRelativeLocationPath(ctxt);
-	} else {
-	    xmlXPathEvalRelativeLocationPath(ctxt);
+	    } else if (CUR == '/') {
+		NEXT;
+		SKIP_BLANKS;
+		xmlXPathRoot(ctxt);
+		if (CUR != 0)
+		    xmlXPathEvalRelativeLocationPath(ctxt);
+	    } else {
+		xmlXPathEvalRelativeLocationPath(ctxt);
+	    }
 	}
     }
 }
 
-/*
- * TODO * extra spaces *
- * more tokenization rules ... Not used currently, especially allowing
- * spaces before and after ExprToken !!!!!!!!!!!!!
- *
- *  [32]   Operator ::=   OperatorName 
- *                    | MultiplyOperator 
- *                    | '/' | '//' | '|' | '+' | '-' | '=' | '!='
- *                    | '<'| '<=' | '>' | '>='
- *  [33]   OperatorName ::=   'and' | 'or' | 'mod' | 'div'
- *  [39]   ExprWhitespace ::=   S 
- *
- *  BUG: ExprToken is never referenced.
- *
- *  [28]   ExprToken ::=   '(' | ')' | '[' | ']' | '.' | '..' | '@' | ',' | '::'
- *                    | WildcardName 
- *                    | NodeType 
- *                    | Operator 
- *                    | FunctionName 
- *                    | AxisName 
- *                    | Literal 
- *                    | Number 
- *                    | VariableReference 
- */
-
 /**
  * xmlXPathEval:
  * @str:  the XPath expression