Huge commit: 1.5.0, XML validation, Xpath, bugfixes, examples .... Daniel
diff --git a/doc/html/gnome-xml-entities.html b/doc/html/gnome-xml-entities.html
index 0a27454..2ebcc41 100644
--- a/doc/html/gnome-xml-entities.html
+++ b/doc/html/gnome-xml-entities.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN3699"
+NAME="AEN3763"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN3702"
+NAME="AEN3766"
 ></A
 ><H2
 >Synopsis</H2
@@ -260,6 +260,20 @@
 HREF="gnome-xml-tree.html#CHAR"
 >CHAR</A
 > *name);
+<A
+HREF="gnome-xml-entities.html#XMLENTITYPTR"
+>xmlEntityPtr</A
+> <A
+HREF="gnome-xml-entities.html#XMLGETPARAMETERENTITY"
+>xmlGetParameterEntity</A
+>          (<A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *name);
 const <A
 HREF="gnome-xml-tree.html#CHAR"
 >CHAR</A
@@ -330,7 +344,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN3755"
+NAME="AEN3823"
 ></A
 ><H2
 >Description</H2
@@ -340,14 +354,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN3758"
+NAME="AEN3826"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3760"
+NAME="AEN3828"
 ></A
 ><H3
 ><A
@@ -363,7 +377,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_INTERNAL_GENERAL_ENTITY		1</PRE
+>#define     XML_INTERNAL_GENERAL_ENTITY</PRE
 ></TD
 ></TR
 ></TABLE
@@ -373,7 +387,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3765"
+NAME="AEN3833"
 ></A
 ><H3
 ><A
@@ -389,7 +403,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_EXTERNAL_GENERAL_PARSED_ENTITY	2</PRE
+>#define     XML_EXTERNAL_GENERAL_PARSED_ENTITY</PRE
 ></TD
 ></TR
 ></TABLE
@@ -399,7 +413,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3770"
+NAME="AEN3838"
 ></A
 ><H3
 ><A
@@ -415,7 +429,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_EXTERNAL_GENERAL_UNPARSED_ENTITY	3</PRE
+>#define     XML_EXTERNAL_GENERAL_UNPARSED_ENTITY</PRE
 ></TD
 ></TR
 ></TABLE
@@ -425,7 +439,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3775"
+NAME="AEN3843"
 ></A
 ><H3
 ><A
@@ -441,7 +455,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_INTERNAL_PARAMETER_ENTITY		4</PRE
+>#define     XML_INTERNAL_PARAMETER_ENTITY</PRE
 ></TD
 ></TR
 ></TABLE
@@ -451,7 +465,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3780"
+NAME="AEN3848"
 ></A
 ><H3
 ><A
@@ -467,7 +481,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_EXTERNAL_PARAMETER_ENTITY		5</PRE
+>#define     XML_EXTERNAL_PARAMETER_ENTITY</PRE
 ></TD
 ></TR
 ></TABLE
@@ -477,7 +491,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3785"
+NAME="AEN3853"
 ></A
 ><H3
 ><A
@@ -493,7 +507,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_INTERNAL_PREDEFINED_ENTITY		6</PRE
+>#define     XML_INTERNAL_PREDEFINED_ENTITY</PRE
 ></TD
 ></TR
 ></TABLE
@@ -503,33 +517,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3790"
+NAME="AEN3858"
 ></A
 ><H3
 ><A
 NAME="XMLENTITYPTR"
 ></A
 >xmlEntityPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlEntity *xmlEntityPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3795"
+NAME="AEN3862"
 ></A
 ><H3
 ><A
@@ -545,7 +546,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_MIN_ENTITIES_TABLE	32</PRE
+>#define     XML_MIN_ENTITIES_TABLE</PRE
 ></TD
 ></TR
 ></TABLE
@@ -555,33 +556,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3800"
+NAME="AEN3867"
 ></A
 ><H3
 ><A
 NAME="XMLENTITIESTABLEPTR"
 ></A
 >xmlEntitiesTablePtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlEntitiesTable *xmlEntitiesTablePtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3805"
+NAME="AEN3871"
 ></A
 ><H3
 ><A
@@ -651,7 +639,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -668,7 +656,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -685,7 +673,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity type XML_xxx_yyy_ENTITY</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -702,7 +690,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity external ID if available</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -719,7 +707,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity system ID if available</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -736,7 +724,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity content</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -746,7 +734,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3845"
+NAME="AEN3911"
 ></A
 ><H3
 ><A
@@ -816,7 +804,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -833,7 +821,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -850,7 +838,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity type XML_xxx_yyy_ENTITY</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -867,7 +855,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity external ID if available</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -884,7 +872,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity system ID if available</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -901,7 +889,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity content</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -911,7 +899,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3885"
+NAME="AEN3951"
 ></A
 ><H3
 ><A
@@ -967,7 +955,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -982,7 +970,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->NULL if not, othervise the entity</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -992,7 +980,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3906"
+NAME="AEN3972"
 ></A
 ><H3
 ><A
@@ -1054,7 +1042,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document referencing the entity</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1071,7 +1059,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1086,7 +1074,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->A pointer to the entity structure or NULL if not found.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1096,7 +1084,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3932"
+NAME="AEN3998"
 ></A
 ><H3
 ><A
@@ -1157,7 +1145,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document referencing the entity</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1174,7 +1162,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1189,7 +1177,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->A pointer to the entity structure or NULL if not found.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1199,7 +1187,110 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3958"
+NAME="AEN4024"
+></A
+><H3
+><A
+NAME="XMLGETPARAMETERENTITY"
+></A
+>xmlGetParameterEntity ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="gnome-xml-entities.html#XMLENTITYPTR"
+>xmlEntityPtr</A
+> xmlGetParameterEntity          (<A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *name);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Do an entity lookup in the internal and external subsets and
+returns the corresponding parameter entity, if found.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4050"
 ></A
 ><H3
 ><A
@@ -1233,13 +1324,10 @@
 >Do a global encoding of a string, replacing the predefined entities
 and non ASCII values with their entities and CharRef counterparts.</P
 ><P
->TODO !!!! Once moved to UTF-8 internal encoding, the encoding of non-ascii
-get erroneous.</P
+>TODO: remove this, once we are not afraid of breaking binary compatibility</P
 ><P
->TODO This routine is not reentrant, the interface
-should not be modified though.</P
-><P
->People must migrate their code to xmlEncodeEntitiesReentrant !</P
+>People must migrate their code to xmlEncodeEntitiesReentrant !
+This routine will issue a warning when encountered.</P
 ><P
 ></P
 ><DIV
@@ -1268,7 +1356,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document containing the string</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1285,7 +1373,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  A string to convert to XML.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1300,7 +1388,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->A newly allocated string with the substitution done.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1310,7 +1398,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3987"
+NAME="AEN4078"
 ></A
 ><H3
 ><A
@@ -1376,7 +1464,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document containing the string</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1393,7 +1481,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  A string to convert to XML.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1408,7 +1496,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->A newly allocated string with the substitution done.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1418,7 +1506,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4014"
+NAME="AEN4105"
 ></A
 ><H3
 ><A
@@ -1469,7 +1557,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the xmlEntitiesTablePtr just created or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1479,7 +1567,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4030"
+NAME="AEN4121"
 ></A
 ><H3
 ><A
@@ -1535,7 +1623,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An entity table</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1550,7 +1638,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new xmlEntitiesTablePtr or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1560,7 +1648,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4051"
+NAME="AEN4142"
 ></A
 ><H3
 ><A
@@ -1613,7 +1701,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An entity table</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1623,7 +1711,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4067"
+NAME="AEN4158"
 ></A
 ><H3
 ><A
@@ -1680,7 +1768,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An XML buffer.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1697,7 +1785,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An entity table</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
diff --git a/doc/html/gnome-xml-htmlparser.html b/doc/html/gnome-xml-htmlparser.html
index 119e226..ebf2e9b 100644
--- a/doc/html/gnome-xml-htmlparser.html
+++ b/doc/html/gnome-xml-htmlparser.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6506"
+NAME="AEN7224"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6509"
+NAME="AEN7227"
 ></A
 ><H2
 >Synopsis</H2
@@ -277,7 +277,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6547"
+NAME="AEN7265"
 ></A
 ><H2
 >Description</H2
@@ -287,248 +287,131 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6550"
+NAME="AEN7268"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6552"
+NAME="AEN7270"
 ></A
 ><H3
 ><A
 NAME="HTMLPARSERCTXT"
 ></A
 >htmlParserCtxt</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlParserCtxt htmlParserCtxt;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6557"
+NAME="AEN7274"
 ></A
 ><H3
 ><A
 NAME="HTMLPARSERCTXTPTR"
 ></A
 >htmlParserCtxtPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlParserCtxtPtr htmlParserCtxtPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6562"
+NAME="AEN7278"
 ></A
 ><H3
 ><A
 NAME="HTMLPARSERNODEINFO"
 ></A
 >htmlParserNodeInfo</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlParserNodeInfo htmlParserNodeInfo;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6567"
+NAME="AEN7282"
 ></A
 ><H3
 ><A
 NAME="HTMLSAXHANDLER"
 ></A
 >htmlSAXHandler</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlSAXHandler htmlSAXHandler;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6572"
+NAME="AEN7286"
 ></A
 ><H3
 ><A
 NAME="HTMLSAXHANDLERPTR"
 ></A
 >htmlSAXHandlerPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlSAXHandlerPtr htmlSAXHandlerPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6577"
+NAME="AEN7290"
 ></A
 ><H3
 ><A
 NAME="HTMLPARSERINPUT"
 ></A
 >htmlParserInput</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlParserInput htmlParserInput;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6582"
+NAME="AEN7294"
 ></A
 ><H3
 ><A
 NAME="HTMLPARSERINPUTPTR"
 ></A
 >htmlParserInputPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlParserInputPtr htmlParserInputPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6587"
+NAME="AEN7298"
 ></A
 ><H3
 ><A
 NAME="HTMLDOCPTR"
 ></A
 >htmlDocPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlDocPtr htmlDocPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6592"
+NAME="AEN7302"
 ></A
 ><H3
 ><A
 NAME="HTMLNODEPTR"
 ></A
 >htmlNodePtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlNodePtr htmlNodePtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6597"
+NAME="AEN7306"
 ></A
 ><H3
 ><A
@@ -584,7 +467,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  The tag name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -599,7 +482,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the related htmlElemDescPtr or NULL if not found.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -609,7 +492,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6618"
+NAME="AEN7327"
 ></A
 ><H3
 ><A
@@ -667,7 +550,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -682,7 +565,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the associated htmlEntityDescPtr if found, NULL otherwise.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -692,7 +575,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6640"
+NAME="AEN7349"
 ></A
 ><H3
 ><A
@@ -754,7 +637,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an HTML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -771,7 +654,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  location to store the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -786,8 +669,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the associated htmlEntityDescPtr if found, or NULL otherwise,
-if non-NULL *str will have to be freed by the caller.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -797,7 +679,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6667"
+NAME="AEN7376"
 ></A
 ><H3
 ><A
@@ -856,7 +738,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an HTML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -871,7 +753,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the value parsed (as an int)</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -881,7 +763,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6689"
+NAME="AEN7398"
 ></A
 ><H3
 ><A
@@ -938,7 +820,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an HTML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -948,7 +830,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6707"
+NAME="AEN7416"
 ></A
 ><H3
 ><A
@@ -1012,7 +894,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a pointer to an array of CHAR</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1029,7 +911,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a free form C string describing the HTML document encoding, or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1046,7 +928,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the SAX handler block</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1063,7 +945,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> if using SAX, this pointer will be provided on callbacks. </TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1078,7 +960,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1088,7 +970,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6741"
+NAME="AEN7450"
 ></A
 ><H3
 ><A
@@ -1145,7 +1027,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a pointer to an array of CHAR</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1162,7 +1044,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a free form C string describing the HTML document encoding, or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1177,7 +1059,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1187,7 +1069,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6766"
+NAME="AEN7475"
 ></A
 ><H3
 ><A
@@ -1249,7 +1131,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1266,7 +1148,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a free form C string describing the HTML document encoding, or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1283,7 +1165,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the SAX handler block</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1300,7 +1182,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> if using SAX, this pointer will be provided on callbacks. </TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1315,7 +1197,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1325,7 +1207,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6799"
+NAME="AEN7508"
 ></A
 ><H3
 ><A
@@ -1380,7 +1262,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1397,7 +1279,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a free form C string describing the HTML document encoding, or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1412,7 +1294,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
diff --git a/doc/html/gnome-xml-htmltree.html b/doc/html/gnome-xml-htmltree.html
index 9eee850..249070b 100644
--- a/doc/html/gnome-xml-htmltree.html
+++ b/doc/html/gnome-xml-htmltree.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6828"
+NAME="AEN7537"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6831"
+NAME="AEN7540"
 ></A
 ><H2
 >Synopsis</H2
@@ -188,7 +188,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6845"
+NAME="AEN7554"
 ></A
 ><H2
 >Description</H2
@@ -198,14 +198,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6848"
+NAME="AEN7557"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6850"
+NAME="AEN7559"
 ></A
 ><H3
 ><A
@@ -221,7 +221,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define HTML_TEXT_NODE		XML_TEXT_NODE</PRE
+>#define     HTML_TEXT_NODE</PRE
 ></TD
 ></TR
 ></TABLE
@@ -231,7 +231,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6855"
+NAME="AEN7564"
 ></A
 ><H3
 ><A
@@ -247,7 +247,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define HTML_ENTITY_REF_NODE	XML_ENTITY_REF_NODE</PRE
+>#define     HTML_ENTITY_REF_NODE</PRE
 ></TD
 ></TR
 ></TABLE
@@ -257,7 +257,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6860"
+NAME="AEN7569"
 ></A
 ><H3
 ><A
@@ -273,7 +273,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define HTML_COMMENT_NODE	XML_COMMENT_NODE</PRE
+>#define     HTML_COMMENT_NODE</PRE
 ></TD
 ></TR
 ></TABLE
@@ -283,7 +283,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6865"
+NAME="AEN7574"
 ></A
 ><H3
 ><A
@@ -342,7 +342,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -359,7 +359,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  OUT: the memory pointer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -376,7 +376,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  OUT: the memory lenght</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -386,7 +386,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6890"
+NAME="AEN7599"
 ></A
 ><H3
 ><A
@@ -443,7 +443,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the FILE*</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -460,7 +460,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -470,7 +470,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6911"
+NAME="AEN7620"
 ></A
 ><H3
 ><A
@@ -524,7 +524,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -541,7 +541,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -556,7 +556,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the number of byte written or -1 in case of failure.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
diff --git a/doc/html/gnome-xml-parser.html b/doc/html/gnome-xml-parser.html
index e3e998c..2f4f348 100644
--- a/doc/html/gnome-xml-parser.html
+++ b/doc/html/gnome-xml-parser.html
@@ -165,6 +165,10 @@
 HREF="gnome-xml-parser.html#XMLPARSERNODEINFOSEQPTR"
 >xmlParserNodeInfoSeqPtr</A
 >;
+enum        <A
+HREF="gnome-xml-parser.html#XMLPARSERINPUTSTATE"
+>xmlParserInputState</A
+>;
 typedef     <A
 HREF="gnome-xml-parser.html#XMLPARSERCTXT"
 >xmlParserCtxt</A
@@ -223,6 +227,17 @@
 HREF="gnome-xml-tree.html#CHAR"
 >CHAR</A
 > *name);
+<A
+HREF="gnome-xml-entities.html#XMLENTITYPTR"
+>xmlEntityPtr</A
+> (<A
+HREF="gnome-xml-parser.html#GETPARAMETERENTITYSAXFUNC"
+>*getParameterEntitySAXFunc</A
+>)   (void *ctx,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *name);
 void        (<A
 HREF="gnome-xml-parser.html#ENTITYDECLSAXFUNC"
 >*entityDeclSAXFunc</A
@@ -410,6 +425,15 @@
 >CHAR</A
 > *value);
 void        (<A
+HREF="gnome-xml-parser.html#CDATABLOCKSAXFUNC"
+>*cdataBlockSAXFunc</A
+>)            (void *ctx,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *value,
+                                             int len);
+void        (<A
 HREF="gnome-xml-parser.html#WARNINGSAXFUNC"
 >*warningSAXFunc</A
 >)               (void *ctx,
@@ -823,7 +847,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN192"
+NAME="AEN198"
 ></A
 ><H2
 >Description</H2
@@ -833,14 +857,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN195"
+NAME="AEN201"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN197"
+NAME="AEN203"
 ></A
 ><H3
 ><A
@@ -856,7 +880,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_DEFAULT_VERSION	"1.0"</PRE
+>#define     XML_DEFAULT_VERSION</PRE
 ></TD
 ></TR
 ></TABLE
@@ -866,7 +890,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN202"
+NAME="AEN208"
 ></A
 ><H3
 ><A
@@ -927,52 +951,13 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN217"
+NAME="AEN223"
 ></A
 ><H3
 ><A
 NAME="XMLPARSERINPUTPTR"
 ></A
 >xmlParserInputPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlParserInput *xmlParserInputPtr;</PRE
-></TD
-></TR
-></TABLE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN222"
-></A
-><H3
-><A
-NAME="XMLPARSERNODEINFO"
-></A
->xmlParserNodeInfo</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef _xmlParserNodeInfo xmlParserNodeInfo;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
@@ -983,35 +968,48 @@
 ></A
 ><H3
 ><A
-NAME="XMLPARSERNODEINFOSEQ"
+NAME="XMLPARSERNODEINFO"
 ></A
->xmlParserNodeInfoSeq</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef _xmlParserNodeInfoSeq xmlParserNodeInfoSeq;</PRE
-></TD
-></TR
-></TABLE
+>xmlParserNodeInfo</H3
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN232"
+NAME="AEN231"
+></A
+><H3
+><A
+NAME="XMLPARSERNODEINFOSEQ"
+></A
+>xmlParserNodeInfoSeq</H3
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN235"
 ></A
 ><H3
 ><A
 NAME="XMLPARSERNODEINFOSEQPTR"
 ></A
 >xmlParserNodeInfoSeqPtr</H3
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN239"
+></A
+><H3
+><A
+NAME="XMLPARSERINPUTSTATE"
+></A
+>enum xmlParserInputState</H3
 ><TABLE
 BORDER="0"
 BGCOLOR="#D6E8FF"
@@ -1021,7 +1019,18 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr;</PRE
+>typedef enum xmlParserInputState {
+    XML_PARSER_EOF = 0,
+    XML_PARSER_PROLOG,
+    XML_PARSER_CONTENT,
+    XML_PARSER_ENTITY_DECL,
+    XML_PARSER_ENTITY_VALUE,
+    XML_PARSER_ATTRIBUTE_VALUE,
+    XML_PARSER_DTD,
+    XML_PARSER_EPILOG,
+    XML_PARSER_COMMENT,
+    XML_PARSER_CDATA_SECTION,
+} xmlParserInputState;</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1031,78 +1040,26 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN237"
+NAME="AEN244"
 ></A
 ><H3
 ><A
 NAME="XMLPARSERCTXT"
 ></A
 >xmlParserCtxt</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef _xmlParserCtxt xmlParserCtxt;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN242"
+NAME="AEN248"
 ></A
 ><H3
 ><A
 NAME="XMLPARSERCTXTPTR"
 ></A
 >xmlParserCtxtPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlParserCtxt *xmlParserCtxtPtr;</PRE
-></TD
-></TR
-></TABLE
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN247"
-></A
-><H3
-><A
-NAME="XMLSAXLOCATOR"
-></A
->xmlSAXLocator</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef _xmlSAXLocator xmlSAXLocator;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
@@ -1113,29 +1070,29 @@
 ></A
 ><H3
 ><A
-NAME="XMLSAXLOCATORPTR"
+NAME="XMLSAXLOCATOR"
 ></A
->xmlSAXLocatorPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlSAXLocator *xmlSAXLocatorPtr;</PRE
-></TD
-></TR
-></TABLE
+>xmlSAXLocator</H3
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN257"
+NAME="AEN256"
+></A
+><H3
+><A
+NAME="XMLSAXLOCATORPTR"
+></A
+>xmlSAXLocatorPtr</H3
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN260"
 ></A
 ><H3
 ><A
@@ -1253,7 +1210,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN286"
+NAME="AEN289"
 ></A
 ><H3
 ><A
@@ -1374,7 +1331,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN315"
+NAME="AEN318"
 ></A
 ><H3
 ><A
@@ -1471,7 +1428,104 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN339"
+NAME="AEN342"
+></A
+><H3
+><A
+NAME="GETPARAMETERENTITYSAXFUNC"
+></A
+>getParameterEntitySAXFunc ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="gnome-xml-entities.html#XMLENTITYPTR"
+>xmlEntityPtr</A
+> (*getParameterEntitySAXFunc)   (void *ctx,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *name);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN366"
 ></A
 ><H3
 ><A
@@ -1631,7 +1685,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN377"
+NAME="AEN404"
 ></A
 ><H3
 ><A
@@ -1752,7 +1806,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN406"
+NAME="AEN433"
 ></A
 ><H3
 ><A
@@ -1930,7 +1984,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN448"
+NAME="AEN475"
 ></A
 ><H3
 ><A
@@ -2048,7 +2102,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN476"
+NAME="AEN503"
 ></A
 ><H3
 ><A
@@ -2190,7 +2244,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN510"
+NAME="AEN537"
 ></A
 ><H3
 ><A
@@ -2269,7 +2323,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN529"
+NAME="AEN556"
 ></A
 ><H3
 ><A
@@ -2327,7 +2381,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN543"
+NAME="AEN570"
 ></A
 ><H3
 ><A
@@ -2385,7 +2439,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN557"
+NAME="AEN584"
 ></A
 ><H3
 ><A
@@ -2485,7 +2539,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN581"
+NAME="AEN608"
 ></A
 ><H3
 ><A
@@ -2564,7 +2618,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN600"
+NAME="AEN627"
 ></A
 ><H3
 ><A
@@ -2664,7 +2718,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN624"
+NAME="AEN651"
 ></A
 ><H3
 ><A
@@ -2743,7 +2797,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN643"
+NAME="AEN670"
 ></A
 ><H3
 ><A
@@ -2840,7 +2894,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN666"
+NAME="AEN693"
 ></A
 ><H3
 ><A
@@ -2937,7 +2991,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN689"
+NAME="AEN716"
 ></A
 ><H3
 ><A
@@ -3037,7 +3091,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN713"
+NAME="AEN740"
 ></A
 ><H3
 ><A
@@ -3116,7 +3170,104 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN732"
+NAME="AEN759"
+></A
+><H3
+><A
+NAME="CDATABLOCKSAXFUNC"
+></A
+>cdataBlockSAXFunc ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        (*cdataBlockSAXFunc)            (void *ctx,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *value,
+                                             int len);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>value</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
+>len</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN782"
 ></A
 ><H3
 ><A
@@ -3210,7 +3361,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN754"
+NAME="AEN804"
 ></A
 ><H3
 ><A
@@ -3304,7 +3455,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN776"
+NAME="AEN826"
 ></A
 ><H3
 ><A
@@ -3398,7 +3549,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN798"
+NAME="AEN848"
 ></A
 ><H3
 ><A
@@ -3471,7 +3622,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN816"
+NAME="AEN866"
 ></A
 ><H3
 ><A
@@ -3544,7 +3695,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN834"
+NAME="AEN884"
 ></A
 ><H3
 ><A
@@ -3617,33 +3768,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN852"
+NAME="AEN902"
 ></A
 ><H3
 ><A
 NAME="XMLSAXHANDLERPTR"
 ></A
 >xmlSAXHandlerPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlSAXHandler *xmlSAXHandlerPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN857"
+NAME="AEN906"
 ></A
 ><H3
 ><A
@@ -3669,7 +3807,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN862"
+NAME="AEN911"
 ></A
 ><H3
 ><A
@@ -3695,7 +3833,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN867"
+NAME="AEN916"
 ></A
 ><H3
 ><A
@@ -3721,7 +3859,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN872"
+NAME="AEN921"
 ></A
 ><H3
 ><A
@@ -3747,7 +3885,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN877"
+NAME="AEN926"
 ></A
 ><H3
 ><A
@@ -3802,7 +3940,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser input</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3819,7 +3957,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an indicative size for the lookahead</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3834,8 +3972,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the number of CHARs read, or -1 in case of error, 0 indicate the
-end of this entity</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3845,7 +3982,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN901"
+NAME="AEN950"
 ></A
 ><H3
 ><A
@@ -3900,7 +4037,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser input</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3917,7 +4054,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an indicative size for the lookahead</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3932,8 +4069,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the number of CHARs read, or -1 in case of error, 0 indicate the
-end of this entity</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3943,7 +4079,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN925"
+NAME="AEN974"
 ></A
 ><H3
 ><A
@@ -3999,7 +4135,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the input CHAR *</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4014,7 +4150,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a new CHAR * or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4024,7 +4160,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN946"
+NAME="AEN995"
 ></A
 ><H3
 ><A
@@ -4081,7 +4217,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the input CHAR *</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4098,12 +4234,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the len of <TT
-CLASS="PARAMETER"
-><I
->cur</I
-></TT
-></TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4118,7 +4249,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a new CHAR * or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4128,7 +4259,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN972"
+NAME="AEN1020"
 ></A
 ><H3
 ><A
@@ -4186,7 +4317,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR * array (haystack)</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4203,7 +4334,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the index of the first char (zero based)</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4220,7 +4351,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the length of the substring</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4235,7 +4366,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the CHAR * for the first occurence or NULL.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4245,7 +4376,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1001"
+NAME="AEN1049"
 ></A
 ><H3
 ><A
@@ -4305,7 +4436,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR * array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4322,7 +4453,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR to search</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4337,7 +4468,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the CHAR * for the first occurence or NULL.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4347,7 +4478,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1027"
+NAME="AEN1075"
 ></A
 ><H3
 ><A
@@ -4407,7 +4538,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR * array (haystack)</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4424,7 +4555,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR to search (needle)</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4439,7 +4570,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the CHAR * for the first occurence or NULL.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4449,7 +4580,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1053"
+NAME="AEN1101"
 ></A
 ><H3
 ><A
@@ -4506,7 +4637,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first CHAR *</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4523,7 +4654,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the second CHAR *</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4538,7 +4669,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the integer result of the comparison</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4548,7 +4679,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1078"
+NAME="AEN1126"
 ></A
 ><H3
 ><A
@@ -4606,7 +4737,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first CHAR *</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4623,7 +4754,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the second CHAR *</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4640,7 +4771,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the max comparison length</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4655,7 +4786,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the integer result of the comparison</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4665,7 +4796,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1107"
+NAME="AEN1155"
 ></A
 ><H3
 ><A
@@ -4718,7 +4849,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR * array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4733,7 +4864,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the number of CHAR contained in the ARRAY.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4743,7 +4874,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1127"
+NAME="AEN1175"
 ></A
 ><H3
 ><A
@@ -4803,7 +4934,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the original CHAR * array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4820,7 +4951,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR * array added</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4835,7 +4966,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a new CHAR * containing the concatenated string.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4845,7 +4976,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1153"
+NAME="AEN1201"
 ></A
 ><H3
 ><A
@@ -4906,7 +5037,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the original CHAR * array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4923,7 +5054,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR * array added</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4940,12 +5071,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the length of <TT
-CLASS="PARAMETER"
-><I
->add</I
-></TT
-></TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4960,7 +5086,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a new CHAR * containing the concatenated string.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4970,7 +5096,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1184"
+NAME="AEN1231"
 ></A
 ><H3
 ><A
@@ -5026,7 +5152,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a pointer to an array of CHAR</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5041,7 +5167,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5051,7 +5177,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1205"
+NAME="AEN1252"
 ></A
 ><H3
 ><A
@@ -5105,7 +5231,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an pointer to a char array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5122,7 +5248,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the size of the array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5137,7 +5263,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5147,7 +5273,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1229"
+NAME="AEN1276"
 ></A
 ><H3
 ><A
@@ -5201,7 +5327,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5216,7 +5342,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5226,7 +5352,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1249"
+NAME="AEN1296"
 ></A
 ><H3
 ><A
@@ -5284,7 +5410,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  int 0 or 1 </TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5299,7 +5425,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the last value for 0 for no substitution, 1 for substitution.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5309,7 +5435,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1269"
+NAME="AEN1316"
 ></A
 ><H3
 ><A
@@ -5366,7 +5492,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a pointer to an array of CHAR</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5381,7 +5507,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5391,7 +5517,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1290"
+NAME="AEN1337"
 ></A
 ><H3
 ><A
@@ -5446,7 +5572,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an pointer to a char array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5463,7 +5589,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the size of the array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5478,7 +5604,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5488,7 +5614,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1314"
+NAME="AEN1361"
 ></A
 ><H3
 ><A
@@ -5543,7 +5669,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5558,7 +5684,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5568,7 +5694,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1334"
+NAME="AEN1381"
 ></A
 ><H3
 ><A
@@ -5626,7 +5752,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5641,8 +5767,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->0, -1 in case of error. the parser context is augmented
-as a result of the parsing.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5652,7 +5777,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1356"
+NAME="AEN1403"
 ></A
 ><H3
 ><A
@@ -5715,7 +5840,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the SAX handler block</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5732,7 +5857,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a pointer to an array of CHAR</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5749,8 +5874,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  work in recovery mode, i.e. tries to read no Well Formed
-documents</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5765,7 +5889,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5775,7 +5899,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1386"
+NAME="AEN1433"
 ></A
 ><H3
 ><A
@@ -5836,7 +5960,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the SAX handler block</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5853,7 +5977,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an pointer to a char array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5870,7 +5994,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the siwe of the array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5887,8 +6011,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  work in recovery mode, i.e. tries to read no Well Formed
-documents</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5903,7 +6026,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5913,7 +6036,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1419"
+NAME="AEN1466"
 ></A
 ><H3
 ><A
@@ -5974,7 +6097,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the SAX handler block</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5991,7 +6114,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6008,8 +6131,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  work in recovery mode, i.e. tries to read no Well Formed
-documents</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6024,7 +6146,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting document tree</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6034,7 +6156,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1448"
+NAME="AEN1495"
 ></A
 ><H3
 ><A
@@ -6094,7 +6216,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a NAME* containing the External ID of the DTD</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6111,7 +6233,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a NAME* containing the URL to the DTD</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6126,7 +6248,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting xmlDtdPtr or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6136,7 +6258,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1474"
+NAME="AEN1521"
 ></A
 ><H3
 ><A
@@ -6200,7 +6322,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the SAX handler block</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6217,7 +6339,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a NAME* containing the External ID of the DTD</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6234,7 +6356,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a NAME* containing the URL to the DTD</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6249,7 +6371,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the resulting xmlDtdPtr or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6259,7 +6381,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1505"
+NAME="AEN1552"
 ></A
 ><H3
 ><A
@@ -6312,7 +6434,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an HTML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6322,7 +6444,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1521"
+NAME="AEN1568"
 ></A
 ><H3
 ><A
@@ -6375,7 +6497,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6385,7 +6507,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1537"
+NAME="AEN1584"
 ></A
 ><H3
 ><A
@@ -6445,7 +6567,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6462,7 +6584,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a CHAR * buffer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6479,7 +6601,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a file name</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6489,7 +6611,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1562"
+NAME="AEN1609"
 ></A
 ><H3
 ><A
@@ -6550,7 +6672,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6567,7 +6689,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML node within the tree</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6582,7 +6704,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->an xmlParserNodeInfo block pointer or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6592,7 +6714,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1588"
+NAME="AEN1635"
 ></A
 ><H3
 ><A
@@ -6645,7 +6767,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a node info sequence pointer</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6655,7 +6777,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1604"
+NAME="AEN1651"
 ></A
 ><H3
 ><A
@@ -6709,7 +6831,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a node info sequence pointer</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6719,7 +6841,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1620"
+NAME="AEN1667"
 ></A
 ><H3
 ><A
@@ -6780,7 +6902,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a node info sequence pointer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6797,7 +6919,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML node pointer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6812,7 +6934,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a long indicating the position of the record</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6822,7 +6944,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1646"
+NAME="AEN1693"
 ></A
 ><H3
 ><A
@@ -6879,7 +7001,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6896,7 +7018,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a node info sequence pointer</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6906,7 +7028,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1667"
+NAME="AEN1714"
 ></A
 ><H3
 ><A
@@ -6934,7 +7056,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1673"
+NAME="AEN1720"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-parserinternals.html b/doc/html/gnome-xml-parserinternals.html
index bf3cd98..944c4e9 100644
--- a/doc/html/gnome-xml-parserinternals.html
+++ b/doc/html/gnome-xml-parserinternals.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN4681"
+NAME="AEN5221"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN4684"
+NAME="AEN5224"
 ></A
 ><H2
 >Synopsis</H2
@@ -138,6 +138,18 @@
 CLASS="SYNOPSIS"
 >&#13;
 
+typedef     <A
+HREF="gnome-xml-parserinternals.html#CHARVAL"
+>CHARVAL</A
+>;
+#define     <A
+HREF="gnome-xml-parserinternals.html#NEXTCHARVAL"
+>NEXTCHARVAL</A
+>                     (p)
+#define     <A
+HREF="gnome-xml-parserinternals.html#SKIPCHARVAL"
+>SKIPCHARVAL</A
+>                     (p)
 #define     <A
 HREF="gnome-xml-parserinternals.html#IS-CHAR"
 >IS_CHAR</A
@@ -218,6 +230,24 @@
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);
+<A
+HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
+>xmlParserCtxtPtr</A
+> <A
+HREF="gnome-xml-parserinternals.html#XMLNEWPARSERCTXT"
+>xmlNewParserCtxt</A
+>           ();
+void        <A
+HREF="gnome-xml-parserinternals.html#XMLSWITCHENCODING"
+>xmlSwitchEncoding</A
+>               (<A
+HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
+>xmlParserCtxtPtr</A
+> ctxt,
+                                             <GTKDOCLINK
+HREF="XMLCHARENCODING"
+>xmlCharEncoding</GTKDOCLINK
+> enc);
 void        <A
 HREF="gnome-xml-parserinternals.html#XMLHANDLEENTITY"
 >xmlHandleEntity</A
@@ -351,6 +381,16 @@
 HREF="gnome-xml-tree.html#CHAR"
 >CHAR</A
 >*       <A
+HREF="gnome-xml-parserinternals.html#XMLSCANNAME"
+>xmlScanName</A
+>                     (<A
+HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
+>xmlParserCtxtPtr</A
+> ctxt);
+<A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+>*       <A
 HREF="gnome-xml-parserinternals.html#XMLPARSENAME"
 >xmlParseName</A
 >                    (<A
@@ -739,6 +779,21 @@
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);
+void        <A
+HREF="gnome-xml-parserinternals.html#XMLPARSEEXTERNALSUBSET"
+>xmlParseExternalSubset</A
+>          (<A
+HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
+>xmlParserCtxtPtr</A
+> ctxt,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *ExternalID,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *SystemID);
 #define     <A
 HREF="gnome-xml-parserinternals.html#XML-SUBSTITUTE-NONE"
 >XML_SUBSTITUTE_NONE</A
@@ -828,7 +883,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4879"
+NAME="AEN5434"
 ></A
 ><H2
 >Description</H2
@@ -838,14 +893,143 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4882"
+NAME="AEN5437"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4884"
+NAME="AEN5439"
+></A
+><H3
+><A
+NAME="CHARVAL"
+></A
+>CHARVAL</H3
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5443"
+></A
+><H3
+><A
+NAME="NEXTCHARVAL"
+></A
+>NEXTCHARVAL()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     NEXTCHARVAL(p)</PRE
+></TD
+></TR
+></TABLE
+><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
+>p</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5457"
+></A
+><H3
+><A
+NAME="SKIPCHARVAL"
+></A
+>SKIPCHARVAL()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     SKIPCHARVAL(p)</PRE
+></TD
+></TR
+></TABLE
+><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
+>p</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5471"
 ></A
 ><H3
 ><A
@@ -903,7 +1087,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4898"
+NAME="AEN5485"
 ></A
 ><H3
 ><A
@@ -961,7 +1145,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4912"
+NAME="AEN5499"
 ></A
 ><H3
 ><A
@@ -1019,7 +1203,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4926"
+NAME="AEN5513"
 ></A
 ><H3
 ><A
@@ -1077,7 +1261,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4940"
+NAME="AEN5527"
 ></A
 ><H3
 ><A
@@ -1135,7 +1319,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4954"
+NAME="AEN5541"
 ></A
 ><H3
 ><A
@@ -1193,7 +1377,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4968"
+NAME="AEN5555"
 ></A
 ><H3
 ><A
@@ -1251,7 +1435,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4982"
+NAME="AEN5569"
 ></A
 ><H3
 ><A
@@ -1309,7 +1493,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4996"
+NAME="AEN5583"
 ></A
 ><H3
 ><A
@@ -1367,7 +1551,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5010"
+NAME="AEN5597"
 ></A
 ><H3
 ><A
@@ -1425,7 +1609,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5024"
+NAME="AEN5611"
 ></A
 ><H3
 ><A
@@ -1483,7 +1667,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5038"
+NAME="AEN5625"
 ></A
 ><H3
 ><A
@@ -1541,7 +1725,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5052"
+NAME="AEN5639"
 ></A
 ><H3
 ><A
@@ -1597,7 +1781,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a pointer to an array of CHAR</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1612,7 +1796,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new parser context or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1622,7 +1806,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5073"
+NAME="AEN5660"
 ></A
 ><H3
 ><A
@@ -1677,7 +1861,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1692,7 +1876,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new parser context or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1702,7 +1886,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5093"
+NAME="AEN5680"
 ></A
 ><H3
 ><A
@@ -1756,7 +1940,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an pointer to a char array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1773,7 +1957,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the siwe of the array</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1788,7 +1972,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new parser context or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1798,7 +1982,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5117"
+NAME="AEN5704"
 ></A
 ><H3
 ><A
@@ -1852,7 +2036,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1862,13 +2046,13 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5133"
+NAME="AEN5720"
 ></A
 ><H3
 ><A
-NAME="XMLHANDLEENTITY"
+NAME="XMLNEWPARSERCTXT"
 ></A
->xmlHandleEntity ()</H3
+>xmlNewParserCtxt ()</H3
 ><TABLE
 BORDER="0"
 BGCOLOR="#D6E8FF"
@@ -1878,21 +2062,81 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->void        xmlHandleEntity                 (<A
+><A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
-> ctxt,
-                                             <A
-HREF="gnome-xml-entities.html#XMLENTITYPTR"
->xmlEntityPtr</A
-> entity);</PRE
+> xmlNewParserCtxt           ();</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->Default handling of defined entities, when should we define a new input
-stream ? When do we just handle that as a set of chars ?
-TODO: we should call the SAX handler here and have it resolve the issue</P
+>Allocate and initialize a new parser context.</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"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5736"
+></A
+><H3
+><A
+NAME="XMLSWITCHENCODING"
+></A
+>xmlSwitchEncoding ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlSwitchEncoding               (<A
+HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
+>xmlParserCtxtPtr</A
+> ctxt,
+                                             <GTKDOCLINK
+HREF="XMLCHARENCODING"
+>xmlCharEncoding</GTKDOCLINK
+> enc);</PRE
+></TD
+></TR
+></TABLE
+><P
+>change the input functions when discovering the character encoding
+of a given entity.</P
 ><P
 ></P
 ><DIV
@@ -1921,7 +2165,94 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>enc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5757"
+></A
+><H3
+><A
+NAME="XMLHANDLEENTITY"
+></A
+>xmlHandleEntity ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlHandleEntity                 (<A
+HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
+>xmlParserCtxtPtr</A
+> ctxt,
+                                             <A
+HREF="gnome-xml-entities.html#XMLENTITYPTR"
+>xmlEntityPtr</A
+> entity);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Default handling of defined entities, when should we define a new input
+stream ? When do we just handle that as a set of chars ?</P
+><P
+>OBSOLETE: to be removed at some point.</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
+>ctxt</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1938,7 +2269,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML entity pointer.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1948,7 +2279,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5154"
+NAME="AEN5779"
 ></A
 ><H3
 ><A
@@ -2008,7 +2339,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2025,7 +2356,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an Entity pointer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2040,7 +2371,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new input stream</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2050,7 +2381,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5180"
+NAME="AEN5805"
 ></A
 ><H3
 ><A
@@ -2108,7 +2439,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2125,7 +2456,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser input fragment (entity, XML fragment ...).</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2135,7 +2466,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5201"
+NAME="AEN5826"
 ></A
 ><H3
 ><A
@@ -2165,8 +2496,6 @@
 >xmlPopInput: the current input pointed by ctxt-&gt;input came to an end
 pop it and return the next char.</P
 ><P
->TODO A deallocation of the popped Input structure is needed</P
-><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -2194,7 +2523,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2209,7 +2538,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the current CHAR in the parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2219,7 +2548,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5223"
+NAME="AEN5847"
 ></A
 ><H3
 ><A
@@ -2272,7 +2601,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an xmlParserInputPtr</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2282,7 +2611,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5239"
+NAME="AEN5863"
 ></A
 ><H3
 ><A
@@ -2339,7 +2668,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2356,7 +2685,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename to use as entity</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2371,7 +2700,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new input stream or NULL in case of error</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2381,7 +2710,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5264"
+NAME="AEN5888"
 ></A
 ><H3
 ><A
@@ -2447,7 +2776,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2464,7 +2793,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a CHAR ** </TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2479,8 +2808,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the function returns the local part, and prefix is updated
-to get the Prefix if any.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2490,7 +2818,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5293"
+NAME="AEN5917"
 ></A
 ><H3
 ><A
@@ -2551,7 +2879,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2566,7 +2894,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the namespace name or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2576,7 +2904,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5316"
+NAME="AEN5940"
 ></A
 ><H3
 ><A
@@ -2642,7 +2970,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2659,7 +2987,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a CHAR ** </TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2674,8 +3002,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the function returns the local part, and prefix is updated
-to get the Prefix if any.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2685,7 +3012,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5345"
+NAME="AEN5969"
 ></A
 ><H3
 ><A
@@ -2745,7 +3072,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2760,7 +3087,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the namespace name</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2770,7 +3097,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5368"
+NAME="AEN5992"
 ></A
 ><H3
 ><A
@@ -2797,7 +3124,8 @@
 ></TR
 ></TABLE
 ><P
->[OLD] Parse and return a string between quotes or doublequotes</P
+>[OLD] Parse and return a string between quotes or doublequotes
+To be removed at next drop of binary compatibility</P
 ><P
 ></P
 ><DIV
@@ -2826,7 +3154,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2841,7 +3169,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the string parser or NULL.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2851,7 +3179,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5389"
+NAME="AEN6013"
 ></A
 ><H3
 ><A
@@ -2881,6 +3209,8 @@
 other stuff may still rely on it, so support is still here as
 if ot was declared on the root of the Tree:-(</P
 ><P
+>To be removed at next drop of binary compatibility</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -2908,7 +3238,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2918,7 +3248,96 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5406"
+NAME="AEN6031"
+></A
+><H3
+><A
+NAME="XMLSCANNAME"
+></A
+>xmlScanName ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+>*       xmlScanName                     (<A
+HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
+>xmlParserCtxtPtr</A
+> ctxt);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Trickery: parse an XML name but without consuming the input flow
+Needed for rollback cases.</P
+><P
+>[4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |
+CombiningChar | Extender</P
+><P
+>[5] Name ::= (Letter | '_' | ':') (NameChar)*</P
+><P
+>[6] Names ::= Name (S Name)*</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
+>ctxt</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6055"
 ></A
 ><H3
 ><A
@@ -2981,7 +3400,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2996,7 +3415,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the Name parsed or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3006,7 +3425,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5430"
+NAME="AEN6079"
 ></A
 ><H3
 ><A
@@ -3066,7 +3485,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3081,7 +3500,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the Nmtoken parsed or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3091,7 +3510,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5453"
+NAME="AEN6102"
 ></A
 ><H3
 ><A
@@ -3154,7 +3573,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3171,7 +3590,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  if non-NULL store a copy of the original entity value</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3186,7 +3605,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the EntityValue parsed with reference substitued or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3196,7 +3615,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5480"
+NAME="AEN6129"
 ></A
 ><H3
 ><A
@@ -3258,7 +3677,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3273,7 +3692,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the AttValue parsed or NULL.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3283,7 +3702,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5502"
+NAME="AEN6151"
 ></A
 ><H3
 ><A
@@ -3341,7 +3760,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3356,7 +3775,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the SystemLiteral parsed or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3366,7 +3785,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5524"
+NAME="AEN6173"
 ></A
 ><H3
 ><A
@@ -3424,7 +3843,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3439,7 +3858,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the PubidLiteral parsed or NULL.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3449,7 +3868,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5546"
+NAME="AEN6195"
 ></A
 ><H3
 ><A
@@ -3506,7 +3925,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3523,7 +3942,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  int indicating whether we are within a CDATA section</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3533,7 +3952,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5567"
+NAME="AEN6216"
 ></A
 ><H3
 ><A
@@ -3602,7 +4021,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3619,7 +4038,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a CHAR** receiving PubidLiteral</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3636,8 +4055,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> indicate whether we should restrict parsing to only
-production [75], see NOTE below</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3652,9 +4070,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the function returns SystemLiteral and in the second
-case publicID receives PubidLiteral, is strict is off
-it is possible to return NULL and have publicID set.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3664,7 +4080,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5600"
+NAME="AEN6249"
 ></A
 ><H3
 ><A
@@ -3723,7 +4139,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3740,7 +4156,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> should we create a node, or just skip the content</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3750,7 +4166,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5621"
+NAME="AEN6270"
 ></A
 ><H3
 ><A
@@ -3808,7 +4224,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3823,7 +4239,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the PITarget name or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3833,7 +4249,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5643"
+NAME="AEN6292"
 ></A
 ><H3
 ><A
@@ -3890,7 +4306,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3900,7 +4316,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5661"
+NAME="AEN6310"
 ></A
 ><H3
 ><A
@@ -3965,7 +4381,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3975,7 +4391,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5681"
+NAME="AEN6330"
 ></A
 ><H3
 ><A
@@ -4013,6 +4429,9 @@
 ><P
 >[76] NDataDecl ::= S 'NDATA' S Name</P
 ><P
+>[ VC: Notation Declared ]
+TODO The Name must match the declared name of a notation.</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -4040,7 +4459,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4050,7 +4469,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5703"
+NAME="AEN6353"
 ></A
 ><H3
 ><A
@@ -4091,6 +4510,34 @@
 >FIXED</GTKDOCLINK
 >' S)? AttValue)</P
 ><P
+>[ VC: Required Attribute ]
+TODO if the default declaration is the keyword <GTKDOCLINK
+HREF="REQUIRED"
+>REQUIRED</GTKDOCLINK
+>, then the
+attribute must be specified for all elements of the type in the
+attribute-list declaration.</P
+><P
+>[ VC: Attribute Default Legal ]
+The declared default value must meet the lexical constraints of
+the declared attribute type c.f. <A
+HREF="gnome-xml-valid.html#XMLVALIDATEATTRIBUTEDECL"
+>xmlValidateAttributeDecl</A
+>()</P
+><P
+>[ VC: Fixed Attribute Default ]
+TODO if an attribute has a default value declared with the <GTKDOCLINK
+HREF="FIXED"
+>FIXED</GTKDOCLINK
+>
+keyword, instances of that attribute must match the default value. </P
+><P
+>[ WFC: No &lt; in Attribute Values ]
+handled in <A
+HREF="gnome-xml-parserinternals.html#XMLPARSEATTVALUE"
+>xmlParseAttValue</A
+>()</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -4118,7 +4565,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4135,7 +4582,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  Receive a possible fixed default value for the attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4150,8 +4597,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> XML_ATTRIBUTE_NONE, XML_ATTRIBUTE_REQUIRED, XML_ATTRIBUTE_IMPLIED
-or XML_ATTRIBUTE_FIXED. </TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4161,7 +4607,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5732"
+NAME="AEN6390"
 ></A
 ><H3
 ><A
@@ -4190,9 +4636,13 @@
 ><P
 >parse an Notation attribute type.</P
 ><P
+>Note: the leading 'NOTATION' S part has already being parsed...</P
+><P
 >[58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'</P
 ><P
->Note: the leading 'NOTATION' S part has already being parsed...</P
+>[ VC: Notation Attributes ]
+TODO Values of this type must match one of the notation names included
+in the declaration; all notation names in the declaration must be declared.</P
 ><P
 ></P
 ><DIV
@@ -4221,7 +4671,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4236,7 +4686,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the notation attribute tree built while parsing</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4246,7 +4696,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5755"
+NAME="AEN6414"
 ></A
 ><H3
 ><A
@@ -4277,6 +4727,10 @@
 ><P
 >[59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'</P
 ><P
+>[ VC: Enumeration ]
+TODO Values of this type must match one of the Nmtoken tokens in
+the declaration</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -4304,7 +4758,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4319,7 +4773,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the enumeration attribute tree built while parsing</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4329,7 +4783,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5777"
+NAME="AEN6437"
 ></A
 ><H3
 ><A
@@ -4390,7 +4844,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4407,7 +4861,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the enumeration tree built while parsing</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4422,7 +4876,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> XML_ATTRIBUTE_ENUMERATION or XML_ATTRIBUTE_NOTATION</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4432,7 +4886,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5804"
+NAME="AEN6464"
 ></A
 ><H3
 ><A
@@ -4469,6 +4923,44 @@
 >[56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' |
 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'</P
 ><P
+>Validity constraints for attribute values syntax are checked in
+<GTKDOCLINK
+HREF="XMLVALIDATEATTRIBUTEVALUE"
+>xmlValidateAttributeValue</GTKDOCLINK
+>()</P
+><P
+>[ VC: ID ]
+Values of type ID must match the Name production. TODO A name must not
+appear more than once in an XML document as a value of this type;
+i.e., ID values must uniquely identify the elements which bear them.</P
+><P
+>[ VC: One ID per Element Type ]
+TODO No element type may have more than one ID attribute specified.</P
+><P
+>[ VC: ID Attribute Default ]
+TODO An ID attribute must have a declared default of <GTKDOCLINK
+HREF="IMPLIED"
+>IMPLIED</GTKDOCLINK
+> or <GTKDOCLINK
+HREF="REQUIRED"
+>REQUIRED</GTKDOCLINK
+>.</P
+><P
+>[ VC: IDREF ]
+Values of type IDREF must match the Name production, and values
+of type IDREFS must match Names; TODO each Name must match the value of
+an ID attribute on some element in the XML document; i.e. IDREF
+values must match the value of some ID attribute.</P
+><P
+>[ VC: Entity Name ]
+Values of type ENTITY must match the Name production, values
+of type ENTITIES must match Names; TODO each Name must match the name of
+an unparsed entity declared in the DTD.  </P
+><P
+>[ VC: Name Token ]
+Values of type NMTOKEN must match the Nmtoken production; values
+of type NMTOKENS must match Nmtokens.</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -4496,7 +4988,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4513,7 +5005,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the enumeration tree built while parsing</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4528,7 +5020,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the attribute type</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4538,7 +5030,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5832"
+NAME="AEN6502"
 ></A
 ><H3
 ><A
@@ -4595,7 +5087,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4605,7 +5097,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5850"
+NAME="AEN6520"
 ></A
 ><H3
 ><A
@@ -4645,6 +5137,12 @@
 >PCDATA</GTKDOCLINK
 >' S? ')'</P
 ><P
+>[ VC: Proper Group/PE Nesting ] applies to [51] too (see [49])</P
+><P
+>[ VC: No Duplicate Types ]
+TODO The same name must not appear more than once in a single
+mixed-content declaration.</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -4672,7 +5170,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4687,7 +5185,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the list of the xmlElementContentPtr describing the element choices</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4697,7 +5195,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5874"
+NAME="AEN6546"
 ></A
 ><H3
 ><A
@@ -4736,6 +5234,17 @@
 ><P
 >[50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'</P
 ><P
+>[ VC: Proper Group/PE Nesting ] applies to [49] and [50]
+TODO Parameter-entity replacement text must be properly nested
+with parenthetized groups. That is to say, if either of the
+opening or closing parentheses in a choice, seq, or Mixed
+construct is contained in the replacement text for a parameter
+entity, both must be contained in the same replacement text. For
+interoperability, if a parameter-entity reference appears in a
+choice, seq, or Mixed construct, its replacement text should not
+be empty, and neither the first nor last non-blank character of
+the replacement text should be a connector (| or ,).</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -4763,7 +5272,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4778,8 +5287,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the tree of xmlElementContentPtr describing the element 
-hierarchy.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4789,7 +5297,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5899"
+NAME="AEN6572"
 ></A
 ><H3
 ><A
@@ -4853,7 +5361,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4870,7 +5378,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the name of the element being defined.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4887,7 +5395,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the Element Content pointer will be stored here if any</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4902,7 +5410,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the type of element content XML_ELEMENT_TYPE_xxx</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4912,7 +5420,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5930"
+NAME="AEN6603"
 ></A
 ><H3
 ><A
@@ -4940,7 +5448,8 @@
 ><P
 >[45] elementdecl ::= '&lt;!ELEMENT' S Name S contentspec S? '&gt;'</P
 ><P
->TODO There is a check [ VC: Unique Element Type Declaration ]</P
+>[ VC: Unique Element Type Declaration ]
+TODO No element type may be declared more than once</P
 ><P
 ></P
 ><DIV
@@ -4969,7 +5478,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4984,7 +5493,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the type of the element, or -1 in case of error</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4994,7 +5503,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5952"
+NAME="AEN6625"
 ></A
 ><H3
 ><A
@@ -5023,7 +5532,18 @@
 >[29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl |
 NotationDecl | PI | Comment</P
 ><P
->TODO There is a check [ VC: Proper Declaration/PE Nesting ]</P
+>[ VC: Proper Declaration/PE Nesting ]
+TODO Parameter-entity replacement text must be properly nested with
+markup declarations. That is to say, if either the first character
+or the last character of a markup declaration (markupdecl above) is
+contained in the replacement text for a parameter-entity reference,
+both must be contained in the same replacement text.</P
+><P
+>[ WFC: PEs in Internal Subset ]
+In the internal DTD subset, parameter-entity references can occur
+only where markup declarations can occur, not within markup declarations.
+(This does not apply to references that occur in external parameter
+entities or to the external subset.)</P
 ><P
 ></P
 ><DIV
@@ -5052,7 +5572,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5062,7 +5582,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5970"
+NAME="AEN6644"
 ></A
 ><H3
 ><A
@@ -5094,6 +5614,10 @@
 >x</GTKDOCLINK
 >' [0-9a-fA-F]+ ';'</P
 ><P
+>[ WFC: Legal Character ]
+Characters referred to using character references must match the
+production for Char.</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -5121,7 +5645,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5136,7 +5660,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the value parsed (as an int)</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5146,7 +5670,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5992"
+NAME="AEN6667"
 ></A
 ><H3
 ><A
@@ -5177,6 +5701,24 @@
 ><P
 >[68] EntityRef ::= '&amp;' Name ';'</P
 ><P
+>[ WFC: Entity Declared ]
+In a document without any DTD, a document with only an internal DTD
+subset which contains no parameter entity references, or a document
+with "standalone='yes'", the Name given in the entity reference
+must match that in an entity declaration, except that well-formed
+documents need not declare any of the following entities: amp, lt,
+gt, apos, quot.  The declaration of a parameter entity must precede
+any reference to it.  Similarly, the declaration of a general entity
+must precede any reference to it which appears in a default value in an
+attribute-list declaration. Note that if entities are declared in the
+external subset or in external parameter entities, a non-validating
+processor is not obligated to read and process their declarations;
+for such documents, the rule that an entity must be declared is a
+well-formedness constraint only if standalone='yes'.</P
+><P
+>[ WFC: Parsed Entity ]
+An entity reference must not contain the name of an unparsed entity</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -5204,7 +5746,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5219,7 +5761,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the xmlEntityPtr if found, or NULL otherwise.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5229,7 +5771,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6014"
+NAME="AEN6691"
 ></A
 ><H3
 ><A
@@ -5293,7 +5835,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5303,7 +5845,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6033"
+NAME="AEN6710"
 ></A
 ><H3
 ><A
@@ -5333,6 +5875,25 @@
 ><P
 >[69] PEReference ::= '%' Name ';'</P
 ><P
+>[ WFC: No Recursion ]
+TODO A parsed entity must not contain a recursive
+reference to itself, either directly or indirectly. </P
+><P
+>[ WFC: Entity Declared ]
+In a document without any DTD, a document with only an internal DTD
+subset which contains no parameter entity references, or a document
+with "standalone='yes'", ...  ... The declaration of a parameter
+entity must precede any reference to it...</P
+><P
+>[ VC: Entity Declared ]
+In a document with an external subset or external parameter entities
+with "standalone='no'", ...  ... The declaration of a parameter entity
+must precede any reference to it...</P
+><P
+>[ WFC: In DTD ]
+Parameter-entity references may only appear in the DTD.
+NOTE: misleading but this is handled.</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -5360,7 +5921,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5370,7 +5931,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6050"
+NAME="AEN6731"
 ></A
 ><H3
 ><A
@@ -5399,6 +5960,10 @@
 >[28] doctypedecl ::= '&lt;!DOCTYPE' S Name (S ExternalID)? S? 
 ('[' (markupdecl | PEReference | S)* ']' S?)? '&gt;'</P
 ><P
+>[ VC: Root Element Type ]
+The Name in the document type declaration must match the element
+type of the root element.</P
+><P
 ></P
 ><DIV
 CLASS="INFORMALTABLE"
@@ -5426,7 +5991,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5436,7 +6001,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6067"
+NAME="AEN6749"
 ></A
 ><H3
 ><A
@@ -5471,6 +6036,18 @@
 ><P
 >[41] Attribute ::= Name Eq AttValue</P
 ><P
+>[ WFC: No External Entity References ]
+Attribute values cannot contain direct or indirect entity references
+to external entities.</P
+><P
+>[ WFC: No &lt; in Attribute Values ]
+The replacement text of any entity referred to directly or indirectly in
+an attribute value (other than "&amp;lt;") must not contain a &lt;. </P
+><P
+>[ VC: Attribute Value Type ]
+TODO The attribute must have been declared; the value must be of the type
+declared for it.</P
+><P
 >[25] Eq ::= S? '=' S?</P
 ><P
 >With namespace:</P
@@ -5507,7 +6084,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5524,7 +6101,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a CHAR ** used to store the value of the attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5539,7 +6116,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the attribute name, and the value in *value.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5549,7 +6126,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6098"
+NAME="AEN6783"
 ></A
 ><H3
 ><A
@@ -5581,8 +6158,16 @@
 ><P
 >[40] STag ::= '&lt;' Name (S Attribute)* S? '&gt;'</P
 ><P
+>[ WFC: Unique Att Spec ]
+No attribute name may appear more than once in the same start-tag or
+empty-element tag. </P
+><P
 >[44] EmptyElemTag ::= '&lt;' Name (S Attribute)* S? '/&gt;'</P
 ><P
+>[ WFC: Unique Att Spec ]
+No attribute name may appear more than once in the same start-tag or
+empty-element tag. </P
+><P
 >With namespace:</P
 ><P
 >[NS 8] STag ::= '&lt;' QName (S Attribute)* S? '&gt;'</P
@@ -5616,7 +6201,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5631,7 +6216,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the element name parsed</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5641,7 +6226,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6124"
+NAME="AEN6811"
 ></A
 ><H3
 ><A
@@ -5704,7 +6289,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5721,7 +6306,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the tag name as parsed in the opening tag.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5731,7 +6316,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6148"
+NAME="AEN6835"
 ></A
 ><H3
 ><A
@@ -5792,7 +6377,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5802,7 +6387,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6168"
+NAME="AEN6855"
 ></A
 ><H3
 ><A
@@ -5857,7 +6442,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5867,7 +6452,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6185"
+NAME="AEN6872"
 ></A
 ><H3
 ><A
@@ -5895,7 +6480,22 @@
 ><P
 >[39] element ::= EmptyElemTag | STag content ETag</P
 ><P
->[41] Attribute ::= Name Eq AttValue</P
+>[ WFC: Element Type Match ]
+The Name in an element's end-tag must match the element type in the
+start-tag. </P
+><P
+>[ VC: Element Valid ]
+TODO An element is valid if there is a declaration matching elementdecl
+where the Name matches the element type and one of the following holds:
+- The declaration matches EMPTY and the element has no content.
+- The declaration matches children and the sequence of child elements
+belongs to the language generated by the regular expression in the
+content model, with optional white space (characters matching the
+nonterminal S) between each pair of child elements. 
+- The declaration matches Mixed and the content consists of character
+data and child elements whose types match names in the content model. 
+- The declaration matches ANY, and the types of any child elements have
+been declared.</P
 ><P
 ></P
 ><DIV
@@ -5924,7 +6524,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5934,7 +6534,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6203"
+NAME="AEN6891"
 ></A
 ><H3
 ><A
@@ -5992,7 +6592,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6007,7 +6607,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the string giving the XML version number, or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6017,7 +6617,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6225"
+NAME="AEN6913"
 ></A
 ><H3
 ><A
@@ -6077,7 +6677,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6092,7 +6692,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the version string, e.g. "1.0"</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6102,7 +6702,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6248"
+NAME="AEN6936"
 ></A
 ><H3
 ><A
@@ -6160,7 +6760,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6175,7 +6775,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the encoding name value or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6185,7 +6785,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6270"
+NAME="AEN6958"
 ></A
 ><H3
 ><A
@@ -6245,7 +6845,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6260,7 +6860,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the encoding value or NULL</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6270,7 +6870,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6293"
+NAME="AEN6981"
 ></A
 ><H3
 ><A
@@ -6297,7 +6897,21 @@
 >parse the XML standalone declaration</P
 ><P
 >[32] SDDecl ::= S 'standalone' Eq
-(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"'))</P
+(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) </P
+><P
+>[ VC: Standalone Document Declaration ]
+TODO The standalone document declaration must have the value "no"
+if any external markup declarations contain declarations of:
+- attributes with default values, if elements to which these
+attributes apply appear in the document without specifications
+of values for these attributes, or
+- entities (other than amp, lt, gt, apos, quot), if references
+to those entities appear in the document, or
+- attributes with values subject to normalization, where the
+attribute appears in the document with a value which will change
+as a result of normalization, or
+- element types with element content, if white space occurs directly
+within any instance of those types.</P
 ><P
 ></P
 ><DIV
@@ -6326,7 +6940,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6341,7 +6955,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->1 if standalone, 0 otherwise</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6351,7 +6965,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6314"
+NAME="AEN7003"
 ></A
 ><H3
 ><A
@@ -6406,7 +7020,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6416,7 +7030,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6331"
+NAME="AEN7020"
 ></A
 ><H3
 ><A
@@ -6471,7 +7085,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6481,7 +7095,118 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6348"
+NAME="AEN7037"
+></A
+><H3
+><A
+NAME="XMLPARSEEXTERNALSUBSET"
+></A
+>xmlParseExternalSubset ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlParseExternalSubset          (<A
+HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
+>xmlParserCtxtPtr</A
+> ctxt,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *ExternalID,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *SystemID);</PRE
+></TD
+></TR
+></TABLE
+><P
+>parse Markup declarations from an external subset</P
+><P
+>[30] extSubset ::= textDecl? extSubsetDecl</P
+><P
+>[31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) *</P
+><P
+>TODO There is a check [ VC: Proper Declaration/PE Nesting ]</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
+>ctxt</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
+>ExternalID</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
+>SystemID</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7066"
 ></A
 ><H3
 ><A
@@ -6497,7 +7222,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_SUBSTITUTE_NONE	0</PRE
+>#define     XML_SUBSTITUTE_NONE</PRE
 ></TD
 ></TR
 ></TABLE
@@ -6507,7 +7232,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6353"
+NAME="AEN7071"
 ></A
 ><H3
 ><A
@@ -6523,7 +7248,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_SUBSTITUTE_REF	1</PRE
+>#define     XML_SUBSTITUTE_REF</PRE
 ></TD
 ></TR
 ></TABLE
@@ -6533,7 +7258,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6358"
+NAME="AEN7076"
 ></A
 ><H3
 ><A
@@ -6549,7 +7274,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_SUBSTITUTE_PEREF	2</PRE
+>#define     XML_SUBSTITUTE_PEREF</PRE
 ></TD
 ></TR
 ></TABLE
@@ -6559,7 +7284,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6363"
+NAME="AEN7081"
 ></A
 ><H3
 ><A
@@ -6575,7 +7300,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_SUBSTITUTE_BOTH 	3</PRE
+>#define     XML_SUBSTITUTE_BOTH</PRE
 ></TD
 ></TR
 ></TABLE
@@ -6585,7 +7310,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6368"
+NAME="AEN7086"
 ></A
 ><H3
 ><A
@@ -6657,7 +7382,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6674,7 +7399,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the len to decode (in bytes !), -1 for no size limit</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6691,7 +7416,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6708,7 +7433,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an end marker CHAR, 0 if none</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6725,7 +7450,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an end marker CHAR, 0 if none</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6742,7 +7467,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an end marker CHAR, 0 if none</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6757,8 +7482,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->A newly allocated string with the substitution done. The caller
-must deallocate it !</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6768,7 +7492,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6413"
+NAME="AEN7131"
 ></A
 ><H3
 ><A
@@ -6865,7 +7589,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6437"
+NAME="AEN7155"
 ></A
 ><H3
 ><A
@@ -6944,7 +7668,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6457"
+NAME="AEN7175"
 ></A
 ><H3
 ><A
@@ -7041,7 +7765,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6481"
+NAME="AEN7199"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-tree.html b/doc/html/gnome-xml-tree.html
index d4890f5..42e98f0 100644
--- a/doc/html/gnome-xml-tree.html
+++ b/doc/html/gnome-xml-tree.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN1684"
+NAME="AEN1731"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN1687"
+NAME="AEN1734"
 ></A
 ><H2
 >Synopsis</H2
@@ -647,6 +647,21 @@
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 >  <A
+HREF="gnome-xml-tree.html#XMLNEWCDATABLOCK"
+>xmlNewCDataBlock</A
+>                (<A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *content,
+                                             int len);
+<A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+>  <A
 HREF="gnome-xml-tree.html#XMLNEWREFERENCE"
 >xmlNewReference</A
 >                 (<A
@@ -1046,7 +1061,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN1937"
+NAME="AEN1988"
 ></A
 ><H2
 >Description</H2
@@ -1056,14 +1071,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN1940"
+NAME="AEN1991"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1942"
+NAME="AEN1993"
 ></A
 ><H3
 ><A
@@ -1102,7 +1117,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1947"
+NAME="AEN1998"
 ></A
 ><H3
 ><A
@@ -1115,33 +1130,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1951"
+NAME="AEN2002"
 ></A
 ><H3
 ><A
 NAME="XMLNOTATIONPTR"
 ></A
 >xmlNotationPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlNotation *xmlNotationPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1956"
+NAME="AEN2006"
 ></A
 ><H3
 ><A
@@ -1178,7 +1180,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1961"
+NAME="AEN2011"
 ></A
 ><H3
 ><A
@@ -1209,59 +1211,33 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1966"
+NAME="AEN2016"
 ></A
 ><H3
 ><A
 NAME="XMLENUMERATIONPTR"
 ></A
 >xmlEnumerationPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlEnumeration *xmlEnumerationPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1971"
+NAME="AEN2020"
 ></A
 ><H3
 ><A
 NAME="XMLATTRIBUTEPTR"
 ></A
 >xmlAttributePtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlAttribute *xmlAttributePtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1976"
+NAME="AEN2024"
 ></A
 ><H3
 ><A
@@ -1292,7 +1268,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1981"
+NAME="AEN2029"
 ></A
 ><H3
 ><A
@@ -1323,33 +1299,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1986"
+NAME="AEN2034"
 ></A
 ><H3
 ><A
 NAME="XMLELEMENTCONTENTPTR"
 ></A
 >xmlElementContentPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlElementContent *xmlElementContentPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1991"
+NAME="AEN2038"
 ></A
 ><H3
 ><A
@@ -1380,33 +1343,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN1996"
+NAME="AEN2043"
 ></A
 ><H3
 ><A
 NAME="XMLELEMENTPTR"
 ></A
 >xmlElementPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlElement *xmlElementPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2001"
+NAME="AEN2047"
 ></A
 ><H3
 ><A
@@ -1435,241 +1385,124 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2006"
+NAME="AEN2052"
 ></A
 ><H3
 ><A
 NAME="XMLNSPTR"
 ></A
 >xmlNsPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlNs *xmlNsPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2011"
+NAME="AEN2056"
 ></A
 ><H3
 ><A
 NAME="XMLDTDPTR"
 ></A
 >xmlDtdPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlDtd *xmlDtdPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2016"
+NAME="AEN2060"
 ></A
 ><H3
 ><A
 NAME="XMLATTRPTR"
 ></A
 >xmlAttrPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlAttr *xmlAttrPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2021"
+NAME="AEN2064"
 ></A
 ><H3
 ><A
 NAME="XMLNODE"
 ></A
 >xmlNode</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef _xmlNode xmlNode;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2026"
+NAME="AEN2068"
 ></A
 ><H3
 ><A
 NAME="XMLNODEPTR"
 ></A
 >xmlNodePtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef _xmlNode *xmlNodePtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2031"
+NAME="AEN2072"
 ></A
 ><H3
 ><A
 NAME="XMLDOC"
 ></A
 >xmlDoc</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef _xmlDoc xmlDoc;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2036"
+NAME="AEN2076"
 ></A
 ><H3
 ><A
 NAME="XMLDOCPTR"
 ></A
 >xmlDocPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlDoc *xmlDocPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2041"
+NAME="AEN2080"
 ></A
 ><H3
 ><A
 NAME="XMLBUFFER"
 ></A
 >xmlBuffer</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef _xmlBuffer xmlBuffer;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2046"
+NAME="AEN2084"
 ></A
 ><H3
 ><A
 NAME="XMLBUFFERPTR"
 ></A
 >xmlBufferPtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlBuffer *xmlBufferPtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2051"
+NAME="AEN2088"
 ></A
 ><H3
 ><A
@@ -1695,7 +1528,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2056"
+NAME="AEN2093"
 ></A
 ><H3
 ><A
@@ -1721,7 +1554,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2061"
+NAME="AEN2098"
 ></A
 ><H3
 ><A
@@ -1747,7 +1580,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2066"
+NAME="AEN2103"
 ></A
 ><H3
 ><A
@@ -1798,7 +1631,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new structure.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1808,7 +1641,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2082"
+NAME="AEN2119"
 ></A
 ><H3
 ><A
@@ -1861,7 +1694,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the buffer to free</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1871,7 +1704,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2098"
+NAME="AEN2135"
 ></A
 ><H3
 ><A
@@ -1928,7 +1761,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the file output</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1945,7 +1778,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the buffer to dump</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1960,7 +1793,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the number of CHAR written</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1970,7 +1803,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2123"
+NAME="AEN2160"
 ></A
 ><H3
 ><A
@@ -2028,7 +1861,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the buffer to dump</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2045,7 +1878,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR string</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2062,7 +1895,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the number of CHAR to add</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2072,7 +1905,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2148"
+NAME="AEN2185"
 ></A
 ><H3
 ><A
@@ -2129,7 +1962,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the buffer to dump</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2146,7 +1979,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the CHAR string</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2156,7 +1989,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2169"
+NAME="AEN2206"
 ></A
 ><H3
 ><A
@@ -2210,7 +2043,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the buffer to dump</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2227,7 +2060,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the C char string</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2237,7 +2070,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2189"
+NAME="AEN2226"
 ></A
 ><H3
 ><A
@@ -2291,7 +2124,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the buffer to dump</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2308,7 +2141,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the number of CHAR to remove</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2323,7 +2156,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the number of CHAR removed, or -1 in case of failure.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2333,7 +2166,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2213"
+NAME="AEN2250"
 ></A
 ><H3
 ><A
@@ -2386,7 +2219,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the buffer</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2396,7 +2229,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2229"
+NAME="AEN2266"
 ></A
 ><H3
 ><A
@@ -2464,7 +2297,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document pointer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2481,7 +2314,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the DTD name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2498,7 +2331,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the external ID</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2515,7 +2348,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the system ID</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2530,7 +2363,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new DTD structure</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2540,7 +2373,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2265"
+NAME="AEN2302"
 ></A
 ><H3
 ><A
@@ -2608,7 +2441,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document pointer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2625,7 +2458,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the DTD name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2642,7 +2475,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the external ID</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2659,7 +2492,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the system ID</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2674,7 +2507,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new DTD structure</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2684,7 +2517,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2301"
+NAME="AEN2338"
 ></A
 ><H3
 ><A
@@ -2737,7 +2570,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the DTD structure to free up</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2747,7 +2580,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2317"
+NAME="AEN2354"
 ></A
 ><H3
 ><A
@@ -2811,7 +2644,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document carrying the namespace</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2828,7 +2661,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the URI associated</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2845,7 +2678,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the prefix for the namespace</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2860,7 +2693,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->returns a new namespace pointer</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2870,7 +2703,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2348"
+NAME="AEN2385"
 ></A
 ><H3
 ><A
@@ -2934,7 +2767,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the element carrying the namespace</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2951,7 +2784,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the URI associated</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2968,7 +2801,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the prefix for the namespace</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2983,7 +2816,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->returns a new namespace pointer</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2993,7 +2826,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2379"
+NAME="AEN2416"
 ></A
 ><H3
 ><A
@@ -3046,7 +2879,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the namespace pointer</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3056,7 +2889,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2395"
+NAME="AEN2432"
 ></A
 ><H3
 ><A
@@ -3112,7 +2945,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  CHAR string giving the version of XML "1.0"</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3127,7 +2960,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a new document</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3137,7 +2970,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2416"
+NAME="AEN2453"
 ></A
 ><H3
 ><A
@@ -3190,8 +3023,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  pointer to the document
-@:  </TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3201,7 +3033,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2432"
+NAME="AEN2469"
 ></A
 ><H3
 ><A
@@ -3265,7 +3097,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3282,7 +3114,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the name of the attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3299,7 +3131,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the value of the attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3314,7 +3146,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the attribute</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3324,7 +3156,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2463"
+NAME="AEN2500"
 ></A
 ><H3
 ><A
@@ -3388,7 +3220,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the holding node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3405,7 +3237,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the name of the attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3422,7 +3254,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the value of the attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3437,7 +3269,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the attribute</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3447,7 +3279,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2494"
+NAME="AEN2531"
 ></A
 ><H3
 ><A
@@ -3500,7 +3332,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first property in the list</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3510,7 +3342,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2510"
+NAME="AEN2547"
 ></A
 ><H3
 ><A
@@ -3563,7 +3395,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first property in the list</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3573,7 +3405,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2526"
+NAME="AEN2563"
 ></A
 ><H3
 ><A
@@ -3629,7 +3461,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3644,7 +3476,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> a new xmlAttrPtr, or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3654,7 +3486,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2547"
+NAME="AEN2584"
 ></A
 ><H3
 ><A
@@ -3710,7 +3542,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3725,7 +3557,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> a new xmlAttrPtr, or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3735,7 +3567,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2568"
+NAME="AEN2605"
 ></A
 ><H3
 ><A
@@ -3791,7 +3623,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the dtd</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3806,7 +3638,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> a new xmlDtdPtr, or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3816,7 +3648,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2589"
+NAME="AEN2626"
 ></A
 ><H3
 ><A
@@ -3874,7 +3706,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3891,7 +3723,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  if 1 do a recursive copy.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -3906,7 +3738,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> a new xmlDocPtr, or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -3916,7 +3748,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2614"
+NAME="AEN2651"
 ></A
 ><H3
 ><A
@@ -3995,7 +3827,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4012,7 +3844,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  namespace if any</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4029,7 +3861,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4046,7 +3878,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the text content if any</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4061,7 +3893,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4071,7 +3903,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2652"
+NAME="AEN2689"
 ></A
 ><H3
 ><A
@@ -4143,7 +3975,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  namespace if any</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4160,7 +3992,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4175,7 +4007,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4185,7 +4017,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2680"
+NAME="AEN2717"
 ></A
 ><H3
 ><A
@@ -4270,7 +4102,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the parent node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4287,7 +4119,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a namespace if any</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4304,7 +4136,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the name of the child</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4321,7 +4153,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the content of the child if any.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4336,7 +4168,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4346,7 +4178,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2719"
+NAME="AEN2756"
 ></A
 ><H3
 ><A
@@ -4406,7 +4238,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4423,7 +4255,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the text content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4438,7 +4270,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4448,7 +4280,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2745"
+NAME="AEN2782"
 ></A
 ><H3
 ><A
@@ -4504,7 +4336,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the text content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4519,7 +4351,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4529,7 +4361,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2766"
+NAME="AEN2803"
 ></A
 ><H3
 ><A
@@ -4591,7 +4423,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4608,7 +4440,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the text content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4625,7 +4457,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the text len.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4640,7 +4472,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4650,7 +4482,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2796"
+NAME="AEN2833"
 ></A
 ><H3
 ><A
@@ -4707,7 +4539,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the text content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4724,7 +4556,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the text len.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4739,7 +4571,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4749,7 +4581,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2821"
+NAME="AEN2858"
 ></A
 ><H3
 ><A
@@ -4809,7 +4641,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4826,7 +4658,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the comment content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4841,7 +4673,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4851,7 +4683,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2847"
+NAME="AEN2884"
 ></A
 ><H3
 ><A
@@ -4907,7 +4739,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the comment content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -4922,7 +4754,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -4932,7 +4764,127 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2868"
+NAME="AEN2905"
+></A
+><H3
+><A
+NAME="XMLNEWCDATABLOCK"
+></A
+>xmlNewCDataBlock ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+>  xmlNewCDataBlock                (<A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *content,
+                                             int len);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creation of a new node containing a CData block.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>content</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
+>len</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2935"
 ></A
 ><H3
 ><A
@@ -4992,7 +4944,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5009,7 +4961,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the reference name, or the reference string with &amp; and ;</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5024,7 +4976,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the new node object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5034,7 +4986,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2894"
+NAME="AEN2961"
 ></A
 ><H3
 ><A
@@ -5091,7 +5043,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5108,7 +5060,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  if 1 do a recursive copy.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5123,7 +5075,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> a new xmlNodePtr, or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5133,7 +5085,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2919"
+NAME="AEN2986"
 ></A
 ><H3
 ><A
@@ -5189,7 +5141,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first node in the list.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5204,7 +5156,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> a new xmlNodePtr, or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5214,7 +5166,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2940"
+NAME="AEN3007"
 ></A
 ><H3
 ><A
@@ -5270,7 +5222,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the parent node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5285,7 +5237,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the last child or NULL if none.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5295,7 +5247,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2961"
+NAME="AEN3028"
 ></A
 ><H3
 ><A
@@ -5348,7 +5300,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5363,7 +5315,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->1 yes, 0 no</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5373,7 +5325,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2981"
+NAME="AEN3048"
 ></A
 ><H3
 ><A
@@ -5438,7 +5390,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the parent node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5455,7 +5407,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the child node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5470,7 +5422,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the child or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5480,7 +5432,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3008"
+NAME="AEN3075"
 ></A
 ><H3
 ><A
@@ -5533,7 +5485,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5543,7 +5495,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3024"
+NAME="AEN3091"
 ></A
 ><H3
 ><A
@@ -5603,7 +5555,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first text node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5620,7 +5572,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the second text node being merged</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5635,7 +5587,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the first text node augmented</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5645,7 +5597,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3050"
+NAME="AEN3117"
 ></A
 ><H3
 ><A
@@ -5703,7 +5655,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5720,7 +5672,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5737,12 +5689,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  <TT
-CLASS="PARAMETER"
-><I
->content</I
-></TT
-> lenght</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5752,7 +5699,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3076"
+NAME="AEN3142"
 ></A
 ><H3
 ><A
@@ -5806,7 +5753,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first node in the list</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5816,7 +5763,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3092"
+NAME="AEN3158"
 ></A
 ><H3
 ><A
@@ -5869,7 +5816,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -5879,7 +5826,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3108"
+NAME="AEN3174"
 ></A
 ><H3
 ><A
@@ -5951,7 +5898,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5968,7 +5915,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the current node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -5985,7 +5932,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the namespace string</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6000,7 +5947,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the namespace pointer or NULL.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6010,7 +5957,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3140"
+NAME="AEN3206"
 ></A
 ><H3
 ><A
@@ -6075,7 +6022,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6092,7 +6039,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the current node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6109,7 +6056,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the namespace value</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6124,7 +6071,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the namespace pointer or NULL.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6134,7 +6081,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3171"
+NAME="AEN3237"
 ></A
 ><H3
 ><A
@@ -6191,7 +6138,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a node in the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6208,7 +6155,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a namespace pointer</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6218,7 +6165,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3192"
+NAME="AEN3258"
 ></A
 ><H3
 ><A
@@ -6274,7 +6221,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the namespace</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6289,7 +6236,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> a new xmlNsPtr, or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6299,7 +6246,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3213"
+NAME="AEN3279"
 ></A
 ><H3
 ><A
@@ -6355,7 +6302,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the first namespace</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6370,7 +6317,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> a new xmlNsPtr, or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6380,7 +6327,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3234"
+NAME="AEN3300"
 ></A
 ><H3
 ><A
@@ -6444,7 +6391,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6461,7 +6408,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the attribute name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6478,7 +6425,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the attribute value</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6493,7 +6440,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the attribute pointer.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6503,7 +6450,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3265"
+NAME="AEN3331"
 ></A
 ><H3
 ><A
@@ -6564,7 +6511,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6581,7 +6528,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the attribute name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6596,7 +6543,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the attribute value or NULL if not found.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6606,7 +6553,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3291"
+NAME="AEN3357"
 ></A
 ><H3
 ><A
@@ -6667,7 +6614,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6684,7 +6631,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the value of the attribute</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6699,7 +6646,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the first child</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6709,7 +6656,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3317"
+NAME="AEN3383"
 ></A
 ><H3
 ><A
@@ -6771,7 +6718,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6788,7 +6735,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the value of the text</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6805,7 +6752,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the length of the string value</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6820,7 +6767,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the first child</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6830,7 +6777,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3347"
+NAME="AEN3413"
 ></A
 ><H3
 ><A
@@ -6892,7 +6839,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6909,7 +6856,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  a Node list</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6926,7 +6873,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  should we replace entity contents or show their external form</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -6941,7 +6888,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a pointer to the string copy, the calller must free it.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -6951,7 +6898,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3377"
+NAME="AEN3443"
 ></A
 ><H3
 ><A
@@ -7008,7 +6955,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node being modified</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7025,7 +6972,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the new value of the content</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7035,7 +6982,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3398"
+NAME="AEN3464"
 ></A
 ><H3
 ><A
@@ -7093,7 +7040,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node being modified</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7110,7 +7057,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the new value of the content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7127,12 +7074,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the size of <TT
-CLASS="PARAMETER"
-><I
->content</I
-></TT
-></TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7142,7 +7084,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3424"
+NAME="AEN3489"
 ></A
 ><H3
 ><A
@@ -7199,7 +7141,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node being modified</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7216,7 +7158,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  extra content</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7226,7 +7168,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3445"
+NAME="AEN3510"
 ></A
 ><H3
 ><A
@@ -7284,7 +7226,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node being modified</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7301,7 +7243,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  extra content</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7318,12 +7260,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the size of <TT
-CLASS="PARAMETER"
-><I
->content</I
-></TT
-></TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7333,7 +7270,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3471"
+NAME="AEN3535"
 ></A
 ><H3
 ><A
@@ -7392,7 +7329,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the node being read</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7407,8 +7344,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->a new CHAR * or NULL if no content is available.
-It's up to the caller to free the memory.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7418,7 +7354,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3492"
+NAME="AEN3556"
 ></A
 ><H3
 ><A
@@ -7476,7 +7412,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XML buffer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7493,7 +7429,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the string to add</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7503,7 +7439,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3513"
+NAME="AEN3577"
 ></A
 ><H3
 ><A
@@ -7558,7 +7494,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XML buffer output</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7575,7 +7511,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the string to add</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7585,7 +7521,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3533"
+NAME="AEN3597"
 ></A
 ><H3
 ><A
@@ -7644,7 +7580,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XML buffer output</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7661,7 +7597,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the string to add</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7671,7 +7607,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3554"
+NAME="AEN3618"
 ></A
 ><H3
 ><A
@@ -7730,7 +7666,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7747,7 +7683,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  OUT: the memory pointer</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7764,7 +7700,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  OUT: the memory lenght</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7774,7 +7710,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3579"
+NAME="AEN3643"
 ></A
 ><H3
 ><A
@@ -7831,7 +7767,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the FILE*</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7848,7 +7784,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7858,7 +7794,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3600"
+NAME="AEN3664"
 ></A
 ><H3
 ><A
@@ -7913,7 +7849,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the filename</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7930,7 +7866,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -7945,7 +7881,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
-> the number of file written or -1 in case of failure.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -7955,7 +7891,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3624"
+NAME="AEN3688"
 ></A
 ><H3
 ><A
@@ -8008,7 +7944,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -8023,7 +7959,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->0 (uncompressed) to 9 (max compression)</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -8033,7 +7969,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3644"
+NAME="AEN3708"
 ></A
 ><H3
 ><A
@@ -8088,7 +8024,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -8105,7 +8041,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the compression ratio</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -8115,7 +8051,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3664"
+NAME="AEN3728"
 ></A
 ><H3
 ><A
@@ -8163,7 +8099,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->0 (uncompressed) to 9 (max compression)</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -8173,7 +8109,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3679"
+NAME="AEN3743"
 ></A
 ><H3
 ><A
@@ -8224,7 +8160,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the compression ratio</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
diff --git a/doc/html/gnome-xml-valid.html b/doc/html/gnome-xml-valid.html
index c9a8387..15c4326 100644
--- a/doc/html/gnome-xml-valid.html
+++ b/doc/html/gnome-xml-valid.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN4093"
+NAME="AEN4184"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN4096"
+NAME="AEN4187"
 ></A
 ><H2
 >Synopsis</H2
@@ -138,6 +138,30 @@
 CLASS="SYNOPSIS"
 >&#13;
 
+void        (<A
+HREF="gnome-xml-valid.html#XMLVALIDITYERRORFUNC"
+>*xmlValidityErrorFunc</A
+>)         (void *ctx,
+                                             const char *msg,
+                                             ...);
+void        (<A
+HREF="gnome-xml-valid.html#XMLVALIDITYWARNINGFUNC"
+>*xmlValidityWarningFunc</A
+>)       (void *ctx,
+                                             const char *msg,
+                                             ...);
+void        <A
+HREF="gnome-xml-valid.html#XMLPARSERVALIDITYERROR"
+>xmlParserValidityError</A
+>          (void *ctx,
+                                             const char *msg,
+                                             ...);
+void        <A
+HREF="gnome-xml-valid.html#XMLPARSERVALIDITYWARNING"
+>xmlParserValidityWarning</A
+>        (void *ctx,
+                                             const char *msg,
+                                             ...);
 #define     <A
 HREF="gnome-xml-valid.html#XML-MIN-NOTATION-TABLE"
 >XML_MIN_NOTATION_TABLE</A
@@ -168,7 +192,11 @@
 > <A
 HREF="gnome-xml-valid.html#XMLADDNOTATIONDECL"
 >xmlAddNotationDecl</A
->           (<A
+>           (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
 HREF="gnome-xml-tree.html#XMLDTDPTR"
 >xmlDtdPtr</A
 > dtd,
@@ -246,7 +274,11 @@
 > <A
 HREF="gnome-xml-valid.html#XMLADDELEMENTDECL"
 >xmlAddElementDecl</A
->             (<A
+>             (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
 HREF="gnome-xml-tree.html#XMLDTDPTR"
 >xmlDtdPtr</A
 > dtd,
@@ -320,7 +352,11 @@
 > <A
 HREF="gnome-xml-valid.html#XMLADDATTRIBUTEDECL"
 >xmlAddAttributeDecl</A
->         (<A
+>         (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
 HREF="gnome-xml-tree.html#XMLDTDPTR"
 >xmlDtdPtr</A
 > dtd,
@@ -369,7 +405,153 @@
                                              <A
 HREF="gnome-xml-valid.html#XMLATTRIBUTETABLEPTR"
 >xmlAttributeTablePtr</A
-> table);</PRE
+> table);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATEROOT"
+>xmlValidateRoot</A
+>                 (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATEELEMENTDECL"
+>xmlValidateElementDecl</A
+>          (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLELEMENTPTR"
+>xmlElementPtr</A
+> elem);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATEATTRIBUTEDECL"
+>xmlValidateAttributeDecl</A
+>        (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLATTRIBUTEPTR"
+>xmlAttributePtr</A
+> attr);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATENOTATIONDECL"
+>xmlValidateNotationDecl</A
+>         (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLNOTATIONPTR"
+>xmlNotationPtr</A
+> nota);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATEDTD"
+>xmlValidateDtd</A
+>                  (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDTDPTR"
+>xmlDtdPtr</A
+> dtd);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATEDOCUMENT"
+>xmlValidateDocument</A
+>             (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATEELEMENT"
+>xmlValidateElement</A
+>              (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> elem);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATEONEELEMENT"
+>xmlValidateOneElement</A
+>           (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> elem);
+int         <A
+HREF="gnome-xml-valid.html#XMLVALIDATEONEATTRIBUTE"
+>xmlValidateOneAttribute</A
+>         (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> elem,
+                                             <A
+HREF="gnome-xml-tree.html#XMLATTRPTR"
+>xmlAttrPtr</A
+> attr,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *value);
+int         <A
+HREF="gnome-xml-valid.html#XMLISMIXEDELEMENT"
+>xmlIsMixedElement</A
+>               (<A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *name);</PRE
 ></TD
 ></TR
 ></TABLE
@@ -377,7 +559,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4163"
+NAME="AEN4300"
 ></A
 ><H2
 >Description</H2
@@ -387,14 +569,396 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4166"
+NAME="AEN4303"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4168"
+NAME="AEN4305"
+></A
+><H3
+><A
+NAME="XMLVALIDITYERRORFUNC"
+></A
+>xmlValidityErrorFunc ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        (*xmlValidityErrorFunc)         (void *ctx,
+                                             const char *msg,
+                                             ...);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>msg</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>...</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4327"
+></A
+><H3
+><A
+NAME="XMLVALIDITYWARNINGFUNC"
+></A
+>xmlValidityWarningFunc ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        (*xmlValidityWarningFunc)       (void *ctx,
+                                             const char *msg,
+                                             ...);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>msg</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>...</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4349"
+></A
+><H3
+><A
+NAME="XMLPARSERVALIDITYERROR"
+></A
+>xmlParserValidityError ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlParserValidityError          (void *ctx,
+                                             const char *msg,
+                                             ...);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Display and format an validity error messages, gives file,
+line, position and extra parameters.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>msg</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>...</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4372"
+></A
+><H3
+><A
+NAME="XMLPARSERVALIDITYWARNING"
+></A
+>xmlParserValidityWarning ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlParserValidityWarning        (void *ctx,
+                                             const char *msg,
+                                             ...);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Display and format a validity warning messages, gives file, line,
+position and extra parameters.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>msg</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>...</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4395"
 ></A
 ><H3
 ><A
@@ -410,7 +974,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_MIN_NOTATION_TABLE	32</PRE
+>#define     XML_MIN_NOTATION_TABLE</PRE
 ></TD
 ></TR
 ></TABLE
@@ -420,33 +984,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4173"
+NAME="AEN4400"
 ></A
 ><H3
 ><A
 NAME="XMLNOTATIONTABLEPTR"
 ></A
 >xmlNotationTablePtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlNotationTable *xmlNotationTablePtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4178"
+NAME="AEN4404"
 ></A
 ><H3
 ><A
@@ -462,7 +1013,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_MIN_ELEMENT_TABLE	32</PRE
+>#define     XML_MIN_ELEMENT_TABLE</PRE
 ></TD
 ></TR
 ></TABLE
@@ -472,33 +1023,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4183"
+NAME="AEN4409"
 ></A
 ><H3
 ><A
 NAME="XMLELEMENTTABLEPTR"
 ></A
 >xmlElementTablePtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlElementTable *xmlElementTablePtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4188"
+NAME="AEN4413"
 ></A
 ><H3
 ><A
@@ -514,7 +1052,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XML_MIN_ATTRIBUTE_TABLE	32</PRE
+>#define     XML_MIN_ATTRIBUTE_TABLE</PRE
 ></TD
 ></TR
 ></TABLE
@@ -524,33 +1062,20 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4193"
+NAME="AEN4418"
 ></A
 ><H3
 ><A
 NAME="XMLATTRIBUTETABLEPTR"
 ></A
 >xmlAttributeTablePtr</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->typedef xmlAttributeTable *xmlAttributeTablePtr;</PRE
-></TD
-></TR
-></TABLE
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4198"
+NAME="AEN4422"
 ></A
 ><H3
 ><A
@@ -569,7 +1094,11 @@
 ><A
 HREF="gnome-xml-tree.html#XMLNOTATIONPTR"
 >xmlNotationPtr</A
-> xmlAddNotationDecl           (<A
+> xmlAddNotationDecl           (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
 HREF="gnome-xml-tree.html#XMLDTDPTR"
 >xmlDtdPtr</A
 > dtd,
@@ -611,6 +1140,23 @@
 ><TT
 CLASS="PARAMETER"
 ><I
+>ctxt</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
 >dtd</I
 ></TT
 >&nbsp;:</TD
@@ -618,7 +1164,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  pointer to the DTD</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -635,7 +1181,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -652,7 +1198,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the public identifier or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -669,7 +1215,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the system identifier or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -684,7 +1230,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->NULL if not, othervise the entity</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -694,7 +1240,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4234"
+NAME="AEN4463"
 ></A
 ><H3
 ><A
@@ -750,7 +1296,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  A notation table</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -765,7 +1311,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new xmlNotationTablePtr or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -775,7 +1321,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4255"
+NAME="AEN4484"
 ></A
 ><H3
 ><A
@@ -828,7 +1374,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An notation table</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -838,7 +1384,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4271"
+NAME="AEN4500"
 ></A
 ><H3
 ><A
@@ -895,7 +1441,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XML buffer output</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -912,7 +1458,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  A notation table</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -922,7 +1468,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4292"
+NAME="AEN4521"
 ></A
 ><H3
 ><A
@@ -979,7 +1525,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the subelement name or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -996,7 +1542,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the type of element content decl</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1011,7 +1557,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->NULL if not, othervise the new element content structure</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1021,7 +1567,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4317"
+NAME="AEN4546"
 ></A
 ><H3
 ><A
@@ -1077,7 +1623,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An element content pointer.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1092,7 +1638,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new xmlElementContentPtr or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1102,7 +1648,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4338"
+NAME="AEN4567"
 ></A
 ><H3
 ><A
@@ -1155,7 +1701,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the element content tree to free</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1165,7 +1711,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4354"
+NAME="AEN4583"
 ></A
 ><H3
 ><A
@@ -1184,7 +1730,11 @@
 ><A
 HREF="gnome-xml-tree.html#XMLELEMENTPTR"
 >xmlElementPtr</A
-> xmlAddElementDecl             (<A
+> xmlAddElementDecl             (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
 HREF="gnome-xml-tree.html#XMLDTDPTR"
 >xmlDtdPtr</A
 > dtd,
@@ -1223,6 +1773,23 @@
 ><TT
 CLASS="PARAMETER"
 ><I
+>ctxt</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
 >dtd</I
 ></TT
 >&nbsp;:</TD
@@ -1230,7 +1797,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  pointer to the DTD</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1247,7 +1814,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the entity name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1264,7 +1831,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the element type</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1281,7 +1848,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the element content tree or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1296,7 +1863,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->NULL if not, othervise the entity</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1306,7 +1873,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4389"
+NAME="AEN4623"
 ></A
 ><H3
 ><A
@@ -1362,7 +1929,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An element table</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1377,7 +1944,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new xmlElementTablePtr or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1387,7 +1954,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4410"
+NAME="AEN4644"
 ></A
 ><H3
 ><A
@@ -1440,7 +2007,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An element table</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1450,7 +2017,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4426"
+NAME="AEN4660"
 ></A
 ><H3
 ><A
@@ -1507,7 +2074,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XML buffer output</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1524,7 +2091,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An element table</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1534,7 +2101,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4447"
+NAME="AEN4681"
 ></A
 ><H3
 ><A
@@ -1590,7 +2157,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the enumeration name or NULL</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1605,8 +2172,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the xmlEnumerationPtr just created or NULL in case
-of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1616,7 +2182,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4468"
+NAME="AEN4702"
 ></A
 ><H3
 ><A
@@ -1669,7 +2235,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the tree to free.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1679,7 +2245,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4484"
+NAME="AEN4718"
 ></A
 ><H3
 ><A
@@ -1735,7 +2301,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the tree to copy.</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1750,8 +2316,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the xmlEnumerationPtr just created or NULL in case
-of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1761,7 +2326,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4505"
+NAME="AEN4739"
 ></A
 ><H3
 ><A
@@ -1780,7 +2345,11 @@
 ><A
 HREF="gnome-xml-tree.html#XMLATTRIBUTEPTR"
 >xmlAttributePtr</A
-> xmlAddAttributeDecl         (<A
+> xmlAddAttributeDecl         (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
 HREF="gnome-xml-tree.html#XMLDTDPTR"
 >xmlDtdPtr</A
 > dtd,
@@ -1828,6 +2397,23 @@
 ><TT
 CLASS="PARAMETER"
 ><I
+>ctxt</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
 >dtd</I
 ></TT
 >&nbsp;:</TD
@@ -1835,7 +2421,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  pointer to the DTD</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1852,7 +2438,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the element name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1869,7 +2455,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the attribute name</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1886,7 +2472,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the attribute type</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1903,7 +2489,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the attribute default type</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1920,7 +2506,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the attribute default value</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1937,7 +2523,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  if it's an enumeration, the associated list</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -1952,7 +2538,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->NULL if not, othervise the entity</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -1962,7 +2548,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4554"
+NAME="AEN4793"
 ></A
 ><H3
 ><A
@@ -2018,7 +2604,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An attribute table</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2033,7 +2619,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the new xmlAttributeTablePtr or NULL in case of error.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2043,7 +2629,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4575"
+NAME="AEN4814"
 ></A
 ><H3
 ><A
@@ -2096,7 +2682,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An attribute table</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -2106,7 +2692,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4591"
+NAME="AEN4830"
 ></A
 ><H3
 ><A
@@ -2163,7 +2749,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XML buffer output</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -2180,7 +2766,1235 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  An attribute table</TD
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4851"
+></A
+><H3
+><A
+NAME="XMLVALIDATEROOT"
+></A
+>xmlValidateRoot ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateRoot                 (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate a the root element
+basically it does the following check as described by the
+XML-1.0 recommendation:
+- [ VC: Root Element Type ]
+it doesn't try to recurse or apply other check to the element</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
+>ctxt</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
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4876"
+></A
+><H3
+><A
+NAME="XMLVALIDATEELEMENTDECL"
+></A
+>xmlValidateElementDecl ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateElementDecl          (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLELEMENTPTR"
+>xmlElementPtr</A
+> elem);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate a single element definition
+basically it does the following checks as described by the
+XML-1.0 recommendation:
+- [ VC: One ID per Element Type ]
+- [ VC: No Duplicate Types ]
+- [ VC: Unique Element Type Declaration ]</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
+>ctxt</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
+>doc</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
+>elem</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4906"
+></A
+><H3
+><A
+NAME="XMLVALIDATEATTRIBUTEDECL"
+></A
+>xmlValidateAttributeDecl ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateAttributeDecl        (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLATTRIBUTEPTR"
+>xmlAttributePtr</A
+> attr);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate a single attribute definition
+basically it does the following checks as described by the
+XML-1.0 recommendation:
+- [ VC: Attribute Default Legal ]
+- [ VC: Enumeration ]
+- [ VC: ID Attribute Default ]</P
+><P
+>The ID/IDREF uniqueness and matching are done separately</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
+>ctxt</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
+>doc</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
+>attr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4937"
+></A
+><H3
+><A
+NAME="XMLVALIDATENOTATIONDECL"
+></A
+>xmlValidateNotationDecl ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateNotationDecl         (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLNOTATIONPTR"
+>xmlNotationPtr</A
+> nota);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate a single notation definition
+basically it does the following checks as described by the
+XML-1.0 recommendation:
+- it seems that no validity constraing exist on notation declarations
+But this function get called anyway ...</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
+>ctxt</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
+>doc</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
+>nota</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4967"
+></A
+><H3
+><A
+NAME="XMLVALIDATEDTD"
+></A
+>xmlValidateDtd ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateDtd                  (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDTDPTR"
+>xmlDtdPtr</A
+> dtd);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate the dtd instance</P
+><P
+>basically it does check all the definitions in the DtD.</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
+>ctxt</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
+>doc</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
+>dtd</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4998"
+></A
+><H3
+><A
+NAME="XMLVALIDATEDOCUMENT"
+></A
+>xmlValidateDocument ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateDocument             (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate the document instance</P
+><P
+>basically it does the all the checks described by the
+i.e. validates the internal and external subset (if present)
+and validate the document tree.</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
+>ctxt</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
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5024"
+></A
+><H3
+><A
+NAME="XMLVALIDATEELEMENT"
+></A
+>xmlValidateElement ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateElement              (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> elem);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate the subtree under an element</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
+>ctxt</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
+>doc</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
+>elem</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5054"
+></A
+><H3
+><A
+NAME="XMLVALIDATEONEELEMENT"
+></A
+>xmlValidateOneElement ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateOneElement           (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> elem);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate a single element and it's attributes,
+basically it does the following checks as described by the
+XML-1.0 recommendation:
+- [ VC: Element Valid ]
+- [ VC: Required Attribute ]
+Then call <A
+HREF="gnome-xml-valid.html#XMLVALIDATEONEATTRIBUTE"
+>xmlValidateOneAttribute</A
+>() for each attribute present.</P
+><P
+>The ID/IDREF checkings are done separately</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
+>ctxt</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
+>doc</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
+>elem</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5086"
+></A
+><H3
+><A
+NAME="XMLVALIDATEONEATTRIBUTE"
+></A
+>xmlValidateOneAttribute ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlValidateOneAttribute         (<GTKDOCLINK
+HREF="XMLVALIDCTXTPTR"
+>xmlValidCtxtPtr</GTKDOCLINK
+> ctxt,
+                                             <A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             <A
+HREF="gnome-xml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> elem,
+                                             <A
+HREF="gnome-xml-tree.html#XMLATTRPTR"
+>xmlAttrPtr</A
+> attr,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *value);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Try to validate a single attribute for an element
+basically it * does the following checks as described by the
+XML-1.0 recommendation:
+- [ VC: Attribute Value Type ]
+- [ VC: Fixed Attribute Default ]
+- [ VC: Entity Name ]
+- [ VC: Name Token ]
+- [ VC: ID ]
+- [ VC: IDREF ]
+- [ VC: Entity Name ]
+- [ VC: Notation Attributes ]</P
+><P
+>The ID/IDREF uniqueness and matching are done separately</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
+>ctxt</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
+>doc</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
+>elem</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
+>attr</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
+>value</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5127"
+></A
+><H3
+><A
+NAME="XMLISMIXEDELEMENT"
+></A
+>xmlIsMixedElement ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlIsMixedElement               (<A
+HREF="gnome-xml-tree.html#XMLDOCPTR"
+>xmlDocPtr</A
+> doc,
+                                             const <A
+HREF="gnome-xml-tree.html#CHAR"
+>CHAR</A
+> *name);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Search in the DtDs whether an element accept Mixed content (or ANY)
+basically if it is supposed to accept text childs</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
diff --git a/doc/html/gnome-xml-xml-error.html b/doc/html/gnome-xml-xml-error.html
index a58fd7f..f7edde5 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="AEN4617"
+NAME="AEN5157"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN4620"
+NAME="AEN5160"
 ></A
 ><H2
 >Synopsis</H2
@@ -157,7 +157,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4625"
+NAME="AEN5165"
 ></A
 ><H2
 >Description</H2
@@ -167,14 +167,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4628"
+NAME="AEN5168"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4630"
+NAME="AEN5170"
 ></A
 ><H3
 ><A
@@ -227,7 +227,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -244,7 +244,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the message to display/transmit</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -261,7 +261,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  extra parameters for the message display</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -271,7 +271,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4653"
+NAME="AEN5193"
 ></A
 ><H3
 ><A
@@ -324,7 +324,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  an XML parser context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -341,7 +341,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the message to display/transmit</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -358,7 +358,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  extra parameters for the message display</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
diff --git a/doc/html/gnome-xml-xpath.html b/doc/html/gnome-xml-xpath.html
index 539d8c8..5f9b676 100644
--- a/doc/html/gnome-xml-xpath.html
+++ b/doc/html/gnome-xml-xpath.html
@@ -103,7 +103,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6940"
+NAME="AEN7649"
 ></A
 ><H2
 >Name</H2
@@ -111,7 +111,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6943"
+NAME="AEN7652"
 ></A
 ><H2
 >Synopsis</H2
@@ -216,7 +216,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6968"
+NAME="AEN7677"
 ></A
 ><H2
 >Description</H2
@@ -226,14 +226,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6971"
+NAME="AEN7680"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6973"
+NAME="AEN7682"
 ></A
 ><H3
 ><A
@@ -249,7 +249,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XPATH_UNDEFINED	0</PRE
+>#define     XPATH_UNDEFINED</PRE
 ></TD
 ></TR
 ></TABLE
@@ -259,7 +259,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6978"
+NAME="AEN7687"
 ></A
 ><H3
 ><A
@@ -275,7 +275,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XPATH_NODESET	1</PRE
+>#define     XPATH_NODESET</PRE
 ></TD
 ></TR
 ></TABLE
@@ -285,7 +285,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6983"
+NAME="AEN7692"
 ></A
 ><H3
 ><A
@@ -301,7 +301,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XPATH_BOOLEAN	2</PRE
+>#define     XPATH_BOOLEAN</PRE
 ></TD
 ></TR
 ></TABLE
@@ -311,7 +311,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6988"
+NAME="AEN7697"
 ></A
 ><H3
 ><A
@@ -327,7 +327,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XPATH_NUMBER	3</PRE
+>#define     XPATH_NUMBER</PRE
 ></TD
 ></TR
 ></TABLE
@@ -337,7 +337,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6993"
+NAME="AEN7702"
 ></A
 ><H3
 ><A
@@ -353,7 +353,7 @@
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define XPATH_STRING	4</PRE
+>#define     XPATH_STRING</PRE
 ></TD
 ></TR
 ></TABLE
@@ -363,7 +363,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6998"
+NAME="AEN7707"
 ></A
 ><H3
 ><A
@@ -442,7 +442,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7017"
+NAME="AEN7726"
 ></A
 ><H3
 ><A
@@ -501,7 +501,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XML document</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -518,7 +518,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the variable list</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -535,7 +535,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the function list</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -552,7 +552,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the namespace list</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -567,7 +567,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the xmlXPathContext just allocated.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -577,7 +577,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7050"
+NAME="AEN7759"
 ></A
 ><H3
 ><A
@@ -630,7 +630,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the context to free</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -640,7 +640,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7066"
+NAME="AEN7775"
 ></A
 ><H3
 ><A
@@ -700,7 +700,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XPath expression</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -717,7 +717,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XPath context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -732,8 +732,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the xmlXPathObjectPtr resulting from the eveluation or NULL.
-the caller has to free the object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -743,7 +742,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7092"
+NAME="AEN7801"
 ></A
 ><H3
 ><A
@@ -796,7 +795,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the object to free</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
@@ -806,7 +805,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7108"
+NAME="AEN7817"
 ></A
 ><H3
 ><A
@@ -866,7 +865,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XPath expression</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -883,7 +882,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->  the XPath context</TD
+>&nbsp;</TD
 ></TR
 ><TR
 ><TD
@@ -898,8 +897,7 @@
 WIDTH="80%"
 ALIGN="LEFT"
 VALIGN="TOP"
->the xmlXPathObjectPtr resulting from the eveluation or NULL.
-the caller has to free the object.</TD
+>&nbsp;</TD
 ></TR
 ></TABLE
 ><P
diff --git a/doc/html/index.sgml b/doc/html/index.sgml
index a6789f9..34c6da5 100644
--- a/doc/html/index.sgml
+++ b/doc/html/index.sgml
@@ -5,6 +5,7 @@
 <ANCHOR id ="XMLPARSERNODEINFO" href="gnome-xml/gnome-xml-parser.html#XMLPARSERNODEINFO">
 <ANCHOR id ="XMLPARSERNODEINFOSEQ" href="gnome-xml/gnome-xml-parser.html#XMLPARSERNODEINFOSEQ">
 <ANCHOR id ="XMLPARSERNODEINFOSEQPTR" href="gnome-xml/gnome-xml-parser.html#XMLPARSERNODEINFOSEQPTR">
+<ANCHOR id ="XMLPARSERINPUTSTATE" href="gnome-xml/gnome-xml-parser.html#XMLPARSERINPUTSTATE">
 <ANCHOR id ="XMLPARSERCTXT" href="gnome-xml/gnome-xml-parser.html#XMLPARSERCTXT">
 <ANCHOR id ="XMLPARSERCTXTPTR" href="gnome-xml/gnome-xml-parser.html#XMLPARSERCTXTPTR">
 <ANCHOR id ="XMLSAXLOCATOR" href="gnome-xml/gnome-xml-parser.html#XMLSAXLOCATOR">
@@ -12,6 +13,7 @@
 <ANCHOR id ="RESOLVEENTITYSAXFUNC" href="gnome-xml/gnome-xml-parser.html#RESOLVEENTITYSAXFUNC">
 <ANCHOR id ="INTERNALSUBSETSAXFUNC" href="gnome-xml/gnome-xml-parser.html#INTERNALSUBSETSAXFUNC">
 <ANCHOR id ="GETENTITYSAXFUNC" href="gnome-xml/gnome-xml-parser.html#GETENTITYSAXFUNC">
+<ANCHOR id ="GETPARAMETERENTITYSAXFUNC" href="gnome-xml/gnome-xml-parser.html#GETPARAMETERENTITYSAXFUNC">
 <ANCHOR id ="ENTITYDECLSAXFUNC" href="gnome-xml/gnome-xml-parser.html#ENTITYDECLSAXFUNC">
 <ANCHOR id ="NOTATIONDECLSAXFUNC" href="gnome-xml/gnome-xml-parser.html#NOTATIONDECLSAXFUNC">
 <ANCHOR id ="ATTRIBUTEDECLSAXFUNC" href="gnome-xml/gnome-xml-parser.html#ATTRIBUTEDECLSAXFUNC">
@@ -28,6 +30,7 @@
 <ANCHOR id ="IGNORABLEWHITESPACESAXFUNC" href="gnome-xml/gnome-xml-parser.html#IGNORABLEWHITESPACESAXFUNC">
 <ANCHOR id ="PROCESSINGINSTRUCTIONSAXFUNC" href="gnome-xml/gnome-xml-parser.html#PROCESSINGINSTRUCTIONSAXFUNC">
 <ANCHOR id ="COMMENTSAXFUNC" href="gnome-xml/gnome-xml-parser.html#COMMENTSAXFUNC">
+<ANCHOR id ="CDATABLOCKSAXFUNC" href="gnome-xml/gnome-xml-parser.html#CDATABLOCKSAXFUNC">
 <ANCHOR id ="WARNINGSAXFUNC" href="gnome-xml/gnome-xml-parser.html#WARNINGSAXFUNC">
 <ANCHOR id ="ERRORSAXFUNC" href="gnome-xml/gnome-xml-parser.html#ERRORSAXFUNC">
 <ANCHOR id ="FATALERRORSAXFUNC" href="gnome-xml/gnome-xml-parser.html#FATALERRORSAXFUNC">
@@ -133,6 +136,7 @@
 <ANCHOR id ="XMLNEWTEXTLEN" href="gnome-xml/gnome-xml-tree.html#XMLNEWTEXTLEN">
 <ANCHOR id ="XMLNEWDOCCOMMENT" href="gnome-xml/gnome-xml-tree.html#XMLNEWDOCCOMMENT">
 <ANCHOR id ="XMLNEWCOMMENT" href="gnome-xml/gnome-xml-tree.html#XMLNEWCOMMENT">
+<ANCHOR id ="XMLNEWCDATABLOCK" href="gnome-xml/gnome-xml-tree.html#XMLNEWCDATABLOCK">
 <ANCHOR id ="XMLNEWREFERENCE" href="gnome-xml/gnome-xml-tree.html#XMLNEWREFERENCE">
 <ANCHOR id ="XMLCOPYNODE" href="gnome-xml/gnome-xml-tree.html#XMLCOPYNODE">
 <ANCHOR id ="XMLCOPYNODELIST" href="gnome-xml/gnome-xml-tree.html#XMLCOPYNODELIST">
@@ -184,6 +188,7 @@
 <ANCHOR id ="XMLGETPREDEFINEDENTITY" href="gnome-xml/gnome-xml-entities.html#XMLGETPREDEFINEDENTITY">
 <ANCHOR id ="XMLGETDOCENTITY" href="gnome-xml/gnome-xml-entities.html#XMLGETDOCENTITY">
 <ANCHOR id ="XMLGETDTDENTITY" href="gnome-xml/gnome-xml-entities.html#XMLGETDTDENTITY">
+<ANCHOR id ="XMLGETPARAMETERENTITY" href="gnome-xml/gnome-xml-entities.html#XMLGETPARAMETERENTITY">
 <ANCHOR id ="XMLENCODEENTITIES" href="gnome-xml/gnome-xml-entities.html#XMLENCODEENTITIES">
 <ANCHOR id ="XMLENCODEENTITIESREENTRANT" href="gnome-xml/gnome-xml-entities.html#XMLENCODEENTITIESREENTRANT">
 <ANCHOR id ="XMLCREATEENTITIESTABLE" href="gnome-xml/gnome-xml-entities.html#XMLCREATEENTITIESTABLE">
@@ -191,6 +196,10 @@
 <ANCHOR id ="XMLFREEENTITIESTABLE" href="gnome-xml/gnome-xml-entities.html#XMLFREEENTITIESTABLE">
 <ANCHOR id ="XMLDUMPENTITIESTABLE" href="gnome-xml/gnome-xml-entities.html#XMLDUMPENTITIESTABLE">
 <ANCHOR id ="GNOME-XML-VALID" href="gnome-xml/gnome-xml-valid.html">
+<ANCHOR id ="XMLVALIDITYERRORFUNC" href="gnome-xml/gnome-xml-valid.html#XMLVALIDITYERRORFUNC">
+<ANCHOR id ="XMLVALIDITYWARNINGFUNC" href="gnome-xml/gnome-xml-valid.html#XMLVALIDITYWARNINGFUNC">
+<ANCHOR id ="XMLPARSERVALIDITYERROR" href="gnome-xml/gnome-xml-valid.html#XMLPARSERVALIDITYERROR">
+<ANCHOR id ="XMLPARSERVALIDITYWARNING" href="gnome-xml/gnome-xml-valid.html#XMLPARSERVALIDITYWARNING">
 <ANCHOR id ="XML-MIN-NOTATION-TABLE" href="gnome-xml/gnome-xml-valid.html#XML-MIN-NOTATION-TABLE">
 <ANCHOR id ="XMLNOTATIONTABLEPTR" href="gnome-xml/gnome-xml-valid.html#XMLNOTATIONTABLEPTR">
 <ANCHOR id ="XML-MIN-ELEMENT-TABLE" href="gnome-xml/gnome-xml-valid.html#XML-MIN-ELEMENT-TABLE">
@@ -215,10 +224,23 @@
 <ANCHOR id ="XMLCOPYATTRIBUTETABLE" href="gnome-xml/gnome-xml-valid.html#XMLCOPYATTRIBUTETABLE">
 <ANCHOR id ="XMLFREEATTRIBUTETABLE" href="gnome-xml/gnome-xml-valid.html#XMLFREEATTRIBUTETABLE">
 <ANCHOR id ="XMLDUMPATTRIBUTETABLE" href="gnome-xml/gnome-xml-valid.html#XMLDUMPATTRIBUTETABLE">
+<ANCHOR id ="XMLVALIDATEROOT" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATEROOT">
+<ANCHOR id ="XMLVALIDATEELEMENTDECL" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATEELEMENTDECL">
+<ANCHOR id ="XMLVALIDATEATTRIBUTEDECL" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATEATTRIBUTEDECL">
+<ANCHOR id ="XMLVALIDATENOTATIONDECL" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATENOTATIONDECL">
+<ANCHOR id ="XMLVALIDATEDTD" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATEDTD">
+<ANCHOR id ="XMLVALIDATEDOCUMENT" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATEDOCUMENT">
+<ANCHOR id ="XMLVALIDATEELEMENT" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATEELEMENT">
+<ANCHOR id ="XMLVALIDATEONEELEMENT" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATEONEELEMENT">
+<ANCHOR id ="XMLVALIDATEONEATTRIBUTE" href="gnome-xml/gnome-xml-valid.html#XMLVALIDATEONEATTRIBUTE">
+<ANCHOR id ="XMLISMIXEDELEMENT" href="gnome-xml/gnome-xml-valid.html#XMLISMIXEDELEMENT">
 <ANCHOR id ="GNOME-XML-XML-ERROR" href="gnome-xml/gnome-xml-xml-error.html">
 <ANCHOR id ="XMLPARSERERROR" href="gnome-xml/gnome-xml-xml-error.html#XMLPARSERERROR">
 <ANCHOR id ="XMLPARSERWARNING" href="gnome-xml/gnome-xml-xml-error.html#XMLPARSERWARNING">
 <ANCHOR id ="GNOME-XML-PARSERINTERNALS" href="gnome-xml/gnome-xml-parserinternals.html">
+<ANCHOR id ="CHARVAL" href="gnome-xml/gnome-xml-parserinternals.html#CHARVAL">
+<ANCHOR id ="NEXTCHARVAL" href="gnome-xml/gnome-xml-parserinternals.html#NEXTCHARVAL">
+<ANCHOR id ="SKIPCHARVAL" href="gnome-xml/gnome-xml-parserinternals.html#SKIPCHARVAL">
 <ANCHOR id ="IS-CHAR" href="gnome-xml/gnome-xml-parserinternals.html#IS-CHAR">
 <ANCHOR id ="IS-BLANK" href="gnome-xml/gnome-xml-parserinternals.html#IS-BLANK">
 <ANCHOR id ="IS-BASECHAR" href="gnome-xml/gnome-xml-parserinternals.html#IS-BASECHAR">
@@ -235,6 +257,8 @@
 <ANCHOR id ="XMLCREATEFILEPARSERCTXT" href="gnome-xml/gnome-xml-parserinternals.html#XMLCREATEFILEPARSERCTXT">
 <ANCHOR id ="XMLCREATEMEMORYPARSERCTXT" href="gnome-xml/gnome-xml-parserinternals.html#XMLCREATEMEMORYPARSERCTXT">
 <ANCHOR id ="XMLFREEPARSERCTXT" href="gnome-xml/gnome-xml-parserinternals.html#XMLFREEPARSERCTXT">
+<ANCHOR id ="XMLNEWPARSERCTXT" href="gnome-xml/gnome-xml-parserinternals.html#XMLNEWPARSERCTXT">
+<ANCHOR id ="XMLSWITCHENCODING" href="gnome-xml/gnome-xml-parserinternals.html#XMLSWITCHENCODING">
 <ANCHOR id ="XMLHANDLEENTITY" href="gnome-xml/gnome-xml-parserinternals.html#XMLHANDLEENTITY">
 <ANCHOR id ="XMLNEWENTITYINPUTSTREAM" href="gnome-xml/gnome-xml-parserinternals.html#XMLNEWENTITYINPUTSTREAM">
 <ANCHOR id ="XMLPUSHINPUT" href="gnome-xml/gnome-xml-parserinternals.html#XMLPUSHINPUT">
@@ -247,6 +271,7 @@
 <ANCHOR id ="XMLNAMESPACEPARSENSDEF" href="gnome-xml/gnome-xml-parserinternals.html#XMLNAMESPACEPARSENSDEF">
 <ANCHOR id ="XMLPARSEQUOTEDSTRING" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSEQUOTEDSTRING">
 <ANCHOR id ="XMLPARSENAMESPACE" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSENAMESPACE">
+<ANCHOR id ="XMLSCANNAME" href="gnome-xml/gnome-xml-parserinternals.html#XMLSCANNAME">
 <ANCHOR id ="XMLPARSENAME" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSENAME">
 <ANCHOR id ="XMLPARSENMTOKEN" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSENMTOKEN">
 <ANCHOR id ="XMLPARSEENTITYVALUE" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSEENTITYVALUE">
@@ -289,6 +314,7 @@
 <ANCHOR id ="XMLPARSESDDECL" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSESDDECL">
 <ANCHOR id ="XMLPARSEXMLDECL" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSEXMLDECL">
 <ANCHOR id ="XMLPARSEMISC" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSEMISC">
+<ANCHOR id ="XMLPARSEEXTERNALSUBSET" href="gnome-xml/gnome-xml-parserinternals.html#XMLPARSEEXTERNALSUBSET">
 <ANCHOR id ="XML-SUBSTITUTE-NONE" href="gnome-xml/gnome-xml-parserinternals.html#XML-SUBSTITUTE-NONE">
 <ANCHOR id ="XML-SUBSTITUTE-REF" href="gnome-xml/gnome-xml-parserinternals.html#XML-SUBSTITUTE-REF">
 <ANCHOR id ="XML-SUBSTITUTE-PEREF" href="gnome-xml/gnome-xml-parserinternals.html#XML-SUBSTITUTE-PEREF">
diff --git a/doc/xml.html b/doc/xml.html
index 03abc15..edeb391 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -1,23 +1,54 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
-   "http://www.w3.org/TR/REC-html40/loose.dtd">
+                      "http://www.w3.org/TR/REC-html40/loose.dtd">
 <html>
 <head>
-<title>The XML library for Gnome</title>
-<meta name="GENERATOR" content="amaya V1.3b">
+  <title>The XML library for Gnome</title>
+  <meta name="GENERATOR" content="amaya V2.1">
 </head>
-<body bgcolor="#ffffff">
 
+<body bgcolor="#ffffff">
 <h1 align="center">The XML library for Gnome</h1>
-<p>
-This document describes the <a href="http://www.w3.org/XML/">XML</a> library
-provideed in the <a href="http://www.gnome.org/">Gnome</a> framework. XML is a
-standard to build tag based structured documents. The internal document
-repesentation is as close as possible to the <a
-href="http://www.w3.org/DOM/">DOM</a> interfaces.</p>
+
+<p>This document describes the <a href="http://www.w3.org/XML/">XML</a>
+library provideed in the <a href="http://www.gnome.org/">Gnome</a> framework.
+XML is a standard to build tag based structured documents/data. </p>
+
+<p>The internal document repesentation is as close as possible to the <a
+href="http://www.w3.org/DOM/">DOM</a> interfaces. </p>
+
+<p>Libxml also has a <a href="http://www.megginson.com/SAX/index.html">SAX
+interface</a>, <a href="mailto:james@daa.com.au">James Henstridge</a> made <a
+href="http://www.daa.com.au/~james/gnome/xml-sax/xml-sax.html">a nice
+documentation</a> expaining how to use it. The interface is as compatible as
+possible with <a href="http://www.jclark.com/xml/expat.html">Expat</a>
+one.</p>
+
+<p>The code is commented in a <a href=""></a>way which allow <a
+href="http://rpmfind.net/veillard/XML/libxml.html">extensive documentation</a>
+to be automatically extracted.</p>
+
+<p>There is also a mailing-list <a
+href="xml@rufus.w3.org">xml@rufus.w3.org</a> for libxml, with an <a
+href="http://rpmfind.net/veillard/XML/messages">on-line archive</a>. To
+subscribe to this majordomo based list, send a mail to <a
+href="majordomo@rufus.w3.org">majordomo@rufus.w3.org</a> with "subscribe xml"
+in the <strong>content</strong> of the message.</p>
+
+<p>This library is released both under the W3C Copyright and the GNU LGP,
+basically everybody should be happy, if not, drop me a mail.</p>
+
+<p>People are invited to use the <a
+href="http://cvs.gnome.org/lxr/source/gdome/">gdome Gnome module to</a> get a
+full DOM interface, thanks to <a href="mailto:raph@levien.com">Raph
+Levien</a>, check his <a
+href="http://www.levien.com/gnome/domination.html">DOMination paper</a>. He
+uses it for his implementation of <a
+href="http://www.w3.org/Graphics/SVG/">SVG</a> called <a
+href="http://www.levien.com/svg/">gill</a>.</p>
 
 <h2>xml</h2>
-<p>
-XML is a standard for markup based structured documents, here is <a
+
+<p>XML is a standard for markup based structured documents, here is <a
 name="example">an example</a>:</p>
 <pre>&lt;?xml version="1.0"?>
 &lt;EXAMPLE prop1="gnome is great" prop2="&amp;amp; linux too">
@@ -31,17 +62,17 @@
    &lt;p>...&lt;/p>
   &lt;/chapter>
 &lt;/EXAMPLE></pre>
-<p>
-The first line specify that it's an XML document and gives useful informations
-about it's encoding. Then the document is a text format whose structure is
-specified by tags between brackets. <strong>Each tag opened have to be
-closed</strong> XML is pedantic about this, not that for example the image
-tag has no content (just an attribute) and is closed by ending up the tag
-with <code>/></code>.</p>
+
+<p>The first line specify that it's an XML document and gives useful
+informations about it's encoding. Then the document is a text format whose
+structure is specified by tags between brackets. <strong>Each tag opened have
+to be closed</strong> XML is pedantic about this, not that for example the
+image tag has no content (just an attribute) and is closed by ending up the
+tag with <code>/></code>.</p>
 
 <h2>The tree output</h2>
-<p>
-The parser returns a tree built during the document analysis. The value
+
+<p>The parser returns a tree built during the document analysis. The value
 returned is an <strong>xmlDocPtr</strong> (i.e. a pointer to an
 <strong>xmlDoc</strong> structure). This structure contains informations like
 the file  name, the document type, and a <strong>root</strong> pointer which
@@ -50,13 +81,13 @@
 in double linked lists of siblings and with childs&lt;->parent relationship.
 An xmlNode can also carry properties (a chain of xmlAttr structures). An
 attribute may have a value which is a list of TEXT or ENTITY_REF nodes.</p>
-<p>
-Here is an example (erroneous w.r.t. the XML spec since there should be only
-one ELEMENT under the root):</p>
-<p>
-<img src="structure.gif" alt=" structure.gif "></p>
-<p>
-In the source package there is a small program (not installed by default)
+
+<p>Here is an example (erroneous w.r.t. the XML spec since there should be
+only one ELEMENT under the root):</p>
+
+<p><img src="structure.gif" alt=" structure.gif "></p>
+
+<p>In the source package there is a small program (not installed by default)
 called <strong>tester</strong> which parses XML files given as argument and
 prints them back as parsed, this is useful to detect errors both in XML code
 and in the XML parser itself. It has an option <strong>--debug</strong> which
@@ -91,12 +122,12 @@
       ELEMENT p
         TEXT
         content=...</pre>
-<p>
-This should be useful to learn the internal representation model.</p>
+
+<p>This should be useful to learn the internal representation model.</p>
 
 <h2>The XML library interfaces</h2>
-<p>
-This section is directly intended to help programmers getting bootstrapped
+
+<p>This section is directly intended to help programmers getting bootstrapped
 using the XML library from the C language. It doesn't intent to be extensive,
 I hope the automatically generated docs will provide the completeness
 required, but as a separated set of documents. The interfaces of the XML
@@ -105,35 +136,33 @@
 (unfortunately not completed).</p>
 
 <h3>Invoking the parser</h3>
-<p>
-Usually, the first thing to do is to read an XML input, the parser accepts to
-parse both memory mapped documents or direct files. The functions are defined
-in "parser.h":</p>
+
+<p>Usually, the first thing to do is to read an XML input, the parser accepts
+to parse both memory mapped documents or direct files. The functions are
+defined in "parser.h":</p>
 <dl>
-<dt><code>xmlDocPtr xmlParseMemory(char *buffer, int size);</code></dt>
-<dd><p>
-parse a zero terminated string containing the document</p>
-</dd>
+  <dt><code>xmlDocPtr xmlParseMemory(char *buffer, int size);</code></dt>
+    <dd><p>parse a zero terminated string containing the document</p>
+    </dd>
 </dl>
 <dl>
-<dt><code>xmlDocPtr xmlParseFile(const char *filename);</code></dt>
-<dd><p>
-parse an XML document contained in a file (possibly compressed)</p>
-</dd>
+  <dt><code>xmlDocPtr xmlParseFile(const char *filename);</code></dt>
+    <dd><p>parse an XML document contained in a file (possibly compressed)</p>
+    </dd>
 </dl>
-<p>
-This returns a pointer to the document structure (or NULL in case of
+
+<p>This returns a pointer to the document structure (or NULL in case of
 failure).</p>
-<p>
-A couple of comments can be made, first this mean that the parser is
+
+<p>A couple of comments can be made, first this mean that the parser is
 memory-hungry, first to load the document in memory, second to build the tree.
 Reading a document without building the tree will be possible in the future by
 pluggin the code to the SAX interface (see SAX.c).</p>
 
 <h3>Building a tree from scratch</h3>
-<p>
-The other way to get an XML tree in memory is by building it. Basically there
-is a set of functions dedicated to building new elements, those are also
+
+<p>The other way to get an XML tree in memory is by building it. Basically
+there is a set of functions dedicated to building new elements, those are also
 described in "tree.h", here is for example the piece of code producing the
 example used before:</p>
 <pre>    xmlDocPtr doc;
@@ -150,129 +179,120 @@
     subtree = xmlNewChild(tree, NULL, "p", "bla bla bla ...");
     subtree = xmlNewChild(tree, NULL, "image", NULL);
     xmlSetProp(subtree, "href", "linus.gif");</pre>
-<p>
-Not really rocket science ...</p>
+
+<p>Not really rocket science ...</p>
 
 <h3>Traversing the tree</h3>
-<p>
-Basically by including "tree.h" your code has access to the internal structure
-of all the element of the tree. The names should be somewhat simple like
-<strong>parent</strong>, <strong>childs</strong>, <strong>next</strong>,
+
+<p>Basically by including "tree.h" your code has access to the internal
+structure of all the element of the tree. The names should be somewhat simple
+like <strong>parent</strong>, <strong>childs</strong>, <strong>next</strong>,
 <strong>prev</strong>, <strong>properties</strong>, etc... For example still
 with the previous example:</p>
 <pre><code>doc->root->childs->childs</code></pre>
-<p>
-points to the title element,</p>
+
+<p>points to the title element,</p>
 <pre>doc->root->childs->next->child->child</pre>
-<p>
-points to the text node containing the chapter titlle "The Linux adventure"
+
+<p>points to the text node containing the chapter titlle "The Linux adventure"
 and</p>
 <pre>doc->root->properties->next->val</pre>
-<p>
-points to the entity reference containing the value of "&amp;linux" at the
+
+<p>points to the entity reference containing the value of "&amp;linux" at the
 beginning of the second attribute of the root element "EXAMPLE".</p>
 
 <h3>Modifying the tree</h3>
-<p>
-functions are provided to read and write the document content:</p>
+
+<p>functions are provided to read and write the document content:</p>
 <dl>
-<dt><code>xmlAttrPtr xmlSetProp(xmlNodePtr node, const CHAR *name, const CHAR
-*value);</code></dt>
-<dd><p>
-This set (or change) an attribute carried by an ELEMENT node the value can be
-NULL</p>
-</dd>
+  <dt><code>xmlAttrPtr xmlSetProp(xmlNodePtr node, const CHAR *name, const
+  CHAR *value);</code></dt>
+    <dd><p>This set (or change) an attribute carried by an ELEMENT node the
+      value can be NULL</p>
+    </dd>
 </dl>
 <dl>
-<dt><code>const CHAR *xmlGetProp(xmlNodePtr node, const CHAR
-*name);</code></dt>
-<dd><p>
-This function returns a pointer to the property content, note that no extra
-copy is made</p>
-</dd>
+  <dt><code>const CHAR *xmlGetProp(xmlNodePtr node, const CHAR
+  *name);</code></dt>
+    <dd><p>This function returns a pointer to the property content, note that
+      no extra copy is made</p>
+    </dd>
 </dl>
-<p>
-Two functions must be used to read an write the text associated to
+
+<p>Two functions must be used to read an write the text associated to
 elements:</p>
 <dl>
-<dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, const CHAR
-*value);</code></dt>
-<dd><p>
-This function takes an "external" string and convert it to one text node or
-possibly to a list of entity and text nodes. All non-predefined entity
-references like &amp;Gnome; will be stored internally as an entity node, hence
-the result of the function may not be a single node.</p>
-</dd>
+  <dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, const CHAR
+  *value);</code></dt>
+    <dd><p>This function takes an "external" string and convert it to one text
+      node or possibly to a list of entity and text nodes. All non-predefined
+      entity references like &amp;Gnome; will be stored internally as an
+      entity node, hence the result of the function may not be a single
+      node.</p>
+    </dd>
 </dl>
 <dl>
-<dt><code>CHAR *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int
-inLine);</code></dt>
-<dd><p>
-this is the dual function, which generate a new string containing the content
-of the text and entity nodes. Note the extra argument inLine, if set to 1
-instead of returning the &amp;Gnome; XML encoding in the string it will
-substitute it with it's value say "GNU Network Object Model Environment". Set
-it if you want to use the string for non XML usage like User Interface.</p>
-</dd>
+  <dt><code>CHAR *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int
+  inLine);</code></dt>
+    <dd><p>this is the dual function, which generate a new string containing
+      the content of the text and entity nodes. Note the extra argument
+      inLine, if set to 1 instead of returning the &amp;Gnome; XML encoding in
+      the string it will substitute it with it's value say "GNU Network Object
+      Model Environment". Set it if you want to use the string for non XML
+      usage like User Interface.</p>
+    </dd>
 </dl>
 
 <h3>Saving a tree</h3>
-<p>
-Basically 3 options are possible:</p>
+
+<p>Basically 3 options are possible:</p>
 <dl>
-<dt><code>void xmlDocDumpMemory(xmlDocPtr cur, CHAR**mem, int
-*size);</code></dt>
-<dd><p>
-returns a buffer where the document has been saved</p>
-</dd>
+  <dt><code>void xmlDocDumpMemory(xmlDocPtr cur, CHAR**mem, int
+  *size);</code></dt>
+    <dd><p>returns a buffer where the document has been saved</p>
+    </dd>
 </dl>
 <dl>
-<dt><code>extern void xmlDocDump(FILE *f, xmlDocPtr doc);</code></dt>
-<dd><p>
-dumps a buffer to an open file descriptor</p>
-</dd>
+  <dt><code>extern void xmlDocDump(FILE *f, xmlDocPtr doc);</code></dt>
+    <dd><p>dumps a buffer to an open file descriptor</p>
+    </dd>
 </dl>
 <dl>
-<dt><code>int xmlSaveFile(const char *filename, xmlDocPtr cur);</code></dt>
-<dd><p>
-save the document ot a file. In that case the compression interface is
-triggered if turned on</p>
-</dd>
+  <dt><code>int xmlSaveFile(const char *filename, xmlDocPtr cur);</code></dt>
+    <dd><p>save the document ot a file. In that case the compression interface
+      is triggered if turned on</p>
+    </dd>
 </dl>
 
 <h3>Compression</h3>
-<p>
-The library handle transparently compression when doing file based accesses,
-the level of compression on saves can be tuned either globally or individually
-for one file:</p>
+
+<p>The library handle transparently compression when doing file based
+accesses, the level of compression on saves can be tuned either globally or
+individually for one file:</p>
 <dl>
-<dt><code>int  xmlGetDocCompressMode (xmlDocPtr doc);</code></dt>
-<dd><p>
-Get the document compression ratio (0-9)</p>
-</dd>
+  <dt><code>int  xmlGetDocCompressMode (xmlDocPtr doc);</code></dt>
+    <dd><p>Get the document compression ratio (0-9)</p>
+    </dd>
 </dl>
 <dl>
-<dt><code>void xmlSetDocCompressMode (xmlDocPtr doc, int mode);</code></dt>
-<dd><p>
-Set the document compression ratio</p>
-</dd>
+  <dt><code>void xmlSetDocCompressMode (xmlDocPtr doc, int mode);</code></dt>
+    <dd><p>Set the document compression ratio</p>
+    </dd>
 </dl>
 <dl>
-<dt><code>int  xmlGetCompressMode(void);</code></dt>
-<dd><p>
-Get the default compression ratio</p>
-</dd>
+  <dt><code>int  xmlGetCompressMode(void);</code></dt>
+    <dd><p>Get the default compression ratio</p>
+    </dd>
 </dl>
 <dl>
-<dt><code>void xmlSetCompressMode(int mode);</code></dt>
-<dd><p>
-set the default compression ratio</p>
-</dd>
+  <dt><code>void xmlSetCompressMode(int mode);</code></dt>
+    <dd><p>set the default compression ratio</p>
+    </dd>
 </dl>
 
 <h2><a name="DOM">DOM Principles</a></h2>
-<p>
-<a href="http://www.w3.org/DOM/">DOM</a> stands for the <em>Document Object
+
+<p><a href="http://www.w3.org/DOM/">DOM</a> stands for the <em>Document Object
 Model</em> this is an API for accessing XML or HTML structured documents.
 Native support for DOM in Gnome is on the way (module gnome-dom), and it will
 be based on gnome-xml. This will be a far cleaner interface to manipulate XML
@@ -280,20 +300,20 @@
 set of IDL (or Java) interfaces allowing to traverse and manipulate a
 document. The DOM library will allow accessing and modifying "live" documents
 presents on other programs like this:</p>
-<p>
-<img src="DOM.gif" alt=" DOM.gif "></p>
-<p>
-This should help greatly doing things like modifying a gnumeric spreadsheet
+
+<p><img src="DOM.gif" alt=" DOM.gif "></p>
+
+<p>This should help greatly doing things like modifying a gnumeric spreadsheet
 embedded in a GWP document for example.</p>
 
 <h3><a name="Example">A real example</a></h3>
-<p>
-Here is a real size example, where the actual content of the application data
-is not kept in the DOM tree but uses internal structures. It is based on
+
+<p>Here is a real size example, where the actual content of the application
+data is not kept in the DOM tree but uses internal structures. It is based on
 a proposal to keep a database of jobs related to Gnome, with an XML based
-storage structure. Here is an <a href="gjobs.xml">XML encoded jobs base</a>:
-<pre>
-&lt;?xml version="1.0"?>
+storage structure. Here is an <a href="gjobs.xml">XML encoded jobs
+base</a>:</p>
+<pre>&lt;?xml version="1.0"?>
 &lt;gjob:Helping xmlns:gjob="http://www.gnome.org/some-location">
   &lt;gjob:Jobs>
 
@@ -303,8 +323,8 @@
       &lt;gjob:Category>Development&lt;/gjob:Category>
 
       &lt;gjob:Update>
-	&lt;gjob:Status>Open&lt;/gjob:Status>
-	&lt;gjob:Modified>Mon, 07 Jun 1999 20:27:45 -0400 MET DST&lt;/gjob:Modified>
+        &lt;gjob:Status>Open&lt;/gjob:Status>
+        &lt;gjob:Modified>Mon, 07 Jun 1999 20:27:45 -0400 MET DST&lt;/gjob:Modified>
         &lt;gjob:Salary>USD 0.00&lt;/gjob:Salary>
       &lt;/gjob:Update>
 
@@ -315,17 +335,17 @@
 
       &lt;gjob:Contact>
         &lt;gjob:Person>Nathan Clemons&lt;/gjob:Person>
-	&lt;gjob:Email>nathan@windsofstorm.net&lt;/gjob:Email>
+        &lt;gjob:Email>nathan@windsofstorm.net&lt;/gjob:Email>
         &lt;gjob:Company>
-	&lt;/gjob:Company>
+        &lt;/gjob:Company>
         &lt;gjob:Organisation>
-	&lt;/gjob:Organisation>
+        &lt;/gjob:Organisation>
         &lt;gjob:Webpage>
-	&lt;/gjob:Webpage>
-	&lt;gjob:Snailmail>
-	&lt;/gjob:Snailmail>
-	&lt;gjob:Phone>
-	&lt;/gjob:Phone>
+        &lt;/gjob:Webpage>
+        &lt;gjob:Snailmail>
+        &lt;/gjob:Snailmail>
+        &lt;gjob:Phone>
+        &lt;/gjob:Phone>
       &lt;/gjob:Contact>
 
       &lt;gjob:Requirements>
@@ -349,23 +369,18 @@
 
   &lt;/gjob:Jobs>
 &lt;/gjob:Helping>
-
 </pre>
-<p>
-While loading the XML file into an internal DOM tree is a matter of calling
-only a couple of functions, browsing the tree to gather the informations
-and generate the internals structures is harder, and more error prone. 
-</p>
-<p>
-The suggested principle is to be tolerant with respect to the input
-structure. For example the ordering of the attributes is not significant,
-Cthe XML specification is clear about it. It's also usually a good idea
-to not be dependant of the orders of the childs of a given node, unless it
-really makes things harder. Here is some code to parse the informations
-for a person:
-</p>
-<pre>
-/*
+
+<p>While loading the XML file into an internal DOM tree is a matter of calling
+only a couple of functions, browsing the tree to gather the informations and
+generate the internals structures is harder, and more error prone.</p>
+
+<p>The suggested principle is to be tolerant with respect to the input
+structure. For example the ordering of the attributes is not significant, Cthe
+XML specification is clear about it. It's also usually a good idea to not be
+dependant of the orders of the childs of a given node, unless it really makes
+things harder. Here is some code to parse the informations for a person:</p>
+<pre>/*
  * A person record
  */
 typedef struct person {
@@ -391,7 +406,7 @@
     ret = (personPtr) malloc(sizeof(person));
     if (ret == NULL) {
         fprintf(stderr,"out of memory\n");
-	return(NULL);
+        return(NULL);
     }
     memset(ret, 0, sizeof(person));
 
@@ -399,38 +414,36 @@
     cur = cur->childs;
     while (cur != NULL) {
         if ((!strcmp(cur->name, "Person")) &amp;&amp; (cur->ns == ns))
-	    ret->name = xmlNodeListGetString(doc, cur->childs, 1);
+            ret->name = xmlNodeListGetString(doc, cur->childs, 1);
         if ((!strcmp(cur->name, "Email")) &amp;&amp; (cur->ns == ns))
-	    ret->email = xmlNodeListGetString(doc, cur->childs, 1);
-	cur = cur->next;
+            ret->email = xmlNodeListGetString(doc, cur->childs, 1);
+        cur = cur->next;
     }
 
     return(ret);
-}
-</pre>
-<p>
-Here is a couple of things to notice:</p>
+}</pre>
+
+<p>Here is a couple of things to notice:</p>
 <ul>
-<li> Usually a recursive parsing style is the more convenient one,
-XML data being by nature subject to repetitive constructs and usualy exibit
-highly stuctured patterns.
-<li> The two arguments of type <em>xmlDocPtr</em> and <em>xmlNsPtr</em>, i.e.
-the pointer to the global XML document and the namespace reserved to the
-application. Document wide information are needed for example to decode
-entities and it's a good coding practice to define a namespace for your
-application set of data and test that the element and attributes you're
-analyzing actually pertains to your application space. This is done by a simple
-equality test (cur->ns == ns).
-<li> To retrieve text and attributes value, it is suggested to use
-the function <em>xmlNodeListGetString</em> to gather all the text and
-entity reference nodes generated by the DOM output and produce an
-single text string.
+  <li>Usually a recursive parsing style is the more convenient one, XML data
+    being by nature subject to repetitive constructs and usualy exibit highly
+    stuctured patterns.</li>
+  <li>The two arguments of type <em>xmlDocPtr</em> and <em>xmlNsPtr</em>, i.e.
+    the pointer to the global XML document and the namespace reserved to the
+    application. Document wide information are needed for example to decode
+    entities and it's a good coding practice to define a namespace for your
+    application set of data and test that the element and attributes you're
+    analyzing actually pertains to your application space. This is done by a
+    simple equality test (cur->ns == ns).</li>
+  <li>To retrieve text and attributes value, it is suggested to use the
+    function <em>xmlNodeListGetString</em> to gather all the text and entity
+    reference nodes generated by the DOM output and produce an single text
+    string.</li>
 </ul>
-<p>
-Here is another piece of code used to parse another level of the structure:
-</p>
-<pre>
-/*
+
+<p>Here is another piece of code used to parse another level of the
+structure:</p>
+<pre>/*
  * a Description for a Job
  */
 typedef struct job {
@@ -455,7 +468,7 @@
     ret = (jobPtr) malloc(sizeof(job));
     if (ret == NULL) {
         fprintf(stderr,"out of memory\n");
-	return(NULL);
+        return(NULL);
     }
     memset(ret, 0, sizeof(job));
 
@@ -464,34 +477,32 @@
     while (cur != NULL) {
         
         if ((!strcmp(cur->name, "Project")) &amp;&amp; (cur->ns == ns)) {
-	    ret->projectID = xmlGetProp(cur, "ID");
-	    if (ret->projectID == NULL) {
-		fprintf(stderr, "Project has no ID\n");
-	    }
-	}
+            ret->projectID = xmlGetProp(cur, "ID");
+            if (ret->projectID == NULL) {
+                fprintf(stderr, "Project has no ID\n");
+            }
+        }
         if ((!strcmp(cur->name, "Application")) &amp;&amp; (cur->ns == ns))
-	    ret->application = xmlNodeListGetString(doc, cur->childs, 1);
+            ret->application = xmlNodeListGetString(doc, cur->childs, 1);
         if ((!strcmp(cur->name, "Category")) &amp;&amp; (cur->ns == ns))
-	    ret->category = xmlNodeListGetString(doc, cur->childs, 1);
+            ret->category = xmlNodeListGetString(doc, cur->childs, 1);
         if ((!strcmp(cur->name, "Contact")) &amp;&amp; (cur->ns == ns))
-	    ret->contact = parsePerson(doc, ns, cur);
-	cur = cur->next;
+            ret->contact = parsePerson(doc, ns, cur);
+        cur = cur->next;
     }
 
     return(ret);
-}
-</pre>
-<p>
-One can notice that once used to it, writing this kind of code
-is quite simple, but boring. Ultimately, it could be possble to write
-stubbers taking either C data structure definitions, a set of XML examples
-or an XML DTD and produce the code needed to import and export the
-content between C data and XML storage. This is left as an exercise to
-the reader :-)</p>
-<p>
-Feel free to use <a href="gjobread.c">the code for the full C parsing
-example</a> as a template,
+}</pre>
 
-<a href="mailto:Daniel.Veillard@w3.org">Daniel Veillard</a>
+<p>One can notice that once used to it, writing this kind of code is quite
+simple, but boring. Ultimately, it could be possble to write stubbers taking
+either C data structure definitions, a set of XML examples or an XML DTD and
+produce the code needed to import and export the content between C data and
+XML storage. This is left as an exercise to the reader :-)</p>
+
+<p>Feel free to use <a href="gjobread.c">the code for the full C parsing
+example</a> as a template,</p>
+
+<p> <a href="mailto:Daniel.Veillard@w3.org">Daniel Veillard</a></p>
 </body>
 </html>