A posteriori validation should now work,
Added --postvalid to tester program
Added xmlDocGetRootElement() to the API,
Daniel
diff --git a/ChangeLog b/ChangeLog
index f27c8d1..05a1c55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Wed Dec 15 19:22:23 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+	* valid.c: debugging a posteriori validation, except URI expansion
+	  stuff this should be fixed now
+	* parserInternals.h: fixed a bug in IS_BASECHAR reported by
+	  Carl Nygard <cnygard@bellatlantic.net>
+	* tester.c: added --postvalid, cleaning of the code
+	* tree.[ch]: added xmlDocGetRootElement()
+	  
 Tue Dec 14 20:30:34 PST 1999 Ramiro Estrugo <ramiro@eazel.com>
 
 	* SAX.h, tree.h : changed 'namespace' to 'nameSpace' to workaround
diff --git a/doc/html/gnome-xml-entities.html b/doc/html/gnome-xml-entities.html
index 532fe28..0e6e257 100644
--- a/doc/html/gnome-xml-entities.html
+++ b/doc/html/gnome-xml-entities.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN5438"
+NAME="AEN5458"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN5441"
+NAME="AEN5461"
 ></A
 ><H2
 >Synopsis</H2
@@ -348,7 +348,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN5499"
+NAME="AEN5519"
 ></A
 ><H2
 >Description</H2
@@ -358,14 +358,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN5502"
+NAME="AEN5522"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5504"
+NAME="AEN5524"
 ></A
 ><H3
 ><A
@@ -391,7 +391,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5509"
+NAME="AEN5529"
 ></A
 ><H3
 ><A
@@ -417,7 +417,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5514"
+NAME="AEN5534"
 ></A
 ><H3
 ><A
@@ -443,7 +443,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5519"
+NAME="AEN5539"
 ></A
 ><H3
 ><A
@@ -469,7 +469,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5524"
+NAME="AEN5544"
 ></A
 ><H3
 ><A
@@ -495,7 +495,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5529"
+NAME="AEN5549"
 ></A
 ><H3
 ><A
@@ -521,7 +521,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5534"
+NAME="AEN5554"
 ></A
 ><H3
 ><A
@@ -547,7 +547,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5539"
+NAME="AEN5559"
 ></A
 ><H3
 ><A
@@ -573,7 +573,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5544"
+NAME="AEN5564"
 ></A
 ><H3
 ><A
@@ -599,7 +599,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5549"
+NAME="AEN5569"
 ></A
 ><H3
 ><A
@@ -764,7 +764,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5589"
+NAME="AEN5609"
 ></A
 ><H3
 ><A
@@ -929,7 +929,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5629"
+NAME="AEN5649"
 ></A
 ><H3
 ><A
@@ -1010,7 +1010,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5650"
+NAME="AEN5670"
 ></A
 ><H3
 ><A
@@ -1114,7 +1114,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5676"
+NAME="AEN5696"
 ></A
 ><H3
 ><A
@@ -1217,7 +1217,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5702"
+NAME="AEN5722"
 ></A
 ><H3
 ><A
@@ -1320,7 +1320,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5728"
+NAME="AEN5748"
 ></A
 ><H3
 ><A
@@ -1429,7 +1429,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5756"
+NAME="AEN5776"
 ></A
 ><H3
 ><A
@@ -1537,7 +1537,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5783"
+NAME="AEN5803"
 ></A
 ><H3
 ><A
@@ -1598,7 +1598,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5799"
+NAME="AEN5819"
 ></A
 ><H3
 ><A
@@ -1679,7 +1679,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5820"
+NAME="AEN5840"
 ></A
 ><H3
 ><A
@@ -1742,7 +1742,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5836"
+NAME="AEN5856"
 ></A
 ><H3
 ><A
@@ -1826,7 +1826,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5857"
+NAME="AEN5877"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-htmlparser.html b/doc/html/gnome-xml-htmlparser.html
index cca564a..3227229 100644
--- a/doc/html/gnome-xml-htmlparser.html
+++ b/doc/html/gnome-xml-htmlparser.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN7515"
+NAME="AEN7535"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN7518"
+NAME="AEN7538"
 ></A
 ><H2
 >Synopsis</H2
@@ -277,7 +277,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7556"
+NAME="AEN7576"
 ></A
 ><H2
 >Description</H2
@@ -287,14 +287,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7559"
+NAME="AEN7579"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7561"
+NAME="AEN7581"
 ></A
 ><H3
 ><A
@@ -320,7 +320,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7566"
+NAME="AEN7586"
 ></A
 ><H3
 ><A
@@ -346,7 +346,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7571"
+NAME="AEN7591"
 ></A
 ><H3
 ><A
@@ -372,7 +372,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7576"
+NAME="AEN7596"
 ></A
 ><H3
 ><A
@@ -398,7 +398,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7581"
+NAME="AEN7601"
 ></A
 ><H3
 ><A
@@ -424,7 +424,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7586"
+NAME="AEN7606"
 ></A
 ><H3
 ><A
@@ -450,7 +450,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7591"
+NAME="AEN7611"
 ></A
 ><H3
 ><A
@@ -476,7 +476,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7596"
+NAME="AEN7616"
 ></A
 ><H3
 ><A
@@ -502,7 +502,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7601"
+NAME="AEN7621"
 ></A
 ><H3
 ><A
@@ -528,7 +528,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7606"
+NAME="AEN7626"
 ></A
 ><H3
 ><A
@@ -609,7 +609,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7627"
+NAME="AEN7647"
 ></A
 ><H3
 ><A
@@ -692,7 +692,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7649"
+NAME="AEN7669"
 ></A
 ><H3
 ><A
@@ -797,7 +797,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7676"
+NAME="AEN7696"
 ></A
 ><H3
 ><A
@@ -881,7 +881,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7698"
+NAME="AEN7718"
 ></A
 ><H3
 ><A
@@ -948,7 +948,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7716"
+NAME="AEN7736"
 ></A
 ><H3
 ><A
@@ -1088,7 +1088,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7750"
+NAME="AEN7770"
 ></A
 ><H3
 ><A
@@ -1187,7 +1187,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7775"
+NAME="AEN7795"
 ></A
 ><H3
 ><A
@@ -1325,7 +1325,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7808"
+NAME="AEN7828"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-htmltree.html b/doc/html/gnome-xml-htmltree.html
index a899b16..67a6c42 100644
--- a/doc/html/gnome-xml-htmltree.html
+++ b/doc/html/gnome-xml-htmltree.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN7837"
+NAME="AEN7857"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN7840"
+NAME="AEN7860"
 ></A
 ><H2
 >Synopsis</H2
@@ -188,7 +188,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7854"
+NAME="AEN7874"
 ></A
 ><H2
 >Description</H2
@@ -198,14 +198,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7857"
+NAME="AEN7877"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7859"
+NAME="AEN7879"
 ></A
 ><H3
 ><A
@@ -231,7 +231,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7864"
+NAME="AEN7884"
 ></A
 ><H3
 ><A
@@ -257,7 +257,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7869"
+NAME="AEN7889"
 ></A
 ><H3
 ><A
@@ -283,7 +283,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7874"
+NAME="AEN7894"
 ></A
 ><H3
 ><A
@@ -386,7 +386,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7899"
+NAME="AEN7919"
 ></A
 ><H3
 ><A
@@ -470,7 +470,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7920"
+NAME="AEN7940"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-nanohttp.html b/doc/html/gnome-xml-nanohttp.html
index d3e4afe..80bb72b 100644
--- a/doc/html/gnome-xml-nanohttp.html
+++ b/doc/html/gnome-xml-nanohttp.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN8217"
+NAME="AEN8237"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN8220"
+NAME="AEN8240"
 ></A
 ><H2
 >Synopsis</H2
@@ -183,7 +183,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8230"
+NAME="AEN8250"
 ></A
 ><H2
 >Description</H2
@@ -193,14 +193,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8233"
+NAME="AEN8253"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8235"
+NAME="AEN8255"
 ></A
 ><H3
 ><A
@@ -314,7 +314,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8262"
+NAME="AEN8282"
 ></A
 ><H3
 ><A
@@ -453,7 +453,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8294"
+NAME="AEN8314"
 ></A
 ><H3
 ><A
@@ -533,7 +533,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8313"
+NAME="AEN8333"
 ></A
 ><H3
 ><A
@@ -608,7 +608,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8332"
+NAME="AEN8352"
 ></A
 ><H3
 ><A
@@ -731,7 +731,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8361"
+NAME="AEN8381"
 ></A
 ><H3
 ><A
@@ -825,7 +825,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8384"
+NAME="AEN8404"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-parserinternals.html b/doc/html/gnome-xml-parserinternals.html
index 5234c2b..9d708d6 100644
--- a/doc/html/gnome-xml-parserinternals.html
+++ b/doc/html/gnome-xml-parserinternals.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN8631"
+NAME="AEN8651"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN8634"
+NAME="AEN8654"
 ></A
 ><H2
 >Synopsis</H2
@@ -886,7 +886,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8845"
+NAME="AEN8865"
 ></A
 ><H2
 >Description</H2
@@ -896,14 +896,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8848"
+NAME="AEN8868"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8850"
+NAME="AEN8870"
 ></A
 ><H3
 ><A
@@ -929,7 +929,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8855"
+NAME="AEN8875"
 ></A
 ><H3
 ><A
@@ -942,7 +942,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8859"
+NAME="AEN8879"
 ></A
 ><H3
 ><A
@@ -1000,7 +1000,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8873"
+NAME="AEN8893"
 ></A
 ><H3
 ><A
@@ -1058,7 +1058,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8887"
+NAME="AEN8907"
 ></A
 ><H3
 ><A
@@ -1116,7 +1116,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8901"
+NAME="AEN8921"
 ></A
 ><H3
 ><A
@@ -1174,7 +1174,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8915"
+NAME="AEN8935"
 ></A
 ><H3
 ><A
@@ -1232,7 +1232,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8929"
+NAME="AEN8949"
 ></A
 ><H3
 ><A
@@ -1290,7 +1290,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8943"
+NAME="AEN8963"
 ></A
 ><H3
 ><A
@@ -1348,7 +1348,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8957"
+NAME="AEN8977"
 ></A
 ><H3
 ><A
@@ -1406,7 +1406,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8971"
+NAME="AEN8991"
 ></A
 ><H3
 ><A
@@ -1464,7 +1464,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8985"
+NAME="AEN9005"
 ></A
 ><H3
 ><A
@@ -1522,7 +1522,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8999"
+NAME="AEN9019"
 ></A
 ><H3
 ><A
@@ -1580,7 +1580,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9013"
+NAME="AEN9033"
 ></A
 ><H3
 ><A
@@ -1638,7 +1638,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9027"
+NAME="AEN9047"
 ></A
 ><H3
 ><A
@@ -1696,7 +1696,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9041"
+NAME="AEN9061"
 ></A
 ><H3
 ><A
@@ -1754,7 +1754,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9055"
+NAME="AEN9075"
 ></A
 ><H3
 ><A
@@ -1835,7 +1835,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9076"
+NAME="AEN9096"
 ></A
 ><H3
 ><A
@@ -1915,7 +1915,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9096"
+NAME="AEN9116"
 ></A
 ><H3
 ><A
@@ -2011,7 +2011,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9120"
+NAME="AEN9140"
 ></A
 ><H3
 ><A
@@ -2075,7 +2075,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9136"
+NAME="AEN9156"
 ></A
 ><H3
 ><A
@@ -2136,7 +2136,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9152"
+NAME="AEN9172"
 ></A
 ><H3
 ><A
@@ -2221,7 +2221,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9173"
+NAME="AEN9193"
 ></A
 ><H3
 ><A
@@ -2308,7 +2308,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9195"
+NAME="AEN9215"
 ></A
 ><H3
 ><A
@@ -2410,7 +2410,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9221"
+NAME="AEN9241"
 ></A
 ><H3
 ><A
@@ -2495,7 +2495,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9242"
+NAME="AEN9262"
 ></A
 ><H3
 ><A
@@ -2577,7 +2577,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9263"
+NAME="AEN9283"
 ></A
 ><H3
 ><A
@@ -2640,7 +2640,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9279"
+NAME="AEN9299"
 ></A
 ><H3
 ><A
@@ -2739,7 +2739,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9304"
+NAME="AEN9324"
 ></A
 ><H3
 ><A
@@ -2848,7 +2848,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9333"
+NAME="AEN9353"
 ></A
 ><H3
 ><A
@@ -2934,7 +2934,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9356"
+NAME="AEN9376"
 ></A
 ><H3
 ><A
@@ -3043,7 +3043,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9385"
+NAME="AEN9405"
 ></A
 ><H3
 ><A
@@ -3128,7 +3128,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9408"
+NAME="AEN9428"
 ></A
 ><H3
 ><A
@@ -3210,7 +3210,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9429"
+NAME="AEN9449"
 ></A
 ><H3
 ><A
@@ -3279,7 +3279,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9447"
+NAME="AEN9467"
 ></A
 ><H3
 ><A
@@ -3368,7 +3368,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9471"
+NAME="AEN9491"
 ></A
 ><H3
 ><A
@@ -3456,7 +3456,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9495"
+NAME="AEN9515"
 ></A
 ><H3
 ><A
@@ -3541,7 +3541,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9518"
+NAME="AEN9538"
 ></A
 ><H3
 ><A
@@ -3646,7 +3646,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9545"
+NAME="AEN9565"
 ></A
 ><H3
 ><A
@@ -3784,7 +3784,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9579"
+NAME="AEN9599"
 ></A
 ><H3
 ><A
@@ -3867,7 +3867,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9601"
+NAME="AEN9621"
 ></A
 ><H3
 ><A
@@ -3950,7 +3950,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9623"
+NAME="AEN9643"
 ></A
 ><H3
 ><A
@@ -4034,7 +4034,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9644"
+NAME="AEN9664"
 ></A
 ><H3
 ><A
@@ -4165,7 +4165,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9677"
+NAME="AEN9697"
 ></A
 ><H3
 ><A
@@ -4232,7 +4232,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9694"
+NAME="AEN9714"
 ></A
 ><H3
 ><A
@@ -4315,7 +4315,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9716"
+NAME="AEN9736"
 ></A
 ><H3
 ><A
@@ -4382,7 +4382,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9734"
+NAME="AEN9754"
 ></A
 ><H3
 ><A
@@ -4457,7 +4457,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9754"
+NAME="AEN9774"
 ></A
 ><H3
 ><A
@@ -4535,7 +4535,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9777"
+NAME="AEN9797"
 ></A
 ><H3
 ><A
@@ -4674,7 +4674,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9814"
+NAME="AEN9834"
 ></A
 ><H3
 ><A
@@ -4763,7 +4763,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9838"
+NAME="AEN9858"
 ></A
 ><H3
 ><A
@@ -4850,7 +4850,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9861"
+NAME="AEN9881"
 ></A
 ><H3
 ><A
@@ -4953,7 +4953,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9888"
+NAME="AEN9908"
 ></A
 ><H3
 ><A
@@ -5097,7 +5097,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9926"
+NAME="AEN9946"
 ></A
 ><H3
 ><A
@@ -5164,7 +5164,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9944"
+NAME="AEN9964"
 ></A
 ><H3
 ><A
@@ -5262,7 +5262,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9970"
+NAME="AEN9990"
 ></A
 ><H3
 ><A
@@ -5365,7 +5365,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9996"
+NAME="AEN10016"
 ></A
 ><H3
 ><A
@@ -5488,7 +5488,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10027"
+NAME="AEN10047"
 ></A
 ><H3
 ><A
@@ -5571,7 +5571,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10049"
+NAME="AEN10069"
 ></A
 ><H3
 ><A
@@ -5650,7 +5650,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10068"
+NAME="AEN10088"
 ></A
 ><H3
 ><A
@@ -5738,7 +5738,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10091"
+NAME="AEN10111"
 ></A
 ><H3
 ><A
@@ -5839,7 +5839,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10115"
+NAME="AEN10135"
 ></A
 ><H3
 ><A
@@ -5913,7 +5913,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10134"
+NAME="AEN10154"
 ></A
 ><H3
 ><A
@@ -5999,7 +5999,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10155"
+NAME="AEN10175"
 ></A
 ><H3
 ><A
@@ -6069,7 +6069,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10173"
+NAME="AEN10193"
 ></A
 ><H3
 ><A
@@ -6194,7 +6194,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10207"
+NAME="AEN10227"
 ></A
 ><H3
 ><A
@@ -6296,7 +6296,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10236"
+NAME="AEN10256"
 ></A
 ><H3
 ><A
@@ -6386,7 +6386,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10260"
+NAME="AEN10280"
 ></A
 ><H3
 ><A
@@ -6457,7 +6457,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10280"
+NAME="AEN10300"
 ></A
 ><H3
 ><A
@@ -6522,7 +6522,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10297"
+NAME="AEN10317"
 ></A
 ><H3
 ><A
@@ -6604,7 +6604,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10316"
+NAME="AEN10336"
 ></A
 ><H3
 ><A
@@ -6687,7 +6687,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10338"
+NAME="AEN10358"
 ></A
 ><H3
 ><A
@@ -6772,7 +6772,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10361"
+NAME="AEN10381"
 ></A
 ><H3
 ><A
@@ -6855,7 +6855,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10383"
+NAME="AEN10403"
 ></A
 ><H3
 ><A
@@ -6940,7 +6940,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10406"
+NAME="AEN10426"
 ></A
 ><H3
 ><A
@@ -7035,7 +7035,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10428"
+NAME="AEN10448"
 ></A
 ><H3
 ><A
@@ -7100,7 +7100,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10445"
+NAME="AEN10465"
 ></A
 ><H3
 ><A
@@ -7165,7 +7165,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10462"
+NAME="AEN10482"
 ></A
 ><H3
 ><A
@@ -7274,7 +7274,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10490"
+NAME="AEN10510"
 ></A
 ><H3
 ><A
@@ -7300,7 +7300,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10495"
+NAME="AEN10515"
 ></A
 ><H3
 ><A
@@ -7326,7 +7326,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10500"
+NAME="AEN10520"
 ></A
 ><H3
 ><A
@@ -7352,7 +7352,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10505"
+NAME="AEN10525"
 ></A
 ><H3
 ><A
@@ -7378,7 +7378,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10510"
+NAME="AEN10530"
 ></A
 ><H3
 ><A
@@ -7561,7 +7561,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10555"
+NAME="AEN10575"
 ></A
 ><H3
 ><A
@@ -7658,7 +7658,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10579"
+NAME="AEN10599"
 ></A
 ><H3
 ><A
@@ -7737,7 +7737,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10599"
+NAME="AEN10619"
 ></A
 ><H3
 ><A
@@ -7834,7 +7834,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10623"
+NAME="AEN10643"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-tree.html b/doc/html/gnome-xml-tree.html
index 8c33ca4..625e2ce 100644
--- a/doc/html/gnome-xml-tree.html
+++ b/doc/html/gnome-xml-tree.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN2839"
+NAME="AEN2835"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN2842"
+NAME="AEN2838"
 ></A
 ><H2
 >Synopsis</H2
@@ -854,6 +854,16 @@
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 >  <A
+HREF="gnome-xml-tree.html#XMLDOCGETROOTELEMENT"
+>xmlDocGetRootElement</A
+>            (<A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc);
+<A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+>  <A
 HREF="gnome-xml-tree.html#XMLGETLASTCHILD"
 >xmlGetLastChild</A
 >                 (<A
@@ -1072,7 +1082,7 @@
                                              const <A
 HREF="gnome-xml-tree.html#XMLCHAR"
 >xmlChar</A
-> *namespace);
+> *nameSpace);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
@@ -1313,7 +1323,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN3166"
+NAME="AEN3165"
 ></A
 ><H2
 >Description</H2
@@ -1323,14 +1333,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN3169"
+NAME="AEN3168"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3171"
+NAME="AEN3170"
 ></A
 ><H3
 ><A
@@ -1370,7 +1380,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3176"
+NAME="AEN3175"
 ></A
 ><H3
 ><A
@@ -1383,7 +1393,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3180"
+NAME="AEN3179"
 ></A
 ><H3
 ><A
@@ -1409,7 +1419,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3185"
+NAME="AEN3184"
 ></A
 ><H3
 ><A
@@ -1435,7 +1445,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3190"
+NAME="AEN3189"
 ></A
 ><H3
 ><A
@@ -1461,7 +1471,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3195"
+NAME="AEN3194"
 ></A
 ><H3
 ><A
@@ -1498,7 +1508,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3200"
+NAME="AEN3199"
 ></A
 ><H3
 ><A
@@ -1529,7 +1539,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3205"
+NAME="AEN3204"
 ></A
 ><H3
 ><A
@@ -1555,7 +1565,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3210"
+NAME="AEN3209"
 ></A
 ><H3
 ><A
@@ -1581,7 +1591,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3215"
+NAME="AEN3214"
 ></A
 ><H3
 ><A
@@ -1612,7 +1622,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3220"
+NAME="AEN3219"
 ></A
 ><H3
 ><A
@@ -1643,7 +1653,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3225"
+NAME="AEN3224"
 ></A
 ><H3
 ><A
@@ -1669,7 +1679,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3230"
+NAME="AEN3229"
 ></A
 ><H3
 ><A
@@ -1700,7 +1710,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3235"
+NAME="AEN3234"
 ></A
 ><H3
 ><A
@@ -1726,7 +1736,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3240"
+NAME="AEN3239"
 ></A
 ><H3
 ><A
@@ -1755,7 +1765,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3245"
+NAME="AEN3244"
 ></A
 ><H3
 ><A
@@ -1781,7 +1791,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3250"
+NAME="AEN3249"
 ></A
 ><H3
 ><A
@@ -1807,7 +1817,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3255"
+NAME="AEN3254"
 ></A
 ><H3
 ><A
@@ -1833,7 +1843,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3260"
+NAME="AEN3259"
 ></A
 ><H3
 ><A
@@ -1859,7 +1869,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3265"
+NAME="AEN3264"
 ></A
 ><H3
 ><A
@@ -1885,7 +1895,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3270"
+NAME="AEN3269"
 ></A
 ><H3
 ><A
@@ -1916,7 +1926,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3276"
+NAME="AEN3275"
 ></A
 ><H3
 ><A
@@ -1942,7 +1952,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3281"
+NAME="AEN3280"
 ></A
 ><H3
 ><A
@@ -1968,7 +1978,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3286"
+NAME="AEN3285"
 ></A
 ><H3
 ><A
@@ -1994,7 +2004,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3291"
+NAME="AEN3290"
 ></A
 ><H3
 ><A
@@ -2020,7 +2030,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3296"
+NAME="AEN3295"
 ></A
 ><H3
 ><A
@@ -2046,7 +2056,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3301"
+NAME="AEN3300"
 ></A
 ><H3
 ><A
@@ -2072,7 +2082,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3306"
+NAME="AEN3305"
 ></A
 ><H3
 ><A
@@ -2098,7 +2108,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3311"
+NAME="AEN3310"
 ></A
 ><H3
 ><A
@@ -2124,7 +2134,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3316"
+NAME="AEN3315"
 ></A
 ><H3
 ><A
@@ -2150,7 +2160,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3321"
+NAME="AEN3320"
 ></A
 ><H3
 ><A
@@ -2176,7 +2186,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3326"
+NAME="AEN3325"
 ></A
 ><H3
 ><A
@@ -2237,7 +2247,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3342"
+NAME="AEN3341"
 ></A
 ><H3
 ><A
@@ -2318,7 +2328,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3363"
+NAME="AEN3362"
 ></A
 ><H3
 ><A
@@ -2381,7 +2391,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3379"
+NAME="AEN3378"
 ></A
 ><H3
 ><A
@@ -2480,7 +2490,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3404"
+NAME="AEN3403"
 ></A
 ><H3
 ><A
@@ -2583,7 +2593,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3429"
+NAME="AEN3428"
 ></A
 ><H3
 ><A
@@ -2667,7 +2677,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3450"
+NAME="AEN3449"
 ></A
 ><H3
 ><A
@@ -2748,7 +2758,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3470"
+NAME="AEN3469"
 ></A
 ><H3
 ><A
@@ -2844,7 +2854,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3494"
+NAME="AEN3493"
 ></A
 ><H3
 ><A
@@ -2907,7 +2917,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3510"
+NAME="AEN3509"
 ></A
 ><H3
 ><A
@@ -2988,7 +2998,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3531"
+NAME="AEN3530"
 ></A
 ><H3
 ><A
@@ -3064,7 +3074,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3550"
+NAME="AEN3549"
 ></A
 ><H3
 ><A
@@ -3146,7 +3156,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3570"
+NAME="AEN3569"
 ></A
 ><H3
 ><A
@@ -3224,7 +3234,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3590"
+NAME="AEN3589"
 ></A
 ><H3
 ><A
@@ -3368,7 +3378,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3626"
+NAME="AEN3625"
 ></A
 ><H3
 ><A
@@ -3512,7 +3522,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3662"
+NAME="AEN3661"
 ></A
 ><H3
 ><A
@@ -3575,7 +3585,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3678"
+NAME="AEN3677"
 ></A
 ><H3
 ><A
@@ -3698,7 +3708,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3709"
+NAME="AEN3708"
 ></A
 ><H3
 ><A
@@ -3821,7 +3831,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3740"
+NAME="AEN3739"
 ></A
 ><H3
 ><A
@@ -3884,7 +3894,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3756"
+NAME="AEN3755"
 ></A
 ><H3
 ><A
@@ -3965,7 +3975,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3777"
+NAME="AEN3776"
 ></A
 ><H3
 ><A
@@ -4029,7 +4039,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3793"
+NAME="AEN3792"
 ></A
 ><H3
 ><A
@@ -4152,7 +4162,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3824"
+NAME="AEN3823"
 ></A
 ><H3
 ><A
@@ -4275,7 +4285,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3855"
+NAME="AEN3854"
 ></A
 ><H3
 ><A
@@ -4419,7 +4429,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3891"
+NAME="AEN3890"
 ></A
 ><H3
 ><A
@@ -4482,7 +4492,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3907"
+NAME="AEN3906"
 ></A
 ><H3
 ><A
@@ -4545,7 +4555,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3923"
+NAME="AEN3922"
 ></A
 ><H3
 ><A
@@ -4647,7 +4657,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3949"
+NAME="AEN3948"
 ></A
 ><H3
 ><A
@@ -4749,7 +4759,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3975"
+NAME="AEN3974"
 ></A
 ><H3
 ><A
@@ -4830,7 +4840,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3996"
+NAME="AEN3995"
 ></A
 ><H3
 ><A
@@ -4930,7 +4940,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4021"
+NAME="AEN4020"
 ></A
 ><H3
 ><A
@@ -5100,7 +5110,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4062"
+NAME="AEN4061"
 ></A
 ><H3
 ><A
@@ -5255,7 +5265,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4100"
+NAME="AEN4099"
 ></A
 ><H3
 ><A
@@ -5369,7 +5379,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4128"
+NAME="AEN4127"
 ></A
 ><H3
 ><A
@@ -5545,7 +5555,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4170"
+NAME="AEN4169"
 ></A
 ><H3
 ><A
@@ -5706,7 +5716,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4209"
+NAME="AEN4208"
 ></A
 ><H3
 ><A
@@ -5808,7 +5818,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4235"
+NAME="AEN4234"
 ></A
 ><H3
 ><A
@@ -5889,7 +5899,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4256"
+NAME="AEN4255"
 ></A
 ><H3
 ><A
@@ -5991,7 +6001,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4282"
+NAME="AEN4281"
 ></A
 ><H3
 ><A
@@ -6112,7 +6122,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4312"
+NAME="AEN4311"
 ></A
 ><H3
 ><A
@@ -6211,7 +6221,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4337"
+NAME="AEN4336"
 ></A
 ><H3
 ><A
@@ -6313,7 +6323,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4363"
+NAME="AEN4362"
 ></A
 ><H3
 ><A
@@ -6394,7 +6404,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4384"
+NAME="AEN4383"
 ></A
 ><H3
 ><A
@@ -6514,7 +6524,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4414"
+NAME="AEN4413"
 ></A
 ><H3
 ><A
@@ -6616,7 +6626,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4440"
+NAME="AEN4439"
 ></A
 ><H3
 ><A
@@ -6715,7 +6725,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4465"
+NAME="AEN4464"
 ></A
 ><H3
 ><A
@@ -6796,7 +6806,89 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4486"
+NAME="AEN4485"
+></A
+><H3
+><A
+NAME="XMLDOCGETROOTELEMENT"
+></A
+>xmlDocGetRootElement ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+>  xmlDocGetRootElement            (<A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Get the root element of the document (doc-&gt;root is a list
+containing possibly comments, PIs, etc ...).</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
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the document</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the xmlNodePtr for the root or NULL</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4506"
 ></A
 ><H3
 ><A
@@ -6877,7 +6969,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4507"
+NAME="AEN4527"
 ></A
 ><H3
 ><A
@@ -6955,7 +7047,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4527"
+NAME="AEN4547"
 ></A
 ><H3
 ><A
@@ -7062,7 +7154,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4554"
+NAME="AEN4574"
 ></A
 ><H3
 ><A
@@ -7169,7 +7261,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4581"
+NAME="AEN4601"
 ></A
 ><H3
 ><A
@@ -7232,7 +7324,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4597"
+NAME="AEN4617"
 ></A
 ><H3
 ><A
@@ -7334,7 +7426,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4623"
+NAME="AEN4643"
 ></A
 ><H3
 ><A
@@ -7441,7 +7533,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4649"
+NAME="AEN4669"
 ></A
 ><H3
 ><A
@@ -7505,7 +7597,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4665"
+NAME="AEN4685"
 ></A
 ><H3
 ><A
@@ -7568,7 +7660,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4681"
+NAME="AEN4701"
 ></A
 ><H3
 ><A
@@ -7699,7 +7791,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4713"
+NAME="AEN4733"
 ></A
 ><H3
 ><A
@@ -7823,7 +7915,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4744"
+NAME="AEN4764"
 ></A
 ><H3
 ><A
@@ -7927,7 +8019,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4770"
+NAME="AEN4790"
 ></A
 ><H3
 ><A
@@ -8011,7 +8103,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4791"
+NAME="AEN4811"
 ></A
 ><H3
 ><A
@@ -8092,7 +8184,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4812"
+NAME="AEN4832"
 ></A
 ><H3
 ><A
@@ -8173,7 +8265,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4833"
+NAME="AEN4853"
 ></A
 ><H3
 ><A
@@ -8296,7 +8388,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4864"
+NAME="AEN4884"
 ></A
 ><H3
 ><A
@@ -8405,7 +8497,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4891"
+NAME="AEN4911"
 ></A
 ><H3
 ><A
@@ -8435,7 +8527,7 @@
                                              const <A
 HREF="gnome-xml-tree.html#XMLCHAR"
 >xmlChar</A
-> *namespace);</PRE
+> *nameSpace);</PRE
 ></TD
 ></TR
 ></TABLE
@@ -8503,7 +8595,7 @@
 ><TT
 CLASS="PARAMETER"
 ><I
->namespace</I
+>nameSpace</I
 ></TT
 >&nbsp;:</TD
 ><TD
@@ -8536,7 +8628,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4923"
+NAME="AEN4943"
 ></A
 ><H3
 ><A
@@ -8639,7 +8731,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4949"
+NAME="AEN4969"
 ></A
 ><H3
 ><A
@@ -8760,7 +8852,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4979"
+NAME="AEN4999"
 ></A
 ><H3
 ><A
@@ -8881,7 +8973,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5009"
+NAME="AEN5029"
 ></A
 ><H3
 ><A
@@ -8965,7 +9057,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5030"
+NAME="AEN5050"
 ></A
 ><H3
 ><A
@@ -9072,7 +9164,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5056"
+NAME="AEN5076"
 ></A
 ><H3
 ><A
@@ -9156,7 +9248,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5077"
+NAME="AEN5097"
 ></A
 ><H3
 ><A
@@ -9263,7 +9355,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5103"
+NAME="AEN5123"
 ></A
 ><H3
 ><A
@@ -9348,7 +9440,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5124"
+NAME="AEN5144"
 ></A
 ><H3
 ><A
@@ -9431,7 +9523,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5145"
+NAME="AEN5165"
 ></A
 ><H3
 ><A
@@ -9516,7 +9608,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5166"
+NAME="AEN5186"
 ></A
 ><H3
 ><A
@@ -9620,7 +9712,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5192"
+NAME="AEN5212"
 ></A
 ><H3
 ><A
@@ -9696,7 +9788,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5211"
+NAME="AEN5231"
 ></A
 ><H3
 ><A
@@ -9772,7 +9864,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5230"
+NAME="AEN5250"
 ></A
 ><H3
 ><A
@@ -9857,7 +9949,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5251"
+NAME="AEN5271"
 ></A
 ><H3
 ><A
@@ -9939,7 +10031,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5271"
+NAME="AEN5291"
 ></A
 ><H3
 ><A
@@ -10025,7 +10117,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5292"
+NAME="AEN5312"
 ></A
 ><H3
 ><A
@@ -10128,7 +10220,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5317"
+NAME="AEN5337"
 ></A
 ><H3
 ><A
@@ -10212,7 +10304,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5338"
+NAME="AEN5358"
 ></A
 ><H3
 ><A
@@ -10315,7 +10407,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5363"
+NAME="AEN5383"
 ></A
 ><H3
 ><A
@@ -10393,7 +10485,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5383"
+NAME="AEN5403"
 ></A
 ><H3
 ><A
@@ -10475,7 +10567,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5403"
+NAME="AEN5423"
 ></A
 ><H3
 ><A
@@ -10533,7 +10625,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5418"
+NAME="AEN5438"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-valid.html b/doc/html/gnome-xml-valid.html
index 1824154..07d6ca6 100644
--- a/doc/html/gnome-xml-valid.html
+++ b/doc/html/gnome-xml-valid.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN5868"
+NAME="AEN5888"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN5871"
+NAME="AEN5891"
 ></A
 ><H2
 >Synopsis</H2
@@ -809,7 +809,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6054"
+NAME="AEN6074"
 ></A
 ><H2
 >Description</H2
@@ -819,14 +819,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6057"
+NAME="AEN6077"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6059"
+NAME="AEN6079"
 ></A
 ><H3
 ><A
@@ -920,7 +920,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6081"
+NAME="AEN6101"
 ></A
 ><H3
 ><A
@@ -1014,7 +1014,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6103"
+NAME="AEN6123"
 ></A
 ><H3
 ><A
@@ -1040,7 +1040,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6108"
+NAME="AEN6128"
 ></A
 ><H3
 ><A
@@ -1066,7 +1066,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6113"
+NAME="AEN6133"
 ></A
 ><H3
 ><A
@@ -1092,7 +1092,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6118"
+NAME="AEN6138"
 ></A
 ><H3
 ><A
@@ -1118,7 +1118,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6123"
+NAME="AEN6143"
 ></A
 ><H3
 ><A
@@ -1144,7 +1144,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6128"
+NAME="AEN6148"
 ></A
 ><H3
 ><A
@@ -1170,7 +1170,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6133"
+NAME="AEN6153"
 ></A
 ><H3
 ><A
@@ -1196,7 +1196,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6138"
+NAME="AEN6158"
 ></A
 ><H3
 ><A
@@ -1222,7 +1222,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6143"
+NAME="AEN6163"
 ></A
 ><H3
 ><A
@@ -1248,7 +1248,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6148"
+NAME="AEN6168"
 ></A
 ><H3
 ><A
@@ -1274,7 +1274,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6153"
+NAME="AEN6173"
 ></A
 ><H3
 ><A
@@ -1439,7 +1439,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6194"
+NAME="AEN6214"
 ></A
 ><H3
 ><A
@@ -1520,7 +1520,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6215"
+NAME="AEN6235"
 ></A
 ><H3
 ><A
@@ -1583,7 +1583,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6231"
+NAME="AEN6251"
 ></A
 ><H3
 ><A
@@ -1667,7 +1667,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6252"
+NAME="AEN6272"
 ></A
 ><H3
 ><A
@@ -1769,7 +1769,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6278"
+NAME="AEN6298"
 ></A
 ><H3
 ><A
@@ -1850,7 +1850,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6299"
+NAME="AEN6319"
 ></A
 ><H3
 ><A
@@ -1913,7 +1913,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6315"
+NAME="AEN6335"
 ></A
 ><H3
 ><A
@@ -2078,7 +2078,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6356"
+NAME="AEN6376"
 ></A
 ><H3
 ><A
@@ -2159,7 +2159,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6377"
+NAME="AEN6397"
 ></A
 ><H3
 ><A
@@ -2222,7 +2222,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6393"
+NAME="AEN6413"
 ></A
 ><H3
 ><A
@@ -2306,7 +2306,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6414"
+NAME="AEN6434"
 ></A
 ><H3
 ><A
@@ -2388,7 +2388,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6435"
+NAME="AEN6455"
 ></A
 ><H3
 ><A
@@ -2451,7 +2451,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6451"
+NAME="AEN6471"
 ></A
 ><H3
 ><A
@@ -2533,7 +2533,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6472"
+NAME="AEN6492"
 ></A
 ><H3
 ><A
@@ -2761,7 +2761,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6528"
+NAME="AEN6548"
 ></A
 ><H3
 ><A
@@ -2842,7 +2842,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6549"
+NAME="AEN6569"
 ></A
 ><H3
 ><A
@@ -2905,7 +2905,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6565"
+NAME="AEN6585"
 ></A
 ><H3
 ><A
@@ -2989,7 +2989,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6586"
+NAME="AEN6606"
 ></A
 ><H3
 ><A
@@ -3133,7 +3133,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6622"
+NAME="AEN6642"
 ></A
 ><H3
 ><A
@@ -3212,7 +3212,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6642"
+NAME="AEN6662"
 ></A
 ><H3
 ><A
@@ -3275,7 +3275,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6658"
+NAME="AEN6678"
 ></A
 ><H3
 ><A
@@ -3377,7 +3377,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6684"
+NAME="AEN6704"
 ></A
 ><H3
 ><A
@@ -3499,7 +3499,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6714"
+NAME="AEN6734"
 ></A
 ><H3
 ><A
@@ -3643,7 +3643,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6750"
+NAME="AEN6770"
 ></A
 ><H3
 ><A
@@ -3722,7 +3722,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6770"
+NAME="AEN6790"
 ></A
 ><H3
 ><A
@@ -3785,7 +3785,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6786"
+NAME="AEN6806"
 ></A
 ><H3
 ><A
@@ -3907,7 +3907,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6816"
+NAME="AEN6836"
 ></A
 ><H3
 ><A
@@ -4010,7 +4010,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6841"
+NAME="AEN6861"
 ></A
 ><H3
 ><A
@@ -4135,7 +4135,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6871"
+NAME="AEN6891"
 ></A
 ><H3
 ><A
@@ -4262,7 +4262,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6902"
+NAME="AEN6922"
 ></A
 ><H3
 ><A
@@ -4376,7 +4376,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6931"
+NAME="AEN6951"
 ></A
 ><H3
 ><A
@@ -4500,7 +4500,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6961"
+NAME="AEN6981"
 ></A
 ><H3
 ><A
@@ -4532,7 +4532,7 @@
 ></TR
 ></TABLE
 ><P
->Try to validate the dtd instance</P
+>Try to validate the document against the dtd instance</P
 ><P
 >basically it does check all the definitions in the DtD.</P
 ><P
@@ -4622,7 +4622,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6992"
+NAME="AEN7012"
 ></A
 ><H3
 ><A
@@ -4725,7 +4725,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7018"
+NAME="AEN7038"
 ></A
 ><H3
 ><A
@@ -4845,7 +4845,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7048"
+NAME="AEN7068"
 ></A
 ><H3
 ><A
@@ -4975,7 +4975,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7080"
+NAME="AEN7100"
 ></A
 ><H3
 ><A
@@ -5149,7 +5149,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7121"
+NAME="AEN7141"
 ></A
 ><H3
 ><A
@@ -5251,7 +5251,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7147"
+NAME="AEN7167"
 ></A
 ><H3
 ><A
@@ -5372,7 +5372,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7177"
+NAME="AEN7197"
 ></A
 ><H3
 ><A
@@ -5472,7 +5472,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7202"
+NAME="AEN7222"
 ></A
 ><H3
 ><A
@@ -5596,7 +5596,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7233"
+NAME="AEN7253"
 ></A
 ><H3
 ><A
@@ -5698,7 +5698,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7259"
+NAME="AEN7279"
 ></A
 ><H3
 ><A
@@ -5800,7 +5800,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7285"
+NAME="AEN7305"
 ></A
 ><H3
 ><A
@@ -5966,7 +5966,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7323"
+NAME="AEN7343"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-xml-error.html b/doc/html/gnome-xml-xml-error.html
index f140d72..765597c 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="AEN7361"
+NAME="AEN7381"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN7364"
+NAME="AEN7384"
 ></A
 ><H2
 >Synopsis</H2
@@ -187,7 +187,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7376"
+NAME="AEN7396"
 ></A
 ><H2
 >Description</H2
@@ -197,14 +197,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7379"
+NAME="AEN7399"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7381"
+NAME="AEN7401"
 ></A
 ><H3
 ><A
@@ -341,7 +341,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7386"
+NAME="AEN7406"
 ></A
 ><H3
 ><A
@@ -438,7 +438,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7409"
+NAME="AEN7429"
 ></A
 ><H3
 ><A
@@ -535,7 +535,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7432"
+NAME="AEN7452"
 ></A
 ><H3
 ><A
@@ -632,7 +632,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7455"
+NAME="AEN7475"
 ></A
 ><H3
 ><A
@@ -729,7 +729,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7478"
+NAME="AEN7498"
 ></A
 ><H3
 ><A
@@ -792,7 +792,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7494"
+NAME="AEN7514"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-xmlmemory.html b/doc/html/gnome-xml-xmlmemory.html
index cc267fc..ec6b5a7 100644
--- a/doc/html/gnome-xml-xmlmemory.html
+++ b/doc/html/gnome-xml-xmlmemory.html
@@ -103,7 +103,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN11079"
+NAME="AEN11099"
 ></A
 ><H2
 >Name</H2
@@ -111,7 +111,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN11082"
+NAME="AEN11102"
 ></A
 ><H2
 >Synopsis</H2
@@ -210,7 +210,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN11103"
+NAME="AEN11123"
 ></A
 ><H2
 >Description</H2
@@ -220,14 +220,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN11106"
+NAME="AEN11126"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11108"
+NAME="AEN11128"
 ></A
 ><H3
 ><A
@@ -253,7 +253,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11113"
+NAME="AEN11133"
 ></A
 ><H3
 ><A
@@ -316,7 +316,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11129"
+NAME="AEN11149"
 ></A
 ><H3
 ><A
@@ -382,7 +382,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11146"
+NAME="AEN11166"
 ></A
 ><H3
 ><A
@@ -466,7 +466,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11167"
+NAME="AEN11187"
 ></A
 ><H3
 ><A
@@ -544,7 +544,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11187"
+NAME="AEN11207"
 ></A
 ><H3
 ><A
@@ -602,7 +602,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11202"
+NAME="AEN11222"
 ></A
 ><H3
 ><A
@@ -660,7 +660,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11217"
+NAME="AEN11237"
 ></A
 ><H3
 ><A
@@ -688,7 +688,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11223"
+NAME="AEN11243"
 ></A
 ><H3
 ><A
@@ -752,7 +752,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11239"
+NAME="AEN11259"
 ></A
 ><H3
 ><A
@@ -778,7 +778,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11244"
+NAME="AEN11264"
 ></A
 ><H3
 ><A
@@ -804,7 +804,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11249"
+NAME="AEN11269"
 ></A
 ><H3
 ><A
@@ -830,7 +830,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11254"
+NAME="AEN11274"
 ></A
 ><H3
 ><A
@@ -935,7 +935,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11279"
+NAME="AEN11299"
 ></A
 ><H3
 ><A
@@ -1052,7 +1052,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11307"
+NAME="AEN11327"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-xpath.html b/doc/html/gnome-xml-xpath.html
index 9141f25..08476a6 100644
--- a/doc/html/gnome-xml-xpath.html
+++ b/doc/html/gnome-xml-xpath.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN7949"
+NAME="AEN7969"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN7952"
+NAME="AEN7972"
 ></A
 ><H2
 >Synopsis</H2
@@ -259,7 +259,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7986"
+NAME="AEN8006"
 ></A
 ><H2
 >Description</H2
@@ -269,14 +269,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7989"
+NAME="AEN8009"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7991"
+NAME="AEN8011"
 ></A
 ><H3
 ><A
@@ -302,7 +302,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7996"
+NAME="AEN8016"
 ></A
 ><H3
 ><A
@@ -328,7 +328,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8001"
+NAME="AEN8021"
 ></A
 ><H3
 ><A
@@ -354,7 +354,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8006"
+NAME="AEN8026"
 ></A
 ><H3
 ><A
@@ -380,7 +380,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8011"
+NAME="AEN8031"
 ></A
 ><H3
 ><A
@@ -406,7 +406,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8016"
+NAME="AEN8036"
 ></A
 ><H3
 ><A
@@ -432,7 +432,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8021"
+NAME="AEN8041"
 ></A
 ><H3
 ><A
@@ -526,7 +526,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8044"
+NAME="AEN8064"
 ></A
 ><H3
 ><A
@@ -605,7 +605,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8063"
+NAME="AEN8083"
 ></A
 ><H3
 ><A
@@ -705,7 +705,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8088"
+NAME="AEN8108"
 ></A
 ><H3
 ><A
@@ -784,7 +784,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8107"
+NAME="AEN8127"
 ></A
 ><H3
 ><A
@@ -865,7 +865,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8128"
+NAME="AEN8148"
 ></A
 ><H3
 ><A
@@ -928,7 +928,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8144"
+NAME="AEN8164"
 ></A
 ><H3
 ><A
@@ -1031,7 +1031,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8170"
+NAME="AEN8190"
 ></A
 ><H3
 ><A
@@ -1094,7 +1094,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8186"
+NAME="AEN8206"
 ></A
 ><H3
 ><A
diff --git a/doc/html/index.sgml b/doc/html/index.sgml
index b83f32c..3eb6824 100644
--- a/doc/html/index.sgml
+++ b/doc/html/index.sgml
@@ -199,6 +199,7 @@
 <ANCHOR id ="XMLNEWREFERENCE" href="gnome-xml/gnome-xml-tree.html#XMLNEWREFERENCE">
 <ANCHOR id ="XMLCOPYNODE" href="gnome-xml/gnome-xml-tree.html#XMLCOPYNODE">
 <ANCHOR id ="XMLCOPYNODELIST" href="gnome-xml/gnome-xml-tree.html#XMLCOPYNODELIST">
+<ANCHOR id ="XMLDOCGETROOTELEMENT" href="gnome-xml/gnome-xml-tree.html#XMLDOCGETROOTELEMENT">
 <ANCHOR id ="XMLGETLASTCHILD" href="gnome-xml/gnome-xml-tree.html#XMLGETLASTCHILD">
 <ANCHOR id ="XMLNODEISTEXT" href="gnome-xml/gnome-xml-tree.html#XMLNODEISTEXT">
 <ANCHOR id ="XMLADDCHILD" href="gnome-xml/gnome-xml-tree.html#XMLADDCHILD">
diff --git a/doc/html/libxml.html b/doc/html/libxml.html
deleted file mode 100644
index e66d6f7..0000000
--- a/doc/html/libxml.html
+++ /dev/null
@@ -1,269 +0,0 @@
-<HTML
-><HEAD
-><TITLE
->Gnome XML Library</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK
-REL="HOME"
-TITLE="Gnome XML Library Reference Manual"
-HREF="book1.html"><LINK
-REL="PREVIOUS"
-TITLE="Gnome XML Library Reference Manual"
-HREF="book1.html"><LINK
-REL="NEXT"
-TITLE="parser"
-HREF="gnome-xml-parser.html"></HEAD
-><BODY
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-><DIV
-CLASS="NAVHEADER"
-><TABLE
-WIDTH="100%"
-BORDER="0"
-BGCOLOR="#000000"
-CELLPADDING="1"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="4"
-ALIGN="center"
-><FONT
-COLOR="#FFFFFF"
-SIZE="5"
->Gnome XML Library Reference Manual</FONT
-></TH
-></TR
-><TR
-><TD
-WIDTH="25%"
-BGCOLOR="#C00000"
-ALIGN="left"
-><A
-HREF="book1.html"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->&#60;&#60;&#60; Previous Page</B
-></FONT
-></A
-></TD
-><TD
-WIDTH="25%"
-BGCOLOR="#0000C0"
-ALIGN="center"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
-><A
-HREF="book1.html"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->Home</B
-></FONT
-></A
-></B
-></FONT
-></TD
-><TD
-WIDTH="25%"
-BGCOLOR="#00C000"
-ALIGN="center"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->&nbsp;</B
-></FONT
-></TD
-><TD
-WIDTH="25%"
-BGCOLOR="#C00000"
-ALIGN="right"
-><A
-HREF="gnome-xml-parser.html"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->Next Page &#62;&#62;&#62;</B
-></FONT
-></A
-></TD
-></TR
-></TABLE
-></DIV
-><DIV
-CLASS="CHAPTER"
-><H1
-><A
-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
-CLEAR="all"><BR><TABLE
-WIDTH="100%"
-BORDER="0"
-BGCOLOR="#000000"
-CELLPADDING="1"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="25%"
-BGCOLOR="#C00000"
-ALIGN="left"
-><A
-HREF="book1.html"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->&#60;&#60;&#60; Previous Page</B
-></FONT
-></A
-></TD
-><TD
-WIDTH="25%"
-BGCOLOR="#0000C0"
-ALIGN="center"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
-><A
-HREF="book1.html"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->Home</B
-></FONT
-></A
-></B
-></FONT
-></TD
-><TD
-WIDTH="25%"
-BGCOLOR="#00C000"
-ALIGN="center"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->&nbsp;</B
-></FONT
-></TD
-><TD
-WIDTH="25%"
-BGCOLOR="#C00000"
-ALIGN="right"
-><A
-HREF="gnome-xml-parser.html"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->Next Page &#62;&#62;&#62;</B
-></FONT
-></A
-></TD
-></TR
-><TR
-><TD
-COLSPAN="2"
-ALIGN="left"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->Gnome XML Library Reference Manual</B
-></FONT
-></TD
-><TD
-COLSPAN="2"
-ALIGN="right"
-><FONT
-COLOR="#FFFFFF"
-SIZE="3"
-><B
->parser</B
-></FONT
-></TD
-></TR
-></TABLE
-></DIV
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/xml.html b/doc/xml.html
index e0e286f..0e74ab7 100644
--- a/doc/xml.html
+++ b/doc/xml.html
Binary files differ
diff --git a/include/libxml/parserInternals.h b/include/libxml/parserInternals.h
index 1ce25b0..9da4846 100644
--- a/include/libxml/parserInternals.h
+++ b/include/libxml/parserInternals.h
@@ -443,13 +443,11 @@
  * [85] BaseChar ::= ... long list see REC ...
  */
 #define IS_BASECHAR(c)							\
-    ((((c) >= 0x41) && ((c) <= 0x5a)) ||				\
-     (((c) >= 0x61) && ((c) <= 0x7a)) ||				\
-     (((c) >= 0xaa) && ((c) <= 0x5b)) ||				\
-     (((c) >= 0xc0) && ((c) <= 0xd6)) ||				\
-     (((c) >= 0xd8) && ((c) <= 0xf6)) ||				\
-     (((c) >= 0xf8) && ((c) <= 0xff)) ||				\
-      ((c) == 0xba))
+     ((((c) >= 0x0041) && ((c) <= 0x005A)) ||				\
+      (((c) >= 0x0061) && ((c) <= 0x007A)) ||				\
+      (((c) >= 0x00C0) && ((c) <= 0x00D6)) ||				\
+      (((c) >= 0x00D8) && ((c) <= 0x00F6)) ||				\
+      (((c) >= 0x00F8) && ((c) <= 0x00FF)))
 
 /*
  * [88] Digit ::= ... long list see REC ...
diff --git a/parserInternals.h b/parserInternals.h
index 1ce25b0..9da4846 100644
--- a/parserInternals.h
+++ b/parserInternals.h
@@ -443,13 +443,11 @@
  * [85] BaseChar ::= ... long list see REC ...
  */
 #define IS_BASECHAR(c)							\
-    ((((c) >= 0x41) && ((c) <= 0x5a)) ||				\
-     (((c) >= 0x61) && ((c) <= 0x7a)) ||				\
-     (((c) >= 0xaa) && ((c) <= 0x5b)) ||				\
-     (((c) >= 0xc0) && ((c) <= 0xd6)) ||				\
-     (((c) >= 0xd8) && ((c) <= 0xf6)) ||				\
-     (((c) >= 0xf8) && ((c) <= 0xff)) ||				\
-      ((c) == 0xba))
+     ((((c) >= 0x0041) && ((c) <= 0x005A)) ||				\
+      (((c) >= 0x0061) && ((c) <= 0x007A)) ||				\
+      (((c) >= 0x00C0) && ((c) <= 0x00D6)) ||				\
+      (((c) >= 0x00D8) && ((c) <= 0x00F6)) ||				\
+      (((c) >= 0x00F8) && ((c) <= 0x00FF)))
 
 /*
  * [88] Digit ::= ... long list see REC ...
diff --git a/tester.c b/tester.c
index 29ae6b3..1187627 100644
--- a/tester.c
+++ b/tester.c
@@ -44,84 +44,13 @@
 static int noent = 0;
 static int noout = 0;
 static int valid = 0;
+static int postvalid = 0;
 static int repeat = 0;
 static int insert = 0;
 static int compress = 0;
 
 extern int xmlDoValidityCheckingDefaultValue;
 
-/*
- * Note: there is a couple of errors introduced on purpose.
-static xmlChar 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\
-<D:propertyupdate>\n\
-<D:set a=\"'toto'\" b>\n\
-       <D:prop>\n\
-            <Z:authors>\n\
-                 <Z:Author>Jim Whitehead</Z:Author>\n\
-                 <Z:Author>Roy Fielding</Z:Author>\n\
-            </Z:authors>\n\
-       </D:prop>\n\
-  </D:set>\n\
-  <D:remove>\n\
-       <D:prop><Z:Copyright-Owner/></D:prop>\n\
-  </D:remove>\n\
-</D:propertyupdate>\n\
-\n\
-";
- */
-
-/************************************************************************
- *									*
- *				Debug					*
- *									*
- ************************************************************************/
-
-int treeTest(void) {
-    xmlDocPtr doc, tmp;
-    xmlNodePtr tree, subtree;
-
-    /*
-     * build a fake XML document
-     */
-    doc = xmlNewDoc(BAD_CAST "1.0");
-    doc->root = xmlNewDocNode(doc, NULL, BAD_CAST "EXAMPLE", NULL);
-    xmlSetProp(doc->root, BAD_CAST "prop1", BAD_CAST "gnome is great");
-    xmlSetProp(doc->root, BAD_CAST "prop2", BAD_CAST "&linux; too");
-    xmlSetProp(doc->root, BAD_CAST "emptyprop", BAD_CAST "");
-    tree = xmlNewChild(doc->root, NULL, BAD_CAST "head", NULL);
-    subtree = xmlNewChild(tree, NULL, BAD_CAST "title",
-                          BAD_CAST "Welcome to Gnome");
-    tree = xmlNewChild(doc->root, NULL, BAD_CAST "chapter", NULL);
-    subtree = xmlNewChild(tree, NULL, BAD_CAST "title",
-                          BAD_CAST "The Linux adventure");
-    subtree = xmlNewChild(tree, NULL, BAD_CAST "p", BAD_CAST "bla bla bla ...");
-    subtree = xmlNewChild(tree, NULL, BAD_CAST "image", NULL);
-    xmlSetProp(subtree, BAD_CAST "href", BAD_CAST "linus.gif");
-
-    /*
-     * test intermediate copy if needed.
-     */
-    if (copy) {
-        tmp = doc;
-	doc = xmlCopyDoc(doc, 1);
-	xmlFreeDoc(tmp);
-    }
-
-    /*
-     * print it.
-     */
-    if (noout == 0)
-	xmlDocDump(stdout, doc);
-
-    /*
-     * free it.
-     */
-    xmlFreeDoc(doc);
-    return(0);
-}
 
 void parseAndPrintFile(char *filename) {
     xmlDocPtr doc, tmp;
@@ -178,47 +107,18 @@
 	} else
 	    xmlDebugDumpDocument(stdout, doc);
     }
-    if (debugent)	
-	xmlDebugDumpEntities(stdout, doc);
 
     /*
-     * free it.
+     * A posteriori validation test
      */
-    xmlFreeDoc(doc);
-}
-
-void parseAndPrintBuffer(xmlChar *buf) {
-    xmlDocPtr doc, tmp;
-
-    /*
-     * build an XML tree from a string;
-     */
-    if (recovery)
-	doc = xmlRecoverDoc(buf);
-    else
-	doc = xmlParseDoc(buf);
-
-    /*
-     * test intermediate copy if needed.
-     */
-    if (copy) {
-        tmp = doc;
-	doc = xmlCopyDoc(doc, 1);
-	xmlFreeDoc(tmp);
+    if (postvalid) {
+	xmlValidCtxt cvp;
+	cvp.userData = (void *) stderr;                                                 cvp.error    = (xmlValidityErrorFunc) fprintf;                                  cvp.warning  = (xmlValidityWarningFunc) fprintf;
+	xmlValidateDocument(&cvp, doc);
     }
 
-    /*
-     * print it.
-     */
-    if (!debug) {
-        if (compress)
-	    xmlSaveFile("-", doc);
-	else
-	    xmlDocDump(stdout, doc);
-    } else
-        xmlDebugDumpDocument(stdout, doc);
     if (debugent)	
-        xmlDebugDumpEntities(stdout, doc);
+	xmlDebugDumpEntities(stdout, doc);
 
     /*
      * free it.
@@ -249,6 +149,9 @@
 	else if ((!strcmp(argv[i], "-valid")) ||
 	         (!strcmp(argv[i], "--valid")))
 	    valid++;
+	else if ((!strcmp(argv[i], "-postvalid")) ||
+	         (!strcmp(argv[i], "--postvalid")))
+	    postvalid++;
 	else if ((!strcmp(argv[i], "-insert")) ||
 	         (!strcmp(argv[i], "--insert")))
 	    insert++;
@@ -280,12 +183,13 @@
 	printf("\t--debug : dump a debug tree of the in-memory document\n");
 	printf("\t--debugent : debug the entities defined in the document\n");
 	printf("\t--copy : used to test the internal copy implementation\n");
-	printf("\t--recover : output what is parsable on broken XmL documents\n");
+	printf("\t--recover : output what was parsable on broken XML documents\n");
 	printf("\t--noent : substitute entity references by their value\n");
-	printf("\t--noout : don't output the result\n");
+	printf("\t--noout : don't output the result tree\n");
 	printf("\t--valid : validate the document in addition to std well-formed check\n");
-	printf("\t--repeat : parse the file 100 times, for timing or profiling\n");
-	printf("\t--insert : test for valid insertions\n");
+	printf("\t--postvalid : do a posteriori validation, i.e after parsing\n");
+	printf("\t--repeat : repeat 100 times, for timing or profiling\n");
+	printf("\t--insert : ad-hoc test for valid insertions\n");
 	printf("\t--compress : turn on gzip compression of output\n");
     }
     xmlCleanupParser();
diff --git a/tree.c b/tree.c
index 5451f53..a920d40 100644
--- a/tree.c
+++ b/tree.c
@@ -2156,6 +2156,29 @@
  ************************************************************************/
  
 /**
+ * xmlDocGetRootElement:
+ * @doc:  the document
+ *
+ * Get the root element of the document (doc->root is a list
+ * containing possibly comments, PIs, etc ...).
+ *
+ * Returns the xmlNodePtr for the root or NULL
+ */
+xmlNodePtr
+xmlDocGetRootElement(xmlDocPtr doc) {
+    xmlNodePtr ret;
+
+    if (doc == NULL) return(NULL);
+    ret = doc->root;
+    while (ret != NULL) {
+	if (ret->type == XML_ELEMENT_NODE)
+	    return(ret);
+        ret = ret->next;
+    }
+    return(ret);
+}
+ 
+/**
  * xmlNodeSetLang:
  * @cur:  the node being changed
  * @lang:  the langage description
diff --git a/valid.c b/valid.c
index bc6d2ab..1efdbd0 100644
--- a/valid.c
+++ b/valid.c
@@ -2730,7 +2730,69 @@
 
     CHECK_DTD;
 
-    if ((elem == NULL) || (elem->name == NULL)) return(0);
+    if (elem == NULL) return(0);
+    if (elem->type == XML_TEXT_NODE) {
+    }
+    switch (elem->type) {
+        case XML_ATTRIBUTE_NODE:
+	    VERROR(ctxt->userData, 
+		   "Attribute element not expected here\n");
+	    return(0);
+        case XML_TEXT_NODE:
+	    if (elem->childs != NULL) {
+		VERROR(ctxt->userData, "Text element has childs !\n");
+		return(0);
+	    }
+	    if (elem->properties != NULL) {
+		VERROR(ctxt->userData, "Text element has attributes !\n");
+		return(0);
+	    }
+	    if (elem->ns != NULL) {
+		VERROR(ctxt->userData, "Text element has namespace !\n");
+		return(0);
+	    }
+	    if (elem->ns != NULL) {
+		VERROR(ctxt->userData, 
+		       "Text element carries namespace definitions !\n");
+		return(0);
+	    }
+	    if (elem->content == NULL) {
+		VERROR(ctxt->userData, 
+		       "Text element has no content !\n");
+		return(0);
+	    }
+	    return(1);
+        case XML_CDATA_SECTION_NODE:
+        case XML_ENTITY_REF_NODE:
+        case XML_PI_NODE:
+        case XML_COMMENT_NODE:
+	    return(1);
+        case XML_ENTITY_NODE:
+	    VERROR(ctxt->userData, 
+		   "Entity element not expected here\n");
+	    return(0);
+        case XML_NOTATION_NODE:
+	    VERROR(ctxt->userData, 
+		   "Notation element not expected here\n");
+	    return(0);
+        case XML_DOCUMENT_NODE:
+        case XML_DOCUMENT_TYPE_NODE:
+        case XML_DOCUMENT_FRAG_NODE:
+	    VERROR(ctxt->userData, 
+		   "Document element not expected here\n");
+	    return(0);
+        case XML_HTML_DOCUMENT_NODE:
+	    VERROR(ctxt->userData, 
+		   "\n");
+	    return(0);
+        case XML_ELEMENT_NODE:
+	    break;
+	default:
+	    VERROR(ctxt->userData, 
+		   "unknown element type %d\n", elem->type);
+	    return(0);
+    }
+    if (elem->name == NULL) return(0);
 
     elemDecl = xmlGetDtdElementDesc(doc->intSubset, elem->name);
     if ((elemDecl == NULL) && (doc->extSubset != NULL))
@@ -2828,6 +2890,7 @@
 
 int
 xmlValidateRoot(xmlValidCtxtPtr ctxt, xmlDocPtr doc) {
+    xmlNodePtr root;
     if (doc == NULL) return(0);
 
     if ((doc->intSubset == NULL) ||
@@ -2835,14 +2898,15 @@
 	VERROR(ctxt->userData, "Not valid: no DtD found\n");
         return(0);
     }
-    if ((doc->root == NULL) || (doc->root->name == NULL)) {
+    root = xmlDocGetRootElement(doc);
+    if ((root == NULL) || (root->name == NULL)) {
 	VERROR(ctxt->userData, "Not valid: no root element\n");
         return(0);
     }
-    if (xmlStrcmp(doc->intSubset->name, doc->root->name)) {
+    if (xmlStrcmp(doc->intSubset->name, root->name)) {
 	VERROR(ctxt->userData,
-	       "Not valid: root and DtD name do not match %s and %s\n",
-	       doc->root->name, doc->intSubset->name);
+	       "Not valid: root and DtD name do not match '%s' and '%s'\n",
+	       root->name, doc->intSubset->name);
 	return(0);
     }
     return(1);
@@ -2876,7 +2940,7 @@
         value = xmlNodeListGetString(doc, attr->val, 0);
 	ret &= xmlValidateOneAttribute(ctxt, doc, elem, attr, value);
 	if (value != NULL)
-	    free(value);
+	    xmlFree(value);
 	attr= attr->next;
     }
     child = elem->childs;
@@ -2937,7 +3001,7 @@
  * @doc:  a document instance
  * @dtd:  a dtd instance
  *
- * Try to validate the dtd instance
+ * Try to validate the document against the dtd instance
  *
  * basically it does check all the definitions in the DtD.
  *
@@ -2946,8 +3010,24 @@
 
 int
 xmlValidateDtd(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlDtdPtr dtd) {
-    /* TODO xmlValidateDtd */
-    return(1);
+    int ret;
+    xmlDtdPtr oldExt;
+    xmlNodePtr root;
+
+    if (dtd == NULL) return(0);
+    if (doc == NULL) return(0);
+    oldExt = doc->extSubset;
+    doc->extSubset = dtd;
+    ret = xmlValidateRoot(ctxt, doc);
+    if (ret == 0) {
+	doc->extSubset = oldExt;
+	return(ret);
+    }
+    root = xmlDocGetRootElement(doc);
+    ret = xmlValidateElement(ctxt, doc, root);
+    ret &= xmlValidateDocumentFinal(ctxt, doc);
+    doc->extSubset = oldExt;
+    return(ret);
 }
 
 /**
@@ -2967,10 +3047,32 @@
 int
 xmlValidateDocument(xmlValidCtxtPtr ctxt, xmlDocPtr doc) {
     int ret;
+    xmlNodePtr root;
+
+    if ((doc->intSubset == NULL) && (doc->extSubset == NULL))
+	return(0);
+    if ((doc->intSubset != NULL) && ((doc->intSubset->SystemID != NULL) ||
+	(doc->intSubset->ExternalID != NULL)) && (doc->extSubset == NULL)) {
+        doc->extSubset = xmlParseDTD(doc->intSubset->ExternalID,
+		                     doc->intSubset->SystemID);
+        if (doc->extSubset == NULL) {
+	    if (doc->intSubset->SystemID != NULL) {
+		VERROR(ctxt->userData, 
+		       "Could not load the external subset '%s'\n",
+		       doc->intSubset->SystemID);
+	    } else {
+		VERROR(ctxt->userData, 
+		       "Could not load the external subset '%s'\n",
+		       doc->intSubset->ExternalID);
+	    }
+	    return(0);
+	}
+    }
 
     if (!xmlValidateRoot(ctxt, doc)) return(0);
 
-    ret = xmlValidateElement(ctxt, doc, doc->root);
+    root = xmlDocGetRootElement(doc);
+    ret = xmlValidateElement(ctxt, doc, root);
     ret &= xmlValidateDocumentFinal(ctxt, doc);
     return(ret);
 }