Released 1.8.6, Daniel.
diff --git a/ChangeLog b/ChangeLog
index 2d5603b..a1c6a7c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+Mon Jan 31 14:25:57 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+	* nanoftp.[ch]: cleanup, bug fixes, integration in rpmfind, added
+	  xmlNanoFTPUpdateURL for persistent control connections.
+	* configure.in: 1.8.6
+
+Thu Jan 27 17:52:29 CET 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+	* nanohttp.[ch], nanoftp.[ch]: cleanup, added proxy support
+	* tree.[ch] : added xmlSaveNoEmptyTags
+
 2000-01-29  James Henstridge <james@daa.com.au>
 
 	* nanoftp.c: include <netinet/in.h> for IPPROTO_TCP.
diff --git a/configure.in b/configure.in
index e3b5844..3665b54 100644
--- a/configure.in
+++ b/configure.in
@@ -5,7 +5,7 @@
 
 LIBXML_MAJOR_VERSION=1
 LIBXML_MINOR_VERSION=8
-LIBXML_MICRO_VERSION=5
+LIBXML_MICRO_VERSION=6
 LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION
 LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
 
diff --git a/doc/html/gnome-xml-debugxml.html b/doc/html/gnome-xml-debugxml.html
index ba39ab4..03fdbad 100644
--- a/doc/html/gnome-xml-debugxml.html
+++ b/doc/html/gnome-xml-debugxml.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN12232"
+NAME="AEN12350"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN12235"
+NAME="AEN12353"
 ></A
 ><H2
 >Synopsis</H2
@@ -304,7 +304,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN12279"
+NAME="AEN12397"
 ></A
 ><H2
 >Description</H2
@@ -314,14 +314,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN12282"
+NAME="AEN12400"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12284"
+NAME="AEN12402"
 ></A
 ><H3
 ><A
@@ -403,7 +403,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12304"
+NAME="AEN12422"
 ></A
 ><H3
 ><A
@@ -503,7 +503,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12328"
+NAME="AEN12446"
 ></A
 ><H3
 ><A
@@ -603,7 +603,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12352"
+NAME="AEN12470"
 ></A
 ><H3
 ><A
@@ -703,7 +703,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12376"
+NAME="AEN12494"
 ></A
 ><H3
 ><A
@@ -803,7 +803,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12400"
+NAME="AEN12518"
 ></A
 ><H3
 ><A
@@ -903,7 +903,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12424"
+NAME="AEN12542"
 ></A
 ><H3
 ><A
@@ -985,7 +985,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12444"
+NAME="AEN12562"
 ></A
 ><H3
 ><A
@@ -1067,7 +1067,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12464"
+NAME="AEN12582"
 ></A
 ><H3
 ><A
@@ -1149,7 +1149,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12484"
+NAME="AEN12602"
 ></A
 ><H3
 ><A
@@ -1231,7 +1231,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12504"
+NAME="AEN12622"
 ></A
 ><H3
 ><A
@@ -1304,7 +1304,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12522"
+NAME="AEN12640"
 ></A
 ><H3
 ><A
@@ -1338,7 +1338,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12527"
+NAME="AEN12645"
 ></A
 ><H3
 ><A
@@ -1364,7 +1364,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12532"
+NAME="AEN12650"
 ></A
 ><H3
 ><A
@@ -1500,7 +1500,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12565"
+NAME="AEN12683"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-encoding.html b/doc/html/gnome-xml-encoding.html
index 18c1a4c..fadb5d4 100644
--- a/doc/html/gnome-xml-encoding.html
+++ b/doc/html/gnome-xml-encoding.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN12015"
+NAME="AEN12133"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN12018"
+NAME="AEN12136"
 ></A
 ><H2
 >Synopsis</H2
@@ -219,7 +219,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN12039"
+NAME="AEN12157"
 ></A
 ><H2
 >Description</H2
@@ -229,14 +229,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN12042"
+NAME="AEN12160"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12044"
+NAME="AEN12162"
 ></A
 ><H3
 ><A
@@ -286,7 +286,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12049"
+NAME="AEN12167"
 ></A
 ><H3
 ><A
@@ -413,7 +413,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12079"
+NAME="AEN12197"
 ></A
 ><H3
 ><A
@@ -540,7 +540,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12109"
+NAME="AEN12227"
 ></A
 ><H3
 ><A
@@ -570,7 +570,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12114"
+NAME="AEN12232"
 ></A
 ><H3
 ><A
@@ -596,7 +596,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12119"
+NAME="AEN12237"
 ></A
 ><H3
 ><A
@@ -627,7 +627,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12125"
+NAME="AEN12243"
 ></A
 ><H3
 ><A
@@ -656,7 +656,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12131"
+NAME="AEN12249"
 ></A
 ><H3
 ><A
@@ -719,7 +719,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12147"
+NAME="AEN12265"
 ></A
 ><H3
 ><A
@@ -799,7 +799,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12167"
+NAME="AEN12285"
 ></A
 ><H3
 ><A
@@ -880,7 +880,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12187"
+NAME="AEN12305"
 ></A
 ><H3
 ><A
@@ -962,7 +962,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12208"
+NAME="AEN12326"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-entities.html b/doc/html/gnome-xml-entities.html
index bfb9447..abe300d 100644
--- a/doc/html/gnome-xml-entities.html
+++ b/doc/html/gnome-xml-entities.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN5870"
+NAME="AEN5876"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN5873"
+NAME="AEN5879"
 ></A
 ><H2
 >Synopsis</H2
@@ -356,7 +356,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN5933"
+NAME="AEN5939"
 ></A
 ><H2
 >Description</H2
@@ -366,14 +366,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN5936"
+NAME="AEN5942"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5938"
+NAME="AEN5944"
 ></A
 ><H3
 ><A
@@ -399,7 +399,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5943"
+NAME="AEN5949"
 ></A
 ><H3
 ><A
@@ -425,7 +425,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5948"
+NAME="AEN5954"
 ></A
 ><H3
 ><A
@@ -451,7 +451,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5953"
+NAME="AEN5959"
 ></A
 ><H3
 ><A
@@ -477,7 +477,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5958"
+NAME="AEN5964"
 ></A
 ><H3
 ><A
@@ -503,7 +503,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5963"
+NAME="AEN5969"
 ></A
 ><H3
 ><A
@@ -529,7 +529,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5968"
+NAME="AEN5974"
 ></A
 ><H3
 ><A
@@ -564,7 +564,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5973"
+NAME="AEN5979"
 ></A
 ><H3
 ><A
@@ -590,7 +590,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5978"
+NAME="AEN5984"
 ></A
 ><H3
 ><A
@@ -616,7 +616,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5983"
+NAME="AEN5989"
 ></A
 ><H3
 ><A
@@ -646,7 +646,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5988"
+NAME="AEN5994"
 ></A
 ><H3
 ><A
@@ -672,7 +672,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5993"
+NAME="AEN5999"
 ></A
 ><H3
 ><A
@@ -837,7 +837,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6033"
+NAME="AEN6039"
 ></A
 ><H3
 ><A
@@ -1002,7 +1002,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6073"
+NAME="AEN6079"
 ></A
 ><H3
 ><A
@@ -1083,7 +1083,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6094"
+NAME="AEN6100"
 ></A
 ><H3
 ><A
@@ -1187,7 +1187,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6120"
+NAME="AEN6126"
 ></A
 ><H3
 ><A
@@ -1290,7 +1290,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6146"
+NAME="AEN6152"
 ></A
 ><H3
 ><A
@@ -1393,7 +1393,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6172"
+NAME="AEN6178"
 ></A
 ><H3
 ><A
@@ -1502,7 +1502,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6200"
+NAME="AEN6206"
 ></A
 ><H3
 ><A
@@ -1610,7 +1610,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6227"
+NAME="AEN6233"
 ></A
 ><H3
 ><A
@@ -1671,7 +1671,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6243"
+NAME="AEN6249"
 ></A
 ><H3
 ><A
@@ -1752,7 +1752,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6264"
+NAME="AEN6270"
 ></A
 ><H3
 ><A
@@ -1815,7 +1815,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6280"
+NAME="AEN6286"
 ></A
 ><H3
 ><A
@@ -1899,7 +1899,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6301"
+NAME="AEN6307"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-htmlparser.html b/doc/html/gnome-xml-htmlparser.html
index 125e023..cac830f 100644
--- a/doc/html/gnome-xml-htmlparser.html
+++ b/doc/html/gnome-xml-htmlparser.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN8057"
+NAME="AEN8063"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN8060"
+NAME="AEN8066"
 ></A
 ><H2
 >Synopsis</H2
@@ -354,7 +354,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8117"
+NAME="AEN8123"
 ></A
 ><H2
 >Description</H2
@@ -364,14 +364,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8120"
+NAME="AEN8126"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8122"
+NAME="AEN8128"
 ></A
 ><H3
 ><A
@@ -397,7 +397,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8127"
+NAME="AEN8133"
 ></A
 ><H3
 ><A
@@ -423,7 +423,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8132"
+NAME="AEN8138"
 ></A
 ><H3
 ><A
@@ -449,7 +449,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8137"
+NAME="AEN8143"
 ></A
 ><H3
 ><A
@@ -475,7 +475,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8142"
+NAME="AEN8148"
 ></A
 ><H3
 ><A
@@ -501,7 +501,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8147"
+NAME="AEN8153"
 ></A
 ><H3
 ><A
@@ -527,7 +527,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8152"
+NAME="AEN8158"
 ></A
 ><H3
 ><A
@@ -553,7 +553,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8157"
+NAME="AEN8163"
 ></A
 ><H3
 ><A
@@ -579,7 +579,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8162"
+NAME="AEN8168"
 ></A
 ><H3
 ><A
@@ -605,7 +605,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8167"
+NAME="AEN8173"
 ></A
 ><H3
 ><A
@@ -639,7 +639,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8172"
+NAME="AEN8178"
 ></A
 ><H3
 ><A
@@ -665,7 +665,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8177"
+NAME="AEN8183"
 ></A
 ><H3
 ><A
@@ -695,7 +695,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8182"
+NAME="AEN8188"
 ></A
 ><H3
 ><A
@@ -721,7 +721,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8187"
+NAME="AEN8193"
 ></A
 ><H3
 ><A
@@ -802,7 +802,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8208"
+NAME="AEN8214"
 ></A
 ><H3
 ><A
@@ -885,7 +885,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8230"
+NAME="AEN8236"
 ></A
 ><H3
 ><A
@@ -986,7 +986,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8255"
+NAME="AEN8261"
 ></A
 ><H3
 ><A
@@ -1109,7 +1109,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8285"
+NAME="AEN8291"
 ></A
 ><H3
 ><A
@@ -1214,7 +1214,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8312"
+NAME="AEN8318"
 ></A
 ><H3
 ><A
@@ -1298,7 +1298,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8334"
+NAME="AEN8340"
 ></A
 ><H3
 ><A
@@ -1365,7 +1365,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8352"
+NAME="AEN8358"
 ></A
 ><H3
 ><A
@@ -1505,7 +1505,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8386"
+NAME="AEN8392"
 ></A
 ><H3
 ><A
@@ -1604,7 +1604,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8411"
+NAME="AEN8417"
 ></A
 ><H3
 ><A
@@ -1742,7 +1742,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8444"
+NAME="AEN8450"
 ></A
 ><H3
 ><A
@@ -1839,7 +1839,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8468"
+NAME="AEN8474"
 ></A
 ><H3
 ><A
@@ -1903,7 +1903,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8484"
+NAME="AEN8490"
 ></A
 ><H3
 ><A
@@ -2090,7 +2090,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8528"
+NAME="AEN8534"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-htmltree.html b/doc/html/gnome-xml-htmltree.html
index 9e0e4b2..0cb5281 100644
--- a/doc/html/gnome-xml-htmltree.html
+++ b/doc/html/gnome-xml-htmltree.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN8565"
+NAME="AEN8571"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN8568"
+NAME="AEN8574"
 ></A
 ><H2
 >Synopsis</H2
@@ -188,7 +188,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8582"
+NAME="AEN8588"
 ></A
 ><H2
 >Description</H2
@@ -198,14 +198,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8585"
+NAME="AEN8591"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8587"
+NAME="AEN8593"
 ></A
 ><H3
 ><A
@@ -231,7 +231,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8592"
+NAME="AEN8598"
 ></A
 ><H3
 ><A
@@ -257,7 +257,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8597"
+NAME="AEN8603"
 ></A
 ><H3
 ><A
@@ -283,7 +283,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8602"
+NAME="AEN8608"
 ></A
 ><H3
 ><A
@@ -386,7 +386,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8627"
+NAME="AEN8633"
 ></A
 ><H3
 ><A
@@ -470,7 +470,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8648"
+NAME="AEN8654"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-nanoftp.html b/doc/html/gnome-xml-nanoftp.html
index a4692c9..19b332e 100644
--- a/doc/html/gnome-xml-nanoftp.html
+++ b/doc/html/gnome-xml-nanoftp.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN9291"
+NAME="AEN9326"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN9294"
+NAME="AEN9329"
 ></A
 ><H2
 >Synopsis</H2
@@ -154,6 +154,7 @@
                                              int year,
                                              const char *month,
                                              int day,
+                                             int hour,
                                              int minute);
 void        (<A
 HREF="gnome-xml-nanoftp.html#FTPDATACALLBACK"
@@ -165,6 +166,10 @@
 HREF="gnome-xml-nanoftp.html#XMLNANOFTPINIT"
 >xmlNanoFTPInit</A
 >                  (void);
+void        <A
+HREF="gnome-xml-nanoftp.html#XMLNANOFTPCLEANUP"
+>xmlNanoFTPCleanup</A
+>               (void);
 void*       <A
 HREF="gnome-xml-nanoftp.html#XMLNANOFTPNEWCTXT"
 >xmlNanoFTPNewCtxt</A
@@ -194,6 +199,23 @@
 HREF="gnome-xml-nanoftp.html#XMLNANOFTPQUIT"
 >xmlNanoFTPQuit</A
 >                  (void *ctx);
+void        <A
+HREF="gnome-xml-nanoftp.html#XMLNANOFTPSCANPROXY"
+>xmlNanoFTPScanProxy</A
+>             (const char *URL);
+void        <A
+HREF="gnome-xml-nanoftp.html#XMLNANOFTPPROXY"
+>xmlNanoFTPProxy</A
+>                 (const char *host,
+                                             int port,
+                                             const char *user,
+                                             const char *passwd,
+                                             int type);
+int         <A
+HREF="gnome-xml-nanoftp.html#XMLNANOFTPUPDATEURL"
+>xmlNanoFTPUpdateURL</A
+>             (void *ctx,
+                                             const char *URL);
 int         <A
 HREF="gnome-xml-nanoftp.html#XMLNANOFTPGETRESPONSE"
 >xmlNanoFTPGetResponse</A
@@ -253,7 +275,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN9319"
+NAME="AEN9358"
 ></A
 ><H2
 >Description</H2
@@ -263,14 +285,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN9322"
+NAME="AEN9361"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9324"
+NAME="AEN9363"
 ></A
 ><H3
 ><A
@@ -299,6 +321,7 @@
                                              int year,
                                              const char *month,
                                              int day,
+                                             int hour,
                                              int minute);</PRE
 ></TD
 ></TR
@@ -494,6 +517,23 @@
 ><TT
 CLASS="PARAMETER"
 ><I
+>hour</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
 >minute</I
 ></TT
 >&nbsp;:</TD
@@ -511,7 +551,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9379"
+NAME="AEN9422"
 ></A
 ><H3
 ><A
@@ -605,7 +645,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9401"
+NAME="AEN9444"
 ></A
 ><H3
 ><A
@@ -626,14 +666,42 @@
 ></TR
 ></TABLE
 ><P
->Initialize the FTP handling.</P
+>Initialize the FTP protocol layer.
+Currently it just checks for proxy informations,
+and get the hostname</P
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9407"
+NAME="AEN9450"
+></A
+><H3
+><A
+NAME="XMLNANOFTPCLEANUP"
+></A
+>xmlNanoFTPCleanup ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoFTPCleanup               (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9455"
 ></A
 ><H3
 ><A
@@ -693,7 +761,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9422"
+NAME="AEN9470"
 ></A
 ><H3
 ><A
@@ -753,7 +821,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9437"
+NAME="AEN9485"
 ></A
 ><H3
 ><A
@@ -831,7 +899,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9456"
+NAME="AEN9504"
 ></A
 ><H3
 ><A
@@ -891,7 +959,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9471"
+NAME="AEN9519"
 ></A
 ><H3
 ><A
@@ -966,7 +1034,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9490"
+NAME="AEN9538"
 ></A
 ><H3
 ><A
@@ -1041,7 +1109,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9509"
+NAME="AEN9557"
 ></A
 ><H3
 ><A
@@ -1116,7 +1184,306 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9528"
+NAME="AEN9576"
+></A
+><H3
+><A
+NAME="XMLNANOFTPSCANPROXY"
+></A
+>xmlNanoFTPScanProxy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoFTPScanProxy             (const char *URL);</PRE
+></TD
+></TR
+></TABLE
+><P
+>(Re)Initialize the FTP Proxy context by parsing the URL and finding
+the protocol host port it indicates.
+Should be like ftp://myproxy/ or ftp://myproxy:3128/
+A NULL URL cleans up proxy informations.</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
+>URL</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  The proxy URL used to initialize the proxy context</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9591"
+></A
+><H3
+><A
+NAME="XMLNANOFTPPROXY"
+></A
+>xmlNanoFTPProxy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoFTPProxy                 (const char *host,
+                                             int port,
+                                             const char *user,
+                                             const char *passwd,
+                                             int type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Setup the FTP proxy informations.
+This can also be done by using ftp_proxy ftp_proxy_user and
+ftp_proxy_password environment variables.</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
+>host</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the proxy host name</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>port</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the proxy port</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>user</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the proxy user name</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>passwd</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the proxy password</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the type of proxy 1 for using SITE, 2 for USER a<TT
+CLASS="PARAMETER"
+><I
+>b</I
+></TT
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9623"
+></A
+><H3
+><A
+NAME="XMLNANOFTPUPDATEURL"
+></A
+>xmlNanoFTPUpdateURL ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlNanoFTPUpdateURL             (void *ctx,
+                                             const char *URL);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Update an FTP context by parsing the URL and finding
+new path it indicates. If there is an error in the 
+protocol, hostname, port or other information, the
+error is raised. It indicates a new connection has to
+be established.</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"
+>  an FTP context</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>URL</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  The URL used to update the context</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if Ok, -1 in case of error (other host).</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9646"
 ></A
 ><H3
 ><A
@@ -1191,7 +1558,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9547"
+NAME="AEN9665"
 ></A
 ><H3
 ><A
@@ -1266,7 +1633,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9566"
+NAME="AEN9684"
 ></A
 ><H3
 ><A
@@ -1357,7 +1724,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9588"
+NAME="AEN9706"
 ></A
 ><H3
 ><A
@@ -1433,7 +1800,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9607"
+NAME="AEN9725"
 ></A
 ><H3
 ><A
@@ -1508,7 +1875,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9626"
+NAME="AEN9744"
 ></A
 ><H3
 ><A
@@ -1641,7 +2008,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9658"
+NAME="AEN9776"
 ></A
 ><H3
 ><A
@@ -1709,7 +2076,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the file to retrieve</TD
+>  the file to retrieve (or NULL if path is in context).</TD
 ></TR
 ><TR
 ><TD
@@ -1734,7 +2101,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9681"
+NAME="AEN9799"
 ></A
 ><H3
 ><A
@@ -1867,7 +2234,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9713"
+NAME="AEN9831"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-nanohttp.html b/doc/html/gnome-xml-nanohttp.html
index 03619d9..5b715a4 100644
--- a/doc/html/gnome-xml-nanohttp.html
+++ b/doc/html/gnome-xml-nanohttp.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN9104"
+NAME="AEN9110"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN9107"
+NAME="AEN9113"
 ></A
 ><H2
 >Synopsis</H2
@@ -138,6 +138,18 @@
 CLASS="SYNOPSIS"
 >&#13;
 
+void        <A
+HREF="gnome-xml-nanohttp.html#XMLNANOHTTPINIT"
+>xmlNanoHTTPInit</A
+>                 (void);
+void        <A
+HREF="gnome-xml-nanohttp.html#XMLNANOHTTPCLEANUP"
+>xmlNanoHTTPCleanup</A
+>              (void);
+void        <A
+HREF="gnome-xml-nanohttp.html#XMLNANOHTTPSCANPROXY"
+>xmlNanoHTTPScanProxy</A
+>            (const char *URL);
 int         <A
 HREF="gnome-xml-nanohttp.html#XMLNANOHTTPFETCH"
 >xmlNanoHTTPFetch</A
@@ -183,7 +195,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN9117"
+NAME="AEN9126"
 ></A
 ><H2
 >Description</H2
@@ -193,14 +205,132 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN9120"
+NAME="AEN9129"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9122"
+NAME="AEN9131"
+></A
+><H3
+><A
+NAME="XMLNANOHTTPINIT"
+></A
+>xmlNanoHTTPInit ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoHTTPInit                 (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Initialize the HTTP protocol layer.
+Currently it just checks for proxy informations</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9137"
+></A
+><H3
+><A
+NAME="XMLNANOHTTPCLEANUP"
+></A
+>xmlNanoHTTPCleanup ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoHTTPCleanup              (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9142"
+></A
+><H3
+><A
+NAME="XMLNANOHTTPSCANPROXY"
+></A
+>xmlNanoHTTPScanProxy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlNanoHTTPScanProxy            (const char *URL);</PRE
+></TD
+></TR
+></TABLE
+><P
+>(Re)Initialize the HTTP Proxy context by parsing the URL and finding
+the protocol host port it indicates.
+Should be like http://myproxy/ or http://myproxy:3128/
+A NULL URL cleans up proxy informations.</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
+>URL</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  The proxy URL used to initialize the proxy context</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9157"
 ></A
 ><H3
 ><A
@@ -314,7 +444,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9149"
+NAME="AEN9184"
 ></A
 ><H3
 ><A
@@ -453,7 +583,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9181"
+NAME="AEN9216"
 ></A
 ><H3
 ><A
@@ -533,7 +663,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9200"
+NAME="AEN9235"
 ></A
 ><H3
 ><A
@@ -608,7 +738,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9219"
+NAME="AEN9254"
 ></A
 ><H3
 ><A
@@ -731,7 +861,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9248"
+NAME="AEN9283"
 ></A
 ><H3
 ><A
@@ -825,7 +955,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9271"
+NAME="AEN9306"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-parserinternals.html b/doc/html/gnome-xml-parserinternals.html
index f0fa84d..19b8f89 100644
--- a/doc/html/gnome-xml-parserinternals.html
+++ b/doc/html/gnome-xml-parserinternals.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN10004"
+NAME="AEN10122"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN10007"
+NAME="AEN10125"
 ></A
 ><H2
 >Synopsis</H2
@@ -882,7 +882,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN10217"
+NAME="AEN10335"
 ></A
 ><H2
 >Description</H2
@@ -892,14 +892,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN10220"
+NAME="AEN10338"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10222"
+NAME="AEN10340"
 ></A
 ><H3
 ><A
@@ -925,7 +925,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10227"
+NAME="AEN10345"
 ></A
 ><H3
 ><A
@@ -938,7 +938,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10231"
+NAME="AEN10349"
 ></A
 ><H3
 ><A
@@ -996,7 +996,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10245"
+NAME="AEN10363"
 ></A
 ><H3
 ><A
@@ -1054,7 +1054,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10259"
+NAME="AEN10377"
 ></A
 ><H3
 ><A
@@ -1112,7 +1112,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10273"
+NAME="AEN10391"
 ></A
 ><H3
 ><A
@@ -1170,7 +1170,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10287"
+NAME="AEN10405"
 ></A
 ><H3
 ><A
@@ -1228,7 +1228,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10301"
+NAME="AEN10419"
 ></A
 ><H3
 ><A
@@ -1286,7 +1286,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10315"
+NAME="AEN10433"
 ></A
 ><H3
 ><A
@@ -1344,7 +1344,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10329"
+NAME="AEN10447"
 ></A
 ><H3
 ><A
@@ -1402,7 +1402,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10343"
+NAME="AEN10461"
 ></A
 ><H3
 ><A
@@ -1460,7 +1460,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10357"
+NAME="AEN10475"
 ></A
 ><H3
 ><A
@@ -1518,7 +1518,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10371"
+NAME="AEN10489"
 ></A
 ><H3
 ><A
@@ -1576,7 +1576,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10385"
+NAME="AEN10503"
 ></A
 ><H3
 ><A
@@ -1634,7 +1634,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10399"
+NAME="AEN10517"
 ></A
 ><H3
 ><A
@@ -1692,7 +1692,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10413"
+NAME="AEN10531"
 ></A
 ><H3
 ><A
@@ -1750,7 +1750,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10427"
+NAME="AEN10545"
 ></A
 ><H3
 ><A
@@ -1831,7 +1831,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10448"
+NAME="AEN10566"
 ></A
 ><H3
 ><A
@@ -1911,7 +1911,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10468"
+NAME="AEN10586"
 ></A
 ><H3
 ><A
@@ -2007,7 +2007,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10492"
+NAME="AEN10610"
 ></A
 ><H3
 ><A
@@ -2071,7 +2071,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10508"
+NAME="AEN10626"
 ></A
 ><H3
 ><A
@@ -2132,7 +2132,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10524"
+NAME="AEN10642"
 ></A
 ><H3
 ><A
@@ -2217,7 +2217,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10545"
+NAME="AEN10663"
 ></A
 ><H3
 ><A
@@ -2304,7 +2304,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10567"
+NAME="AEN10685"
 ></A
 ><H3
 ><A
@@ -2406,7 +2406,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10593"
+NAME="AEN10711"
 ></A
 ><H3
 ><A
@@ -2491,7 +2491,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10614"
+NAME="AEN10732"
 ></A
 ><H3
 ><A
@@ -2573,7 +2573,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10635"
+NAME="AEN10753"
 ></A
 ><H3
 ><A
@@ -2636,7 +2636,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10651"
+NAME="AEN10769"
 ></A
 ><H3
 ><A
@@ -2735,7 +2735,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10676"
+NAME="AEN10794"
 ></A
 ><H3
 ><A
@@ -2844,7 +2844,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10705"
+NAME="AEN10823"
 ></A
 ><H3
 ><A
@@ -2930,7 +2930,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10728"
+NAME="AEN10846"
 ></A
 ><H3
 ><A
@@ -3039,7 +3039,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10757"
+NAME="AEN10875"
 ></A
 ><H3
 ><A
@@ -3124,7 +3124,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10780"
+NAME="AEN10898"
 ></A
 ><H3
 ><A
@@ -3206,7 +3206,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10801"
+NAME="AEN10919"
 ></A
 ><H3
 ><A
@@ -3275,7 +3275,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10819"
+NAME="AEN10937"
 ></A
 ><H3
 ><A
@@ -3364,7 +3364,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10843"
+NAME="AEN10961"
 ></A
 ><H3
 ><A
@@ -3452,7 +3452,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10867"
+NAME="AEN10985"
 ></A
 ><H3
 ><A
@@ -3537,7 +3537,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10890"
+NAME="AEN11008"
 ></A
 ><H3
 ><A
@@ -3642,7 +3642,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10917"
+NAME="AEN11035"
 ></A
 ><H3
 ><A
@@ -3780,7 +3780,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10951"
+NAME="AEN11069"
 ></A
 ><H3
 ><A
@@ -3863,7 +3863,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10973"
+NAME="AEN11091"
 ></A
 ><H3
 ><A
@@ -3946,7 +3946,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN10995"
+NAME="AEN11113"
 ></A
 ><H3
 ><A
@@ -4030,7 +4030,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11016"
+NAME="AEN11134"
 ></A
 ><H3
 ><A
@@ -4161,7 +4161,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11049"
+NAME="AEN11167"
 ></A
 ><H3
 ><A
@@ -4228,7 +4228,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11066"
+NAME="AEN11184"
 ></A
 ><H3
 ><A
@@ -4311,7 +4311,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11088"
+NAME="AEN11206"
 ></A
 ><H3
 ><A
@@ -4378,7 +4378,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11106"
+NAME="AEN11224"
 ></A
 ><H3
 ><A
@@ -4453,7 +4453,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11126"
+NAME="AEN11244"
 ></A
 ><H3
 ><A
@@ -4531,7 +4531,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11149"
+NAME="AEN11267"
 ></A
 ><H3
 ><A
@@ -4670,7 +4670,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11186"
+NAME="AEN11304"
 ></A
 ><H3
 ><A
@@ -4759,7 +4759,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11210"
+NAME="AEN11328"
 ></A
 ><H3
 ><A
@@ -4846,7 +4846,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11233"
+NAME="AEN11351"
 ></A
 ><H3
 ><A
@@ -4949,7 +4949,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11260"
+NAME="AEN11378"
 ></A
 ><H3
 ><A
@@ -5093,7 +5093,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11298"
+NAME="AEN11416"
 ></A
 ><H3
 ><A
@@ -5160,7 +5160,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11316"
+NAME="AEN11434"
 ></A
 ><H3
 ><A
@@ -5258,7 +5258,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11342"
+NAME="AEN11460"
 ></A
 ><H3
 ><A
@@ -5361,7 +5361,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11368"
+NAME="AEN11486"
 ></A
 ><H3
 ><A
@@ -5484,7 +5484,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11399"
+NAME="AEN11517"
 ></A
 ><H3
 ><A
@@ -5567,7 +5567,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11421"
+NAME="AEN11539"
 ></A
 ><H3
 ><A
@@ -5646,7 +5646,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11440"
+NAME="AEN11558"
 ></A
 ><H3
 ><A
@@ -5734,7 +5734,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11463"
+NAME="AEN11581"
 ></A
 ><H3
 ><A
@@ -5835,7 +5835,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11487"
+NAME="AEN11605"
 ></A
 ><H3
 ><A
@@ -5909,7 +5909,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11506"
+NAME="AEN11624"
 ></A
 ><H3
 ><A
@@ -5995,7 +5995,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11527"
+NAME="AEN11645"
 ></A
 ><H3
 ><A
@@ -6065,7 +6065,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11545"
+NAME="AEN11663"
 ></A
 ><H3
 ><A
@@ -6190,7 +6190,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11579"
+NAME="AEN11697"
 ></A
 ><H3
 ><A
@@ -6292,7 +6292,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11608"
+NAME="AEN11726"
 ></A
 ><H3
 ><A
@@ -6361,7 +6361,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11627"
+NAME="AEN11745"
 ></A
 ><H3
 ><A
@@ -6432,7 +6432,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11647"
+NAME="AEN11765"
 ></A
 ><H3
 ><A
@@ -6497,7 +6497,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11664"
+NAME="AEN11782"
 ></A
 ><H3
 ><A
@@ -6579,7 +6579,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11683"
+NAME="AEN11801"
 ></A
 ><H3
 ><A
@@ -6662,7 +6662,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11705"
+NAME="AEN11823"
 ></A
 ><H3
 ><A
@@ -6747,7 +6747,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11728"
+NAME="AEN11846"
 ></A
 ><H3
 ><A
@@ -6830,7 +6830,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11750"
+NAME="AEN11868"
 ></A
 ><H3
 ><A
@@ -6915,7 +6915,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11773"
+NAME="AEN11891"
 ></A
 ><H3
 ><A
@@ -7010,7 +7010,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11795"
+NAME="AEN11913"
 ></A
 ><H3
 ><A
@@ -7075,7 +7075,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11812"
+NAME="AEN11930"
 ></A
 ><H3
 ><A
@@ -7140,7 +7140,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11829"
+NAME="AEN11947"
 ></A
 ><H3
 ><A
@@ -7249,7 +7249,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11857"
+NAME="AEN11975"
 ></A
 ><H3
 ><A
@@ -7275,7 +7275,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11862"
+NAME="AEN11980"
 ></A
 ><H3
 ><A
@@ -7301,7 +7301,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11867"
+NAME="AEN11985"
 ></A
 ><H3
 ><A
@@ -7327,7 +7327,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11872"
+NAME="AEN11990"
 ></A
 ><H3
 ><A
@@ -7353,7 +7353,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11877"
+NAME="AEN11995"
 ></A
 ><H3
 ><A
@@ -7536,7 +7536,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11922"
+NAME="AEN12040"
 ></A
 ><H3
 ><A
@@ -7633,7 +7633,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11946"
+NAME="AEN12064"
 ></A
 ><H3
 ><A
@@ -7712,7 +7712,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11966"
+NAME="AEN12084"
 ></A
 ><H3
 ><A
@@ -7809,7 +7809,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN11990"
+NAME="AEN12108"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-tree.html b/doc/html/gnome-xml-tree.html
index d14b4c6..c645c4a 100644
--- a/doc/html/gnome-xml-tree.html
+++ b/doc/html/gnome-xml-tree.html
@@ -302,6 +302,10 @@
 HREF="gnome-xml-tree.html#XMLBUFFERALLOCSCHEME"
 >xmlBufferAllocScheme</A
 >;
+extern      int <A
+HREF="gnome-xml-tree.html#XMLSAVENOEMPTYTAGS"
+>xmlSaveNoEmptyTags</A
+>;
 <A
 HREF="gnome-xml-tree.html#XMLBUFFERPTR"
 >xmlBufferPtr</A
@@ -1455,7 +1459,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN3349"
+NAME="AEN3350"
 ></A
 ><H2
 >Description</H2
@@ -1465,14 +1469,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN3352"
+NAME="AEN3353"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3354"
+NAME="AEN3355"
 ></A
 ><H3
 ><A
@@ -1512,7 +1516,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3359"
+NAME="AEN3360"
 ></A
 ><H3
 ><A
@@ -1525,7 +1529,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3363"
+NAME="AEN3364"
 ></A
 ><H3
 ><A
@@ -1551,7 +1555,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3368"
+NAME="AEN3369"
 ></A
 ><H3
 ><A
@@ -1577,7 +1581,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3373"
+NAME="AEN3374"
 ></A
 ><H3
 ><A
@@ -1607,7 +1611,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3378"
+NAME="AEN3379"
 ></A
 ><H3
 ><A
@@ -1633,7 +1637,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3383"
+NAME="AEN3384"
 ></A
 ><H3
 ><A
@@ -1670,7 +1674,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3388"
+NAME="AEN3389"
 ></A
 ><H3
 ><A
@@ -1701,7 +1705,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3393"
+NAME="AEN3394"
 ></A
 ><H3
 ><A
@@ -1730,7 +1734,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3398"
+NAME="AEN3399"
 ></A
 ><H3
 ><A
@@ -1756,7 +1760,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3403"
+NAME="AEN3404"
 ></A
 ><H3
 ><A
@@ -1791,7 +1795,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3408"
+NAME="AEN3409"
 ></A
 ><H3
 ><A
@@ -1817,7 +1821,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3413"
+NAME="AEN3414"
 ></A
 ><H3
 ><A
@@ -1848,7 +1852,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3418"
+NAME="AEN3419"
 ></A
 ><H3
 ><A
@@ -1879,7 +1883,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3423"
+NAME="AEN3424"
 ></A
 ><H3
 ><A
@@ -1911,7 +1915,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3428"
+NAME="AEN3429"
 ></A
 ><H3
 ><A
@@ -1937,7 +1941,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3433"
+NAME="AEN3434"
 ></A
 ><H3
 ><A
@@ -1968,7 +1972,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3438"
+NAME="AEN3439"
 ></A
 ><H3
 ><A
@@ -1999,7 +2003,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3443"
+NAME="AEN3444"
 ></A
 ><H3
 ><A
@@ -2025,7 +2029,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3448"
+NAME="AEN3449"
 ></A
 ><H3
 ><A
@@ -2054,7 +2058,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3453"
+NAME="AEN3454"
 ></A
 ><H3
 ><A
@@ -2085,7 +2089,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3458"
+NAME="AEN3459"
 ></A
 ><H3
 ><A
@@ -2111,7 +2115,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3463"
+NAME="AEN3464"
 ></A
 ><H3
 ><A
@@ -2146,7 +2150,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3468"
+NAME="AEN3469"
 ></A
 ><H3
 ><A
@@ -2172,7 +2176,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3473"
+NAME="AEN3474"
 ></A
 ><H3
 ><A
@@ -2209,7 +2213,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3478"
+NAME="AEN3479"
 ></A
 ><H3
 ><A
@@ -2235,7 +2239,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3483"
+NAME="AEN3484"
 ></A
 ><H3
 ><A
@@ -2265,7 +2269,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3488"
+NAME="AEN3489"
 ></A
 ><H3
 ><A
@@ -2291,7 +2295,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3493"
+NAME="AEN3494"
 ></A
 ><H3
 ><A
@@ -2321,7 +2325,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3498"
+NAME="AEN3499"
 ></A
 ><H3
 ><A
@@ -2347,7 +2351,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3503"
+NAME="AEN3504"
 ></A
 ><H3
 ><A
@@ -2378,7 +2382,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3509"
+NAME="AEN3510"
 ></A
 ><H3
 ><A
@@ -2409,7 +2413,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3514"
+NAME="AEN3515"
 ></A
 ><H3
 ><A
@@ -2435,7 +2439,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3519"
+NAME="AEN3520"
 ></A
 ><H3
 ><A
@@ -2482,7 +2486,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3524"
+NAME="AEN3525"
 ></A
 ><H3
 ><A
@@ -2508,7 +2512,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3529"
+NAME="AEN3530"
 ></A
 ><H3
 ><A
@@ -2551,7 +2555,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3534"
+NAME="AEN3535"
 ></A
 ><H3
 ><A
@@ -2577,7 +2581,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3539"
+NAME="AEN3540"
 ></A
 ><H3
 ><A
@@ -2603,7 +2607,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3544"
+NAME="AEN3545"
 ></A
 ><H3
 ><A
@@ -2629,7 +2633,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3549"
+NAME="AEN3550"
 ></A
 ><H3
 ><A
@@ -2655,7 +2659,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3554"
+NAME="AEN3555"
 ></A
 ><H3
 ><A
@@ -2681,7 +2685,33 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3559"
+NAME="AEN3560"
+></A
+><H3
+><A
+NAME="XMLSAVENOEMPTYTAGS"
+></A
+>xmlSaveNoEmptyTags</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern int xmlSaveNoEmptyTags;   /* save empty tags as &lt;empty&gt;&lt;/empty&gt; */</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3565"
 ></A
 ><H3
 ><A
@@ -2742,7 +2772,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3575"
+NAME="AEN3581"
 ></A
 ><H3
 ><A
@@ -2823,7 +2853,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3596"
+NAME="AEN3602"
 ></A
 ><H3
 ><A
@@ -2886,7 +2916,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3612"
+NAME="AEN3618"
 ></A
 ><H3
 ><A
@@ -2985,7 +3015,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3637"
+NAME="AEN3643"
 ></A
 ><H3
 ><A
@@ -3088,7 +3118,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3662"
+NAME="AEN3668"
 ></A
 ><H3
 ><A
@@ -3172,7 +3202,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3683"
+NAME="AEN3689"
 ></A
 ><H3
 ><A
@@ -3253,7 +3283,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3703"
+NAME="AEN3709"
 ></A
 ><H3
 ><A
@@ -3349,7 +3379,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3727"
+NAME="AEN3733"
 ></A
 ><H3
 ><A
@@ -3412,7 +3442,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3743"
+NAME="AEN3749"
 ></A
 ><H3
 ><A
@@ -3493,7 +3523,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3764"
+NAME="AEN3770"
 ></A
 ><H3
 ><A
@@ -3569,7 +3599,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3783"
+NAME="AEN3789"
 ></A
 ><H3
 ><A
@@ -3651,7 +3681,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3803"
+NAME="AEN3809"
 ></A
 ><H3
 ><A
@@ -3729,7 +3759,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3823"
+NAME="AEN3829"
 ></A
 ><H3
 ><A
@@ -3873,7 +3903,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3859"
+NAME="AEN3865"
 ></A
 ><H3
 ><A
@@ -4017,7 +4047,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3895"
+NAME="AEN3901"
 ></A
 ><H3
 ><A
@@ -4080,7 +4110,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3911"
+NAME="AEN3917"
 ></A
 ><H3
 ><A
@@ -4205,7 +4235,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3942"
+NAME="AEN3948"
 ></A
 ><H3
 ><A
@@ -4330,7 +4360,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3973"
+NAME="AEN3979"
 ></A
 ><H3
 ><A
@@ -4393,7 +4423,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3989"
+NAME="AEN3995"
 ></A
 ><H3
 ><A
@@ -4474,7 +4504,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4010"
+NAME="AEN4016"
 ></A
 ><H3
 ><A
@@ -4538,7 +4568,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4026"
+NAME="AEN4032"
 ></A
 ><H3
 ><A
@@ -4661,7 +4691,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4057"
+NAME="AEN4063"
 ></A
 ><H3
 ><A
@@ -4784,7 +4814,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4088"
+NAME="AEN4094"
 ></A
 ><H3
 ><A
@@ -4928,7 +4958,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4124"
+NAME="AEN4130"
 ></A
 ><H3
 ><A
@@ -4991,7 +5021,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4140"
+NAME="AEN4146"
 ></A
 ><H3
 ><A
@@ -5054,7 +5084,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4156"
+NAME="AEN4162"
 ></A
 ><H3
 ><A
@@ -5156,7 +5186,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4182"
+NAME="AEN4188"
 ></A
 ><H3
 ><A
@@ -5258,7 +5288,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4208"
+NAME="AEN4214"
 ></A
 ><H3
 ><A
@@ -5339,7 +5369,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4229"
+NAME="AEN4235"
 ></A
 ><H3
 ><A
@@ -5439,7 +5469,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4254"
+NAME="AEN4260"
 ></A
 ><H3
 ><A
@@ -5609,7 +5639,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4295"
+NAME="AEN4301"
 ></A
 ><H3
 ><A
@@ -5764,7 +5794,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4333"
+NAME="AEN4339"
 ></A
 ><H3
 ><A
@@ -5878,7 +5908,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4361"
+NAME="AEN4367"
 ></A
 ><H3
 ><A
@@ -6054,7 +6084,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4403"
+NAME="AEN4409"
 ></A
 ><H3
 ><A
@@ -6215,7 +6245,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4442"
+NAME="AEN4448"
 ></A
 ><H3
 ><A
@@ -6317,7 +6347,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4468"
+NAME="AEN4474"
 ></A
 ><H3
 ><A
@@ -6398,7 +6428,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4489"
+NAME="AEN4495"
 ></A
 ><H3
 ><A
@@ -6500,7 +6530,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4515"
+NAME="AEN4521"
 ></A
 ><H3
 ><A
@@ -6621,7 +6651,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4545"
+NAME="AEN4551"
 ></A
 ><H3
 ><A
@@ -6720,7 +6750,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4570"
+NAME="AEN4576"
 ></A
 ><H3
 ><A
@@ -6822,7 +6852,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4596"
+NAME="AEN4602"
 ></A
 ><H3
 ><A
@@ -6903,7 +6933,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4617"
+NAME="AEN4623"
 ></A
 ><H3
 ><A
@@ -7023,7 +7053,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4647"
+NAME="AEN4653"
 ></A
 ><H3
 ><A
@@ -7125,7 +7155,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4673"
+NAME="AEN4679"
 ></A
 ><H3
 ><A
@@ -7224,7 +7254,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4698"
+NAME="AEN4704"
 ></A
 ><H3
 ><A
@@ -7305,7 +7335,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4719"
+NAME="AEN4725"
 ></A
 ><H3
 ><A
@@ -7386,7 +7416,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4740"
+NAME="AEN4746"
 ></A
 ><H3
 ><A
@@ -7468,7 +7498,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4761"
+NAME="AEN4767"
 ></A
 ><H3
 ><A
@@ -7549,7 +7579,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4782"
+NAME="AEN4788"
 ></A
 ><H3
 ><A
@@ -7627,7 +7657,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4802"
+NAME="AEN4808"
 ></A
 ><H3
 ><A
@@ -7730,7 +7760,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4828"
+NAME="AEN4834"
 ></A
 ><H3
 ><A
@@ -7815,7 +7845,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4849"
+NAME="AEN4855"
 ></A
 ><H3
 ><A
@@ -7922,7 +7952,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4876"
+NAME="AEN4882"
 ></A
 ><H3
 ><A
@@ -8026,7 +8056,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4902"
+NAME="AEN4908"
 ></A
 ><H3
 ><A
@@ -8140,7 +8170,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4930"
+NAME="AEN4936"
 ></A
 ><H3
 ><A
@@ -8254,7 +8284,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4958"
+NAME="AEN4964"
 ></A
 ><H3
 ><A
@@ -8368,7 +8398,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4986"
+NAME="AEN4992"
 ></A
 ><H3
 ><A
@@ -8431,7 +8461,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5002"
+NAME="AEN5008"
 ></A
 ><H3
 ><A
@@ -8533,7 +8563,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5028"
+NAME="AEN5034"
 ></A
 ><H3
 ><A
@@ -8640,7 +8670,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5054"
+NAME="AEN5060"
 ></A
 ><H3
 ><A
@@ -8704,7 +8734,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5070"
+NAME="AEN5076"
 ></A
 ><H3
 ><A
@@ -8767,7 +8797,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5086"
+NAME="AEN5092"
 ></A
 ><H3
 ><A
@@ -8846,7 +8876,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5106"
+NAME="AEN5112"
 ></A
 ><H3
 ><A
@@ -8977,7 +9007,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5138"
+NAME="AEN5144"
 ></A
 ><H3
 ><A
@@ -9101,7 +9131,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5169"
+NAME="AEN5175"
 ></A
 ><H3
 ><A
@@ -9205,7 +9235,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5195"
+NAME="AEN5201"
 ></A
 ><H3
 ><A
@@ -9289,7 +9319,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5216"
+NAME="AEN5222"
 ></A
 ><H3
 ><A
@@ -9370,7 +9400,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5237"
+NAME="AEN5243"
 ></A
 ><H3
 ><A
@@ -9451,7 +9481,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5258"
+NAME="AEN5264"
 ></A
 ><H3
 ><A
@@ -9574,7 +9604,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5289"
+NAME="AEN5295"
 ></A
 ><H3
 ><A
@@ -9683,7 +9713,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5316"
+NAME="AEN5322"
 ></A
 ><H3
 ><A
@@ -9814,7 +9844,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5348"
+NAME="AEN5354"
 ></A
 ><H3
 ><A
@@ -9917,7 +9947,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5374"
+NAME="AEN5380"
 ></A
 ><H3
 ><A
@@ -10038,7 +10068,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5404"
+NAME="AEN5410"
 ></A
 ><H3
 ><A
@@ -10159,7 +10189,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5434"
+NAME="AEN5440"
 ></A
 ><H3
 ><A
@@ -10243,7 +10273,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5455"
+NAME="AEN5461"
 ></A
 ><H3
 ><A
@@ -10350,7 +10380,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5481"
+NAME="AEN5487"
 ></A
 ><H3
 ><A
@@ -10434,7 +10464,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5502"
+NAME="AEN5508"
 ></A
 ><H3
 ><A
@@ -10541,7 +10571,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5528"
+NAME="AEN5534"
 ></A
 ><H3
 ><A
@@ -10626,7 +10656,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5549"
+NAME="AEN5555"
 ></A
 ><H3
 ><A
@@ -10709,7 +10739,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5570"
+NAME="AEN5576"
 ></A
 ><H3
 ><A
@@ -10794,7 +10824,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5591"
+NAME="AEN5597"
 ></A
 ><H3
 ><A
@@ -10898,7 +10928,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5617"
+NAME="AEN5623"
 ></A
 ><H3
 ><A
@@ -10974,7 +11004,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5636"
+NAME="AEN5642"
 ></A
 ><H3
 ><A
@@ -11059,7 +11089,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5657"
+NAME="AEN5663"
 ></A
 ><H3
 ><A
@@ -11141,7 +11171,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5677"
+NAME="AEN5683"
 ></A
 ><H3
 ><A
@@ -11227,7 +11257,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5698"
+NAME="AEN5704"
 ></A
 ><H3
 ><A
@@ -11330,7 +11360,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5723"
+NAME="AEN5729"
 ></A
 ><H3
 ><A
@@ -11414,7 +11444,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5744"
+NAME="AEN5750"
 ></A
 ><H3
 ><A
@@ -11519,7 +11549,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5770"
+NAME="AEN5776"
 ></A
 ><H3
 ><A
@@ -11622,7 +11652,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5795"
+NAME="AEN5801"
 ></A
 ><H3
 ><A
@@ -11700,7 +11730,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5815"
+NAME="AEN5821"
 ></A
 ><H3
 ><A
@@ -11782,7 +11812,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5835"
+NAME="AEN5841"
 ></A
 ><H3
 ><A
@@ -11840,7 +11870,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5850"
+NAME="AEN5856"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-valid.html b/doc/html/gnome-xml-valid.html
index 27ed67b..e618211 100644
--- a/doc/html/gnome-xml-valid.html
+++ b/doc/html/gnome-xml-valid.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6312"
+NAME="AEN6318"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6315"
+NAME="AEN6321"
 ></A
 ><H2
 >Synopsis</H2
@@ -859,7 +859,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6511"
+NAME="AEN6517"
 ></A
 ><H2
 >Description</H2
@@ -869,14 +869,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6514"
+NAME="AEN6520"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6516"
+NAME="AEN6522"
 ></A
 ><H3
 ><A
@@ -970,7 +970,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6538"
+NAME="AEN6544"
 ></A
 ><H3
 ><A
@@ -1064,7 +1064,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6560"
+NAME="AEN6566"
 ></A
 ><H3
 ><A
@@ -1094,7 +1094,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6565"
+NAME="AEN6571"
 ></A
 ><H3
 ><A
@@ -1120,7 +1120,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6570"
+NAME="AEN6576"
 ></A
 ><H3
 ><A
@@ -1146,7 +1146,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6575"
+NAME="AEN6581"
 ></A
 ><H3
 ><A
@@ -1176,7 +1176,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6580"
+NAME="AEN6586"
 ></A
 ><H3
 ><A
@@ -1202,7 +1202,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6585"
+NAME="AEN6591"
 ></A
 ><H3
 ><A
@@ -1228,7 +1228,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6590"
+NAME="AEN6596"
 ></A
 ><H3
 ><A
@@ -1258,7 +1258,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6595"
+NAME="AEN6601"
 ></A
 ><H3
 ><A
@@ -1284,7 +1284,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6600"
+NAME="AEN6606"
 ></A
 ><H3
 ><A
@@ -1310,7 +1310,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6605"
+NAME="AEN6611"
 ></A
 ><H3
 ><A
@@ -1340,7 +1340,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6610"
+NAME="AEN6616"
 ></A
 ><H3
 ><A
@@ -1366,7 +1366,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6615"
+NAME="AEN6621"
 ></A
 ><H3
 ><A
@@ -1392,7 +1392,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6620"
+NAME="AEN6626"
 ></A
 ><H3
 ><A
@@ -1422,7 +1422,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6625"
+NAME="AEN6631"
 ></A
 ><H3
 ><A
@@ -1448,7 +1448,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6630"
+NAME="AEN6636"
 ></A
 ><H3
 ><A
@@ -1474,7 +1474,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6635"
+NAME="AEN6641"
 ></A
 ><H3
 ><A
@@ -1504,7 +1504,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6640"
+NAME="AEN6646"
 ></A
 ><H3
 ><A
@@ -1530,7 +1530,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6645"
+NAME="AEN6651"
 ></A
 ><H3
 ><A
@@ -1695,7 +1695,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6686"
+NAME="AEN6692"
 ></A
 ><H3
 ><A
@@ -1776,7 +1776,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6707"
+NAME="AEN6713"
 ></A
 ><H3
 ><A
@@ -1839,7 +1839,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6723"
+NAME="AEN6729"
 ></A
 ><H3
 ><A
@@ -1923,7 +1923,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6744"
+NAME="AEN6750"
 ></A
 ><H3
 ><A
@@ -2025,7 +2025,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6770"
+NAME="AEN6776"
 ></A
 ><H3
 ><A
@@ -2106,7 +2106,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6791"
+NAME="AEN6797"
 ></A
 ><H3
 ><A
@@ -2169,7 +2169,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6807"
+NAME="AEN6813"
 ></A
 ><H3
 ><A
@@ -2334,7 +2334,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6848"
+NAME="AEN6854"
 ></A
 ><H3
 ><A
@@ -2415,7 +2415,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6869"
+NAME="AEN6875"
 ></A
 ><H3
 ><A
@@ -2478,7 +2478,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6885"
+NAME="AEN6891"
 ></A
 ><H3
 ><A
@@ -2562,7 +2562,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6906"
+NAME="AEN6912"
 ></A
 ><H3
 ><A
@@ -2644,7 +2644,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6927"
+NAME="AEN6933"
 ></A
 ><H3
 ><A
@@ -2707,7 +2707,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6943"
+NAME="AEN6949"
 ></A
 ><H3
 ><A
@@ -2789,7 +2789,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6964"
+NAME="AEN6970"
 ></A
 ><H3
 ><A
@@ -3017,7 +3017,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7020"
+NAME="AEN7026"
 ></A
 ><H3
 ><A
@@ -3098,7 +3098,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7041"
+NAME="AEN7047"
 ></A
 ><H3
 ><A
@@ -3161,7 +3161,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7057"
+NAME="AEN7063"
 ></A
 ><H3
 ><A
@@ -3245,7 +3245,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7078"
+NAME="AEN7084"
 ></A
 ><H3
 ><A
@@ -3389,7 +3389,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7114"
+NAME="AEN7120"
 ></A
 ><H3
 ><A
@@ -3468,7 +3468,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7134"
+NAME="AEN7140"
 ></A
 ><H3
 ><A
@@ -3531,7 +3531,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7150"
+NAME="AEN7156"
 ></A
 ><H3
 ><A
@@ -3633,7 +3633,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7176"
+NAME="AEN7182"
 ></A
 ><H3
 ><A
@@ -3755,7 +3755,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7206"
+NAME="AEN7212"
 ></A
 ><H3
 ><A
@@ -3854,7 +3854,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7231"
+NAME="AEN7237"
 ></A
 ><H3
 ><A
@@ -3998,7 +3998,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7267"
+NAME="AEN7273"
 ></A
 ><H3
 ><A
@@ -4077,7 +4077,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7287"
+NAME="AEN7293"
 ></A
 ><H3
 ><A
@@ -4140,7 +4140,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7303"
+NAME="AEN7309"
 ></A
 ><H3
 ><A
@@ -4262,7 +4262,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7333"
+NAME="AEN7339"
 ></A
 ><H3
 ><A
@@ -4361,7 +4361,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7358"
+NAME="AEN7364"
 ></A
 ><H3
 ><A
@@ -4464,7 +4464,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7383"
+NAME="AEN7389"
 ></A
 ><H3
 ><A
@@ -4589,7 +4589,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7413"
+NAME="AEN7419"
 ></A
 ><H3
 ><A
@@ -4716,7 +4716,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7444"
+NAME="AEN7450"
 ></A
 ><H3
 ><A
@@ -4830,7 +4830,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7473"
+NAME="AEN7479"
 ></A
 ><H3
 ><A
@@ -4954,7 +4954,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7503"
+NAME="AEN7509"
 ></A
 ><H3
 ><A
@@ -5076,7 +5076,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7534"
+NAME="AEN7540"
 ></A
 ><H3
 ><A
@@ -5179,7 +5179,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7560"
+NAME="AEN7566"
 ></A
 ><H3
 ><A
@@ -5299,7 +5299,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7590"
+NAME="AEN7596"
 ></A
 ><H3
 ><A
@@ -5429,7 +5429,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7622"
+NAME="AEN7628"
 ></A
 ><H3
 ><A
@@ -5603,7 +5603,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7663"
+NAME="AEN7669"
 ></A
 ><H3
 ><A
@@ -5705,7 +5705,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7689"
+NAME="AEN7695"
 ></A
 ><H3
 ><A
@@ -5826,7 +5826,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7719"
+NAME="AEN7725"
 ></A
 ><H3
 ><A
@@ -5926,7 +5926,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7744"
+NAME="AEN7750"
 ></A
 ><H3
 ><A
@@ -6050,7 +6050,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7775"
+NAME="AEN7781"
 ></A
 ><H3
 ><A
@@ -6152,7 +6152,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7801"
+NAME="AEN7807"
 ></A
 ><H3
 ><A
@@ -6254,7 +6254,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7827"
+NAME="AEN7833"
 ></A
 ><H3
 ><A
@@ -6420,7 +6420,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7865"
+NAME="AEN7871"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-xml-error.html b/doc/html/gnome-xml-xml-error.html
index 84e5899..56a1bd6 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="AEN7903"
+NAME="AEN7909"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN7906"
+NAME="AEN7912"
 ></A
 ><H2
 >Synopsis</H2
@@ -187,7 +187,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7918"
+NAME="AEN7924"
 ></A
 ><H2
 >Description</H2
@@ -197,14 +197,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7921"
+NAME="AEN7927"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7923"
+NAME="AEN7929"
 ></A
 ><H3
 ><A
@@ -341,7 +341,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7928"
+NAME="AEN7934"
 ></A
 ><H3
 ><A
@@ -438,7 +438,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7951"
+NAME="AEN7957"
 ></A
 ><H3
 ><A
@@ -535,7 +535,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7974"
+NAME="AEN7980"
 ></A
 ><H3
 ><A
@@ -632,7 +632,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7997"
+NAME="AEN8003"
 ></A
 ><H3
 ><A
@@ -729,7 +729,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8020"
+NAME="AEN8026"
 ></A
 ><H3
 ><A
@@ -792,7 +792,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8036"
+NAME="AEN8042"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-xmlio.html b/doc/html/gnome-xml-xmlio.html
index 77dc6be..b5a495f 100644
--- a/doc/html/gnome-xml-xmlio.html
+++ b/doc/html/gnome-xml-xmlio.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN9747"
+NAME="AEN9865"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN9750"
+NAME="AEN9868"
 ></A
 ><H2
 >Synopsis</H2
@@ -239,7 +239,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN9777"
+NAME="AEN9895"
 ></A
 ><H2
 >Description</H2
@@ -249,14 +249,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN9780"
+NAME="AEN9898"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9782"
+NAME="AEN9900"
 ></A
 ><H3
 ><A
@@ -293,7 +293,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9787"
+NAME="AEN9905"
 ></A
 ><H3
 ><A
@@ -319,7 +319,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9792"
+NAME="AEN9910"
 ></A
 ><H3
 ><A
@@ -401,7 +401,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9813"
+NAME="AEN9931"
 ></A
 ><H3
 ><A
@@ -504,7 +504,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9838"
+NAME="AEN9956"
 ></A
 ><H3
 ><A
@@ -608,7 +608,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9864"
+NAME="AEN9982"
 ></A
 ><H3
 ><A
@@ -709,7 +709,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9889"
+NAME="AEN10007"
 ></A
 ><H3
 ><A
@@ -808,7 +808,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9913"
+NAME="AEN10031"
 ></A
 ><H3
 ><A
@@ -908,7 +908,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9937"
+NAME="AEN10055"
 ></A
 ><H3
 ><A
@@ -1025,7 +1025,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9965"
+NAME="AEN10083"
 ></A
 ><H3
 ><A
@@ -1088,7 +1088,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9981"
+NAME="AEN10099"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-xmlmemory.html b/doc/html/gnome-xml-xmlmemory.html
index a9781b1..306ed02 100644
--- a/doc/html/gnome-xml-xmlmemory.html
+++ b/doc/html/gnome-xml-xmlmemory.html
@@ -103,7 +103,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN12600"
+NAME="AEN12718"
 ></A
 ><H2
 >Name</H2
@@ -111,7 +111,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN12603"
+NAME="AEN12721"
 ></A
 ><H2
 >Synopsis</H2
@@ -212,7 +212,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN12624"
+NAME="AEN12742"
 ></A
 ><H2
 >Description</H2
@@ -222,14 +222,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN12627"
+NAME="AEN12745"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12629"
+NAME="AEN12747"
 ></A
 ><H3
 ><A
@@ -255,7 +255,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12634"
+NAME="AEN12752"
 ></A
 ><H3
 ><A
@@ -318,7 +318,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12650"
+NAME="AEN12768"
 ></A
 ><H3
 ><A
@@ -381,7 +381,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12666"
+NAME="AEN12784"
 ></A
 ><H3
 ><A
@@ -462,7 +462,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12686"
+NAME="AEN12804"
 ></A
 ><H3
 ><A
@@ -540,7 +540,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12706"
+NAME="AEN12824"
 ></A
 ><H3
 ><A
@@ -598,7 +598,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12721"
+NAME="AEN12839"
 ></A
 ><H3
 ><A
@@ -656,7 +656,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12736"
+NAME="AEN12854"
 ></A
 ><H3
 ><A
@@ -684,7 +684,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12742"
+NAME="AEN12860"
 ></A
 ><H3
 ><A
@@ -748,7 +748,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12758"
+NAME="AEN12876"
 ></A
 ><H3
 ><A
@@ -835,7 +835,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12779"
+NAME="AEN12897"
 ></A
 ><H3
 ><A
@@ -861,7 +861,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12784"
+NAME="AEN12902"
 ></A
 ><H3
 ><A
@@ -887,7 +887,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12789"
+NAME="AEN12907"
 ></A
 ><H3
 ><A
@@ -913,7 +913,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12794"
+NAME="AEN12912"
 ></A
 ><H3
 ><A
@@ -1018,7 +1018,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12819"
+NAME="AEN12937"
 ></A
 ><H3
 ><A
@@ -1135,7 +1135,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN12847"
+NAME="AEN12965"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-xpath.html b/doc/html/gnome-xml-xpath.html
index ede908b..0877026 100644
--- a/doc/html/gnome-xml-xpath.html
+++ b/doc/html/gnome-xml-xpath.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN8677"
+NAME="AEN8683"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN8680"
+NAME="AEN8686"
 ></A
 ><H2
 >Synopsis</H2
@@ -347,7 +347,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8737"
+NAME="AEN8743"
 ></A
 ><H2
 >Description</H2
@@ -357,14 +357,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN8740"
+NAME="AEN8746"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8742"
+NAME="AEN8748"
 ></A
 ><H3
 ><A
@@ -415,7 +415,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8747"
+NAME="AEN8753"
 ></A
 ><H3
 ><A
@@ -441,7 +441,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8752"
+NAME="AEN8758"
 ></A
 ><H3
 ><A
@@ -478,7 +478,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8757"
+NAME="AEN8763"
 ></A
 ><H3
 ><A
@@ -504,7 +504,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8762"
+NAME="AEN8768"
 ></A
 ><H3
 ><A
@@ -534,7 +534,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8767"
+NAME="AEN8773"
 ></A
 ><H3
 ><A
@@ -560,7 +560,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8772"
+NAME="AEN8778"
 ></A
 ><H3
 ><A
@@ -586,7 +586,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8777"
+NAME="AEN8783"
 ></A
 ><H3
 ><A
@@ -612,7 +612,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8782"
+NAME="AEN8788"
 ></A
 ><H3
 ><A
@@ -638,7 +638,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8787"
+NAME="AEN8793"
 ></A
 ><H3
 ><A
@@ -664,7 +664,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8792"
+NAME="AEN8798"
 ></A
 ><H3
 ><A
@@ -690,7 +690,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8797"
+NAME="AEN8803"
 ></A
 ><H3
 ><A
@@ -716,7 +716,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8802"
+NAME="AEN8808"
 ></A
 ><H3
 ><A
@@ -749,7 +749,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8807"
+NAME="AEN8813"
 ></A
 ><H3
 ><A
@@ -775,7 +775,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8812"
+NAME="AEN8818"
 ></A
 ><H3
 ><A
@@ -869,7 +869,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8835"
+NAME="AEN8841"
 ></A
 ><H3
 ><A
@@ -898,7 +898,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8840"
+NAME="AEN8846"
 ></A
 ><H3
 ><A
@@ -924,7 +924,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8845"
+NAME="AEN8851"
 ></A
 ><H3
 ><A
@@ -953,7 +953,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8850"
+NAME="AEN8856"
 ></A
 ><H3
 ><A
@@ -979,7 +979,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8855"
+NAME="AEN8861"
 ></A
 ><H3
 ><A
@@ -1058,7 +1058,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8874"
+NAME="AEN8880"
 ></A
 ><H3
 ><A
@@ -1087,7 +1087,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8879"
+NAME="AEN8885"
 ></A
 ><H3
 ><A
@@ -1113,7 +1113,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8884"
+NAME="AEN8890"
 ></A
 ><H3
 ><A
@@ -1213,7 +1213,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8909"
+NAME="AEN8915"
 ></A
 ><H3
 ><A
@@ -1242,7 +1242,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8914"
+NAME="AEN8920"
 ></A
 ><H3
 ><A
@@ -1268,7 +1268,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8919"
+NAME="AEN8925"
 ></A
 ><H3
 ><A
@@ -1347,7 +1347,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8938"
+NAME="AEN8944"
 ></A
 ><H3
 ><A
@@ -1428,7 +1428,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8959"
+NAME="AEN8965"
 ></A
 ><H3
 ><A
@@ -1491,7 +1491,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8975"
+NAME="AEN8981"
 ></A
 ><H3
 ><A
@@ -1594,7 +1594,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9001"
+NAME="AEN9007"
 ></A
 ><H3
 ><A
@@ -1657,7 +1657,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9017"
+NAME="AEN9023"
 ></A
 ><H3
 ><A
@@ -1760,7 +1760,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9043"
+NAME="AEN9049"
 ></A
 ><H3
 ><A
@@ -1846,7 +1846,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9065"
+NAME="AEN9071"
 ></A
 ><H3
 ><A
@@ -1918,7 +1918,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN9083"
+NAME="AEN9089"
 ></A
 ><H3
 ><A
diff --git a/doc/html/index.sgml b/doc/html/index.sgml
index d9edaba..56ee8c6 100644
--- a/doc/html/index.sgml
+++ b/doc/html/index.sgml
@@ -171,6 +171,7 @@
 <ANCHOR id ="OLDXMLWDCOMPATIBILITY" href="gnome-xml/gnome-xml-tree.html#OLDXMLWDCOMPATIBILITY">
 <ANCHOR id ="XMLINDENTTREEOUTPUT" href="gnome-xml/gnome-xml-tree.html#XMLINDENTTREEOUTPUT">
 <ANCHOR id ="XMLBUFFERALLOCSCHEME" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERALLOCSCHEME">
+<ANCHOR id ="XMLSAVENOEMPTYTAGS" href="gnome-xml/gnome-xml-tree.html#XMLSAVENOEMPTYTAGS">
 <ANCHOR id ="XMLBUFFERCREATE" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERCREATE">
 <ANCHOR id ="XMLBUFFERCREATESIZE" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERCREATESIZE">
 <ANCHOR id ="XMLBUFFERFREE" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERFREE">
@@ -437,6 +438,9 @@
 <ANCHOR id ="XMLXPATHFREENODESETLIST" href="gnome-xml/gnome-xml-xpath.html#XMLXPATHFREENODESETLIST">
 <ANCHOR id ="XMLXPATHFREENODESET" href="gnome-xml/gnome-xml-xpath.html#XMLXPATHFREENODESET">
 <ANCHOR id ="GNOME-XML-NANOHTTP" href="gnome-xml/gnome-xml-nanohttp.html">
+<ANCHOR id ="XMLNANOHTTPINIT" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPINIT">
+<ANCHOR id ="XMLNANOHTTPCLEANUP" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPCLEANUP">
+<ANCHOR id ="XMLNANOHTTPSCANPROXY" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPSCANPROXY">
 <ANCHOR id ="XMLNANOHTTPFETCH" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPFETCH">
 <ANCHOR id ="XMLNANOHTTPMETHOD" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPMETHOD">
 <ANCHOR id ="XMLNANOHTTPOPEN" href="gnome-xml/gnome-xml-nanohttp.html#XMLNANOHTTPOPEN">
@@ -448,6 +452,7 @@
 <ANCHOR id ="FTPLISTCALLBACK" href="gnome-xml/gnome-xml-nanoftp.html#FTPLISTCALLBACK">
 <ANCHOR id ="FTPDATACALLBACK" href="gnome-xml/gnome-xml-nanoftp.html#FTPDATACALLBACK">
 <ANCHOR id ="XMLNANOFTPINIT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPINIT">
+<ANCHOR id ="XMLNANOFTPCLEANUP" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCLEANUP">
 <ANCHOR id ="XMLNANOFTPNEWCTXT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPNEWCTXT">
 <ANCHOR id ="XMLNANOFTPFREECTXT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPFREECTXT">
 <ANCHOR id ="XMLNANOFTPCONNECTTO" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCONNECTTO">
@@ -455,6 +460,9 @@
 <ANCHOR id ="XMLNANOFTPCONNECT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCONNECT">
 <ANCHOR id ="XMLNANOFTPCLOSE" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCLOSE">
 <ANCHOR id ="XMLNANOFTPQUIT" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPQUIT">
+<ANCHOR id ="XMLNANOFTPSCANPROXY" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPSCANPROXY">
+<ANCHOR id ="XMLNANOFTPPROXY" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPPROXY">
+<ANCHOR id ="XMLNANOFTPUPDATEURL" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPUPDATEURL">
 <ANCHOR id ="XMLNANOFTPGETRESPONSE" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPGETRESPONSE">
 <ANCHOR id ="XMLNANOFTPCHECKRESPONSE" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCHECKRESPONSE">
 <ANCHOR id ="XMLNANOFTPCWD" href="gnome-xml/gnome-xml-nanoftp.html#XMLNANOFTPCWD">
diff --git a/doc/xml.html b/doc/xml.html
index 105b197..ebf534b 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -149,7 +149,13 @@
   <li>there is some kind of roadmap to libxml-2.0: fix I18N, and <a
     href="http://rpmfind.net/tools/gdome/messages/0039.html">change structures
     to accomodate DOM</a></li>
-  <li>added a nanoFTP transport module</li>
+</ul>
+
+<h3>1.8.6: Jan 31 2000</h3>
+<ul>
+  <li>added a nanoFTP transport module, debugged until the new version of <a
+    href="http://rpmfind.net/linux/rpm2html/rpmfind.html">rpmfind</a> can use
+    it without troubles</li>
 </ul>
 
 <h3>1.8.5: Jan 21 2000</h3>
@@ -1004,6 +1010,6 @@
 
 <p><a href="mailto:Daniel.Veillard@w3.org">Daniel Veillard</a></p>
 
-<p>$Id: xml.html,v 1.22 2000/01/18 18:01:01 veillard Exp $</p>
+<p>$Id: xml.html,v 1.23 2000/01/25 18:31:22 veillard Exp $</p>
 </body>
 </html>
diff --git a/include/libxml/nanoftp.h b/include/libxml/nanoftp.h
index 84ee18d..0a41b97 100644
--- a/include/libxml/nanoftp.h
+++ b/include/libxml/nanoftp.h
@@ -14,13 +14,28 @@
 
 /**
  * ftpListCallback: 
+ * @userData:  user provided data for the callback
+ * @filename:  the file name (including "->" when links are shown)
+ * @attrib:  the attribute string
+ * @owner:  the owner string
+ * @group:  the group string
+ * @size:  the file size
+ * @links:  the link count
+ * @year:  the year
+ * @month:  the month
+ * @day:  the day
+ * @hour:  the hour
+ * @minute:  the minute
+ *
  * A callback for the xmlNanoFTPList command
+ * Note that only one of year and day:minute are specified
  */
 typedef void (*ftpListCallback) (void *userData,
 	                         const char *filename, const char* attrib,
 	                         const char *owner, const char *group,
 				 unsigned long size, int links, int year,
-				 const char *month, int day, int minute);
+				 const char *month, int day, int hour,
+				 int minute);
 /**
  * ftpDataCallback: 
  * A callback for the xmlNanoFTPGet command
@@ -31,6 +46,7 @@
  * Init
  */
 void	xmlNanoFTPInit		(void);
+void	xmlNanoFTPCleanup	(void);
 
 /*
  * Creating/freeing contexts
@@ -46,7 +62,14 @@
 int	xmlNanoFTPConnect	(void *ctx);
 int	xmlNanoFTPClose		(void *ctx);
 int	xmlNanoFTPQuit		(void *ctx);
-
+void	xmlNanoFTPScanProxy	(const char *URL);
+void	xmlNanoFTPProxy		(const char *host,
+				 int port,
+				 const char *user,
+				 const char *passwd,
+				 int type);
+int	xmlNanoFTPUpdateURL	(void *ctx,
+				 const char *URL);
 
 /*
  * Rathern internal commands
diff --git a/include/libxml/nanohttp.h b/include/libxml/nanohttp.h
index aeefe40..7e0e2ce 100644
--- a/include/libxml/nanohttp.h
+++ b/include/libxml/nanohttp.h
@@ -11,6 +11,9 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+void	xmlNanoHTTPInit		(void);
+void	xmlNanoHTTPCleanup	(void);
+void	xmlNanoHTTPScanProxy	(const char *URL);
 int	xmlNanoHTTPFetch	(const char *URL,
 				 const char *filename,
 				 char **contentType);
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index f53c4ca..0968229 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -317,6 +317,7 @@
 extern int oldXMLWDcompatibility;/* maintain compatibility with old WD */
 extern int xmlIndentTreeOutput;  /* try to indent the tree dumps */
 extern xmlBufferAllocationScheme xmlBufferAllocScheme; /* alloc scheme to use */
+extern int xmlSaveNoEmptyTags;   /* save empty tags as <empty></empty> */
 
 /*
  * Handling Buffers.
diff --git a/nanoftp.c b/nanoftp.c
index 69ddc02..9af52c0 100644
--- a/nanoftp.c
+++ b/nanoftp.c
@@ -31,20 +31,40 @@
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
 #ifdef HAVE_NETDB_H
 #include <netdb.h>
 #endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h> 
+#endif
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
 #ifdef HAVE_RESOLV_H
 #include <resolv.h>
 #endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
 
 #include "xmlmemory.h"
 #include "nanoftp.h"
 
 /* #define DEBUG_FTP 1  */
 #ifdef STANDALONE
+#ifndef DEBUG_FTP
 #define DEBUG_FTP 1
 #endif
+#endif
 
 static char hostname[100];
 
@@ -67,6 +87,111 @@
     int returnValue;	/* the protocol return value */
 } xmlNanoFTPCtxt, *xmlNanoFTPCtxtPtr;
 
+static int initialized = 0;
+static char *proxy = NULL;	/* the proxy name if any */
+static int proxyPort = 0;	/* the proxy port if any */
+static char *proxyUser = NULL;	/* user for proxy authentication */
+static char *proxyPasswd = NULL;/* passwd for proxy authentication */
+static int proxyType = 0;	/* uses TYPE or a@b ? */
+
+/**
+ * xmlNanoFTPInit:
+ *
+ * Initialize the FTP protocol layer.
+ * Currently it just checks for proxy informations,
+ * and get the hostname
+ */
+
+void
+xmlNanoFTPInit(void) {
+    const char *env;
+
+    if (initialized)
+	return;
+
+    gethostname(hostname, sizeof(hostname));
+
+    proxyPort = 21;
+    env = getenv("no_proxy");
+    if (env != NULL)
+	return;
+    env = getenv("ftp_proxy");
+    if (env != NULL) {
+	xmlNanoFTPScanProxy(env);
+    } else {
+	env = getenv("FTP_PROXY");
+	if (env != NULL) {
+	    xmlNanoFTPScanProxy(env);
+	}
+    }
+    env = getenv("ftp_proxy_user");
+    if (env != NULL) {
+	proxyUser = xmlMemStrdup(env);
+    }
+    env = getenv("ftp_proxy_password");
+    if (env != NULL) {
+	proxyPasswd = xmlMemStrdup(env);
+    }
+    initialized = 1;
+}
+
+/**
+ * xmlNanoFTPClenup:
+ *
+ * Cleanup the FTP protocol layer. This cleanup proxy informations.
+ */
+
+void
+xmlNanoFTPCleanup(void) {
+    if (proxy != NULL) {
+	xmlFree(proxy);
+	proxy = NULL;
+    }
+    if (proxyUser != NULL) {
+	xmlFree(proxyUser);
+	proxyUser = NULL;
+    }
+    if (proxyPasswd != NULL) {
+	xmlFree(proxyPasswd);
+	proxyPasswd = NULL;
+    }
+    hostname[0] = 0;
+    initialized = 0;
+    return;
+}
+
+/**
+ * xmlNanoFTPProxy:
+ * @host:  the proxy host name
+ * @port:  the proxy port
+ * @user:  the proxy user name
+ * @passwd:  the proxy password
+ * @type:  the type of proxy 1 for using SITE, 2 for USER a@b
+ *
+ * Setup the FTP proxy informations.
+ * This can also be done by using ftp_proxy ftp_proxy_user and
+ * ftp_proxy_password environment variables.
+ */
+
+void
+xmlNanoFTPProxy(const char *host, int port, const char *user,
+	        const char *passwd, int type) {
+    if (proxy != NULL)
+	xmlFree(proxy);
+    if (proxyUser != NULL)
+	xmlFree(proxyUser);
+    if (proxyPasswd != NULL)
+	xmlFree(proxyPasswd);
+    if (host)
+	proxy = xmlMemStrdup(host);
+    if (user)
+	proxyUser = xmlMemStrdup(user);
+    if (passwd)
+	proxyPasswd = xmlMemStrdup(passwd);
+    proxyPort = port;
+    proxyType = type;
+}
+
 /**
  * xmlNanoFTPScanURL:
  * @ctx:  an FTP context
@@ -96,6 +221,7 @@
         xmlFree(ctxt->path);
 	ctxt->path = NULL;
     }
+    if (URL == NULL) return;
     buf[index] = 0;
     while (*cur != 0) {
         if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
@@ -149,6 +275,169 @@
 }
 
 /**
+ * xmlNanoFTPUpdateURL:
+ * @ctx:  an FTP context
+ * @URL:  The URL used to update the context
+ *
+ * Update an FTP context by parsing the URL and finding
+ * new path it indicates. If there is an error in the 
+ * protocol, hostname, port or other information, the
+ * error is raised. It indicates a new connection has to
+ * be established.
+ *
+ * Returns 0 if Ok, -1 in case of error (other host).
+ */
+
+int
+xmlNanoFTPUpdateURL(void *ctx, const char *URL) {
+    xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
+    const char *cur = URL;
+    char buf[4096];
+    int index = 0;
+    int port = 0;
+
+    if (URL == NULL)
+	return(-1);
+    if (ctxt == NULL)
+	return(-1);
+    if (ctxt->protocol == NULL)
+	return(-1);
+    if (ctxt->hostname == NULL)
+	return(-1);
+    buf[index] = 0;
+    while (*cur != 0) {
+        if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
+	    buf[index] = 0;
+	    if (strcmp(ctxt->protocol, buf))
+		return(-1);
+	    index = 0;
+            cur += 3;
+	    break;
+	}
+	buf[index++] = *cur++;
+    }
+    if (*cur == 0)
+	return(-1);
+
+    buf[index] = 0;
+    while (1) {
+        if (cur[0] == ':') {
+	    buf[index] = 0;
+	    if (strcmp(ctxt->hostname, buf))
+		return(-1);
+	    index = 0;
+	    cur += 1;
+	    while ((*cur >= '0') && (*cur <= '9')) {
+	        port *= 10;
+		port += *cur - '0';
+		cur++;
+	    }
+	    if (port != ctxt->port)
+		return(-1);
+	    while ((cur[0] != '/') && (*cur != 0)) 
+	        cur++;
+	    break;
+	}
+        if ((*cur == '/') || (*cur == 0)) {
+	    buf[index] = 0;
+	    if (strcmp(ctxt->hostname, buf))
+		return(-1);
+	    index = 0;
+	    break;
+	}
+	buf[index++] = *cur++;
+    }
+    if (ctxt->path != NULL) {
+	xmlFree(ctxt->path);
+	ctxt->path = NULL;
+    }
+
+    if (*cur == 0) 
+        ctxt->path = xmlMemStrdup("/");
+    else {
+        buf[index] = 0;
+	while (*cur != 0) {
+	    if ((cur[0] == '#') || (cur[0] == '?'))
+	        break;
+	    buf[index++] = *cur++;
+	}
+	buf[index] = 0;
+	ctxt->path = xmlMemStrdup(buf);
+    }	
+    return(0);
+}
+
+/**
+ * xmlNanoFTPScanProxy:
+ * @URL:  The proxy URL used to initialize the proxy context
+ *
+ * (Re)Initialize the FTP Proxy context by parsing the URL and finding
+ * the protocol host port it indicates.
+ * Should be like ftp://myproxy/ or ftp://myproxy:3128/
+ * A NULL URL cleans up proxy informations.
+ */
+
+void
+xmlNanoFTPScanProxy(const char *URL) {
+    const char *cur = URL;
+    char buf[4096];
+    int index = 0;
+    int port = 0;
+
+    if (proxy != NULL) { 
+        xmlFree(proxy);
+	proxy = NULL;
+    }
+    if (proxyPort != 0) { 
+	proxyPort = 0;
+    }
+#ifdef DEBUG_FTP
+    if (URL == NULL)
+	printf("Removing FTP proxy info\n");
+    else
+	printf("Using FTP proxy %s\n", URL);
+#endif
+    if (URL == NULL) return;
+    buf[index] = 0;
+    while (*cur != 0) {
+        if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
+	    buf[index] = 0;
+	    index = 0;
+            cur += 3;
+	    break;
+	}
+	buf[index++] = *cur++;
+    }
+    if (*cur == 0) return;
+
+    buf[index] = 0;
+    while (1) {
+        if (cur[0] == ':') {
+	    buf[index] = 0;
+	    proxy = xmlMemStrdup(buf);
+	    index = 0;
+	    cur += 1;
+	    while ((*cur >= '0') && (*cur <= '9')) {
+	        port *= 10;
+		port += *cur - '0';
+		cur++;
+	    }
+	    if (port != 0) proxyPort = port;
+	    while ((cur[0] != '/') && (*cur != 0)) 
+	        cur++;
+	    break;
+	}
+        if ((*cur == '/') || (*cur == 0)) {
+	    buf[index] = 0;
+	    proxy = xmlMemStrdup(buf);
+	    index = 0;
+	    break;
+	}
+	buf[index++] = *cur++;
+    }
+}
+
+/**
  * xmlNanoFTPNewCtxt:
  * @URL:  The URL used to initialize the context
  *
@@ -196,20 +485,6 @@
 }
 
 /**
- * xmlNanoFTPInit:
- *
- * Initialize the FTP handling.
- */
-
-void
-xmlNanoFTPInit(void) {
-    static int done = 0;
-    if (done) return;
-    gethostname(hostname, sizeof(hostname));
-    done = 1;
-}
-
-/**
  * Parsing of the server answer, we just extract the code.
  * return 0 for errors
  *     +XXX for last line of response
@@ -446,6 +721,7 @@
 xmlNanoFTPConnect(void *ctx) {
     xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
     struct hostent *hp;
+    int port;
     int res;
 
     if (ctxt == NULL)
@@ -456,7 +732,10 @@
     /*
      * do the blocking DNS query.
      */
-    hp = gethostbyname(ctxt->hostname);
+    if (proxy)
+	hp = gethostbyname(proxy);
+    else
+	hp = gethostbyname(ctxt->hostname);
     if (hp == NULL)
         return(-1);
 
@@ -466,9 +745,14 @@
     memset(&ctxt->ftpAddr, 0, sizeof(ctxt->ftpAddr));
     ctxt->ftpAddr.sin_family = AF_INET;
     memcpy(&ctxt->ftpAddr.sin_addr, hp->h_addr_list[0], hp->h_length);
-    if (ctxt->port == 0)
-        ctxt->port = 21;
-    ctxt->ftpAddr.sin_port = htons(ctxt->port);
+    if (proxy) {
+        port = proxyPort;
+    } else {
+	port = ctxt->port;
+    }
+    if (port == 0)
+	port = 21;
+    ctxt->ftpAddr.sin_port = htons(port);
     ctxt->controlFd = socket(AF_INET, SOCK_STREAM, 0);
     if (ctxt->controlFd < 0)
         return(-1);
@@ -524,6 +808,157 @@
      * +---+   ACCT    +---+--  |   ----->+---+
      * |   |---------->| W | 4,5 -------->| F |
      * +---+           +---+------------->+---+
+     *
+     * Of course in case of using a proxy this get really nasty and is not
+     * standardized at all :-(
+     */
+    if (proxy) {
+        int len;
+	char buf[400];
+
+        if (proxyUser != NULL) {
+	    /*
+	     * We need proxy auth
+	     */
+	    len = snprintf(buf, sizeof(buf), "USER %s\r\n", proxyUser);
+#ifdef DEBUG_FTP
+	    printf(buf);
+#endif
+	    res = send(ctxt->controlFd, buf, len, 0);
+	    if (res < 0) {
+		close(ctxt->controlFd);
+		ctxt->controlFd = -1;
+	        return(res);
+	    }
+	    res = xmlNanoFTPGetResponse(ctxt);
+	    switch (res) {
+		case 2:
+		    if (proxyPasswd == NULL)
+			break;
+		case 3:
+		    if (proxyPasswd != NULL)
+			len = snprintf(buf, sizeof(buf), "PASS %s\r\n", proxyPasswd);
+		    else
+			len = snprintf(buf, sizeof(buf), "PASS libxml@%s\r\n",
+			               hostname);
+#ifdef DEBUG_FTP
+		    printf(buf);
+#endif
+		    res = send(ctxt->controlFd, buf, len, 0);
+		    if (res < 0) {
+			close(ctxt->controlFd);
+			ctxt->controlFd = -1;
+			return(res);
+		    }
+		    res = xmlNanoFTPGetResponse(ctxt);
+		    if (res > 3) {
+			close(ctxt->controlFd);
+			ctxt->controlFd = -1;
+			return(-1);
+		    }
+		    break;
+		case 1:
+		    break;
+		case 4:
+		case 5:
+		case -1:
+		default:
+		    close(ctxt->controlFd);
+		    ctxt->controlFd = -1;
+		    return(-1);
+	    }
+	}
+
+	/*
+	 * We assume we don't need more authentication to the proxy
+	 * and that it succeeded :-\
+	 */
+	switch (proxyType) {
+	    case 0:
+		/* we will try in seqence */
+	    case 1:
+		/* Using SITE command */
+		len = snprintf(buf, sizeof(buf), "SITE %s\r\n", ctxt->hostname);
+#ifdef DEBUG_FTP
+		printf(buf);
+#endif
+		res = send(ctxt->controlFd, buf, len, 0);
+		if (res < 0) {
+		    close(ctxt->controlFd); ctxt->controlFd = -1;
+		    ctxt->controlFd = -1;
+		    return(res);
+		}
+		res = xmlNanoFTPGetResponse(ctxt);
+		if (res == 2) {
+		    /* we assume it worked :-\ 1 is error for SITE command */
+		    proxyType = 1;
+		    break;
+		}    
+		if (proxyType == 1) {
+		    close(ctxt->controlFd); ctxt->controlFd = -1;
+		    ctxt->controlFd = -1;
+		    return(-1);
+		}
+	    case 2:
+		/* USER user@host command */
+		if (ctxt->user == NULL)
+		    len = snprintf(buf, sizeof(buf), "USER anonymous@%s\r\n",
+			           ctxt->hostname);
+		else
+		    len = snprintf(buf, sizeof(buf), "USER %s@%s\r\n",
+			           ctxt->user, ctxt->hostname);
+#ifdef DEBUG_FTP
+		printf(buf);
+#endif
+		res = send(ctxt->controlFd, buf, len, 0);
+		if (res < 0) {
+		    close(ctxt->controlFd); ctxt->controlFd = -1;
+		    ctxt->controlFd = -1;
+		    return(res);
+		}
+		res = xmlNanoFTPGetResponse(ctxt);
+		if ((res == 1) || (res == 2)) {
+		    /* we assume it worked :-\ */
+		    proxyType = 2;
+		    return(0);
+		}    
+		if (ctxt->passwd == NULL)
+		    len = snprintf(buf, sizeof(buf), "PASS libxml@%s\r\n", hostname);
+		else
+		    len = snprintf(buf, sizeof(buf), "PASS %s\r\n", ctxt->passwd);
+#ifdef DEBUG_FTP
+		printf(buf);
+#endif
+		res = send(ctxt->controlFd, buf, len, 0);
+		if (res < 0) {
+		    close(ctxt->controlFd); ctxt->controlFd = -1;
+		    ctxt->controlFd = -1;
+		    return(res);
+		}
+		res = xmlNanoFTPGetResponse(ctxt);
+		if ((res == 1) || (res == 2)) {
+		    /* we assume it worked :-\ */
+		    proxyType = 2;
+		    return(0);
+		}
+		if (proxyType == 2) {
+		    close(ctxt->controlFd); ctxt->controlFd = -1;
+		    ctxt->controlFd = -1;
+		    return(-1);
+		}
+	    case 3:
+		/*
+		 * If you need support for other Proxy authentication scheme
+		 * send the code or at least the sequence in use.
+		 */
+	    default:
+		close(ctxt->controlFd); ctxt->controlFd = -1;
+		ctxt->controlFd = -1;
+		return(-1);
+	}
+    }
+    /*
+     * Non-proxy handling.
      */
     res = xmlNanoFTPSendUser(ctxt);
     if (res < 0) {
@@ -896,7 +1331,7 @@
     }
     if (callback != NULL) {
         callback(userData, filename, attrib, owner, group, size, links,
-		 year, month, day, minute);
+		 year, month, day, hour, minute);
     }
     return(cur - list);
 }
@@ -924,12 +1359,19 @@
     fd_set rfd, efd;
     struct timeval tv;
 
-    ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
-
-    if (filename != NULL)
-	len = snprintf(buf, sizeof(buf), "LIST -L %s\r\n", filename);
-    else
+    if (filename == NULL) {
+        if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
+	    return(-1);
+	ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
 	len = snprintf(buf, sizeof(buf), "LIST -L\r\n");
+    } else {
+	if (filename[0] != '/') {
+	    if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
+		return(-1);
+	}
+	ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
+	len = snprintf(buf, sizeof(buf), "LIST -L %s\r\n", filename);
+    }
 #ifdef DEBUG_FTP
     printf(buf);
 #endif
@@ -1003,7 +1445,7 @@
 /**
  * xmlNanoFTPGetSocket:
  * @ctx:  an FTP context
- * @filename:  the file to retrieve
+ * @filename:  the file to retrieve (or NULL if path is in context).
  *
  * Initiate fetch of the given file from the server.
  *
@@ -1016,7 +1458,7 @@
     xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
     char buf[300];
     int res, len;
-    if (filename == NULL)
+    if ((filename == NULL) && (ctxt->path == NULL))
 	return(-1);
     ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
 
@@ -1034,7 +1476,10 @@
 	close(ctxt->dataFd); ctxt->dataFd = -1;
 	return(-res);
     }
-    len = snprintf(buf, sizeof(buf), "RETR %s\r\n", filename);
+    if (filename == NULL)
+	len = snprintf(buf, sizeof(buf), "RETR %s\r\n", ctxt->path);
+    else
+	len = snprintf(buf, sizeof(buf), "RETR %s\r\n", filename);
 #ifdef DEBUG_FTP
     printf(buf);
 #endif
@@ -1073,7 +1518,7 @@
     fd_set rfd;
     struct timeval tv;
 
-    if (filename == NULL)
+    if ((filename == NULL) && (ctxt->path == NULL))
 	return(-1);
     if (callback == NULL)
 	return(-1);
@@ -1218,7 +1663,7 @@
  ************************************************************************/
 void ftpList(void *userData, const char *filename, const char* attrib,
 	     const char *owner, const char *group, unsigned long size, int links,
-	     int year, const char *month, int day, int minute) {
+	     int year, const char *month, int day, int hour, int minute) {
     printf("%s %s %s %ld %s\n", attrib, owner, group, size, filename);
 }
 void ftpData(void *userData, const char *data, int len) {
@@ -1233,12 +1678,15 @@
 int main(int argc, char **argv) {
     void *ctxt;
     FILE *output;
-    int res;
-    const char *tstfile = "tstfile";
+    char *tstfile = NULL;
 
     xmlNanoFTPInit();
     if (argc > 1) {
-	ctxt = xmlNanoFTPConnectTo(argv[1], 0);
+	ctxt = xmlNanoFTPNewCtxt(argv[1]);
+	if (xmlNanoFTPConnect(ctxt) < 0) {
+	    fprintf(stderr, "Couldn't connect to %s\n", argv[1]);
+	    exit(1);
+	}
 	if (argc > 2)
 	    tstfile = argv[2];
     } else
@@ -1247,33 +1695,11 @@
         fprintf(stderr, "Couldn't connect to localhost\n");
         exit(1);
     }
-    res = xmlNanoFTPCwd(ctxt, "/linux");
-    if (res < 0) {
-        fprintf(stderr, "disconnected\n");
-	xmlNanoFTPClose(ctxt);
-	exit(1);
-    }
-    if (res == 0) {
-        fprintf(stderr, "/linux : CWD failed\n");
-    } else {
-        fprintf(stderr, "/linux : CWD successful\n");
-    }
-    res = xmlNanoFTPCwd(ctxt, "/toto");
-    if (res < 0) {
-        fprintf(stderr, "disconnected\n");
-	xmlNanoFTPClose(ctxt);
-	exit(1);
-    }
-    if (res == 0) {
-        fprintf(stderr, "/toto : CWD failed\n");
-    } else {
-        fprintf(stderr, "/toto : CWD successful\n");
-    }
-    xmlNanoFTPList(ctxt, ftpList, NULL, NULL);
+    xmlNanoFTPList(ctxt, ftpList, NULL, tstfile);
     output = fopen("/tmp/tstdata", "w");
     if (output != NULL) {
 	if (xmlNanoFTPGet(ctxt, ftpData, (void *) output, tstfile) < 0)
-	    fprintf(stderr, "Failed to get file %s\n", tstfile);
+	    fprintf(stderr, "Failed to get file\n");
 	
     }
     xmlNanoFTPClose(ctxt);
diff --git a/nanoftp.h b/nanoftp.h
index 84ee18d..0a41b97 100644
--- a/nanoftp.h
+++ b/nanoftp.h
@@ -14,13 +14,28 @@
 
 /**
  * ftpListCallback: 
+ * @userData:  user provided data for the callback
+ * @filename:  the file name (including "->" when links are shown)
+ * @attrib:  the attribute string
+ * @owner:  the owner string
+ * @group:  the group string
+ * @size:  the file size
+ * @links:  the link count
+ * @year:  the year
+ * @month:  the month
+ * @day:  the day
+ * @hour:  the hour
+ * @minute:  the minute
+ *
  * A callback for the xmlNanoFTPList command
+ * Note that only one of year and day:minute are specified
  */
 typedef void (*ftpListCallback) (void *userData,
 	                         const char *filename, const char* attrib,
 	                         const char *owner, const char *group,
 				 unsigned long size, int links, int year,
-				 const char *month, int day, int minute);
+				 const char *month, int day, int hour,
+				 int minute);
 /**
  * ftpDataCallback: 
  * A callback for the xmlNanoFTPGet command
@@ -31,6 +46,7 @@
  * Init
  */
 void	xmlNanoFTPInit		(void);
+void	xmlNanoFTPCleanup	(void);
 
 /*
  * Creating/freeing contexts
@@ -46,7 +62,14 @@
 int	xmlNanoFTPConnect	(void *ctx);
 int	xmlNanoFTPClose		(void *ctx);
 int	xmlNanoFTPQuit		(void *ctx);
-
+void	xmlNanoFTPScanProxy	(const char *URL);
+void	xmlNanoFTPProxy		(const char *host,
+				 int port,
+				 const char *user,
+				 const char *passwd,
+				 int type);
+int	xmlNanoFTPUpdateURL	(void *ctx,
+				 const char *URL);
 
 /*
  * Rathern internal commands
diff --git a/nanohttp.c b/nanohttp.c
index 4b27225..e2dfda3 100644
--- a/nanohttp.c
+++ b/nanohttp.c
@@ -92,6 +92,58 @@
     char *location;	/* the new URL in case of redirect */
 } xmlNanoHTTPCtxt, *xmlNanoHTTPCtxtPtr;
 
+static int initialized = 0;
+static char *proxy = NULL;	/* the proxy name if any */
+static int proxyPort;	/* the proxy port if any */
+
+/**
+ * xmlNanoHTTPInit:
+ *
+ * Initialize the HTTP protocol layer.
+ * Currently it just checks for proxy informations
+ */
+
+void
+xmlNanoHTTPInit(void) {
+    const char *env;
+
+    if (initialized)
+	return;
+
+    if (proxy == NULL) {
+	proxyPort = 80;
+	env = getenv("no_proxy");
+	if (env != NULL)
+	    goto done;
+	env = getenv("http_proxy");
+	if (env != NULL) {
+	    xmlNanoHTTPScanProxy(env);
+	    goto done;
+	}
+	env = getenv("HTTP_PROXY");
+	if (env != NULL) {
+	    xmlNanoHTTPScanProxy(env);
+	    goto done;
+	}
+    }
+done:
+    initialized = 1;
+}
+
+/**
+ * xmlNanoHTTPClenup:
+ *
+ * Cleanup the HTTP protocol layer.
+ */
+
+void
+xmlNanoHTTPCleanup(void) {
+    if (proxy != NULL)
+	xmlFree(proxy);
+    initialized = 0;
+    return;
+}
+
 /**
  * xmlNanoHTTPScanURL:
  * @ctxt:  an HTTP context
@@ -120,6 +172,7 @@
         xmlFree(ctxt->path);
 	ctxt->path = NULL;
     }
+    if (URL == NULL) return;
     buf[index] = 0;
     while (*cur != 0) {
         if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
@@ -173,6 +226,76 @@
 }
 
 /**
+ * xmlNanoHTTPScanProxy:
+ * @URL:  The proxy URL used to initialize the proxy context
+ *
+ * (Re)Initialize the HTTP Proxy context by parsing the URL and finding
+ * the protocol host port it indicates.
+ * Should be like http://myproxy/ or http://myproxy:3128/
+ * A NULL URL cleans up proxy informations.
+ */
+
+void
+xmlNanoHTTPScanProxy(const char *URL) {
+    const char *cur = URL;
+    char buf[4096];
+    int index = 0;
+    int port = 0;
+
+    if (proxy != NULL) { 
+        xmlFree(proxy);
+	proxy = NULL;
+    }
+    if (proxyPort != 0) { 
+	proxyPort = 0;
+    }
+#ifdef DEBUG_HTTP
+    if (URL == NULL)
+	printf("Removing HTTP proxy info\n");
+    else
+	printf("Using HTTP proxy %s\n", URL);
+#endif
+    if (URL == NULL) return;
+    buf[index] = 0;
+    while (*cur != 0) {
+        if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
+	    buf[index] = 0;
+	    index = 0;
+            cur += 3;
+	    break;
+	}
+	buf[index++] = *cur++;
+    }
+    if (*cur == 0) return;
+
+    buf[index] = 0;
+    while (1) {
+        if (cur[0] == ':') {
+	    buf[index] = 0;
+	    proxy = xmlMemStrdup(buf);
+	    index = 0;
+	    cur += 1;
+	    while ((*cur >= '0') && (*cur <= '9')) {
+	        port *= 10;
+		port += *cur - '0';
+		cur++;
+	    }
+	    if (port != 0) proxyPort = port;
+	    while ((cur[0] != '/') && (*cur != 0)) 
+	        cur++;
+	    break;
+	}
+        if ((*cur == '/') || (*cur == 0)) {
+	    buf[index] = 0;
+	    proxy = xmlMemStrdup(buf);
+	    index = 0;
+	    break;
+	}
+	buf[index++] = *cur++;
+    }
+}
+
+/**
  * xmlNanoHTTPNewCtxt:
  * @URL:  The URL used to initialize the context
  *
@@ -598,6 +721,7 @@
     int nbRedirects = 0;
     char *redirURL = NULL;
     
+    xmlNanoHTTPInit();
     if (contentType != NULL) *contentType = NULL;
 
 retry:
@@ -618,23 +742,54 @@
         xmlNanoHTTPFreeCtxt(ctxt);
         return(NULL);
     }
-    ret = xmlNanoHTTPConnectHost(ctxt->hostname, ctxt->port);
+    if (proxy)
+	ret = xmlNanoHTTPConnectHost(proxy, proxyPort);
+    else
+	ret = xmlNanoHTTPConnectHost(ctxt->hostname, ctxt->port);
     if (ret < 0) {
         xmlNanoHTTPFreeCtxt(ctxt);
         return(NULL);
     }
     ctxt->fd = ret;
-#ifdef HAVE_SNPRINTF
-    snprintf(buf, sizeof(buf),"GET %s HTTP/1.0\r\nHost: %s\r\n\r\n",
-	     ctxt->path, ctxt->hostname);
+    if (proxy) {
+#ifdef have_snprintf
+	if (ctxt->port != 80)
+	    snprintf(buf, sizeof(buf),
+		     "GET http://%s:%d%s HTTP/1.0\r\nHost: %s\r\n\r\n",
+		 ctxt->hostname, ctxt->port, ctxt->path, ctxt->hostname);
+	else 
+	    snprintf(buf, sizeof(buf),"GET http://%s%s HTTP/1.0\r\nHost: %s\r\n\r\n",
+		 ctxt->hostname, ctxt->path, ctxt->hostname);
 #else
-    sprintf(buf, "GET %s HTTP/1.0\r\nHost: %s\r\n\r\n",
-	     ctxt->path, ctxt->hostname);
+	if (ctxt->port != 80)
+	    sprintf(buf, 
+		     "GET http://%s:%d%s HTTP/1.0\r\nHost: %s\r\n\r\n",
+		 ctxt->hostname, ctxt->port, ctxt->path, ctxt->hostname);
+	else 
+	    sprintf(buf, "GET http://%s%s HTTP/1.0\r\nHost: %s\r\n\r\n",
+		 ctxt->hostname, ctxt->path, ctxt->hostname);
 #endif
 #ifdef DEBUG_HTTP
-    printf("-> GET %s HTTP/1.0\n-> Host: %s\n\n",
-           ctxt->path, ctxt->hostname);
+	if (ctxt->port != 80)
+	    printf("-> Proxy GET http://%s:%d%s HTTP/1.0\n-> Host: %s\n\n",
+	           ctxt->hostname, ctxt->port, ctxt->path, ctxt->hostname);
+	else
+	    printf("-> Proxy GET http://%s%s HTTP/1.0\n-> Host: %s\n\n",
+	           ctxt->hostname, ctxt->path, ctxt->hostname);
 #endif
+    } else {
+#ifdef HAVE_SNPRINTF
+	snprintf(buf, sizeof(buf),"GET %s HTTP/1.0\r\nHost: %s\r\n\r\n",
+		 ctxt->path, ctxt->hostname);
+#else
+	sprintf(buf, "GET %s HTTP/1.0\r\nHost: %s\r\n\r\n",
+		 ctxt->path, ctxt->hostname);
+#endif
+#ifdef DEBUG_HTTP
+	printf("-> GET %s HTTP/1.0\n-> Host: %s\n\n",
+	       ctxt->path, ctxt->hostname);
+#endif
+    }
     ctxt->outptr = ctxt->out = xmlMemStrdup(buf);
     ctxt->state = XML_NANO_HTTP_WRITE;
     xmlNanoHTTPSend(ctxt);
@@ -645,6 +800,7 @@
         if (head && (*p == 0)) {
 	    head = 0;
 	    ctxt->content = ctxt->inrptr;
+	    xmlFree(p);
 	    break;
 	}
 	xmlNanoHTTPScanAnswer(ctxt, p);
@@ -984,7 +1140,7 @@
     if (!strcmp(filename, "-")) 
         fd = 0;
     else {
-        fd = open(filename, O_CREAT | O_WRONLY);
+        fd = open(filename, O_CREAT | O_WRONLY, 00644);
 	if (fd < 0) {
 	    xmlNanoHTTPClose(ctxt);
 	    if ((contentType != NULL) && (*contentType != NULL)) {
@@ -1000,6 +1156,7 @@
     }
 
     xmlNanoHTTPClose(ctxt);
+    close(fd);
     return(0);
 }
 
@@ -1068,6 +1225,8 @@
         printf("%s: minimal HTTP GET implementation\n", argv[0]);
         printf("\tusage %s [ URL [ filename ] ]\n", argv[0]);
     }
+    xmlNanoHTTPCleanup();
+    xmlMemoryDump();
     return(0);
 }
 #endif /* STANDALONE */
diff --git a/nanohttp.h b/nanohttp.h
index aeefe40..7e0e2ce 100644
--- a/nanohttp.h
+++ b/nanohttp.h
@@ -11,6 +11,9 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+void	xmlNanoHTTPInit		(void);
+void	xmlNanoHTTPCleanup	(void);
+void	xmlNanoHTTPScanProxy	(const char *URL);
 int	xmlNanoHTTPFetch	(const char *URL,
 				 const char *filename,
 				 char **contentType);
diff --git a/tree.c b/tree.c
index db2b5d2..466c11f 100644
--- a/tree.c
+++ b/tree.c
@@ -38,6 +38,7 @@
 
 static int xmlCompressMode = 0;
 static int xmlCheckDTD = 1;
+int xmlSaveNoEmptyTags = 0;
 
 #define UPDATE_LAST_CHILD(n) if ((n) != NULL) {				\
     xmlNodePtr ulccur = (n)->childs;					\
@@ -4299,7 +4300,8 @@
     if (cur->properties != NULL)
         xmlAttrListDump(buf, doc, cur->properties);
 
-    if ((cur->content == NULL) && (cur->childs == NULL)) {
+    if ((cur->content == NULL) && (cur->childs == NULL) &&
+	(!xmlSaveNoEmptyTags)) {
         xmlBufferWriteChar(buf, "/>");
 	return;
     }
diff --git a/tree.h b/tree.h
index f53c4ca..0968229 100644
--- a/tree.h
+++ b/tree.h
@@ -317,6 +317,7 @@
 extern int oldXMLWDcompatibility;/* maintain compatibility with old WD */
 extern int xmlIndentTreeOutput;  /* try to indent the tree dumps */
 extern xmlBufferAllocationScheme xmlBufferAllocScheme; /* alloc scheme to use */
+extern int xmlSaveNoEmptyTags;   /* save empty tags as <empty></empty> */
 
 /*
  * Handling Buffers.