Fixed CHAR, errno, alpha RPM compile, updated doc, Daniel
diff --git a/ChangeLog b/ChangeLog
index cb19b69..6c91ade 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Fri Sep 24 00:15:58 CEST 1999
+
+	* libxml.spec.in: fixed the alpha compile problem
+	* parser.[ch]: changed errno to errNo in the parser context :-(
+	* *.[ch]: changed CHAR to xmlChar to avoid problem on WIN32
+	* doc/xml.html: changed CHAR to xmlChar
+	* doc/html/*: recompiled the documentation
+	* configure.in: 1.7.1
+
 Wed Sep 22 11:40:31 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
 
 	* parser.h: modified the parser context struct to regain 1.4.0
diff --git a/HTMLparser.c b/HTMLparser.c
index a63bf98..74f350f 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -94,17 +94,17 @@
  *
  * Dirty macros, i.e. one need to make assumption on the context to use them
  *
- *   CUR_PTR return the current pointer to the CHAR to be parsed.
- *   CUR     returns the current CHAR value, i.e. a 8 bit value if compiled
+ *   CUR_PTR return the current pointer to the xmlChar to be parsed.
+ *   CUR     returns the current xmlChar value, i.e. a 8 bit value if compiled
  *           in ISO-Latin or UTF-8, and the current 16 bit value if compiled
  *           in UNICODE mode. This should be used internally by the parser
  *           only to compare to ASCII values otherwise it would break when
  *           running with UTF-8 encoding.
- *   NXT(n)  returns the n'th next CHAR. Same as CUR is should be used only
+ *   NXT(n)  returns the n'th next xmlChar. Same as CUR is should be used only
  *           to compare on ASCII based substring.
- *   UPP(n)  returns the n'th next CHAR converted to uppercase. Same as CUR
+ *   UPP(n)  returns the n'th next xmlChar converted to uppercase. Same as CUR
  *           it should be used only to compare on ASCII based substring.
- *   SKIP(n) Skip n CHAR, and must also be used only to skip ASCII defined
+ *   SKIP(n) Skip n xmlChar, and must also be used only to skip ASCII defined
  *           strings within the parser.
  *
  * Clean macros, not dependent of an ASCII context, expect UTF-8 encoding
@@ -385,7 +385,7 @@
  * Returns the related htmlElemDescPtr or NULL if not found.
  */
 htmlElemDescPtr
-htmlTagLookup(const CHAR *tag) {
+htmlTagLookup(const xmlChar *tag) {
     int i = 0;
 
     for (i = 0; i < (sizeof(html40ElementTable) /
@@ -407,7 +407,7 @@
  * Returns 0 if no, 1 if yes.
  */
 int
-htmlCheckAutoClose(const CHAR *new, const CHAR *old) {
+htmlCheckAutoClose(const xmlChar *new, const xmlChar *old) {
     int i, index;
     char **close;
 
@@ -442,7 +442,7 @@
  * appropriates closes if possible/needed.
  */
 void
-htmlAutoClose(htmlParserCtxtPtr ctxt, const CHAR *new) {
+htmlAutoClose(htmlParserCtxtPtr ctxt, const xmlChar *new) {
 
     while ((ctxt->node != NULL) && 
            (htmlCheckAutoClose(new, ctxt->node->name))) {
@@ -462,7 +462,7 @@
  * The HTmL DtD allows an ending tag to implicitely close other tags.
  */
 void
-htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const CHAR *new) {
+htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar *new) {
     htmlElemDescPtr info;
 
     while ((ctxt->node != NULL) && 
@@ -774,7 +774,7 @@
  */
 #define growBuffer(buffer) {						\
     buffer##_size *= 2;							\
-    buffer = (CHAR *) xmlRealloc(buffer, buffer##_size * sizeof(CHAR));	\
+    buffer = (xmlChar *) xmlRealloc(buffer, buffer##_size * sizeof(xmlChar));	\
     if (buffer == NULL) {						\
 	perror("realloc failed");					\
 	exit(1);							\
@@ -792,7 +792,7 @@
  * Returns the associated htmlEntityDescPtr if found, NULL otherwise.
  */
 htmlEntityDescPtr
-htmlEntityLookup(const CHAR *name) {
+htmlEntityLookup(const xmlChar *name) {
     int i;
 
     for (i = 0;i < (sizeof(html40EntitiesTable)/
@@ -812,9 +812,9 @@
  * htmlDecodeEntities:
  * @ctxt:  the parser context
  * @len:  the len to decode (in bytes !), -1 for no size limit
- * @end:  an end marker CHAR, 0 if none
- * @end2:  an end marker CHAR, 0 if none
- * @end3:  an end marker CHAR, 0 if none
+ * @end:  an end marker xmlChar, 0 if none
+ * @end2:  an end marker xmlChar, 0 if none
+ * @end3:  an end marker xmlChar, 0 if none
  *
  * Subtitute the HTML entities by their value
  *
@@ -825,15 +825,15 @@
  * Returns A newly allocated string with the substitution done. The caller
  *      must deallocate it !
  */
-CHAR *
+xmlChar *
 htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
-                  CHAR end, CHAR  end2, CHAR end3) {
-    CHAR *buffer = NULL;
+                  xmlChar end, xmlChar  end2, xmlChar end3) {
+    xmlChar *buffer = NULL;
     int buffer_size = 0;
-    CHAR *out = NULL;
-    CHAR *name = NULL;
+    xmlChar *out = NULL;
+    xmlChar *name = NULL;
 
-    CHAR *cur = NULL;
+    xmlChar *cur = NULL;
     htmlEntityDescPtr ent;
     int nbchars = 0;
     unsigned int max = (unsigned int) len;
@@ -842,7 +842,7 @@
      * allocate a translation buffer.
      */
     buffer_size = 1000;
-    buffer = (CHAR *) xmlMalloc(buffer_size * sizeof(CHAR));
+    buffer = (xmlChar *) xmlMalloc(buffer_size * sizeof(xmlChar));
     if (buffer == NULL) {
 	perror("htmlDecodeEntities: malloc failed");
 	return(NULL);
@@ -880,7 +880,7 @@
 		        *out++ = ';';
 		    } else {
 			/* invalid for UTF-8 variable encoding !!!!! */
-			*out++ = (CHAR)ent->value;
+			*out++ = (xmlChar)ent->value;
 			if (out - buffer > buffer_size - 100) {
 			    int index = out - buffer;
 
@@ -1053,7 +1053,7 @@
 /**
  * areBlanks:
  * @ctxt:  an HTML parser context
- * @str:  a CHAR *
+ * @str:  a xmlChar *
  * @len:  the size of @str
  *
  * Is this a sequence of blank chars that one can ignore ?
@@ -1061,7 +1061,7 @@
  * Returns 1 if ignorable 0 otherwise.
  */
 
-static int areBlanks(htmlParserCtxtPtr ctxt, const CHAR *str, int len) {
+static int areBlanks(htmlParserCtxtPtr ctxt, const xmlChar *str, int len) {
     int i;
     xmlNodePtr lastChild;
 
@@ -1116,7 +1116,7 @@
  * Returns a new document
  */
 htmlDocPtr
-htmlNewDoc(const CHAR *URI, const CHAR *ExternalID) {
+htmlNewDoc(const xmlChar *URI, const xmlChar *ExternalID) {
     xmlDocPtr cur;
 
     /*
@@ -1173,11 +1173,11 @@
  * Returns the Tag Name parsed or NULL
  */
 
-CHAR *
+xmlChar *
 htmlParseHTMLName(htmlParserCtxtPtr ctxt) {
-    CHAR *ret = NULL;
+    xmlChar *ret = NULL;
     int i = 0;
-    CHAR loc[100];
+    xmlChar loc[100];
 
     if (!IS_LETTER(CUR) && (CUR != '_') &&
         (CUR != ':')) return(NULL);
@@ -1204,9 +1204,9 @@
  * Returns the Name parsed or NULL
  */
 
-CHAR *
+xmlChar *
 htmlParseName(htmlParserCtxtPtr ctxt) {
-    CHAR buf[HTML_MAX_NAMELEN];
+    xmlChar buf[HTML_MAX_NAMELEN];
     int len = 0;
 
     GROW;
@@ -1245,9 +1245,9 @@
  * Returns the Nmtoken parsed or NULL
  */
 
-CHAR *
+xmlChar *
 htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt) {
-    CHAR buf[HTML_MAX_NAMELEN];
+    xmlChar buf[HTML_MAX_NAMELEN];
     int len = 0;
 
     GROW;
@@ -1278,9 +1278,9 @@
  * Returns the Nmtoken parsed or NULL
  */
 
-CHAR *
+xmlChar *
 htmlParseNmtoken(htmlParserCtxtPtr ctxt) {
-    CHAR buf[HTML_MAX_NAMELEN];
+    xmlChar buf[HTML_MAX_NAMELEN];
     int len = 0;
 
     GROW;
@@ -1319,8 +1319,8 @@
  *         if non-NULL *str will have to be freed by the caller.
  */
 htmlEntityDescPtr
-htmlParseEntityRef(htmlParserCtxtPtr ctxt, CHAR **str) {
-    CHAR *name;
+htmlParseEntityRef(htmlParserCtxtPtr ctxt, xmlChar **str) {
+    xmlChar *name;
     htmlEntityDescPtr ent = NULL;
     *str = NULL;
 
@@ -1369,9 +1369,9 @@
  * Returns the AttValue parsed or NULL.
  */
 
-CHAR *
+xmlChar *
 htmlParseAttValue(htmlParserCtxtPtr ctxt) {
-    CHAR *ret = NULL;
+    xmlChar *ret = NULL;
 
     if (CUR == '"') {
         NEXT;
@@ -1429,10 +1429,10 @@
  * Returns the SystemLiteral parsed or NULL
  */
 
-CHAR *
+xmlChar *
 htmlParseSystemLiteral(htmlParserCtxtPtr ctxt) {
-    const CHAR *q;
-    CHAR *ret = NULL;
+    const xmlChar *q;
+    xmlChar *ret = NULL;
 
     if (CUR == '"') {
         NEXT;
@@ -1480,10 +1480,10 @@
  * Returns the PubidLiteral parsed or NULL.
  */
 
-CHAR *
+xmlChar *
 htmlParsePubidLiteral(htmlParserCtxtPtr ctxt) {
-    const CHAR *q;
-    CHAR *ret = NULL;
+    const xmlChar *q;
+    xmlChar *ret = NULL;
     /*
      * Name ::= (Letter | '_') (NameChar)*
      */
@@ -1534,7 +1534,7 @@
 
 void
 htmlParseCharData(htmlParserCtxtPtr ctxt, int cdata) {
-    const CHAR *q;
+    const xmlChar *q;
 
     q = CUR_PTR;
     while ((IS_CHAR(CUR)) && (CUR != '<') &&
@@ -1570,7 +1570,7 @@
 /**
  * htmlParseExternalID:
  * @ctxt:  an HTML parser context
- * @publicID:  a CHAR** receiving PubidLiteral
+ * @publicID:  a xmlChar** receiving PubidLiteral
  * @strict: indicate whether we should restrict parsing to only
  *          production [75], see NOTE below
  *
@@ -1589,9 +1589,9 @@
  *                it is possible to return NULL and have publicID set.
  */
 
-CHAR *
-htmlParseExternalID(htmlParserCtxtPtr ctxt, CHAR **publicID, int strict) {
-    CHAR *URI = NULL;
+xmlChar *
+htmlParseExternalID(htmlParserCtxtPtr ctxt, xmlChar **publicID, int strict) {
+    xmlChar *URI = NULL;
 
     if ((UPPER == 'S') && (UPP(1) == 'Y') &&
          (UPP(2) == 'S') && (UPP(3) == 'T') &&
@@ -1648,9 +1648,9 @@
  */
 void
 htmlParseComment(htmlParserCtxtPtr ctxt, int create) {
-    const CHAR *q, *start;
-    const CHAR *r;
-    CHAR *val;
+    const xmlChar *q, *start;
+    const xmlChar *r;
+    xmlChar *val;
 
     /*
      * Check that there is a comment right here.
@@ -1755,7 +1755,7 @@
         return(val);
     } else {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
-	    ctxt->sax->error(ctxt->userData, "htmlParseCharRef: invalid CHAR value %d\n",
+	    ctxt->sax->error(ctxt->userData, "htmlParseCharRef: invalid xmlChar value %d\n",
 	                     val);
 	ctxt->wellFormed = 0;
     }
@@ -1775,9 +1775,9 @@
 
 void
 htmlParseDocTypeDecl(htmlParserCtxtPtr ctxt) {
-    CHAR *name;
-    CHAR *ExternalID = NULL;
-    CHAR *URI = NULL;
+    xmlChar *name;
+    xmlChar *ExternalID = NULL;
+    xmlChar *URI = NULL;
 
     /*
      * We know that '<!DOCTYPE' has been detected.
@@ -1835,7 +1835,7 @@
 /**
  * htmlParseAttribute:
  * @ctxt:  an HTML parser context
- * @value:  a CHAR ** used to store the value of the attribute
+ * @value:  a xmlChar ** used to store the value of the attribute
  *
  * parse an attribute
  *
@@ -1853,9 +1853,9 @@
  * Returns the attribute name, and the value in *value.
  */
 
-CHAR *
-htmlParseAttribute(htmlParserCtxtPtr ctxt, CHAR **value) {
-    CHAR *name, *val;
+xmlChar *
+htmlParseAttribute(htmlParserCtxtPtr ctxt, xmlChar **value) {
+    xmlChar *name, *val;
 
     *value = NULL;
     name = htmlParseName(ctxt);
@@ -1906,12 +1906,12 @@
  * Returns the element name parsed
  */
 
-CHAR *
+xmlChar *
 htmlParseStartTag(htmlParserCtxtPtr ctxt) {
-    CHAR *name;
-    CHAR *attname;
-    CHAR *attvalue;
-    const CHAR **atts = NULL;
+    xmlChar *name;
+    xmlChar *attname;
+    xmlChar *attvalue;
+    const xmlChar **atts = NULL;
     int nbatts = 0;
     int maxatts = 0;
     int i;
@@ -1942,7 +1942,7 @@
     while ((IS_CHAR(CUR)) &&
            (CUR != '>') && 
 	   ((CUR != '/') || (NXT(1) != '>'))) {
-	const CHAR *q = CUR_PTR;
+	const xmlChar *q = CUR_PTR;
 
 	attname = htmlParseAttribute(ctxt, &attvalue);
         if ((attname != NULL) && (attvalue != NULL)) {
@@ -1966,18 +1966,18 @@
 	     */
 	    if (atts == NULL) {
 	        maxatts = 10;
-	        atts = (const CHAR **) xmlMalloc(maxatts * sizeof(CHAR *));
+	        atts = (const xmlChar **) xmlMalloc(maxatts * sizeof(xmlChar *));
 		if (atts == NULL) {
 		    fprintf(stderr, "malloc of %ld byte failed\n",
-			    maxatts * (long)sizeof(CHAR *));
+			    maxatts * (long)sizeof(xmlChar *));
 		    return(NULL);
 		}
 	    } else if (nbatts + 2 < maxatts) {
 	        maxatts *= 2;
-	        atts = (const CHAR **) xmlRealloc(atts, maxatts * sizeof(CHAR *));
+	        atts = (const xmlChar **) xmlRealloc(atts, maxatts * sizeof(xmlChar *));
 		if (atts == NULL) {
 		    fprintf(stderr, "realloc of %ld byte failed\n",
-			    maxatts * (long)sizeof(CHAR *));
+			    maxatts * (long)sizeof(xmlChar *));
 		    return(NULL);
 		}
 	    }
@@ -2004,7 +2004,7 @@
         ctxt->sax->startElement(ctxt->userData, name, atts);
 
     if (atts != NULL) {
-        for (i = 0;i < nbatts;i++) xmlFree((CHAR *) atts[i]);
+        for (i = 0;i < nbatts;i++) xmlFree((xmlChar *) atts[i]);
 	xmlFree(atts);
     }
     return(name);
@@ -2025,8 +2025,8 @@
  */
 
 void
-htmlParseEndTag(htmlParserCtxtPtr ctxt, const CHAR *tagname) {
-    CHAR *name;
+htmlParseEndTag(htmlParserCtxtPtr ctxt, const xmlChar *tagname) {
+    xmlChar *name;
     int i;
 
     if ((CUR != '<') || (NXT(1) != '/')) {
@@ -2114,8 +2114,8 @@
 void
 htmlParseReference(htmlParserCtxtPtr ctxt) {
     htmlEntityDescPtr ent;
-    CHAR out[2];
-    CHAR *name;
+    xmlChar out[2];
+    xmlChar *name;
     int val;
     if (CUR != '&') return;
 
@@ -2156,12 +2156,12 @@
  */
 
 void
-htmlParseContent(htmlParserCtxtPtr ctxt, const CHAR *name) {
+htmlParseContent(htmlParserCtxtPtr ctxt, const xmlChar *name) {
     htmlNodePtr currentNode;
 
     currentNode = ctxt->node;
     while ((CUR != '<') || (NXT(1) != '/')) {
-	const CHAR *test = CUR_PTR;
+	const xmlChar *test = CUR_PTR;
 
 	/*
 	 * Has this node been popped out during parsing of
@@ -2228,8 +2228,8 @@
 
 void
 htmlParseElement(htmlParserCtxtPtr ctxt) {
-    const CHAR *openTag = CUR_PTR;
-    CHAR *name;
+    const xmlChar *openTag = CUR_PTR;
+    xmlChar *name;
     htmlNodePtr currentNode;
     htmlElemDescPtr info;
     htmlParserNodeInfo node_info;
@@ -2512,7 +2512,7 @@
 
 /**
  * htmlCreateDocParserCtxt :
- * @cur:  a pointer to an array of CHAR
+ * @cur:  a pointer to an array of xmlChar
  * @encoding:  a free form C string describing the HTML document encoding, or NULL
  *
  * Create a parser context for an HTML document.
@@ -2520,7 +2520,7 @@
  * Returns the new parser context or NULL
  */
 htmlParserCtxtPtr
-htmlCreateDocParserCtxt(CHAR *cur, const char *encoding) {
+htmlCreateDocParserCtxt(xmlChar *cur, const char *encoding) {
     htmlParserCtxtPtr ctxt;
     htmlParserInputPtr input;
     /* htmlCharEncoding enc; */
@@ -2566,7 +2566,7 @@
 
 /**
  * htmlSAXParseDoc :
- * @cur:  a pointer to an array of CHAR
+ * @cur:  a pointer to an array of xmlChar
  * @encoding:  a free form C string describing the HTML document encoding, or NULL
  * @sax:  the SAX handler block
  * @userData: if using SAX, this pointer will be provided on callbacks. 
@@ -2579,7 +2579,7 @@
  */
 
 htmlDocPtr
-htmlSAXParseDoc(CHAR *cur, const char *encoding, htmlSAXHandlerPtr sax, void *userData) {
+htmlSAXParseDoc(xmlChar *cur, const char *encoding, htmlSAXHandlerPtr sax, void *userData) {
     htmlDocPtr ret;
     htmlParserCtxtPtr ctxt;
 
@@ -2606,7 +2606,7 @@
 
 /**
  * htmlParseDoc :
- * @cur:  a pointer to an array of CHAR
+ * @cur:  a pointer to an array of xmlChar
  * @encoding:  a free form C string describing the HTML document encoding, or NULL
  *
  * parse an HTML in-memory document and build a tree.
@@ -2615,7 +2615,7 @@
  */
 
 htmlDocPtr
-htmlParseDoc(CHAR *cur, const char *encoding) {
+htmlParseDoc(xmlChar *cur, const char *encoding) {
     return(htmlSAXParseDoc(cur, encoding, NULL, NULL));
 }
 
diff --git a/HTMLparser.h b/HTMLparser.h
index ebcd996..ca9ee14 100644
--- a/HTMLparser.h
+++ b/HTMLparser.h
@@ -48,16 +48,16 @@
 /*
  * There is only few public functions.
  */
-htmlElemDescPtr htmlTagLookup(const CHAR *tag);
-htmlEntityDescPtr htmlEntityLookup(const CHAR *name);
+htmlElemDescPtr htmlTagLookup(const xmlChar *tag);
+htmlEntityDescPtr htmlEntityLookup(const xmlChar *name);
 
-htmlEntityDescPtr htmlParseEntityRef(htmlParserCtxtPtr ctxt, CHAR **str);
+htmlEntityDescPtr htmlParseEntityRef(htmlParserCtxtPtr ctxt, xmlChar **str);
 int htmlParseCharRef(htmlParserCtxtPtr ctxt);
 void htmlParseElement(htmlParserCtxtPtr ctxt);
 
-htmlDocPtr htmlSAXParseDoc(CHAR *cur, const char *encoding,
+htmlDocPtr htmlSAXParseDoc(xmlChar *cur, const char *encoding,
                            htmlSAXHandlerPtr sax, void *userData);
-htmlDocPtr htmlParseDoc(CHAR *cur, const char *encoding);
+htmlDocPtr htmlParseDoc(xmlChar *cur, const char *encoding);
 htmlDocPtr htmlSAXParseFile(const char *filename, const char *encoding,
                             htmlSAXHandlerPtr sax, void *userData);
 htmlDocPtr htmlParseFile(const char *filename, const char *encoding);
diff --git a/HTMLtree.c b/HTMLtree.c
index b00c300..4e21c0f 100644
--- a/HTMLtree.c
+++ b/HTMLtree.c
@@ -67,7 +67,7 @@
  */
 static void
 htmlAttrDump(xmlBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur) {
-    CHAR *value;
+    xmlChar *value;
 
     if (cur == NULL) {
         fprintf(stderr, "htmlAttrDump : property == NULL\n");
@@ -149,7 +149,7 @@
      */
     if (cur->type == HTML_TEXT_NODE) {
 	if (cur->content != NULL) {
-            CHAR *buffer;
+            xmlChar *buffer;
 
 	    /* uses the HTML encoding routine !!!!!!!!!! */
             buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
@@ -211,7 +211,7 @@
     }
     xmlBufferWriteChar(buf, ">");
     if (cur->content != NULL) {
-	CHAR *buffer;
+	xmlChar *buffer;
 
 	buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
 	if (buffer != NULL) {
@@ -261,11 +261,11 @@
  * @mem:  OUT: the memory pointer
  * @size:  OUT: the memory lenght
  *
- * Dump an HTML document in memory and return the CHAR * and it's size.
+ * Dump an HTML document in memory and return the xmlChar * and it's size.
  * It's up to the caller to free the memory.
  */
 void
-htmlDocDumpMemory(xmlDocPtr cur, CHAR**mem, int *size) {
+htmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int *size) {
     xmlBufferPtr buf;
 
     if (cur == NULL) {
@@ -342,6 +342,6 @@
     fclose(output);
 
     xmlBufferFree(buf);
-    return(ret * sizeof(CHAR));
+    return(ret * sizeof(xmlChar));
 }
 
diff --git a/SAX.c b/SAX.c
index 7d1da40..e0c5066 100644
--- a/SAX.c
+++ b/SAX.c
@@ -27,9 +27,9 @@
  *
  * Return the public ID e.g. "-//SGMLSOURCE//DTD DEMO//EN"
  *
- * Returns a CHAR *
+ * Returns a xmlChar *
  */
-const CHAR *
+const xmlChar *
 getPublicId(void *ctx)
 {
     /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
@@ -43,9 +43,9 @@
  * Return the system ID, basically URL or filename e.g.
  * http://www.sgmlsource.com/dtds/memo.dtd
  *
- * Returns a CHAR *
+ * Returns a xmlChar *
  */
-const CHAR *
+const xmlChar *
 getSystemId(void *ctx)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -142,8 +142,8 @@
  * Does this document has an internal subset
  */
 void
-internalSubset(void *ctx, const CHAR *name,
-	       const CHAR *ExternalID, const CHAR *SystemID)
+internalSubset(void *ctx, const xmlChar *name,
+	       const xmlChar *ExternalID, const xmlChar *SystemID)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
 #ifdef DEBUG_SAX
@@ -229,7 +229,7 @@
  * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
  */
 xmlParserInputPtr
-resolveEntity(void *ctx, const CHAR *publicId, const CHAR *systemId)
+resolveEntity(void *ctx, const xmlChar *publicId, const xmlChar *systemId)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
 
@@ -253,7 +253,7 @@
  * Returns the xmlEntityPtr if found.
  */
 xmlEntityPtr
-getEntity(void *ctx, const CHAR *name)
+getEntity(void *ctx, const xmlChar *name)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlEntityPtr ret;
@@ -276,7 +276,7 @@
  * Returns the xmlEntityPtr if found.
  */
 xmlEntityPtr
-getParameterEntity(void *ctx, const CHAR *name)
+getParameterEntity(void *ctx, const xmlChar *name)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlEntityPtr ret;
@@ -302,8 +302,8 @@
  * An entity definition has been parsed
  */
 void
-entityDecl(void *ctx, const CHAR *name, int type,
-          const CHAR *publicId, const CHAR *systemId, CHAR *content)
+entityDecl(void *ctx, const xmlChar *name, int type,
+          const xmlChar *publicId, const xmlChar *systemId, xmlChar *content)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
 
@@ -326,8 +326,8 @@
  * An attribute definition has been parsed
  */
 void
-attributeDecl(void *ctx, const CHAR *elem, const CHAR *name,
-              int type, int def, const CHAR *defaultValue,
+attributeDecl(void *ctx, const xmlChar *elem, const xmlChar *name,
+              int type, int def, const xmlChar *defaultValue,
 	      xmlEnumerationPtr tree)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -358,7 +358,7 @@
  * An element definition has been parsed
  */
 void
-elementDecl(void *ctx, const CHAR *name, int type,
+elementDecl(void *ctx, const xmlChar *name, int type,
 	    xmlElementContentPtr content)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -387,8 +387,8 @@
  * What to do when a notation declaration has been parsed.
  */
 void
-notationDecl(void *ctx, const CHAR *name,
-	     const CHAR *publicId, const CHAR *systemId)
+notationDecl(void *ctx, const xmlChar *name,
+	     const xmlChar *publicId, const xmlChar *systemId)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNotationPtr nota;
@@ -417,9 +417,9 @@
  * What to do when an unparsed entity declaration is parsed
  */
 void
-unparsedEntityDecl(void *ctx, const CHAR *name,
-		   const CHAR *publicId, const CHAR *systemId,
-		   const CHAR *notationName)
+unparsedEntityDecl(void *ctx, const xmlChar *name,
+		   const xmlChar *publicId, const xmlChar *systemId,
+		   const xmlChar *notationName)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
 #ifdef DEBUG_SAX
@@ -507,12 +507,12 @@
  * the element.
  */
 void
-attribute(void *ctx, const CHAR *fullname, const CHAR *value)
+attribute(void *ctx, const xmlChar *fullname, const xmlChar *value)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlAttrPtr ret;
-    CHAR *name;
-    CHAR *ns;
+    xmlChar *name;
+    xmlChar *ns;
     xmlNsPtr namespace;
 
 /****************
@@ -588,16 +588,16 @@
  * called when an opening tag has been processed.
  */
 void
-startElement(void *ctx, const CHAR *fullname, const CHAR **atts)
+startElement(void *ctx, const xmlChar *fullname, const xmlChar **atts)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNodePtr ret;
     xmlNodePtr parent = ctxt->node;
     xmlNsPtr ns;
-    CHAR *name;
-    CHAR *prefix;
-    const CHAR *att;
-    const CHAR *value;
+    xmlChar *name;
+    xmlChar *prefix;
+    const xmlChar *att;
+    const xmlChar *value;
     int i;
 
 #ifdef DEBUG_SAX
@@ -728,7 +728,7 @@
  * called when the end of an element has been detected.
  */
 void
-endElement(void *ctx, const CHAR *name)
+endElement(void *ctx, const xmlChar *name)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlParserNodeInfo node_info;
@@ -772,7 +772,7 @@
  * called when an entity reference is detected. 
  */
 void
-reference(void *ctx, const CHAR *name)
+reference(void *ctx, const xmlChar *name)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNodePtr ret;
@@ -790,14 +790,14 @@
 /**
  * characters:
  * @ctx: the user data (XML parser context)
- * @ch:  a CHAR string
- * @len: the number of CHAR
+ * @ch:  a xmlChar string
+ * @len: the number of xmlChar
  *
  * receiving some chars from the parser.
  * Question: how much at a time ???
  */
 void
-characters(void *ctx, const CHAR *ch, int len)
+characters(void *ctx, const xmlChar *ch, int len)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNodePtr lastChild;
@@ -830,14 +830,14 @@
 /**
  * ignorableWhitespace:
  * @ctx: the user data (XML parser context)
- * @ch:  a CHAR string
- * @len: the number of CHAR
+ * @ch:  a xmlChar string
+ * @len: the number of xmlChar
  *
  * receiving some ignorable whitespaces from the parser.
  * Question: how much at a time ???
  */
 void
-ignorableWhitespace(void *ctx, const CHAR *ch, int len)
+ignorableWhitespace(void *ctx, const xmlChar *ch, int len)
 {
     /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */
 #ifdef DEBUG_SAX
@@ -850,13 +850,13 @@
  * @ctx: the user data (XML parser context)
  * @target:  the target name
  * @data: the PI data's
- * @len: the number of CHAR
+ * @len: the number of xmlChar
  *
  * A processing instruction has been parsed.
  */
 void
-processingInstruction(void *ctx, const CHAR *target,
-                      const CHAR *data)
+processingInstruction(void *ctx, const xmlChar *target,
+                      const xmlChar *data)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNodePtr ret;
@@ -903,7 +903,7 @@
  * An old global namespace has been parsed.
  */
 void
-globalNamespace(void *ctx, const CHAR *href, const CHAR *prefix)
+globalNamespace(void *ctx, const xmlChar *href, const xmlChar *prefix)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
 #ifdef DEBUG_SAX
@@ -920,7 +920,7 @@
  * Set the current element namespace.
  */
 void
-setNamespace(void *ctx, const CHAR *name)
+setNamespace(void *ctx, const xmlChar *name)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNsPtr ns;
@@ -968,7 +968,7 @@
  * one read upon parsing.
  */
 int
-checkNamespace(void *ctx, CHAR *namespace)
+checkNamespace(void *ctx, xmlChar *namespace)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNodePtr cur = ctxt->node;
@@ -1016,7 +1016,7 @@
  * A namespace has been parsed.
  */
 void
-namespaceDecl(void *ctx, const CHAR *href, const CHAR *prefix)
+namespaceDecl(void *ctx, const xmlChar *href, const xmlChar *prefix)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
 #ifdef DEBUG_SAX
@@ -1036,7 +1036,7 @@
  * A comment has been parsed.
  */
 void
-comment(void *ctx, const CHAR *value)
+comment(void *ctx, const xmlChar *value)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNodePtr ret;
@@ -1081,7 +1081,7 @@
  * called when a pcdata block has been parsed
  */
 void
-cdataBlock(void *ctx, const CHAR *value, int len)
+cdataBlock(void *ctx, const xmlChar *value, int len)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
     xmlNodePtr ret;
diff --git a/configure.in b/configure.in
index 4c7a3f5..91f1886 100644
--- a/configure.in
+++ b/configure.in
@@ -5,7 +5,7 @@
 
 LIBXML_MAJOR_VERSION=1
 LIBXML_MINOR_VERSION=7
-LIBXML_MICRO_VERSION=0
+LIBXML_MICRO_VERSION=1
 LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION
 LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
 
diff --git a/debugXML.c b/debugXML.c
index 69901b7..24618e9 100644
--- a/debugXML.c
+++ b/debugXML.c
@@ -15,7 +15,7 @@
 #define IS_BLANK(c)							\
   (((c) == '\n') || ((c) == '\r') || ((c) == '\t') || ((c) == ' '))
 
-void xmlDebugDumpString(FILE *output, const CHAR *str) {
+void xmlDebugDumpString(FILE *output, const xmlChar *str) {
     int i;
     for (i = 0;i < 40;i++)
         if (str[i] == 0) return;
diff --git a/debugXML.h b/debugXML.h
index 556d1fe..f73527c 100644
--- a/debugXML.h
+++ b/debugXML.h
@@ -9,7 +9,7 @@
 #define __DEBUG_XML__
 #include "tree.h"
 
-extern void xmlDebugDumpString(FILE *output, const CHAR *str);
+extern void xmlDebugDumpString(FILE *output, const xmlChar *str);
 extern void xmlDebugDumpAttr(FILE *output, xmlAttrPtr attr, int depth);
 extern void xmlDebugDumpAttrList(FILE *output, xmlAttrPtr attr, int depth);
 extern void xmlDebugDumpOneNode(FILE *output, xmlNodePtr node, int depth);
diff --git a/doc/html/gnome-xml-entities.html b/doc/html/gnome-xml-entities.html
index b473a3c..5db0294 100644
--- a/doc/html/gnome-xml-entities.html
+++ b/doc/html/gnome-xml-entities.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN4116"
+NAME="AEN4122"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN4119"
+NAME="AEN4125"
 ></A
 ><H2
 >Synopsis</H2
@@ -182,21 +182,21 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 void        <A
 HREF="gnome-xml-entities.html#XMLADDDTDENTITY"
@@ -206,21 +206,21 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 <A
 HREF="gnome-xml-entities.html#XMLENTITYPTR"
@@ -229,8 +229,8 @@
 HREF="gnome-xml-entities.html#XMLGETPREDEFINEDENTITY"
 >xmlGetPredefinedEntity</A
 >         (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-entities.html#XMLENTITYPTR"
@@ -243,8 +243,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-entities.html#XMLENTITYPTR"
@@ -257,8 +257,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-entities.html#XMLENTITYPTR"
@@ -271,27 +271,27 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 >* <A
 HREF="gnome-xml-entities.html#XMLENCODEENTITIES"
 >xmlEncodeEntities</A
->               (<A
+>            (<A
 HREF="gnome-xml-tree.html#XMLDOCPTR"
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *input);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-entities.html#XMLENCODEENTITIESREENTRANT"
 >xmlEncodeEntitiesReentrant</A
 >      (<A
@@ -299,8 +299,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *input);
 <A
 HREF="gnome-xml-entities.html#XMLENTITIESTABLEPTR"
@@ -344,7 +344,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4176"
+NAME="AEN4182"
 ></A
 ><H2
 >Description</H2
@@ -354,14 +354,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4179"
+NAME="AEN4185"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4181"
+NAME="AEN4187"
 ></A
 ><H3
 ><A
@@ -387,7 +387,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4186"
+NAME="AEN4192"
 ></A
 ><H3
 ><A
@@ -413,7 +413,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4191"
+NAME="AEN4197"
 ></A
 ><H3
 ><A
@@ -439,7 +439,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4196"
+NAME="AEN4202"
 ></A
 ><H3
 ><A
@@ -465,7 +465,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4201"
+NAME="AEN4207"
 ></A
 ><H3
 ><A
@@ -491,7 +491,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4206"
+NAME="AEN4212"
 ></A
 ><H3
 ><A
@@ -517,7 +517,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4211"
+NAME="AEN4217"
 ></A
 ><H3
 ><A
@@ -530,7 +530,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4215"
+NAME="AEN4221"
 ></A
 ><H3
 ><A
@@ -556,7 +556,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4220"
+NAME="AEN4226"
 ></A
 ><H3
 ><A
@@ -569,7 +569,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4224"
+NAME="AEN4230"
 ></A
 ><H3
 ><A
@@ -590,21 +590,21 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -734,7 +734,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4264"
+NAME="AEN4270"
 ></A
 ><H3
 ><A
@@ -755,21 +755,21 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -899,7 +899,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4304"
+NAME="AEN4310"
 ></A
 ><H3
 ><A
@@ -919,8 +919,8 @@
 HREF="gnome-xml-entities.html#XMLENTITYPTR"
 >xmlEntityPtr</A
 > xmlGetPredefinedEntity         (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -980,7 +980,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4325"
+NAME="AEN4331"
 ></A
 ><H3
 ><A
@@ -1004,8 +1004,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -1084,7 +1084,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4351"
+NAME="AEN4357"
 ></A
 ><H3
 ><A
@@ -1108,8 +1108,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -1187,7 +1187,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4377"
+NAME="AEN4383"
 ></A
 ><H3
 ><A
@@ -1211,8 +1211,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -1290,7 +1290,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4403"
+NAME="AEN4409"
 ></A
 ><H3
 ><A
@@ -1307,15 +1307,15 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 >const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->* xmlEncodeEntities               (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>* xmlEncodeEntities            (<A
 HREF="gnome-xml-tree.html#XMLDOCPTR"
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *input);</PRE
 ></TD
 ></TR
@@ -1399,7 +1399,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4431"
+NAME="AEN4437"
 ></A
 ><H3
 ><A
@@ -1416,15 +1416,15 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlEncodeEntitiesReentrant      (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlEncodeEntitiesReentrant      (<A
 HREF="gnome-xml-tree.html#XMLDOCPTR"
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *input);</PRE
 ></TD
 ></TR
@@ -1507,7 +1507,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4458"
+NAME="AEN4464"
 ></A
 ><H3
 ><A
@@ -1568,7 +1568,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4474"
+NAME="AEN4480"
 ></A
 ><H3
 ><A
@@ -1649,7 +1649,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4495"
+NAME="AEN4501"
 ></A
 ><H3
 ><A
@@ -1712,7 +1712,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4511"
+NAME="AEN4517"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-htmlparser.html b/doc/html/gnome-xml-htmlparser.html
index 297b93c..c49aa23 100644
--- a/doc/html/gnome-xml-htmlparser.html
+++ b/doc/html/gnome-xml-htmlparser.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6149"
+NAME="AEN6155"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6152"
+NAME="AEN6158"
 ></A
 ><H2
 >Synopsis</H2
@@ -181,8 +181,8 @@
 HREF="gnome-xml-htmlparser.html#HTMLTAGLOOKUP"
 >htmlTagLookup</A
 >               (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *tag);
 <GTKDOCLINK
 HREF="HTMLENTITYDESCPTR"
@@ -191,8 +191,8 @@
 HREF="gnome-xml-htmlparser.html#HTMLENTITYLOOKUP"
 >htmlEntityLookup</A
 >          (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <GTKDOCLINK
 HREF="HTMLENTITYDESCPTR"
@@ -205,8 +205,8 @@
 >htmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **str);
 int         <A
 HREF="gnome-xml-htmlparser.html#HTMLPARSECHARREF"
@@ -229,8 +229,8 @@
 HREF="gnome-xml-htmlparser.html#HTMLSAXPARSEDOC"
 >htmlSAXParseDoc</A
 >                 (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              const char *encoding,
                                              <A
@@ -245,8 +245,8 @@
 HREF="gnome-xml-htmlparser.html#HTMLPARSEDOC"
 >htmlParseDoc</A
 >                    (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              const char *encoding);
 <A
@@ -277,7 +277,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6190"
+NAME="AEN6196"
 ></A
 ><H2
 >Description</H2
@@ -287,14 +287,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6193"
+NAME="AEN6199"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6195"
+NAME="AEN6201"
 ></A
 ><H3
 ><A
@@ -307,7 +307,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6199"
+NAME="AEN6205"
 ></A
 ><H3
 ><A
@@ -320,7 +320,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6203"
+NAME="AEN6209"
 ></A
 ><H3
 ><A
@@ -333,7 +333,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6207"
+NAME="AEN6213"
 ></A
 ><H3
 ><A
@@ -346,7 +346,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6211"
+NAME="AEN6217"
 ></A
 ><H3
 ><A
@@ -359,7 +359,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6215"
+NAME="AEN6221"
 ></A
 ><H3
 ><A
@@ -372,7 +372,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6219"
+NAME="AEN6225"
 ></A
 ><H3
 ><A
@@ -385,7 +385,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6223"
+NAME="AEN6229"
 ></A
 ><H3
 ><A
@@ -398,7 +398,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6227"
+NAME="AEN6233"
 ></A
 ><H3
 ><A
@@ -411,7 +411,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6231"
+NAME="AEN6237"
 ></A
 ><H3
 ><A
@@ -431,8 +431,8 @@
 HREF="HTMLELEMDESCPTR"
 >htmlElemDescPtr</GTKDOCLINK
 > htmlTagLookup               (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *tag);</PRE
 ></TD
 ></TR
@@ -492,7 +492,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6252"
+NAME="AEN6258"
 ></A
 ><H3
 ><A
@@ -512,8 +512,8 @@
 HREF="HTMLENTITYDESCPTR"
 >htmlEntityDescPtr</GTKDOCLINK
 > htmlEntityLookup          (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -575,7 +575,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6274"
+NAME="AEN6280"
 ></A
 ><H3
 ><A
@@ -599,8 +599,8 @@
 >htmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **str);</PRE
 ></TD
 ></TR
@@ -679,7 +679,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6301"
+NAME="AEN6307"
 ></A
 ><H3
 ><A
@@ -763,7 +763,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6323"
+NAME="AEN6329"
 ></A
 ><H3
 ><A
@@ -830,7 +830,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6341"
+NAME="AEN6347"
 ></A
 ><H3
 ><A
@@ -850,8 +850,8 @@
 HREF="gnome-xml-htmlparser.html#HTMLDOCPTR"
 >htmlDocPtr</A
 >  htmlSAXParseDoc                 (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              const char *encoding,
                                              <A
@@ -970,7 +970,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6375"
+NAME="AEN6381"
 ></A
 ><H3
 ><A
@@ -990,8 +990,8 @@
 HREF="gnome-xml-htmlparser.html#HTMLDOCPTR"
 >htmlDocPtr</A
 >  htmlParseDoc                    (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              const char *encoding);</PRE
 ></TD
@@ -1069,7 +1069,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6400"
+NAME="AEN6406"
 ></A
 ><H3
 ><A
@@ -1207,7 +1207,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6433"
+NAME="AEN6439"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-htmltree.html b/doc/html/gnome-xml-htmltree.html
index efbe62a..d43b815 100644
--- a/doc/html/gnome-xml-htmltree.html
+++ b/doc/html/gnome-xml-htmltree.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6462"
+NAME="AEN6468"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6465"
+NAME="AEN6471"
 ></A
 ><H2
 >Synopsis</H2
@@ -158,8 +158,8 @@
 >xmlDocPtr</A
 > cur,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **mem,
                                              int *size);
 void        <A
@@ -188,7 +188,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6479"
+NAME="AEN6485"
 ></A
 ><H2
 >Description</H2
@@ -198,14 +198,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6482"
+NAME="AEN6488"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6484"
+NAME="AEN6490"
 ></A
 ><H3
 ><A
@@ -231,7 +231,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6489"
+NAME="AEN6495"
 ></A
 ><H3
 ><A
@@ -257,7 +257,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6494"
+NAME="AEN6500"
 ></A
 ><H3
 ><A
@@ -283,7 +283,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6499"
+NAME="AEN6505"
 ></A
 ><H3
 ><A
@@ -304,15 +304,15 @@
 >xmlDocPtr</A
 > cur,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **mem,
                                              int *size);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->Dump an HTML document in memory and return the CHAR * and it's size.
+>Dump an HTML document in memory and return the xmlChar * and it's size.
 It's up to the caller to free the memory.</P
 ><P
 ></P
@@ -386,7 +386,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6524"
+NAME="AEN6530"
 ></A
 ><H3
 ><A
@@ -470,7 +470,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6545"
+NAME="AEN6551"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-parser.html b/doc/html/gnome-xml-parser.html
index 8e85050..104bab1 100644
--- a/doc/html/gnome-xml-parser.html
+++ b/doc/html/gnome-xml-parser.html
@@ -146,8 +146,8 @@
 HREF="gnome-xml-parser.html#XMLPARSERINPUTDEALLOCATE"
 >*xmlParserInputDeallocate</A
 >)     (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 >*);
 typedef     <A
 HREF="gnome-xml-parser.html#XMLPARSERINPUTPTR"
@@ -206,28 +206,28 @@
 >*resolveEntitySAXFunc</A
 >)   (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *publicId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *systemId);
 void        (<A
 HREF="gnome-xml-parser.html#INTERNALSUBSETSAXFUNC"
 >*internalSubsetSAXFunc</A
 >)        (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);
 <A
 HREF="gnome-xml-entities.html#XMLENTITYPTR"
@@ -237,8 +237,8 @@
 >*getEntitySAXFunc</A
 >)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-entities.html#XMLENTITYPTR"
@@ -248,63 +248,63 @@
 >*getParameterEntitySAXFunc</A
 >)   (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 void        (<A
 HREF="gnome-xml-parser.html#ENTITYDECLSAXFUNC"
 >*entityDeclSAXFunc</A
 >)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *publicId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *systemId,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 void        (<A
 HREF="gnome-xml-parser.html#NOTATIONDECLSAXFUNC"
 >*notationDeclSAXFunc</A
 >)          (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *publicId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *systemId);
 void        (<A
 HREF="gnome-xml-parser.html#ATTRIBUTEDECLSAXFUNC"
 >*attributeDeclSAXFunc</A
 >)         (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *elem,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              int def,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *defaultValue,
                                              <A
 HREF="gnome-xml-tree.html#XMLENUMERATIONPTR"
@@ -315,8 +315,8 @@
 >*elementDeclSAXFunc</A
 >)           (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              <A
@@ -328,20 +328,20 @@
 >*unparsedEntityDeclSAXFunc</A
 >)    (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *publicId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *systemId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *notationName);
 void        (<A
 HREF="gnome-xml-parser.html#SETDOCUMENTLOCATORSAXFUNC"
@@ -364,48 +364,48 @@
 >*startElementSAXFunc</A
 >)          (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **atts);
 void        (<A
 HREF="gnome-xml-parser.html#ENDELEMENTSAXFUNC"
 >*endElementSAXFunc</A
 >)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 void        (<A
 HREF="gnome-xml-parser.html#ATTRIBUTESAXFUNC"
 >*attributeSAXFunc</A
 >)             (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 void        (<A
 HREF="gnome-xml-parser.html#REFERENCESAXFUNC"
 >*referenceSAXFunc</A
 >)             (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 void        (<A
 HREF="gnome-xml-parser.html#CHARACTERSSAXFUNC"
 >*charactersSAXFunc</A
 >)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ch,
                                              int len);
 void        (<A
@@ -413,8 +413,8 @@
 >*ignorableWhitespaceSAXFunc</A
 >)   (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ch,
                                              int len);
 void        (<A
@@ -422,28 +422,28 @@
 >*processingInstructionSAXFunc</A
 >) (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *target,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *data);
 void        (<A
 HREF="gnome-xml-parser.html#COMMENTSAXFUNC"
 >*commentSAXFunc</A
 >)               (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 void        (<A
 HREF="gnome-xml-parser.html#CDATABLOCKSAXFUNC"
 >*cdataBlockSAXFunc</A
 >)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value,
                                              int len);
 void        (<A
@@ -517,123 +517,123 @@
 > in,
                                              int len);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parser.html#XMLSTRDUP"
 >xmlStrdup</A
 >                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parser.html#XMLSTRNDUP"
 >xmlStrndup</A
 >                      (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              int len);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parser.html#XMLSTRSUB"
 >xmlStrsub</A
 >                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              int start,
                                              int len);
 const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 >* <A
 HREF="gnome-xml-parser.html#XMLSTRCHR"
 >xmlStrchr</A
->                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+>                    (const <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > val);
 const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 >* <A
 HREF="gnome-xml-parser.html#XMLSTRSTR"
 >xmlStrstr</A
->                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+>                    (const <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *val);
 int         <A
 HREF="gnome-xml-parser.html#XMLSTRCMP"
 >xmlStrcmp</A
 >                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str1,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str2);
 int         <A
 HREF="gnome-xml-parser.html#XMLSTRNCMP"
 >xmlStrncmp</A
 >                      (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str1,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str2,
                                              int len);
 int         <A
 HREF="gnome-xml-parser.html#XMLSTRLEN"
 >xmlStrlen</A
 >                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parser.html#XMLSTRCAT"
 >xmlStrcat</A
 >                       (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *add);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parser.html#XMLSTRNCAT"
 >xmlStrncat</A
 >                      (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *add,
                                              int len);
 <A
@@ -643,8 +643,8 @@
 HREF="gnome-xml-parser.html#XMLPARSEDOC"
 >xmlParseDoc</A
 >                     (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur);
 <A
 HREF="gnome-xml-tree.html#XMLDOCPTR"
@@ -672,8 +672,8 @@
 HREF="gnome-xml-parser.html#XMLRECOVERDOC"
 >xmlRecoverDoc</A
 >                   (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur);
 <A
 HREF="gnome-xml-tree.html#XMLDOCPTR"
@@ -708,8 +708,8 @@
 >xmlSAXHandlerPtr</A
 > sax,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              int recovery);
 <A
@@ -744,12 +744,12 @@
 HREF="gnome-xml-parser.html#XMLPARSEDTD"
 >xmlParseDTD</A
 >                     (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);
 <A
 HREF="gnome-xml-tree.html#XMLDTDPTR"
@@ -762,12 +762,12 @@
 >xmlSAXHandlerPtr</A
 > sax,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);
 void        <A
 HREF="gnome-xml-parser.html#XMLINITPARSERCTXT"
@@ -791,8 +791,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *buffer,
                                              const char *filename);
 void        <A
@@ -951,8 +951,8 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 >void        (*xmlParserInputDeallocate)     (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 >*);</PRE
 ></TD
 ></TR
@@ -1273,12 +1273,12 @@
 >xmlParserInputPtr</A
 > (*resolveEntitySAXFunc)   (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *publicId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *systemId);</PRE
 ></TD
 ></TR
@@ -1388,16 +1388,16 @@
 CLASS="PROGRAMLISTING"
 >void        (*internalSubsetSAXFunc)        (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);</PRE
 ></TD
 ></TR
@@ -1512,8 +1512,8 @@
 >xmlEntityPtr</A
 > (*getEntitySAXFunc)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -1609,8 +1609,8 @@
 >xmlEntityPtr</A
 > (*getParameterEntitySAXFunc)   (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -1703,21 +1703,21 @@
 CLASS="PROGRAMLISTING"
 >void        (*entityDeclSAXFunc)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *publicId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *systemId,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -1863,16 +1863,16 @@
 CLASS="PROGRAMLISTING"
 >void        (*notationDeclSAXFunc)          (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *publicId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *systemId);</PRE
 ></TD
 ></TR
@@ -1984,18 +1984,18 @@
 CLASS="PROGRAMLISTING"
 >void        (*attributeDeclSAXFunc)         (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *elem,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              int def,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *defaultValue,
                                              <A
 HREF="gnome-xml-tree.html#XMLENUMERATIONPTR"
@@ -2162,8 +2162,8 @@
 CLASS="PROGRAMLISTING"
 >void        (*elementDeclSAXFunc)           (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              int type,
                                              <A
@@ -2280,20 +2280,20 @@
 CLASS="PROGRAMLISTING"
 >void        (*unparsedEntityDeclSAXFunc)    (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *publicId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *systemId,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *notationName);</PRE
 ></TD
 ></TR
@@ -2617,12 +2617,12 @@
 CLASS="PROGRAMLISTING"
 >void        (*startElementSAXFunc)          (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **atts);</PRE
 ></TD
 ></TR
@@ -2717,8 +2717,8 @@
 CLASS="PROGRAMLISTING"
 >void        (*endElementSAXFunc)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -2796,12 +2796,12 @@
 CLASS="PROGRAMLISTING"
 >void        (*attributeSAXFunc)             (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -2896,8 +2896,8 @@
 CLASS="PROGRAMLISTING"
 >void        (*referenceSAXFunc)             (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -2975,8 +2975,8 @@
 CLASS="PROGRAMLISTING"
 >void        (*charactersSAXFunc)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ch,
                                              int len);</PRE
 ></TD
@@ -3072,8 +3072,8 @@
 CLASS="PROGRAMLISTING"
 >void        (*ignorableWhitespaceSAXFunc)   (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ch,
                                              int len);</PRE
 ></TD
@@ -3169,12 +3169,12 @@
 CLASS="PROGRAMLISTING"
 >void        (*processingInstructionSAXFunc) (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *target,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *data);</PRE
 ></TD
 ></TR
@@ -3269,8 +3269,8 @@
 CLASS="PROGRAMLISTING"
 >void        (*commentSAXFunc)               (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -3348,8 +3348,8 @@
 CLASS="PROGRAMLISTING"
 >void        (*cdataBlockSAXFunc)            (void *ctx,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value,
                                              int len);</PRE
 ></TD
@@ -4282,17 +4282,17 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlStrdup                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlStrdup                       (const <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->a strdup for array of CHAR's</P
+>a strdup for array of xmlChar's</P
 ><P
 ></P
 ><DIV
@@ -4363,18 +4363,18 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlStrndup                      (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlStrndup                      (const <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              int len);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->a strndup for array of CHAR's</P
+>a strndup for array of xmlChar's</P
 ><P
 ></P
 ><DIV
@@ -4462,11 +4462,11 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlStrsub                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlStrsub                       (const <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              int start,
                                              int len);</PRE
@@ -4579,21 +4579,21 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 >const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->* xmlStrchr                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>* xmlStrchr                    (const <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > val);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->a strchr for CHAR's</P
+>a strchr for xmlChar's</P
 ><P
 ></P
 ><DIV
@@ -4681,21 +4681,21 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 >const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->* xmlStrstr                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>* xmlStrstr                    (const <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *val);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->a strstr for CHAR's</P
+>a strstr for xmlChar's</P
 ><P
 ></P
 ><DIV
@@ -4783,18 +4783,18 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 >int         xmlStrcmp                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str1,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str2);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->a strcmp for CHAR's</P
+>a strcmp for xmlChar's</P
 ><P
 ></P
 ><DIV
@@ -4882,19 +4882,19 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 >int         xmlStrncmp                      (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str1,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str2,
                                              int len);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->a strncmp for CHAR's</P
+>a strncmp for xmlChar's</P
 ><P
 ></P
 ><DIV
@@ -4999,14 +4999,14 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 >int         xmlStrlen                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->lenght of a CHAR's string</P
+>lenght of a xmlChar's string</P
 ><P
 ></P
 ><DIV
@@ -5077,21 +5077,21 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlStrcat                       (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlStrcat                       (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *add);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->a strcat for array of CHAR's</P
+>a strcat for array of xmlChar's</P
 ><P
 ></P
 ><DIV
@@ -5179,22 +5179,22 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlStrncat                      (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlStrncat                      (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *add,
                                              int len);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->a strncat for array of CHAR's</P
+>a strncat for array of xmlChar's</P
 ><P
 ></P
 ><DIV
@@ -5302,8 +5302,8 @@
 HREF="gnome-xml-tree.html#XMLDOCPTR"
 >xmlDocPtr</A
 >   xmlParseDoc                     (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur);</PRE
 ></TD
 ></TR
@@ -5641,8 +5641,8 @@
 HREF="gnome-xml-tree.html#XMLDOCPTR"
 >xmlDocPtr</A
 >   xmlRecoverDoc                   (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur);</PRE
 ></TD
 ></TR
@@ -5987,8 +5987,8 @@
 >xmlSAXHandlerPtr</A
 > sax,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur,
                                              int recovery);</PRE
 ></TD
@@ -6362,12 +6362,12 @@
 HREF="gnome-xml-tree.html#XMLDTDPTR"
 >xmlDtdPtr</A
 >   xmlParseDTD                     (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);</PRE
 ></TD
 ></TR
@@ -6468,12 +6468,12 @@
 >xmlSAXHandlerPtr</A
 > sax,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);</PRE
 ></TD
 ></TR
@@ -6714,8 +6714,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *buffer,
                                              const char *filename);</PRE
 ></TD
diff --git a/doc/html/gnome-xml-parserinternals.html b/doc/html/gnome-xml-parserinternals.html
index 80e2036..366e639 100644
--- a/doc/html/gnome-xml-parserinternals.html
+++ b/doc/html/gnome-xml-parserinternals.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6842"
+NAME="AEN6848"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6845"
+NAME="AEN6851"
 ></A
 ><H2
 >Synopsis</H2
@@ -209,8 +209,8 @@
 HREF="gnome-xml-parserinternals.html#XMLCREATEDOCPARSERCTXT"
 >xmlCreateDocParserCtxt</A
 >     (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur);
 <A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
@@ -289,9 +289,9 @@
 >xmlParserInputPtr</A
 > input);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->        <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>     <A
 HREF="gnome-xml-parserinternals.html#XMLPOPINPUT"
 >xmlPopInput</A
 >                     (<A
@@ -317,23 +317,23 @@
 > ctxt,
                                              const char *filename);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLSPLITQNAME"
 >xmlSplitQName</A
 >                   (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **prefix);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLNAMESPACEPARSENCNAME"
 >xmlNamespaceParseNCName</A
 >         (<A
@@ -341,9 +341,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLNAMESPACEPARSEQNAME"
 >xmlNamespaceParseQName</A
 >          (<A
@@ -351,13 +351,13 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **prefix);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLNAMESPACEPARSENSDEF"
 >xmlNamespaceParseNSDef</A
 >          (<A
@@ -365,9 +365,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEQUOTEDSTRING"
 >xmlParseQuotedString</A
 >            (<A
@@ -382,9 +382,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLSCANNAME"
 >xmlScanName</A
 >                     (<A
@@ -392,9 +392,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSENAME"
 >xmlParseName</A
 >                    (<A
@@ -402,9 +402,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSENMTOKEN"
 >xmlParseNmtoken</A
 >                 (<A
@@ -412,9 +412,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEENTITYVALUE"
 >xmlParseEntityValue</A
 >             (<A
@@ -422,13 +422,13 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **orig);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEATTVALUE"
 >xmlParseAttValue</A
 >                (<A
@@ -436,9 +436,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSESYSTEMLITERAL"
 >xmlParseSystemLiteral</A
 >           (<A
@@ -446,9 +446,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEPUBIDLITERAL"
 >xmlParsePubidLiteral</A
 >            (<A
@@ -464,9 +464,9 @@
 > ctxt,
                                              int cdata);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEEXTERNALID"
 >xmlParseExternalID</A
 >              (<A
@@ -474,8 +474,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **publicID,
                                              int strict);
 void        <A
@@ -486,9 +486,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEPITARGET"
 >xmlParsePITarget</A
 >                (<A
@@ -524,8 +524,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **value);
 <A
 HREF="gnome-xml-tree.html#XMLENUMERATIONPTR"
@@ -606,8 +606,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
 HREF="gnome-xml-tree.html#XMLELEMENTCONTENTPTR"
@@ -666,9 +666,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEATTRIBUTE"
 >xmlParseAttribute</A
 >               (<A
@@ -676,13 +676,13 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **value);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSESTARTTAG"
 >xmlParseStartTag</A
 >                (<A
@@ -697,8 +697,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *tagname);
 void        <A
 HREF="gnome-xml-parserinternals.html#XMLPARSECDSECT"
@@ -722,9 +722,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEVERSIONNUM"
 >xmlParseVersionNum</A
 >              (<A
@@ -732,9 +732,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEVERSIONINFO"
 >xmlParseVersionInfo</A
 >             (<A
@@ -742,9 +742,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEENCNAME"
 >xmlParseEncName</A
 >                 (<A
@@ -752,9 +752,9 @@
 >xmlParserCtxtPtr</A
 > ctxt);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLPARSEENCODINGDECL"
 >xmlParseEncodingDecl</A
 >            (<A
@@ -790,12 +790,12 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);
 #define     <A
 HREF="gnome-xml-parserinternals.html#XML-SUBSTITUTE-NONE"
@@ -814,9 +814,9 @@
 >XML_SUBSTITUTE_BOTH</A
 >
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-parserinternals.html#XMLDECODEENTITIES"
 >xmlDecodeEntities</A
 >               (<A
@@ -826,16 +826,16 @@
                                              int len,
                                              int what,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > end,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > end2,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > end3);
 int         <A
 HREF="gnome-xml-parserinternals.html#NODEPUSH"
@@ -886,7 +886,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7056"
+NAME="AEN7062"
 ></A
 ><H2
 >Description</H2
@@ -896,14 +896,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN7059"
+NAME="AEN7065"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7061"
+NAME="AEN7067"
 ></A
 ><H3
 ><A
@@ -929,7 +929,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7066"
+NAME="AEN7072"
 ></A
 ><H3
 ><A
@@ -942,7 +942,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7070"
+NAME="AEN7076"
 ></A
 ><H3
 ><A
@@ -1000,7 +1000,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7084"
+NAME="AEN7090"
 ></A
 ><H3
 ><A
@@ -1058,7 +1058,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7098"
+NAME="AEN7104"
 ></A
 ><H3
 ><A
@@ -1116,7 +1116,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7112"
+NAME="AEN7118"
 ></A
 ><H3
 ><A
@@ -1174,7 +1174,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7126"
+NAME="AEN7132"
 ></A
 ><H3
 ><A
@@ -1232,7 +1232,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7140"
+NAME="AEN7146"
 ></A
 ><H3
 ><A
@@ -1290,7 +1290,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7154"
+NAME="AEN7160"
 ></A
 ><H3
 ><A
@@ -1348,7 +1348,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7168"
+NAME="AEN7174"
 ></A
 ><H3
 ><A
@@ -1406,7 +1406,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7182"
+NAME="AEN7188"
 ></A
 ><H3
 ><A
@@ -1464,7 +1464,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7196"
+NAME="AEN7202"
 ></A
 ><H3
 ><A
@@ -1522,7 +1522,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7210"
+NAME="AEN7216"
 ></A
 ><H3
 ><A
@@ -1580,7 +1580,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7224"
+NAME="AEN7230"
 ></A
 ><H3
 ><A
@@ -1638,7 +1638,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7238"
+NAME="AEN7244"
 ></A
 ><H3
 ><A
@@ -1696,7 +1696,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7252"
+NAME="AEN7258"
 ></A
 ><H3
 ><A
@@ -1754,7 +1754,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7266"
+NAME="AEN7272"
 ></A
 ><H3
 ><A
@@ -1774,8 +1774,8 @@
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > xmlCreateDocParserCtxt     (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *cur);</PRE
 ></TD
 ></TR
@@ -1835,7 +1835,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7287"
+NAME="AEN7293"
 ></A
 ><H3
 ><A
@@ -1915,7 +1915,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7307"
+NAME="AEN7313"
 ></A
 ><H3
 ><A
@@ -2011,7 +2011,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7331"
+NAME="AEN7337"
 ></A
 ><H3
 ><A
@@ -2075,7 +2075,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7347"
+NAME="AEN7353"
 ></A
 ><H3
 ><A
@@ -2136,7 +2136,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7363"
+NAME="AEN7369"
 ></A
 ><H3
 ><A
@@ -2221,7 +2221,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7384"
+NAME="AEN7390"
 ></A
 ><H3
 ><A
@@ -2308,7 +2308,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7406"
+NAME="AEN7412"
 ></A
 ><H3
 ><A
@@ -2410,7 +2410,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7432"
+NAME="AEN7438"
 ></A
 ><H3
 ><A
@@ -2495,7 +2495,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7453"
+NAME="AEN7459"
 ></A
 ><H3
 ><A
@@ -2512,9 +2512,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->        xmlPopInput                     (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>     xmlPopInput                     (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -2577,7 +2577,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7474"
+NAME="AEN7480"
 ></A
 ><H3
 ><A
@@ -2640,7 +2640,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7490"
+NAME="AEN7496"
 ></A
 ><H3
 ><A
@@ -2739,7 +2739,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7515"
+NAME="AEN7521"
 ></A
 ><H3
 ><A
@@ -2756,15 +2756,15 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlSplitQName                   (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlSplitQName                   (const <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **prefix);</PRE
 ></TD
 ></TR
@@ -2847,7 +2847,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7544"
+NAME="AEN7550"
 ></A
 ><H3
 ><A
@@ -2864,9 +2864,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlNamespaceParseNCName         (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlNamespaceParseNCName         (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -2933,7 +2933,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7567"
+NAME="AEN7573"
 ></A
 ><H3
 ><A
@@ -2950,15 +2950,15 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlNamespaceParseQName          (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlNamespaceParseQName          (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **prefix);</PRE
 ></TD
 ></TR
@@ -3041,7 +3041,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7596"
+NAME="AEN7602"
 ></A
 ><H3
 ><A
@@ -3058,9 +3058,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlNamespaceParseNSDef          (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlNamespaceParseNSDef          (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -3126,7 +3126,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7619"
+NAME="AEN7625"
 ></A
 ><H3
 ><A
@@ -3143,9 +3143,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseQuotedString            (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseQuotedString            (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -3208,7 +3208,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7640"
+NAME="AEN7646"
 ></A
 ><H3
 ><A
@@ -3277,7 +3277,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7658"
+NAME="AEN7664"
 ></A
 ><H3
 ><A
@@ -3294,9 +3294,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlScanName                     (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlScanName                     (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -3366,7 +3366,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7682"
+NAME="AEN7688"
 ></A
 ><H3
 ><A
@@ -3383,9 +3383,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseName                    (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseName                    (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -3454,7 +3454,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7706"
+NAME="AEN7712"
 ></A
 ><H3
 ><A
@@ -3471,9 +3471,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseNmtoken                 (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseNmtoken                 (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -3539,7 +3539,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7729"
+NAME="AEN7735"
 ></A
 ><H3
 ><A
@@ -3556,15 +3556,15 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseEntityValue             (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseEntityValue             (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **orig);</PRE
 ></TD
 ></TR
@@ -3644,7 +3644,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7756"
+NAME="AEN7762"
 ></A
 ><H3
 ><A
@@ -3661,9 +3661,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseAttValue                (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseAttValue                (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -3730,7 +3730,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7778"
+NAME="AEN7784"
 ></A
 ><H3
 ><A
@@ -3747,9 +3747,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseSystemLiteral           (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseSystemLiteral           (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -3813,7 +3813,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7800"
+NAME="AEN7806"
 ></A
 ><H3
 ><A
@@ -3830,9 +3830,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParsePubidLiteral            (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParsePubidLiteral            (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -3896,7 +3896,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7822"
+NAME="AEN7828"
 ></A
 ><H3
 ><A
@@ -3980,7 +3980,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7843"
+NAME="AEN7849"
 ></A
 ><H3
 ><A
@@ -3997,15 +3997,15 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseExternalID              (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseExternalID              (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **publicID,
                                              int strict);</PRE
 ></TD
@@ -4108,7 +4108,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7876"
+NAME="AEN7882"
 ></A
 ><H3
 ><A
@@ -4175,7 +4175,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7893"
+NAME="AEN7899"
 ></A
 ><H3
 ><A
@@ -4192,9 +4192,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParsePITarget                (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParsePITarget                (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -4258,7 +4258,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7915"
+NAME="AEN7921"
 ></A
 ><H3
 ><A
@@ -4325,7 +4325,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7933"
+NAME="AEN7939"
 ></A
 ><H3
 ><A
@@ -4400,7 +4400,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7953"
+NAME="AEN7959"
 ></A
 ><H3
 ><A
@@ -4478,7 +4478,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN7976"
+NAME="AEN7982"
 ></A
 ><H3
 ><A
@@ -4499,8 +4499,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **value);</PRE
 ></TD
 ></TR
@@ -4616,7 +4616,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8013"
+NAME="AEN8019"
 ></A
 ><H3
 ><A
@@ -4705,7 +4705,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8037"
+NAME="AEN8043"
 ></A
 ><H3
 ><A
@@ -4792,7 +4792,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8060"
+NAME="AEN8066"
 ></A
 ><H3
 ><A
@@ -4895,7 +4895,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8087"
+NAME="AEN8093"
 ></A
 ><H3
 ><A
@@ -5039,7 +5039,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8125"
+NAME="AEN8131"
 ></A
 ><H3
 ><A
@@ -5106,7 +5106,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8143"
+NAME="AEN8149"
 ></A
 ><H3
 ><A
@@ -5204,7 +5204,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8169"
+NAME="AEN8175"
 ></A
 ><H3
 ><A
@@ -5306,7 +5306,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8195"
+NAME="AEN8201"
 ></A
 ><H3
 ><A
@@ -5327,8 +5327,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
 HREF="gnome-xml-tree.html#XMLELEMENTCONTENTPTR"
@@ -5429,7 +5429,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8226"
+NAME="AEN8232"
 ></A
 ><H3
 ><A
@@ -5512,7 +5512,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8248"
+NAME="AEN8254"
 ></A
 ><H3
 ><A
@@ -5591,7 +5591,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8267"
+NAME="AEN8273"
 ></A
 ><H3
 ><A
@@ -5679,7 +5679,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8290"
+NAME="AEN8296"
 ></A
 ><H3
 ><A
@@ -5780,7 +5780,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8314"
+NAME="AEN8320"
 ></A
 ><H3
 ><A
@@ -5854,7 +5854,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8333"
+NAME="AEN8339"
 ></A
 ><H3
 ><A
@@ -5940,7 +5940,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8354"
+NAME="AEN8360"
 ></A
 ><H3
 ><A
@@ -6010,7 +6010,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8372"
+NAME="AEN8378"
 ></A
 ><H3
 ><A
@@ -6027,15 +6027,15 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseAttribute               (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseAttribute               (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **value);</PRE
 ></TD
 ></TR
@@ -6135,7 +6135,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8406"
+NAME="AEN8412"
 ></A
 ><H3
 ><A
@@ -6152,9 +6152,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseStartTag                (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseStartTag                (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -6235,7 +6235,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8434"
+NAME="AEN8440"
 ></A
 ><H3
 ><A
@@ -6256,8 +6256,8 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *tagname);</PRE
 ></TD
 ></TR
@@ -6325,7 +6325,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8458"
+NAME="AEN8464"
 ></A
 ><H3
 ><A
@@ -6396,7 +6396,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8478"
+NAME="AEN8484"
 ></A
 ><H3
 ><A
@@ -6461,7 +6461,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8495"
+NAME="AEN8501"
 ></A
 ><H3
 ><A
@@ -6543,7 +6543,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8514"
+NAME="AEN8520"
 ></A
 ><H3
 ><A
@@ -6560,9 +6560,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseVersionNum              (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseVersionNum              (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -6626,7 +6626,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8536"
+NAME="AEN8542"
 ></A
 ><H3
 ><A
@@ -6643,9 +6643,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseVersionInfo             (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseVersionInfo             (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -6711,7 +6711,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8559"
+NAME="AEN8565"
 ></A
 ><H3
 ><A
@@ -6728,9 +6728,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseEncName                 (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseEncName                 (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -6794,7 +6794,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8581"
+NAME="AEN8587"
 ></A
 ><H3
 ><A
@@ -6811,9 +6811,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlParseEncodingDecl            (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlParseEncodingDecl            (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt);</PRE
@@ -6879,7 +6879,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8604"
+NAME="AEN8610"
 ></A
 ><H3
 ><A
@@ -6974,7 +6974,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8626"
+NAME="AEN8632"
 ></A
 ><H3
 ><A
@@ -7039,7 +7039,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8643"
+NAME="AEN8649"
 ></A
 ><H3
 ><A
@@ -7104,7 +7104,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8660"
+NAME="AEN8666"
 ></A
 ><H3
 ><A
@@ -7125,12 +7125,12 @@
 >xmlParserCtxtPtr</A
 > ctxt,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);</PRE
 ></TD
 ></TR
@@ -7213,7 +7213,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8688"
+NAME="AEN8694"
 ></A
 ><H3
 ><A
@@ -7239,7 +7239,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8693"
+NAME="AEN8699"
 ></A
 ><H3
 ><A
@@ -7265,7 +7265,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8698"
+NAME="AEN8704"
 ></A
 ><H3
 ><A
@@ -7291,7 +7291,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8703"
+NAME="AEN8709"
 ></A
 ><H3
 ><A
@@ -7317,7 +7317,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8708"
+NAME="AEN8714"
 ></A
 ><H3
 ><A
@@ -7334,25 +7334,25 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlDecodeEntities               (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlDecodeEntities               (<A
 HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
 >xmlParserCtxtPtr</A
 > ctxt,
                                              int len,
                                              int what,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > end,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > end2,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > end3);</PRE
 ></TD
 ></TR
@@ -7499,7 +7499,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8753"
+NAME="AEN8759"
 ></A
 ><H3
 ><A
@@ -7596,7 +7596,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8777"
+NAME="AEN8783"
 ></A
 ><H3
 ><A
@@ -7675,7 +7675,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8797"
+NAME="AEN8803"
 ></A
 ><H3
 ><A
@@ -7772,7 +7772,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN8821"
+NAME="AEN8827"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-tree.html b/doc/html/gnome-xml-tree.html
index 3f57e80..52c36f4 100644
--- a/doc/html/gnome-xml-tree.html
+++ b/doc/html/gnome-xml-tree.html
@@ -143,9 +143,13 @@
 >xmlElementType</A
 >;
 typedef     <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>;
+#define     <A
 HREF="gnome-xml-tree.html#CHAR"
 >CHAR</A
->;
+>
 #define     <A
 HREF="gnome-xml-tree.html#BAD-CAST"
 >BAD_CAST</A
@@ -283,8 +287,8 @@
 >xmlBufferPtr</A
 > buf,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              int len);
 void        <A
@@ -295,8 +299,8 @@
 >xmlBufferPtr</A
 > buf,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str);
 void        <A
 HREF="gnome-xml-tree.html#XMLBUFFERCCAT"
@@ -332,16 +336,16 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);
 <A
 HREF="gnome-xml-tree.html#XMLDTDPTR"
@@ -354,16 +358,16 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);
 void        <A
 HREF="gnome-xml-tree.html#XMLFREEDTD"
@@ -383,12 +387,12 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *href,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *prefix);
 <A
 HREF="gnome-xml-tree.html#XMLNSPTR"
@@ -401,12 +405,12 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *href,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *prefix);
 void        <A
 HREF="gnome-xml-tree.html#XMLFREENS"
@@ -422,8 +426,8 @@
 HREF="gnome-xml-tree.html#XMLNEWDOC"
 >xmlNewDoc</A
 >                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *version);
 void        <A
 HREF="gnome-xml-tree.html#XMLFREEDOC"
@@ -443,12 +447,12 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 <A
 HREF="gnome-xml-tree.html#XMLATTRPTR"
@@ -461,12 +465,12 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 <A
 HREF="gnome-xml-tree.html#XMLATTRPTR"
@@ -483,12 +487,12 @@
 >xmlNsPtr</A
 > ns,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 void        <A
 HREF="gnome-xml-tree.html#XMLFREEPROPLIST"
@@ -568,12 +572,12 @@
 >xmlNsPtr</A
 > ns,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -586,8 +590,8 @@
 >xmlNsPtr</A
 > ns,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -604,12 +608,12 @@
 >xmlNsPtr</A
 > ns,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -622,8 +626,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -632,8 +636,8 @@
 HREF="gnome-xml-tree.html#XMLNEWTEXT"
 >xmlNewText</A
 >                      (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -642,12 +646,12 @@
 HREF="gnome-xml-tree.html#XMLNEWPI"
 >xmlNewPI</A
 >                        (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -660,8 +664,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);
 <A
@@ -671,8 +675,8 @@
 HREF="gnome-xml-tree.html#XMLNEWTEXTLEN"
 >xmlNewTextLen</A
 >                   (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);
 <A
@@ -686,8 +690,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -696,8 +700,8 @@
 HREF="gnome-xml-tree.html#XMLNEWCOMMENT"
 >xmlNewComment</A
 >                   (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -710,8 +714,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);
 <A
@@ -725,8 +729,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -823,8 +827,8 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);
 void        <A
@@ -856,8 +860,8 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *nameSpace);
 <A
 HREF="gnome-xml-tree.html#XMLNSPTR"
@@ -874,8 +878,8 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *href);
 <A
 HREF="gnome-xml-tree.html#XMLNSPTR"
@@ -933,17 +937,17 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-tree.html#XMLGETPROP"
 >xmlGetProp</A
 >                      (<A
@@ -951,8 +955,8 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -965,8 +969,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 <A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
@@ -979,14 +983,14 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value,
                                              int len);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-tree.html#XMLNODELISTGETSTRING"
 >xmlNodeListGetString</A
 >            (<A
@@ -1006,8 +1010,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 void        <A
 HREF="gnome-xml-tree.html#XMLNODESETCONTENTLEN"
@@ -1017,8 +1021,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);
 void        <A
@@ -1029,8 +1033,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);
 void        <A
 HREF="gnome-xml-tree.html#XMLNODEADDCONTENTLEN"
@@ -1040,14 +1044,14 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);
 <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       <A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    <A
 HREF="gnome-xml-tree.html#XMLNODEGETCONTENT"
 >xmlNodeGetContent</A
 >               (<A
@@ -1055,12 +1059,12 @@
 >xmlNodePtr</A
 > cur);
 const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 >* <A
 HREF="gnome-xml-tree.html#XMLNODEGETLANG"
 >xmlNodeGetLang</A
->                  (<A
+>               (<A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 > cur);
@@ -1072,8 +1076,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *lang);
 int         <A
 HREF="gnome-xml-tree.html#XMLREMOVEPROP"
@@ -1097,8 +1101,8 @@
 >xmlBufferPtr</A
 > buf,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *string);
 void        <A
 HREF="gnome-xml-tree.html#XMLBUFFERWRITECHAR"
@@ -1116,8 +1120,8 @@
 >xmlBufferPtr</A
 > buf,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *string);
 void        <A
 HREF="gnome-xml-tree.html#XMLDOCDUMPMEMORY"
@@ -1127,8 +1131,8 @@
 >xmlDocPtr</A
 > cur,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **mem,
                                              int *size);
 void        <A
@@ -1180,7 +1184,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN2123"
+NAME="AEN2124"
 ></A
 ><H2
 >Description</H2
@@ -1190,14 +1194,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN2126"
+NAME="AEN2127"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2128"
+NAME="AEN2129"
 ></A
 ><H3
 ><A
@@ -1236,20 +1240,46 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2133"
+NAME="AEN2134"
 ></A
 ><H3
 ><A
-NAME="CHAR"
+NAME="XMLCHAR"
 ></A
->CHAR</H3
+>xmlChar</H3
 ><P
 ></P
 ></DIV
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2137"
+NAME="AEN2138"
+></A
+><H3
+><A
+NAME="CHAR"
+></A
+>CHAR</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define     CHAR</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2143"
 ></A
 ><H3
 ><A
@@ -1275,7 +1305,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2142"
+NAME="AEN2148"
 ></A
 ><H3
 ><A
@@ -1288,7 +1318,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2146"
+NAME="AEN2152"
 ></A
 ><H3
 ><A
@@ -1325,7 +1355,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2151"
+NAME="AEN2157"
 ></A
 ><H3
 ><A
@@ -1356,7 +1386,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2156"
+NAME="AEN2162"
 ></A
 ><H3
 ><A
@@ -1369,7 +1399,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2160"
+NAME="AEN2166"
 ></A
 ><H3
 ><A
@@ -1382,7 +1412,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2164"
+NAME="AEN2170"
 ></A
 ><H3
 ><A
@@ -1413,7 +1443,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2169"
+NAME="AEN2175"
 ></A
 ><H3
 ><A
@@ -1444,7 +1474,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2174"
+NAME="AEN2180"
 ></A
 ><H3
 ><A
@@ -1457,7 +1487,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2178"
+NAME="AEN2184"
 ></A
 ><H3
 ><A
@@ -1488,7 +1518,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2183"
+NAME="AEN2189"
 ></A
 ><H3
 ><A
@@ -1501,7 +1531,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2187"
+NAME="AEN2193"
 ></A
 ><H3
 ><A
@@ -1530,7 +1560,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2192"
+NAME="AEN2198"
 ></A
 ><H3
 ><A
@@ -1543,7 +1573,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2196"
+NAME="AEN2202"
 ></A
 ><H3
 ><A
@@ -1556,7 +1586,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2200"
+NAME="AEN2206"
 ></A
 ><H3
 ><A
@@ -1569,7 +1599,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2204"
+NAME="AEN2210"
 ></A
 ><H3
 ><A
@@ -1582,7 +1612,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2208"
+NAME="AEN2214"
 ></A
 ><H3
 ><A
@@ -1595,7 +1625,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2212"
+NAME="AEN2218"
 ></A
 ><H3
 ><A
@@ -1608,7 +1638,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2216"
+NAME="AEN2222"
 ></A
 ><H3
 ><A
@@ -1621,7 +1651,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2220"
+NAME="AEN2226"
 ></A
 ><H3
 ><A
@@ -1634,7 +1664,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2224"
+NAME="AEN2230"
 ></A
 ><H3
 ><A
@@ -1647,7 +1677,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2228"
+NAME="AEN2234"
 ></A
 ><H3
 ><A
@@ -1660,7 +1690,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2232"
+NAME="AEN2238"
 ></A
 ><H3
 ><A
@@ -1673,7 +1703,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2236"
+NAME="AEN2242"
 ></A
 ><H3
 ><A
@@ -1699,7 +1729,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2241"
+NAME="AEN2247"
 ></A
 ><H3
 ><A
@@ -1725,7 +1755,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2246"
+NAME="AEN2252"
 ></A
 ><H3
 ><A
@@ -1751,7 +1781,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2251"
+NAME="AEN2257"
 ></A
 ><H3
 ><A
@@ -1812,7 +1842,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2267"
+NAME="AEN2273"
 ></A
 ><H3
 ><A
@@ -1875,7 +1905,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2283"
+NAME="AEN2289"
 ></A
 ><H3
 ><A
@@ -1974,7 +2004,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2308"
+NAME="AEN2314"
 ></A
 ><H3
 ><A
@@ -1995,8 +2025,8 @@
 >xmlBufferPtr</A
 > buf,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              int len);</PRE
 ></TD
@@ -2076,7 +2106,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2333"
+NAME="AEN2339"
 ></A
 ><H3
 ><A
@@ -2097,8 +2127,8 @@
 >xmlBufferPtr</A
 > buf,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str);</PRE
 ></TD
 ></TR
@@ -2160,7 +2190,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2354"
+NAME="AEN2360"
 ></A
 ><H3
 ><A
@@ -2241,7 +2271,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2374"
+NAME="AEN2380"
 ></A
 ><H3
 ><A
@@ -2337,7 +2367,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2398"
+NAME="AEN2404"
 ></A
 ><H3
 ><A
@@ -2400,7 +2430,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2414"
+NAME="AEN2420"
 ></A
 ><H3
 ><A
@@ -2424,16 +2454,16 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);</PRE
 ></TD
 ></TR
@@ -2544,7 +2574,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2450"
+NAME="AEN2456"
 ></A
 ><H3
 ><A
@@ -2568,16 +2598,16 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ExternalID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);</PRE
 ></TD
 ></TR
@@ -2688,7 +2718,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2486"
+NAME="AEN2492"
 ></A
 ><H3
 ><A
@@ -2751,7 +2781,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2502"
+NAME="AEN2508"
 ></A
 ><H3
 ><A
@@ -2775,12 +2805,12 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *href,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *prefix);</PRE
 ></TD
 ></TR
@@ -2874,7 +2904,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2533"
+NAME="AEN2539"
 ></A
 ><H3
 ><A
@@ -2898,12 +2928,12 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *href,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *prefix);</PRE
 ></TD
 ></TR
@@ -2997,7 +3027,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2564"
+NAME="AEN2570"
 ></A
 ><H3
 ><A
@@ -3060,7 +3090,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2580"
+NAME="AEN2586"
 ></A
 ><H3
 ><A
@@ -3080,8 +3110,8 @@
 HREF="gnome-xml-tree.html#XMLDOCPTR"
 >xmlDocPtr</A
 >   xmlNewDoc                       (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *version);</PRE
 ></TD
 ></TR
@@ -3141,7 +3171,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2601"
+NAME="AEN2607"
 ></A
 ><H3
 ><A
@@ -3204,7 +3234,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2617"
+NAME="AEN2623"
 ></A
 ><H3
 ><A
@@ -3228,12 +3258,12 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -3327,7 +3357,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2648"
+NAME="AEN2654"
 ></A
 ><H3
 ><A
@@ -3351,12 +3381,12 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -3450,7 +3480,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2679"
+NAME="AEN2685"
 ></A
 ><H3
 ><A
@@ -3478,12 +3508,12 @@
 >xmlNsPtr</A
 > ns,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -3594,7 +3624,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2715"
+NAME="AEN2721"
 ></A
 ><H3
 ><A
@@ -3657,7 +3687,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2731"
+NAME="AEN2737"
 ></A
 ><H3
 ><A
@@ -3720,7 +3750,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2747"
+NAME="AEN2753"
 ></A
 ><H3
 ><A
@@ -3822,7 +3852,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2773"
+NAME="AEN2779"
 ></A
 ><H3
 ><A
@@ -3924,7 +3954,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2799"
+NAME="AEN2805"
 ></A
 ><H3
 ><A
@@ -4005,7 +4035,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2820"
+NAME="AEN2826"
 ></A
 ><H3
 ><A
@@ -4105,7 +4135,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2845"
+NAME="AEN2851"
 ></A
 ><H3
 ><A
@@ -4133,12 +4163,12 @@
 >xmlNsPtr</A
 > ns,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -4260,7 +4290,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2883"
+NAME="AEN2889"
 ></A
 ><H3
 ><A
@@ -4284,8 +4314,8 @@
 >xmlNsPtr</A
 > ns,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -4374,7 +4404,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2911"
+NAME="AEN2917"
 ></A
 ><H3
 ><A
@@ -4402,12 +4432,12 @@
 >xmlNsPtr</A
 > ns,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -4535,7 +4565,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2950"
+NAME="AEN2956"
 ></A
 ><H3
 ><A
@@ -4559,8 +4589,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -4637,7 +4667,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2976"
+NAME="AEN2982"
 ></A
 ><H3
 ><A
@@ -4657,8 +4687,8 @@
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 >  xmlNewText                      (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -4718,7 +4748,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN2997"
+NAME="AEN3003"
 ></A
 ><H3
 ><A
@@ -4738,12 +4768,12 @@
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 >  xmlNewPI                        (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -4820,7 +4850,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3023"
+NAME="AEN3029"
 ></A
 ><H3
 ><A
@@ -4844,8 +4874,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);</PRE
 ></TD
@@ -4941,7 +4971,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3053"
+NAME="AEN3059"
 ></A
 ><H3
 ><A
@@ -4961,8 +4991,8 @@
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 >  xmlNewTextLen                   (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);</PRE
 ></TD
@@ -5040,7 +5070,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3078"
+NAME="AEN3084"
 ></A
 ><H3
 ><A
@@ -5064,8 +5094,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -5142,7 +5172,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3104"
+NAME="AEN3110"
 ></A
 ><H3
 ><A
@@ -5162,8 +5192,8 @@
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 >  xmlNewComment                   (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -5223,7 +5253,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3125"
+NAME="AEN3131"
 ></A
 ><H3
 ><A
@@ -5247,8 +5277,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);</PRE
 ></TD
@@ -5343,7 +5373,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3155"
+NAME="AEN3161"
 ></A
 ><H3
 ><A
@@ -5367,8 +5397,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -5445,7 +5475,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3181"
+NAME="AEN3187"
 ></A
 ><H3
 ><A
@@ -5544,7 +5574,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3206"
+NAME="AEN3212"
 ></A
 ><H3
 ><A
@@ -5625,7 +5655,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3227"
+NAME="AEN3233"
 ></A
 ><H3
 ><A
@@ -5706,7 +5736,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3248"
+NAME="AEN3254"
 ></A
 ><H3
 ><A
@@ -5784,7 +5814,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3268"
+NAME="AEN3274"
 ></A
 ><H3
 ><A
@@ -5891,7 +5921,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3295"
+NAME="AEN3301"
 ></A
 ><H3
 ><A
@@ -5998,7 +6028,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3322"
+NAME="AEN3328"
 ></A
 ><H3
 ><A
@@ -6061,7 +6091,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3338"
+NAME="AEN3344"
 ></A
 ><H3
 ><A
@@ -6163,7 +6193,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3364"
+NAME="AEN3370"
 ></A
 ><H3
 ><A
@@ -6184,8 +6214,8 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);</PRE
 ></TD
@@ -6265,7 +6295,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3389"
+NAME="AEN3395"
 ></A
 ><H3
 ><A
@@ -6329,7 +6359,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3405"
+NAME="AEN3411"
 ></A
 ><H3
 ><A
@@ -6392,7 +6422,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3421"
+NAME="AEN3427"
 ></A
 ><H3
 ><A
@@ -6420,8 +6450,8 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *nameSpace);</PRE
 ></TD
 ></TR
@@ -6523,7 +6553,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3453"
+NAME="AEN3459"
 ></A
 ><H3
 ><A
@@ -6551,8 +6581,8 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *href);</PRE
 ></TD
 ></TR
@@ -6647,7 +6677,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3484"
+NAME="AEN3490"
 ></A
 ><H3
 ><A
@@ -6749,7 +6779,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3510"
+NAME="AEN3516"
 ></A
 ><H3
 ><A
@@ -6833,7 +6863,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3531"
+NAME="AEN3537"
 ></A
 ><H3
 ><A
@@ -6914,7 +6944,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3552"
+NAME="AEN3558"
 ></A
 ><H3
 ><A
@@ -6995,7 +7025,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3573"
+NAME="AEN3579"
 ></A
 ><H3
 ><A
@@ -7019,12 +7049,12 @@
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -7118,7 +7148,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3604"
+NAME="AEN3610"
 ></A
 ><H3
 ><A
@@ -7135,15 +7165,15 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlGetProp                      (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlGetProp                      (<A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 > node,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -7221,7 +7251,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3630"
+NAME="AEN3636"
 ></A
 ><H3
 ><A
@@ -7245,8 +7275,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -7324,7 +7354,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3656"
+NAME="AEN3662"
 ></A
 ><H3
 ><A
@@ -7348,8 +7378,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value,
                                              int len);</PRE
 ></TD
@@ -7445,7 +7475,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3686"
+NAME="AEN3692"
 ></A
 ><H3
 ><A
@@ -7462,9 +7492,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlNodeListGetString            (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlNodeListGetString            (<A
 HREF="gnome-xml-tree.html#XMLDOCPTR"
 >xmlDocPtr</A
 > doc,
@@ -7566,7 +7596,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3716"
+NAME="AEN3722"
 ></A
 ><H3
 ><A
@@ -7587,8 +7617,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -7650,7 +7680,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3737"
+NAME="AEN3743"
 ></A
 ><H3
 ><A
@@ -7671,8 +7701,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);</PRE
 ></TD
@@ -7752,7 +7782,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3762"
+NAME="AEN3768"
 ></A
 ><H3
 ><A
@@ -7773,8 +7803,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content);</PRE
 ></TD
 ></TR
@@ -7836,7 +7866,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3783"
+NAME="AEN3789"
 ></A
 ><H3
 ><A
@@ -7857,8 +7887,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *content,
                                              int len);</PRE
 ></TD
@@ -7938,7 +7968,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3808"
+NAME="AEN3814"
 ></A
 ><H3
 ><A
@@ -7955,9 +7985,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 ><A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->*       xmlNodeGetContent               (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>*    xmlNodeGetContent               (<A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 > cur);</PRE
@@ -8022,7 +8052,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3829"
+NAME="AEN3835"
 ></A
 ><H3
 ><A
@@ -8039,9 +8069,9 @@
 ><PRE
 CLASS="PROGRAMLISTING"
 >const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
->* xmlNodeGetLang                  (<A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
+>* xmlNodeGetLang               (<A
 HREF="gnome-xml-tree.html#XMLNODEPTR"
 >xmlNodePtr</A
 > cur);</PRE
@@ -8104,7 +8134,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3850"
+NAME="AEN3856"
 ></A
 ><H3
 ><A
@@ -8125,8 +8155,8 @@
 >xmlNodePtr</A
 > cur,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *lang);</PRE
 ></TD
 ></TR
@@ -8189,7 +8219,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3871"
+NAME="AEN3877"
 ></A
 ><H3
 ><A
@@ -8265,7 +8295,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3890"
+NAME="AEN3896"
 ></A
 ><H3
 ><A
@@ -8341,7 +8371,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3909"
+NAME="AEN3915"
 ></A
 ><H3
 ><A
@@ -8362,15 +8392,15 @@
 >xmlBufferPtr</A
 > buf,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *string);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
 >routine which manage and grows an output buffer. This one add
-CHARs at the end of the buffer.</P
+xmlChars at the end of the buffer.</P
 ><P
 ></P
 ><DIV
@@ -8426,7 +8456,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3930"
+NAME="AEN3936"
 ></A
 ><H3
 ><A
@@ -8508,7 +8538,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3950"
+NAME="AEN3956"
 ></A
 ><H3
 ><A
@@ -8529,15 +8559,15 @@
 >xmlBufferPtr</A
 > buf,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *string);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
 >routine which manage and grows an output buffer. This one writes
-a quoted or double quoted CHAR string, checking first if it holds
+a quoted or double quoted xmlChar string, checking first if it holds
 quote or double-quotes internally</P
 ><P
 ></P
@@ -8594,7 +8624,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3971"
+NAME="AEN3977"
 ></A
 ><H3
 ><A
@@ -8615,15 +8645,15 @@
 >xmlDocPtr</A
 > cur,
                                              <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > **mem,
                                              int *size);</PRE
 ></TD
 ></TR
 ></TABLE
 ><P
->Dump an XML document in memory and return the CHAR * and it's size.
+>Dump an XML document in memory and return the xmlChar * and it's size.
 It's up to the caller to free the memory.</P
 ><P
 ></P
@@ -8697,7 +8727,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN3996"
+NAME="AEN4002"
 ></A
 ><H3
 ><A
@@ -8781,7 +8811,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4017"
+NAME="AEN4023"
 ></A
 ><H3
 ><A
@@ -8878,7 +8908,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4041"
+NAME="AEN4047"
 ></A
 ><H3
 ><A
@@ -8956,7 +8986,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4061"
+NAME="AEN4067"
 ></A
 ><H3
 ><A
@@ -9038,7 +9068,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4081"
+NAME="AEN4087"
 ></A
 ><H3
 ><A
@@ -9096,7 +9126,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4096"
+NAME="AEN4102"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-valid.html b/doc/html/gnome-xml-valid.html
index 0c65822..004a9c0 100644
--- a/doc/html/gnome-xml-valid.html
+++ b/doc/html/gnome-xml-valid.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN4537"
+NAME="AEN4543"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN4540"
+NAME="AEN4546"
 ></A
 ><H2
 >Synopsis</H2
@@ -217,16 +217,16 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *PublicID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);
 <A
 HREF="gnome-xml-valid.html#XMLNOTATIONTABLEPTR"
@@ -263,8 +263,8 @@
 HREF="gnome-xml-valid.html#XMLNEWELEMENTCONTENT"
 >xmlNewElementContent</A
 >   (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
 HREF="gnome-xml-tree.html#XMLELEMENTCONTENTTYPE"
@@ -302,8 +302,8 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
 HREF="gnome-xml-tree.html#XMLELEMENTCONTENTTYPE"
@@ -348,8 +348,8 @@
 HREF="gnome-xml-valid.html#XMLCREATEENUMERATION"
 >xmlCreateEnumeration</A
 >      (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 void        <A
 HREF="gnome-xml-valid.html#XMLFREEENUMERATION"
@@ -383,12 +383,12 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *elem,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
 HREF="gnome-xml-tree.html#XMLATTRIBUTETYPE"
@@ -399,8 +399,8 @@
 >xmlAttributeDefault</A
 > def,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *defaultValue,
                                              <A
 HREF="gnome-xml-tree.html#XMLENUMERATIONPTR"
@@ -449,8 +449,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value,
                                              <A
 HREF="gnome-xml-tree.html#XMLATTRPTR"
@@ -484,8 +484,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ID);
 int         <A
 HREF="gnome-xml-valid.html#XMLISID"
@@ -517,8 +517,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value,
                                              <A
 HREF="gnome-xml-tree.html#XMLATTRPTR"
@@ -605,8 +605,8 @@
 >xmlAttributeType</A
 > type,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 int         <A
 HREF="gnome-xml-valid.html#XMLVALIDATENOTATIONDECL"
@@ -699,8 +699,8 @@
 >xmlAttrPtr</A
 > attr,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);
 int         <A
 HREF="gnome-xml-valid.html#XMLVALIDATEDOCUMENTFINAL"
@@ -725,8 +725,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *notationName);
 int         <A
 HREF="gnome-xml-valid.html#XMLISMIXEDELEMENT"
@@ -736,8 +736,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-tree.html#XMLATTRIBUTEPTR"
@@ -750,12 +750,12 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *elem,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-tree.html#XMLNOTATIONPTR"
@@ -768,8 +768,8 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);
 <A
 HREF="gnome-xml-tree.html#XMLELEMENTPTR"
@@ -782,8 +782,8 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -792,7 +792,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4718"
+NAME="AEN4724"
 ></A
 ><H2
 >Description</H2
@@ -802,14 +802,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN4721"
+NAME="AEN4727"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4723"
+NAME="AEN4729"
 ></A
 ><H3
 ><A
@@ -903,7 +903,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4745"
+NAME="AEN4751"
 ></A
 ><H3
 ><A
@@ -997,7 +997,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4767"
+NAME="AEN4773"
 ></A
 ><H3
 ><A
@@ -1094,7 +1094,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4790"
+NAME="AEN4796"
 ></A
 ><H3
 ><A
@@ -1191,7 +1191,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4813"
+NAME="AEN4819"
 ></A
 ><H3
 ><A
@@ -1217,7 +1217,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4818"
+NAME="AEN4824"
 ></A
 ><H3
 ><A
@@ -1230,7 +1230,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4822"
+NAME="AEN4828"
 ></A
 ><H3
 ><A
@@ -1256,7 +1256,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4827"
+NAME="AEN4833"
 ></A
 ><H3
 ><A
@@ -1269,7 +1269,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4831"
+NAME="AEN4837"
 ></A
 ><H3
 ><A
@@ -1295,7 +1295,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4836"
+NAME="AEN4842"
 ></A
 ><H3
 ><A
@@ -1308,7 +1308,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4840"
+NAME="AEN4846"
 ></A
 ><H3
 ><A
@@ -1334,7 +1334,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4845"
+NAME="AEN4851"
 ></A
 ><H3
 ><A
@@ -1347,7 +1347,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4849"
+NAME="AEN4855"
 ></A
 ><H3
 ><A
@@ -1373,7 +1373,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4854"
+NAME="AEN4860"
 ></A
 ><H3
 ><A
@@ -1386,7 +1386,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4858"
+NAME="AEN4864"
 ></A
 ><H3
 ><A
@@ -1414,16 +1414,16 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *PublicID,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *SystemID);</PRE
 ></TD
 ></TR
@@ -1551,7 +1551,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4899"
+NAME="AEN4905"
 ></A
 ><H3
 ><A
@@ -1632,7 +1632,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4920"
+NAME="AEN4926"
 ></A
 ><H3
 ><A
@@ -1695,7 +1695,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4936"
+NAME="AEN4942"
 ></A
 ><H3
 ><A
@@ -1779,7 +1779,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4957"
+NAME="AEN4963"
 ></A
 ><H3
 ><A
@@ -1799,8 +1799,8 @@
 HREF="gnome-xml-tree.html#XMLELEMENTCONTENTPTR"
 >xmlElementContentPtr</A
 > xmlNewElementContent   (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
 HREF="gnome-xml-tree.html#XMLELEMENTCONTENTTYPE"
@@ -1881,7 +1881,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN4983"
+NAME="AEN4989"
 ></A
 ><H3
 ><A
@@ -1962,7 +1962,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5004"
+NAME="AEN5010"
 ></A
 ><H3
 ><A
@@ -2025,7 +2025,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5020"
+NAME="AEN5026"
 ></A
 ><H3
 ><A
@@ -2053,8 +2053,8 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
 HREF="gnome-xml-tree.html#XMLELEMENTCONTENTTYPE"
@@ -2190,7 +2190,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5061"
+NAME="AEN5067"
 ></A
 ><H3
 ><A
@@ -2271,7 +2271,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5082"
+NAME="AEN5088"
 ></A
 ><H3
 ><A
@@ -2334,7 +2334,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5098"
+NAME="AEN5104"
 ></A
 ><H3
 ><A
@@ -2418,7 +2418,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5119"
+NAME="AEN5125"
 ></A
 ><H3
 ><A
@@ -2438,8 +2438,8 @@
 HREF="gnome-xml-tree.html#XMLENUMERATIONPTR"
 >xmlEnumerationPtr</A
 > xmlCreateEnumeration      (<A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -2499,7 +2499,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5140"
+NAME="AEN5146"
 ></A
 ><H3
 ><A
@@ -2562,7 +2562,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5156"
+NAME="AEN5162"
 ></A
 ><H3
 ><A
@@ -2643,7 +2643,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5177"
+NAME="AEN5183"
 ></A
 ><H3
 ><A
@@ -2671,12 +2671,12 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *elem,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name,
                                              <A
 HREF="gnome-xml-tree.html#XMLATTRIBUTETYPE"
@@ -2687,8 +2687,8 @@
 >xmlAttributeDefault</A
 > def,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *defaultValue,
                                              <A
 HREF="gnome-xml-tree.html#XMLENUMERATIONPTR"
@@ -2871,7 +2871,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5233"
+NAME="AEN5239"
 ></A
 ><H3
 ><A
@@ -2952,7 +2952,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5254"
+NAME="AEN5260"
 ></A
 ><H3
 ><A
@@ -3015,7 +3015,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5270"
+NAME="AEN5276"
 ></A
 ><H3
 ><A
@@ -3099,7 +3099,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5291"
+NAME="AEN5297"
 ></A
 ><H3
 ><A
@@ -3127,8 +3127,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value,
                                              <A
 HREF="gnome-xml-tree.html#XMLATTRPTR"
@@ -3243,7 +3243,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5327"
+NAME="AEN5333"
 ></A
 ><H3
 ><A
@@ -3322,7 +3322,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5347"
+NAME="AEN5353"
 ></A
 ><H3
 ><A
@@ -3385,7 +3385,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5363"
+NAME="AEN5369"
 ></A
 ><H3
 ><A
@@ -3409,8 +3409,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *ID);</PRE
 ></TD
 ></TR
@@ -3487,7 +3487,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5389"
+NAME="AEN5395"
 ></A
 ><H3
 ><A
@@ -3609,7 +3609,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5419"
+NAME="AEN5425"
 ></A
 ><H3
 ><A
@@ -3637,8 +3637,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value,
                                              <A
 HREF="gnome-xml-tree.html#XMLATTRPTR"
@@ -3753,7 +3753,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5455"
+NAME="AEN5461"
 ></A
 ><H3
 ><A
@@ -3832,7 +3832,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5475"
+NAME="AEN5481"
 ></A
 ><H3
 ><A
@@ -3895,7 +3895,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5491"
+NAME="AEN5497"
 ></A
 ><H3
 ><A
@@ -4017,7 +4017,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5521"
+NAME="AEN5527"
 ></A
 ><H3
 ><A
@@ -4120,7 +4120,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5546"
+NAME="AEN5552"
 ></A
 ><H3
 ><A
@@ -4245,7 +4245,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5576"
+NAME="AEN5582"
 ></A
 ><H3
 ><A
@@ -4372,7 +4372,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5607"
+NAME="AEN5613"
 ></A
 ><H3
 ><A
@@ -4393,8 +4393,8 @@
 >xmlAttributeType</A
 > type,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -4486,7 +4486,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5636"
+NAME="AEN5642"
 ></A
 ><H3
 ><A
@@ -4610,7 +4610,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5666"
+NAME="AEN5672"
 ></A
 ><H3
 ><A
@@ -4732,7 +4732,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5697"
+NAME="AEN5703"
 ></A
 ><H3
 ><A
@@ -4835,7 +4835,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5723"
+NAME="AEN5729"
 ></A
 ><H3
 ><A
@@ -4955,7 +4955,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5753"
+NAME="AEN5759"
 ></A
 ><H3
 ><A
@@ -5085,7 +5085,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5785"
+NAME="AEN5791"
 ></A
 ><H3
 ><A
@@ -5118,8 +5118,8 @@
 >xmlAttrPtr</A
 > attr,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *value);</PRE
 ></TD
 ></TR
@@ -5259,7 +5259,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5826"
+NAME="AEN5832"
 ></A
 ><H3
 ><A
@@ -5361,7 +5361,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5852"
+NAME="AEN5858"
 ></A
 ><H3
 ><A
@@ -5386,8 +5386,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *notationName);</PRE
 ></TD
 ></TR
@@ -5482,7 +5482,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5882"
+NAME="AEN5888"
 ></A
 ><H3
 ><A
@@ -5503,8 +5503,8 @@
 >xmlDocPtr</A
 > doc,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -5582,7 +5582,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5907"
+NAME="AEN5913"
 ></A
 ><H3
 ><A
@@ -5606,12 +5606,12 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *elem,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -5706,7 +5706,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5938"
+NAME="AEN5944"
 ></A
 ><H3
 ><A
@@ -5730,8 +5730,8 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
@@ -5808,7 +5808,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN5964"
+NAME="AEN5970"
 ></A
 ><H3
 ><A
@@ -5832,8 +5832,8 @@
 >xmlDtdPtr</A
 > dtd,
                                              const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *name);</PRE
 ></TD
 ></TR
diff --git a/doc/html/gnome-xml-xml-error.html b/doc/html/gnome-xml-xml-error.html
index 3672f9b..35d70b2 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="AEN5995"
+NAME="AEN6001"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN5998"
+NAME="AEN6004"
 ></A
 ><H2
 >Synopsis</H2
@@ -187,7 +187,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6010"
+NAME="AEN6016"
 ></A
 ><H2
 >Description</H2
@@ -197,14 +197,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6013"
+NAME="AEN6019"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6015"
+NAME="AEN6021"
 ></A
 ><H3
 ><A
@@ -341,7 +341,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6020"
+NAME="AEN6026"
 ></A
 ><H3
 ><A
@@ -438,7 +438,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6043"
+NAME="AEN6049"
 ></A
 ><H3
 ><A
@@ -535,7 +535,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6066"
+NAME="AEN6072"
 ></A
 ><H3
 ><A
@@ -632,7 +632,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6089"
+NAME="AEN6095"
 ></A
 ><H3
 ><A
@@ -729,7 +729,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6112"
+NAME="AEN6118"
 ></A
 ><H3
 ><A
@@ -792,7 +792,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6128"
+NAME="AEN6134"
 ></A
 ><H3
 ><A
diff --git a/doc/html/gnome-xml-xpath.html b/doc/html/gnome-xml-xpath.html
index 1809ece..95c1138 100644
--- a/doc/html/gnome-xml-xpath.html
+++ b/doc/html/gnome-xml-xpath.html
@@ -115,7 +115,7 @@
 ><DIV
 CLASS="REFNAMEDIV"
 ><A
-NAME="AEN6574"
+NAME="AEN6580"
 ></A
 ><H2
 >Name</H2
@@ -123,7 +123,7 @@
 ><DIV
 CLASS="REFSYNOPSISDIV"
 ><A
-NAME="AEN6577"
+NAME="AEN6583"
 ></A
 ><H2
 >Synopsis</H2
@@ -224,8 +224,8 @@
 HREF="gnome-xml-xpath.html#XMLXPATHEVAL"
 >xmlXPathEval</A
 >              (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              <GTKDOCLINK
 HREF="XMLXPATHCONTEXTPTR"
@@ -245,8 +245,8 @@
 HREF="gnome-xml-xpath.html#XMLXPATHEVALEXPRESSION"
 >xmlXPathEvalExpression</A
 >    (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              <GTKDOCLINK
 HREF="XMLXPATHCONTEXTPTR"
@@ -259,7 +259,7 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6611"
+NAME="AEN6617"
 ></A
 ><H2
 >Description</H2
@@ -269,14 +269,14 @@
 ><DIV
 CLASS="REFSECT1"
 ><A
-NAME="AEN6614"
+NAME="AEN6620"
 ></A
 ><H2
 >Details</H2
 ><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6616"
+NAME="AEN6622"
 ></A
 ><H3
 ><A
@@ -302,7 +302,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6621"
+NAME="AEN6627"
 ></A
 ><H3
 ><A
@@ -328,7 +328,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6626"
+NAME="AEN6632"
 ></A
 ><H3
 ><A
@@ -354,7 +354,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6631"
+NAME="AEN6637"
 ></A
 ><H3
 ><A
@@ -380,7 +380,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6636"
+NAME="AEN6642"
 ></A
 ><H3
 ><A
@@ -406,7 +406,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6641"
+NAME="AEN6647"
 ></A
 ><H3
 ><A
@@ -432,7 +432,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6646"
+NAME="AEN6652"
 ></A
 ><H3
 ><A
@@ -526,7 +526,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6669"
+NAME="AEN6675"
 ></A
 ><H3
 ><A
@@ -605,7 +605,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6688"
+NAME="AEN6694"
 ></A
 ><H3
 ><A
@@ -705,7 +705,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6713"
+NAME="AEN6719"
 ></A
 ><H3
 ><A
@@ -784,7 +784,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6732"
+NAME="AEN6738"
 ></A
 ><H3
 ><A
@@ -865,7 +865,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6753"
+NAME="AEN6759"
 ></A
 ><H3
 ><A
@@ -928,7 +928,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6769"
+NAME="AEN6775"
 ></A
 ><H3
 ><A
@@ -948,8 +948,8 @@
 HREF="XMLXPATHOBJECTPTR"
 >xmlXPathObjectPtr</GTKDOCLINK
 > xmlXPathEval              (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              <GTKDOCLINK
 HREF="XMLXPATHCONTEXTPTR"
@@ -1030,7 +1030,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6795"
+NAME="AEN6801"
 ></A
 ><H3
 ><A
@@ -1093,7 +1093,7 @@
 ><HR><DIV
 CLASS="REFSECT2"
 ><A
-NAME="AEN6811"
+NAME="AEN6817"
 ></A
 ><H3
 ><A
@@ -1113,8 +1113,8 @@
 HREF="XMLXPATHOBJECTPTR"
 >xmlXPathObjectPtr</GTKDOCLINK
 > xmlXPathEvalExpression    (const <A
-HREF="gnome-xml-tree.html#CHAR"
->CHAR</A
+HREF="gnome-xml-tree.html#XMLCHAR"
+>xmlChar</A
 > *str,
                                              <GTKDOCLINK
 HREF="XMLXPATHCONTEXTPTR"
diff --git a/doc/html/index.sgml b/doc/html/index.sgml
index faa8c93..fe2580a 100644
--- a/doc/html/index.sgml
+++ b/doc/html/index.sgml
@@ -84,6 +84,7 @@
 <ANCHOR id ="XMLLOADEXTERNALENTITY" href="gnome-xml/gnome-xml-parser.html#XMLLOADEXTERNALENTITY">
 <ANCHOR id ="GNOME-XML-TREE" href="gnome-xml/gnome-xml-tree.html">
 <ANCHOR id ="XMLELEMENTTYPE" href="gnome-xml/gnome-xml-tree.html#XMLELEMENTTYPE">
+<ANCHOR id ="XMLCHAR" href="gnome-xml/gnome-xml-tree.html#XMLCHAR">
 <ANCHOR id ="CHAR" href="gnome-xml/gnome-xml-tree.html#CHAR">
 <ANCHOR id ="BAD-CAST" href="gnome-xml/gnome-xml-tree.html#BAD-CAST">
 <ANCHOR id ="XMLNOTATIONPTR" href="gnome-xml/gnome-xml-tree.html#XMLNOTATIONPTR">
diff --git a/doc/xml.html b/doc/xml.html
index a5afae1..ed0a9ad 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -279,14 +279,14 @@
 
 <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>
+  <dt><code>xmlAttrPtr xmlSetProp(xmlNodePtr node, const xmlChar *name, const
+  xmlChar *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
+  <dt><code>const xmlChar *xmlGetProp(xmlNodePtr node, const xmlChar
   *name);</code></dt>
     <dd><p>This function returns a pointer to the property content, note that
       no extra copy is made</p>
@@ -296,7 +296,7 @@
 <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
+  <dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, const xmlChar
   *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
@@ -306,7 +306,7 @@
     </dd>
 </dl>
 <dl>
-  <dt><code>CHAR *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int
+  <dt><code>xmlChar *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
@@ -321,7 +321,7 @@
 
 <p>Basically 3 options are possible:</p>
 <dl>
-  <dt><code>void xmlDocDumpMemory(xmlDocPtr cur, CHAR**mem, int
+  <dt><code>void xmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int
   *size);</code></dt>
     <dd><p>returns a buffer where the document has been saved</p>
     </dd>
@@ -747,6 +747,6 @@
 
 <p><a href="mailto:Daniel.Veillard@w3.org">Daniel Veillard</a></p>
 
-<p>$Id: xml.html,v 1.7 1999/09/04 18:27:23 veillard Exp $</p>
+<p>$Id: xml.html,v 1.8 1999/09/08 21:35:25 veillard Exp $</p>
 </body>
 </html>
diff --git a/entities.c b/entities.c
index fe706ea..78f7ec2 100644
--- a/entities.c
+++ b/entities.c
@@ -59,8 +59,8 @@
  * xmlAddEntity : register a new entity for an entities table.
  */
 static void
-xmlAddEntity(xmlEntitiesTablePtr table, const CHAR *name, int type,
-	  const CHAR *ExternalID, const CHAR *SystemID, const CHAR *content) {
+xmlAddEntity(xmlEntitiesTablePtr table, const xmlChar *name, int type,
+	  const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content) {
     int i;
     xmlEntityPtr cur;
     int len;
@@ -126,10 +126,10 @@
  */
 void xmlInitializePredefinedEntities(void) {
     int i;
-    CHAR name[50];
-    CHAR value[50];
+    xmlChar name[50];
+    xmlChar value[50];
     const char *in;
-    CHAR *out;
+    xmlChar *out;
 
     if (xmlPredefinedEntities != NULL) return;
 
@@ -138,11 +138,11 @@
                    sizeof(xmlPredefinedEntityValues[0]);i++) {
         in = xmlPredefinedEntityValues[i].name;
 	out = &name[0];
-	for (;(*out++ = (CHAR) *in);)in++;
+	for (;(*out++ = (xmlChar) *in);)in++;
         in = xmlPredefinedEntityValues[i].value;
 	out = &value[0];
-	for (;(*out++ = (CHAR) *in);)in++;
-        xmlAddEntity(xmlPredefinedEntities, (const CHAR *) &name[0],
+	for (;(*out++ = (xmlChar) *in);)in++;
+        xmlAddEntity(xmlPredefinedEntities, (const xmlChar *) &name[0],
 	             XML_INTERNAL_PREDEFINED_ENTITY, NULL, NULL,
 		     &value[0]);
     }
@@ -157,7 +157,7 @@
  * Returns NULL if not, othervise the entity
  */
 xmlEntityPtr
-xmlGetPredefinedEntity(const CHAR *name) {
+xmlGetPredefinedEntity(const xmlChar *name) {
     int i;
     xmlEntityPtr cur;
 
@@ -182,8 +182,8 @@
  * Register a new entity for this document DTD.
  */
 void
-xmlAddDtdEntity(xmlDocPtr doc, const CHAR *name, int type,
-	  const CHAR *ExternalID, const CHAR *SystemID, const CHAR *content) {
+xmlAddDtdEntity(xmlDocPtr doc, const xmlChar *name, int type,
+	  const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content) {
     xmlEntitiesTablePtr table;
 
     if (doc->extSubset == NULL) {
@@ -211,8 +211,8 @@
  * Register a new entity for this document.
  */
 void
-xmlAddDocEntity(xmlDocPtr doc, const CHAR *name, int type,
-	  const CHAR *ExternalID, const CHAR *SystemID, const CHAR *content) {
+xmlAddDocEntity(xmlDocPtr doc, const xmlChar *name, int type,
+	  const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content) {
     xmlEntitiesTablePtr table;
 
     if (doc == NULL) {
@@ -244,7 +244,7 @@
  * Returns A pointer to the entity structure or NULL if not found.
  */
 xmlEntityPtr
-xmlGetParameterEntity(xmlDocPtr doc, const CHAR *name) {
+xmlGetParameterEntity(xmlDocPtr doc, const xmlChar *name) {
     int i;
     xmlEntityPtr cur;
     xmlEntitiesTablePtr table;
@@ -290,7 +290,7 @@
  * Returns A pointer to the entity structure or NULL if not found.
  */
 xmlEntityPtr
-xmlGetDtdEntity(xmlDocPtr doc, const CHAR *name) {
+xmlGetDtdEntity(xmlDocPtr doc, const xmlChar *name) {
     int i;
     xmlEntityPtr cur;
     xmlEntitiesTablePtr table;
@@ -319,7 +319,7 @@
  * Returns A pointer to the entity structure or NULL if not found.
  */
 xmlEntityPtr
-xmlGetDocEntity(xmlDocPtr doc, const CHAR *name) {
+xmlGetDocEntity(xmlDocPtr doc, const xmlChar *name) {
     int i;
     xmlEntityPtr cur;
     xmlEntitiesTablePtr table;
@@ -368,11 +368,11 @@
  * A buffer used for converting entities to their equivalent and back.
  */
 static int buffer_size = 0;
-static CHAR *buffer = NULL;
+static xmlChar *buffer = NULL;
 
 void growBuffer(void) {
     buffer_size *= 2;
-    buffer = (CHAR *) xmlRealloc(buffer, buffer_size * sizeof(CHAR));
+    buffer = (xmlChar *) xmlRealloc(buffer, buffer_size * sizeof(xmlChar));
     if (buffer == NULL) {
         perror("realloc failed");
         exit(1);
@@ -396,10 +396,10 @@
  * 
  * Returns A newly allocated string with the substitution done.
  */
-const CHAR *
-xmlEncodeEntities(xmlDocPtr doc, const CHAR *input) {
-    const CHAR *cur = input;
-    CHAR *out = buffer;
+const xmlChar *
+xmlEncodeEntities(xmlDocPtr doc, const xmlChar *input) {
+    const xmlChar *cur = input;
+    xmlChar *out = buffer;
     static int warning = 1;
 
     if (warning) {
@@ -411,7 +411,7 @@
     if (input == NULL) return(NULL);
     if (buffer == NULL) {
         buffer_size = 1000;
-        buffer = (CHAR *) xmlMalloc(buffer_size * sizeof(CHAR));
+        buffer = (xmlChar *) xmlMalloc(buffer_size * sizeof(xmlChar));
 	if (buffer == NULL) {
 	    perror("malloc failed");
             exit(1);
@@ -466,7 +466,7 @@
 	     */
 	    *out++ = *cur;
 #ifndef USE_UTF_8
-	} else if ((sizeof(CHAR) == 1) && (*cur >= 0x80)) {
+	} else if ((sizeof(xmlChar) == 1) && (*cur >= 0x80)) {
 	    char buf[10], *ptr;
 #ifdef HAVE_SNPRINTF
 	    snprintf(buf, 9, "&#%d;", *cur);
@@ -507,7 +507,7 @@
  */
 #define growBufferReentrant() {						\
     buffer_size *= 2;							\
-    buffer = (CHAR *) xmlRealloc(buffer, buffer_size * sizeof(CHAR));	\
+    buffer = (xmlChar *) xmlRealloc(buffer, buffer_size * sizeof(xmlChar));	\
     if (buffer == NULL) {						\
 	perror("realloc failed");					\
 	exit(1);							\
@@ -530,11 +530,11 @@
  *
  * Returns A newly allocated string with the substitution done.
  */
-CHAR *
-xmlEncodeEntitiesReentrant(xmlDocPtr doc, const CHAR *input) {
-    const CHAR *cur = input;
-    CHAR *buffer = NULL;
-    CHAR *out = NULL;
+xmlChar *
+xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) {
+    const xmlChar *cur = input;
+    xmlChar *buffer = NULL;
+    xmlChar *out = NULL;
     int buffer_size = 0;
 
     if (input == NULL) return(NULL);
@@ -543,7 +543,7 @@
      * allocate an translation buffer.
      */
     buffer_size = 1000;
-    buffer = (CHAR *) xmlMalloc(buffer_size * sizeof(CHAR));
+    buffer = (xmlChar *) xmlMalloc(buffer_size * sizeof(xmlChar));
     if (buffer == NULL) {
 	perror("malloc failed");
 	exit(1);
@@ -598,7 +598,7 @@
 	     */
 	    *out++ = *cur;
 #ifndef USE_UTF_8
-	} else if ((sizeof(CHAR) == 1) && (*cur >= 0x80)) {
+	} else if ((sizeof(xmlChar) == 1) && (*cur >= 0x80)) {
 	    char buf[10], *ptr;
 #ifdef HAVE_SNPRINTF
 	    snprintf(buf, 9, "&#%d;", *cur);
diff --git a/entities.h b/entities.h
index 5e35703..1f6c64a 100644
--- a/entities.h
+++ b/entities.h
@@ -30,11 +30,11 @@
 typedef struct xmlEntity {
     int type;			/* The entity type */
     int len;			/* The lenght of the name */
-    const CHAR    *name;	/* Name of the entity */
-    const CHAR    *ExternalID;	/* External identifier for PUBLIC Entity */
-    const CHAR    *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
-    CHAR *content;		/* The entity content or ndata if unparsed */
-    CHAR *orig;			/* The entity cont without ref substitution */
+    const xmlChar    *name;	/* Name of the entity */
+    const xmlChar    *ExternalID;	/* External identifier for PUBLIC Entity */
+    const xmlChar    *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
+    xmlChar *content;		/* The entity content or ndata if unparsed */
+    xmlChar *orig;			/* The entity cont without ref substitution */
 } xmlEntity;
 typedef xmlEntity *xmlEntityPtr;
 
@@ -60,28 +60,28 @@
 #include "parser.h"
 
 void			xmlAddDocEntity		(xmlDocPtr doc,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 int type,
-						 const CHAR *ExternalID,
-						 const CHAR *SystemID,
-						 const CHAR *content);
+						 const xmlChar *ExternalID,
+						 const xmlChar *SystemID,
+						 const xmlChar *content);
 void			xmlAddDtdEntity		(xmlDocPtr doc,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 int type,
-						 const CHAR *ExternalID,
-						 const CHAR *SystemID,
-						 const CHAR *content);
-xmlEntityPtr		xmlGetPredefinedEntity	(const CHAR *name);
+						 const xmlChar *ExternalID,
+						 const xmlChar *SystemID,
+						 const xmlChar *content);
+xmlEntityPtr		xmlGetPredefinedEntity	(const xmlChar *name);
 xmlEntityPtr		xmlGetDocEntity		(xmlDocPtr doc,
-						 const CHAR *name);
+						 const xmlChar *name);
 xmlEntityPtr		xmlGetDtdEntity		(xmlDocPtr doc,
-						 const CHAR *name);
+						 const xmlChar *name);
 xmlEntityPtr		xmlGetParameterEntity	(xmlDocPtr doc,
-						 const CHAR *name);
-const CHAR *		xmlEncodeEntities	(xmlDocPtr doc,
-						 const CHAR *input);
-CHAR *			xmlEncodeEntitiesReentrant(xmlDocPtr doc,
-						 const CHAR *input);
+						 const xmlChar *name);
+const xmlChar *		xmlEncodeEntities	(xmlDocPtr doc,
+						 const xmlChar *input);
+xmlChar *			xmlEncodeEntitiesReentrant(xmlDocPtr doc,
+						 const xmlChar *input);
 xmlEntitiesTablePtr	xmlCreateEntitiesTable	(void);
 xmlEntitiesTablePtr	xmlCopyEntitiesTable	(xmlEntitiesTablePtr table);
 void			xmlFreeEntitiesTable	(xmlEntitiesTablePtr table);
diff --git a/error.c b/error.c
index 42e327e..b77839e 100644
--- a/error.c
+++ b/error.c
@@ -37,7 +37,7 @@
 
 void
 xmlParserPrintFileContext(xmlParserInputPtr input) {
-    const CHAR *cur, *base;
+    const xmlChar *cur, *base;
     int n;
 
     cur = input->cur;
diff --git a/include/libxml/HTMLparser.h b/include/libxml/HTMLparser.h
index ebcd996..ca9ee14 100644
--- a/include/libxml/HTMLparser.h
+++ b/include/libxml/HTMLparser.h
@@ -48,16 +48,16 @@
 /*
  * There is only few public functions.
  */
-htmlElemDescPtr htmlTagLookup(const CHAR *tag);
-htmlEntityDescPtr htmlEntityLookup(const CHAR *name);
+htmlElemDescPtr htmlTagLookup(const xmlChar *tag);
+htmlEntityDescPtr htmlEntityLookup(const xmlChar *name);
 
-htmlEntityDescPtr htmlParseEntityRef(htmlParserCtxtPtr ctxt, CHAR **str);
+htmlEntityDescPtr htmlParseEntityRef(htmlParserCtxtPtr ctxt, xmlChar **str);
 int htmlParseCharRef(htmlParserCtxtPtr ctxt);
 void htmlParseElement(htmlParserCtxtPtr ctxt);
 
-htmlDocPtr htmlSAXParseDoc(CHAR *cur, const char *encoding,
+htmlDocPtr htmlSAXParseDoc(xmlChar *cur, const char *encoding,
                            htmlSAXHandlerPtr sax, void *userData);
-htmlDocPtr htmlParseDoc(CHAR *cur, const char *encoding);
+htmlDocPtr htmlParseDoc(xmlChar *cur, const char *encoding);
 htmlDocPtr htmlSAXParseFile(const char *filename, const char *encoding,
                             htmlSAXHandlerPtr sax, void *userData);
 htmlDocPtr htmlParseFile(const char *filename, const char *encoding);
diff --git a/include/libxml/debugXML.h b/include/libxml/debugXML.h
index 556d1fe..f73527c 100644
--- a/include/libxml/debugXML.h
+++ b/include/libxml/debugXML.h
@@ -9,7 +9,7 @@
 #define __DEBUG_XML__
 #include "tree.h"
 
-extern void xmlDebugDumpString(FILE *output, const CHAR *str);
+extern void xmlDebugDumpString(FILE *output, const xmlChar *str);
 extern void xmlDebugDumpAttr(FILE *output, xmlAttrPtr attr, int depth);
 extern void xmlDebugDumpAttrList(FILE *output, xmlAttrPtr attr, int depth);
 extern void xmlDebugDumpOneNode(FILE *output, xmlNodePtr node, int depth);
diff --git a/include/libxml/entities.h b/include/libxml/entities.h
index 5e35703..1f6c64a 100644
--- a/include/libxml/entities.h
+++ b/include/libxml/entities.h
@@ -30,11 +30,11 @@
 typedef struct xmlEntity {
     int type;			/* The entity type */
     int len;			/* The lenght of the name */
-    const CHAR    *name;	/* Name of the entity */
-    const CHAR    *ExternalID;	/* External identifier for PUBLIC Entity */
-    const CHAR    *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
-    CHAR *content;		/* The entity content or ndata if unparsed */
-    CHAR *orig;			/* The entity cont without ref substitution */
+    const xmlChar    *name;	/* Name of the entity */
+    const xmlChar    *ExternalID;	/* External identifier for PUBLIC Entity */
+    const xmlChar    *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
+    xmlChar *content;		/* The entity content or ndata if unparsed */
+    xmlChar *orig;			/* The entity cont without ref substitution */
 } xmlEntity;
 typedef xmlEntity *xmlEntityPtr;
 
@@ -60,28 +60,28 @@
 #include "parser.h"
 
 void			xmlAddDocEntity		(xmlDocPtr doc,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 int type,
-						 const CHAR *ExternalID,
-						 const CHAR *SystemID,
-						 const CHAR *content);
+						 const xmlChar *ExternalID,
+						 const xmlChar *SystemID,
+						 const xmlChar *content);
 void			xmlAddDtdEntity		(xmlDocPtr doc,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 int type,
-						 const CHAR *ExternalID,
-						 const CHAR *SystemID,
-						 const CHAR *content);
-xmlEntityPtr		xmlGetPredefinedEntity	(const CHAR *name);
+						 const xmlChar *ExternalID,
+						 const xmlChar *SystemID,
+						 const xmlChar *content);
+xmlEntityPtr		xmlGetPredefinedEntity	(const xmlChar *name);
 xmlEntityPtr		xmlGetDocEntity		(xmlDocPtr doc,
-						 const CHAR *name);
+						 const xmlChar *name);
 xmlEntityPtr		xmlGetDtdEntity		(xmlDocPtr doc,
-						 const CHAR *name);
+						 const xmlChar *name);
 xmlEntityPtr		xmlGetParameterEntity	(xmlDocPtr doc,
-						 const CHAR *name);
-const CHAR *		xmlEncodeEntities	(xmlDocPtr doc,
-						 const CHAR *input);
-CHAR *			xmlEncodeEntitiesReentrant(xmlDocPtr doc,
-						 const CHAR *input);
+						 const xmlChar *name);
+const xmlChar *		xmlEncodeEntities	(xmlDocPtr doc,
+						 const xmlChar *input);
+xmlChar *			xmlEncodeEntitiesReentrant(xmlDocPtr doc,
+						 const xmlChar *input);
 xmlEntitiesTablePtr	xmlCreateEntitiesTable	(void);
 xmlEntitiesTablePtr	xmlCopyEntitiesTable	(xmlEntitiesTablePtr table);
 void			xmlFreeEntitiesTable	(xmlEntitiesTablePtr table);
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 06db141..f5f96e9 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -31,18 +31,18 @@
  * progressive reading and I18N conversions to the internal UTF-8 format.
  */
 
-typedef void (* xmlParserInputDeallocate)(CHAR *);
+typedef void (* xmlParserInputDeallocate)(xmlChar *);
 typedef struct xmlParserInput {
     /* Input buffer */
     xmlParserInputBufferPtr buf;      /* UTF-8 encoded buffer */
 
     const char *filename;             /* The file analyzed, if any */
     const char *directory;            /* the directory/base of teh file */
-    const CHAR *base;                 /* Base of the array to parse */
-    const CHAR *cur;                  /* Current char being parsed */
+    const xmlChar *base;                 /* Base of the array to parse */
+    const xmlChar *cur;                  /* Current char being parsed */
     int line;                         /* Current line */
     int col;                          /* Current column */
-    int consumed;                     /* How many CHARs were already consumed */
+    int consumed;                     /* How many xmlChars were already consumed */
     xmlParserInputDeallocate free;    /* function to deallocate the base */
 } xmlParserInput;
 typedef xmlParserInput *xmlParserInputPtr;
@@ -107,8 +107,8 @@
     xmlDocPtr           myDoc;        /* the document being built */
     int            wellFormed;        /* is the document well formed */
     int       replaceEntities;        /* shall we replace entities ? */
-    const CHAR       *version;        /* the XML version string */
-    const CHAR      *encoding;        /* encoding, if any */
+    const xmlChar       *version;        /* the XML version string */
+    const xmlChar      *encoding;        /* encoding, if any */
     int            standalone;        /* standalone document */
     int                  html;        /* are we parsing an HTML document */
 
@@ -127,7 +127,7 @@
     int record_info;                  /* Whether node info should be kept */
     xmlParserNodeInfoSeq node_seq;    /* info about each node parsed */
 
-    int errno;                        /* error code */
+    int errNo;                        /* error code */
 
     int     hasExternalSubset;        /* reference and external subset */
     int             hasPErefs;        /* the internal subset has PE refs */
@@ -149,8 +149,8 @@
  * a SAX Locator.
  */
 typedef struct xmlSAXLocator {
-    const CHAR *(*getPublicId)(void *ctx);
-    const CHAR *(*getSystemId)(void *ctx);
+    const xmlChar *(*getPublicId)(void *ctx);
+    const xmlChar *(*getSystemId)(void *ctx);
     int (*getLineNumber)(void *ctx);
     int (*getColumnNumber)(void *ctx);
 } _xmlSAXLocator;
@@ -165,44 +165,44 @@
 #include "entities.h"
 
 typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx,
-			    const CHAR *publicId, const CHAR *systemId);
-typedef void (*internalSubsetSAXFunc) (void *ctx, const CHAR *name,
-                            const CHAR *ExternalID, const CHAR *SystemID);
+			    const xmlChar *publicId, const xmlChar *systemId);
+typedef void (*internalSubsetSAXFunc) (void *ctx, const xmlChar *name,
+                            const xmlChar *ExternalID, const xmlChar *SystemID);
 typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx,
-                            const CHAR *name);
+                            const xmlChar *name);
 typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx,
-                            const CHAR *name);
+                            const xmlChar *name);
 typedef void (*entityDeclSAXFunc) (void *ctx,
-                            const CHAR *name, int type, const CHAR *publicId,
-			    const CHAR *systemId, CHAR *content);
-typedef void (*notationDeclSAXFunc)(void *ctx, const CHAR *name,
-			    const CHAR *publicId, const CHAR *systemId);
-typedef void (*attributeDeclSAXFunc)(void *ctx, const CHAR *elem,
-                            const CHAR *name, int type, int def,
-			    const CHAR *defaultValue, xmlEnumerationPtr tree);
-typedef void (*elementDeclSAXFunc)(void *ctx, const CHAR *name,
+                            const xmlChar *name, int type, const xmlChar *publicId,
+			    const xmlChar *systemId, xmlChar *content);
+typedef void (*notationDeclSAXFunc)(void *ctx, const xmlChar *name,
+			    const xmlChar *publicId, const xmlChar *systemId);
+typedef void (*attributeDeclSAXFunc)(void *ctx, const xmlChar *elem,
+                            const xmlChar *name, int type, int def,
+			    const xmlChar *defaultValue, xmlEnumerationPtr tree);
+typedef void (*elementDeclSAXFunc)(void *ctx, const xmlChar *name,
 			    int type, xmlElementContentPtr content);
 typedef void (*unparsedEntityDeclSAXFunc)(void *ctx,
-                            const CHAR *name, const CHAR *publicId,
-			    const CHAR *systemId, const CHAR *notationName);
+                            const xmlChar *name, const xmlChar *publicId,
+			    const xmlChar *systemId, const xmlChar *notationName);
 typedef void (*setDocumentLocatorSAXFunc) (void *ctx,
                             xmlSAXLocatorPtr loc);
 typedef void (*startDocumentSAXFunc) (void *ctx);
 typedef void (*endDocumentSAXFunc) (void *ctx);
-typedef void (*startElementSAXFunc) (void *ctx, const CHAR *name,
-                            const CHAR **atts);
-typedef void (*endElementSAXFunc) (void *ctx, const CHAR *name);
-typedef void (*attributeSAXFunc) (void *ctx, const CHAR *name,
-                                  const CHAR *value);
-typedef void (*referenceSAXFunc) (void *ctx, const CHAR *name);
-typedef void (*charactersSAXFunc) (void *ctx, const CHAR *ch,
+typedef void (*startElementSAXFunc) (void *ctx, const xmlChar *name,
+                            const xmlChar **atts);
+typedef void (*endElementSAXFunc) (void *ctx, const xmlChar *name);
+typedef void (*attributeSAXFunc) (void *ctx, const xmlChar *name,
+                                  const xmlChar *value);
+typedef void (*referenceSAXFunc) (void *ctx, const xmlChar *name);
+typedef void (*charactersSAXFunc) (void *ctx, const xmlChar *ch,
 		            int len);
 typedef void (*ignorableWhitespaceSAXFunc) (void *ctx,
-			    const CHAR *ch, int len);
+			    const xmlChar *ch, int len);
 typedef void (*processingInstructionSAXFunc) (void *ctx,
-                            const CHAR *target, const CHAR *data);
-typedef void (*commentSAXFunc) (void *ctx, const CHAR *value);
-typedef void (*cdataBlockSAXFunc) (void *ctx, const CHAR *value, int len);
+                            const xmlChar *target, const xmlChar *data);
+typedef void (*commentSAXFunc) (void *ctx, const xmlChar *value);
+typedef void (*cdataBlockSAXFunc) (void *ctx, const xmlChar *value, int len);
 typedef void (*warningSAXFunc) (void *ctx, const char *msg, ...);
 typedef void (*errorSAXFunc) (void *ctx, const char *msg, ...);
 typedef void (*fatalErrorSAXFunc) (void *ctx, const char *msg, ...);
@@ -270,34 +270,34 @@
 					 int len);
 
 /**
- * CHAR handling
+ * xmlChar handling
  */
-CHAR *		xmlStrdup		(const CHAR *cur);
-CHAR *		xmlStrndup		(const CHAR *cur,
+xmlChar *		xmlStrdup		(const xmlChar *cur);
+xmlChar *		xmlStrndup		(const xmlChar *cur,
 					 int len);
-CHAR *		xmlStrsub		(const CHAR *str,
+xmlChar *		xmlStrsub		(const xmlChar *str,
 					 int start,
 					 int len);
-const CHAR *	xmlStrchr		(const CHAR *str,
-					 CHAR val);
-const CHAR *	xmlStrstr		(const CHAR *str,
-					 CHAR *val);
-int		xmlStrcmp		(const CHAR *str1,
-					 const CHAR *str2);
-int		xmlStrncmp		(const CHAR *str1,
-					 const CHAR *str2,
+const xmlChar *	xmlStrchr		(const xmlChar *str,
+					 xmlChar val);
+const xmlChar *	xmlStrstr		(const xmlChar *str,
+					 xmlChar *val);
+int		xmlStrcmp		(const xmlChar *str1,
+					 const xmlChar *str2);
+int		xmlStrncmp		(const xmlChar *str1,
+					 const xmlChar *str2,
 					 int len);
-int		xmlStrlen		(const CHAR *str);
-CHAR *		xmlStrcat		(CHAR *cur,
-					 const CHAR *add);
-CHAR *		xmlStrncat		(CHAR *cur,
-					 const CHAR *add,
+int		xmlStrlen		(const xmlChar *str);
+xmlChar *		xmlStrcat		(xmlChar *cur,
+					 const xmlChar *add);
+xmlChar *		xmlStrncat		(xmlChar *cur,
+					 const xmlChar *add,
 					 int len);
 
 /**
  * Basic parsing Interfaces
  */
-xmlDocPtr	xmlParseDoc		(CHAR *cur);
+xmlDocPtr	xmlParseDoc		(xmlChar *cur);
 xmlDocPtr	xmlParseMemory		(char *buffer,
 					 int size);
 xmlDocPtr	xmlParseFile		(const char *filename);
@@ -306,7 +306,7 @@
 /**
  * Recovery mode 
  */
-xmlDocPtr	xmlRecoverDoc		(CHAR *cur);
+xmlDocPtr	xmlRecoverDoc		(xmlChar *cur);
 xmlDocPtr	xmlRecoverMemory	(char *buffer,
 					 int size);
 xmlDocPtr	xmlRecoverFile		(const char *filename);
@@ -316,7 +316,7 @@
  */
 int		xmlParseDocument	(xmlParserCtxtPtr ctxt);
 xmlDocPtr	xmlSAXParseDoc		(xmlSAXHandlerPtr sax,
-					 CHAR *cur,
+					 xmlChar *cur,
 					 int recovery);
 xmlDocPtr	xmlSAXParseMemory	(xmlSAXHandlerPtr sax,
 					 char *buffer,
@@ -325,15 +325,15 @@
 xmlDocPtr	xmlSAXParseFile		(xmlSAXHandlerPtr sax,
 					 const char *filename,
 					 int recovery);
-xmlDtdPtr	xmlParseDTD		(const CHAR *ExternalID,
-					 const CHAR *SystemID);
+xmlDtdPtr	xmlParseDTD		(const xmlChar *ExternalID,
+					 const xmlChar *SystemID);
 xmlDtdPtr	xmlSAXParseDTD		(xmlSAXHandlerPtr sax,
-					 const CHAR *ExternalID,
-					 const CHAR *SystemID);
+					 const xmlChar *ExternalID,
+					 const xmlChar *SystemID);
 void		xmlInitParserCtxt	(xmlParserCtxtPtr ctxt);
 void		xmlClearParserCtxt	(xmlParserCtxtPtr ctxt);
 void		xmlSetupParserForBuffer	(xmlParserCtxtPtr ctxt,
-					 const CHAR* buffer,
+					 const xmlChar* buffer,
 					 const char* filename);
 void		xmlDefaultSAXHandlerInit(void);
 void		htmlDefaultSAXHandlerInit(void);
diff --git a/include/libxml/parserInternals.h b/include/libxml/parserInternals.h
index cb28943..1ce25b0 100644
--- a/include/libxml/parserInternals.h
+++ b/include/libxml/parserInternals.h
@@ -511,7 +511,7 @@
 /**
  * Parser context
  */
-xmlParserCtxtPtr	xmlCreateDocParserCtxt	(CHAR *cur);
+xmlParserCtxtPtr	xmlCreateDocParserCtxt	(xmlChar *cur);
 xmlParserCtxtPtr	xmlCreateFileParserCtxt	(const char *filename);
 xmlParserCtxtPtr	xmlCreateMemoryParserCtxt(char *buffer,
 						 int size);
@@ -533,7 +533,7 @@
 						 xmlEntityPtr entity);
 void			xmlPushInput		(xmlParserCtxtPtr ctxt,
 						 xmlParserInputPtr input);
-CHAR			xmlPopInput		(xmlParserCtxtPtr ctxt);
+xmlChar			xmlPopInput		(xmlParserCtxtPtr ctxt);
 void			xmlFreeInputStream	(xmlParserInputPtr input);
 xmlParserInputPtr	xmlNewInputFromFile	(xmlParserCtxtPtr ctxt,
 						 const char *filename);
@@ -541,38 +541,38 @@
 /**
  * Namespaces.
  */
-CHAR *			xmlSplitQName		(const CHAR *name,
-						 CHAR **prefix);
-CHAR *			xmlNamespaceParseNCName	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlNamespaceParseQName	(xmlParserCtxtPtr ctxt,
-						 CHAR **prefix);
-CHAR *			xmlNamespaceParseNSDef	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseQuotedString	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlSplitQName		(const xmlChar *name,
+						 xmlChar **prefix);
+xmlChar *			xmlNamespaceParseNCName	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlNamespaceParseQName	(xmlParserCtxtPtr ctxt,
+						 xmlChar **prefix);
+xmlChar *			xmlNamespaceParseNSDef	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseQuotedString	(xmlParserCtxtPtr ctxt);
 void			xmlParseNamespace	(xmlParserCtxtPtr ctxt);
 
 /**
  * Generic production rules
  */
-CHAR *			xmlScanName		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseName		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseNmtoken		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseEntityValue	(xmlParserCtxtPtr ctxt,
-						 CHAR **orig);
-CHAR *			xmlParseAttValue	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseSystemLiteral	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParsePubidLiteral	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlScanName		(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseName		(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseNmtoken		(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseEntityValue	(xmlParserCtxtPtr ctxt,
+						 xmlChar **orig);
+xmlChar *			xmlParseAttValue	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseSystemLiteral	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParsePubidLiteral	(xmlParserCtxtPtr ctxt);
 void			xmlParseCharData	(xmlParserCtxtPtr ctxt,
 						 int cdata);
-CHAR *			xmlParseExternalID	(xmlParserCtxtPtr ctxt,
-						 CHAR **publicID,
+xmlChar *			xmlParseExternalID	(xmlParserCtxtPtr ctxt,
+						 xmlChar **publicID,
 						 int strict);
 void			xmlParseComment		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParsePITarget	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParsePITarget	(xmlParserCtxtPtr ctxt);
 void			xmlParsePI		(xmlParserCtxtPtr ctxt);
 void			xmlParseNotationDecl	(xmlParserCtxtPtr ctxt);
 void			xmlParseEntityDecl	(xmlParserCtxtPtr ctxt);
 int			xmlParseDefaultDecl	(xmlParserCtxtPtr ctxt,
-						 CHAR **value);
+						 xmlChar **value);
 xmlEnumerationPtr	xmlParseNotationType	(xmlParserCtxtPtr ctxt);
 xmlEnumerationPtr	xmlParseEnumerationType	(xmlParserCtxtPtr ctxt);
 int			xmlParseEnumeratedType	(xmlParserCtxtPtr ctxt,
@@ -585,7 +585,7 @@
 xmlElementContentPtr	xmlParseElementChildrenContentDecl
 						(xmlParserCtxtPtr ctxt);
 int			xmlParseElementContentDecl(xmlParserCtxtPtr ctxt,
-						 CHAR *name,
+						 xmlChar *name,
 						 xmlElementContentPtr *result);
 int			xmlParseElementDecl	(xmlParserCtxtPtr ctxt);
 void			xmlParseMarkupDecl	(xmlParserCtxtPtr ctxt);
@@ -594,24 +594,24 @@
 void			xmlParseReference	(xmlParserCtxtPtr ctxt);
 void			xmlParsePEReference	(xmlParserCtxtPtr ctxt);
 void			xmlParseDocTypeDecl	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseAttribute	(xmlParserCtxtPtr ctxt,
-						 CHAR **value);
-CHAR *			xmlParseStartTag	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseAttribute	(xmlParserCtxtPtr ctxt,
+						 xmlChar **value);
+xmlChar *			xmlParseStartTag	(xmlParserCtxtPtr ctxt);
 void			xmlParseEndTag		(xmlParserCtxtPtr ctxt,
-						 CHAR *tagname);
+						 xmlChar *tagname);
 void			xmlParseCDSect		(xmlParserCtxtPtr ctxt);
 void			xmlParseContent		(xmlParserCtxtPtr ctxt);
 void			xmlParseElement		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseVersionNum	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseVersionInfo	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseEncName		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseEncodingDecl	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseVersionNum	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseVersionInfo	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseEncName		(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseEncodingDecl	(xmlParserCtxtPtr ctxt);
 int			xmlParseSDDecl		(xmlParserCtxtPtr ctxt);
 void			xmlParseXMLDecl		(xmlParserCtxtPtr ctxt);
 void			xmlParseMisc		(xmlParserCtxtPtr ctxt);
 void			xmlParseExternalSubset	(xmlParserCtxtPtr ctxt,
-						 const CHAR *ExternalID,
-						 const CHAR *SystemID); 
+						 const xmlChar *ExternalID,
+						 const xmlChar *SystemID); 
 /*
  * Entities substitution
  */
@@ -620,12 +620,12 @@
 #define XML_SUBSTITUTE_PEREF	2
 #define XML_SUBSTITUTE_BOTH 	3
 
-CHAR *			xmlDecodeEntities	(xmlParserCtxtPtr ctxt,
+xmlChar *			xmlDecodeEntities	(xmlParserCtxtPtr ctxt,
 						 int len,
 						 int what,
-						 CHAR end,
-						 CHAR  end2,
-						 CHAR end3);
+						 xmlChar end,
+						 xmlChar  end2,
+						 xmlChar end3);
 
 /*
  * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index bf8a77e..bd29083 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -44,25 +44,32 @@
  * Currently we use 8bit chars internal representation for memory efficiency,
  * but the parser is not tied to that, just define UNICODE to switch to
  * a 16 bits internal representation. Note that with 8 bits wide
- * CHARs one can still use UTF-8 to handle correctly non ISO-Latin
+ * xmlChars one can still use UTF-8 to handle correctly non ISO-Latin
  * input.
  */
+
 #ifdef UNICODE
-typedef unsigned short CHAR;
+typedef unsigned short xmlChar;
 #else
-typedef unsigned char CHAR;
+typedef unsigned char xmlChar;
 #endif
 
-#define BAD_CAST (CHAR *)
+#ifndef WIN32
+#ifndef CHAR
+#define CHAR xmlChar
+#endif
+#endif
+
+#define BAD_CAST (xmlChar *)
 
 /*
  * a DTD Notation definition
  */
 
 typedef struct xmlNotation {
-    const CHAR               *name;	/* Notation name */
-    const CHAR               *PublicID;	/* Public identifier, if any */
-    const CHAR               *SystemID;	/* System identifier, if any */
+    const xmlChar               *name;	/* Notation name */
+    const xmlChar               *PublicID;	/* Public identifier, if any */
+    const xmlChar               *SystemID;	/* System identifier, if any */
 } xmlNotation;
 typedef xmlNotation *xmlNotationPtr;
 
@@ -92,17 +99,17 @@
 
 typedef struct xmlEnumeration {
     struct xmlEnumeration    *next;	/* next one */
-    const CHAR               *name;	/* Enumeration name */
+    const xmlChar               *name;	/* Enumeration name */
 } xmlEnumeration;
 typedef xmlEnumeration *xmlEnumerationPtr;
 
 typedef struct xmlAttribute {
-    const CHAR            *elem;	/* Element holding the attribute */
-    const CHAR            *name;	/* Attribute name */
+    const xmlChar            *elem;	/* Element holding the attribute */
+    const xmlChar            *name;	/* Attribute name */
     struct xmlAttribute   *next;        /* list of attributes of an element */
     xmlAttributeType       type;	/* The type */
     xmlAttributeDefault    def;		/* the default */
-    const CHAR            *defaultValue;/* or the default value */
+    const xmlChar            *defaultValue;/* or the default value */
     xmlEnumerationPtr      tree;        /* or the enumeration tree if any */
 } xmlAttribute;
 typedef xmlAttribute *xmlAttributePtr;
@@ -127,7 +134,7 @@
 typedef struct xmlElementContent {
     xmlElementContentType     type;	/* PCDATA, ELEMENT, SEQ or OR */
     xmlElementContentOccur    ocur;	/* ONCE, OPT, MULT or PLUS */
-    const CHAR               *name;	/* Element name */
+    const xmlChar               *name;	/* Element name */
     struct xmlElementContent *c1;	/* first child */
     struct xmlElementContent *c2;	/* second child */
 } xmlElementContent;
@@ -141,7 +148,7 @@
 } xmlElementTypeVal;
 
 typedef struct xmlElement {
-    const CHAR             *name;	/* Element name */
+    const xmlChar             *name;	/* Element name */
     xmlElementTypeVal       type;	/* The type */
     xmlElementContentPtr content;	/* the allowed element content */
     xmlAttributePtr   attributes;	/* List of the declared attributes */
@@ -162,8 +169,8 @@
 typedef struct xmlNs {
     struct xmlNs  *next;	/* next Ns link for this node  */
     xmlNsType      type;	/* global or local */
-    const CHAR    *href;	/* URL for the namespace */
-    const CHAR    *prefix;	/* prefix for the namespace */
+    const xmlChar    *href;	/* URL for the namespace */
+    const xmlChar    *prefix;	/* prefix for the namespace */
 } xmlNs;
 typedef xmlNs *xmlNsPtr;
 
@@ -171,9 +178,9 @@
  * An XML DtD, as defined by <!DOCTYPE.
  */
 typedef struct xmlDtd {
-    const CHAR    *name;	/* Name of the DTD */
-    const CHAR    *ExternalID;	/* External identifier for PUBLIC DTD */
-    const CHAR    *SystemID;	/* URI for a SYSTEM or PUBLIC DTD */
+    const xmlChar    *name;	/* Name of the DTD */
+    const xmlChar    *ExternalID;	/* External identifier for PUBLIC DTD */
+    const xmlChar    *SystemID;	/* URI for a SYSTEM or PUBLIC DTD */
     void          *notations;   /* Hash table for notations if any */
     void          *elements;    /* Hash table for elements if any */
     void          *attributes;  /* Hash table for attributes if any */
@@ -193,7 +200,7 @@
     xmlElementType  type;       /* XML_ATTRIBUTE_NODE, must be third ! */
     struct xmlNode *node;	/* attr->node link */
     struct xmlAttr *next;	/* attribute list link */
-    const CHAR     *name;       /* the name of the property */
+    const xmlChar     *name;       /* the name of the property */
     struct xmlNode *val;        /* the value of the property */
     xmlNs          *ns;         /* pointer to the associated namespace */
 } xmlAttr;
@@ -205,7 +212,7 @@
 
 typedef struct xmlID {
     struct xmlID     *next;	/* next ID */
-    const CHAR       *value;	/* The ID name */
+    const xmlChar       *value;	/* The ID name */
     xmlAttrPtr        attr;	/* The attribut holding it */
 } xmlID;
 typedef xmlID *xmlIDPtr;
@@ -216,7 +223,7 @@
 
 typedef struct xmlRef {
     struct xmlRef     *next;	/* next Ref */
-    const CHAR       *value;	/* The Ref name */
+    const xmlChar       *value;	/* The Ref name */
     xmlAttrPtr        attr;	/* The attribut holding it */
 } xmlRef;
 typedef xmlRef *xmlRefPtr;
@@ -237,10 +244,10 @@
     struct xmlNode *childs;	/* parent->childs link */
     struct xmlNode *last;	/* last child link */
     struct xmlAttr *properties;	/* properties list */
-    const CHAR     *name;       /* the name of the node, or the entity */
+    const xmlChar     *name;       /* the name of the node, or the entity */
     xmlNs          *ns;         /* pointer to the associated namespace */
     xmlNs          *nsDef;      /* namespace definitions on this node */
-    CHAR           *content;    /* the content */
+    xmlChar           *content;    /* the content */
 } _xmlNode;
 typedef _xmlNode xmlNode;
 typedef _xmlNode *xmlNodePtr;
@@ -255,8 +262,8 @@
 #endif
     xmlElementType  type;       /* XML_DOCUMENT_NODE, must be second ! */
     char           *name;	/* name/filename/URI of the document */
-    const CHAR     *version;	/* the XML version string */
-    const CHAR     *encoding;   /* encoding, if any */
+    const xmlChar     *version;	/* the XML version string */
+    const xmlChar     *encoding;   /* encoding, if any */
     int             compression;/* level of zlib compression */
     int             standalone; /* standalone document (no external refs) */
     struct xmlDtd  *intSubset;	/* the document internal subset */
@@ -274,7 +281,7 @@
  */
 
 typedef struct xmlBuffer {
-    CHAR *content;		/* The buffer content UTF8 */
+    xmlChar *content;		/* The buffer content UTF8 */
     unsigned int use;		/* The buffer size used */
     unsigned int size;		/* The buffer size */
 } _xmlBuffer;
@@ -297,10 +304,10 @@
 int		xmlBufferDump		(FILE *file,
 					 xmlBufferPtr buf);
 void		xmlBufferAdd		(xmlBufferPtr buf,
-					 const CHAR *str,
+					 const xmlChar *str,
 					 int len);
 void		xmlBufferCat		(xmlBufferPtr buf,
-					 const CHAR *str);
+					 const xmlChar *str);
 void		xmlBufferCCat		(xmlBufferPtr buf,
 					 const char *str);
 int		xmlBufferShrink		(xmlBufferPtr buf,
@@ -311,33 +318,33 @@
  * Creating/freeing new structures
  */
 xmlDtdPtr	xmlCreateIntSubset	(xmlDocPtr doc,
-					 const CHAR *name,
-					 const CHAR *ExternalID,
-					 const CHAR *SystemID);
+					 const xmlChar *name,
+					 const xmlChar *ExternalID,
+					 const xmlChar *SystemID);
 xmlDtdPtr	xmlNewDtd		(xmlDocPtr doc,
-					 const CHAR *name,
-					 const CHAR *ExternalID,
-					 const CHAR *SystemID);
+					 const xmlChar *name,
+					 const xmlChar *ExternalID,
+					 const xmlChar *SystemID);
 void		xmlFreeDtd		(xmlDtdPtr cur);
 xmlNsPtr	xmlNewGlobalNs		(xmlDocPtr doc,
-					 const CHAR *href,
-					 const CHAR *prefix);
+					 const xmlChar *href,
+					 const xmlChar *prefix);
 xmlNsPtr	xmlNewNs		(xmlNodePtr node,
-					 const CHAR *href,
-					 const CHAR *prefix);
+					 const xmlChar *href,
+					 const xmlChar *prefix);
 void		xmlFreeNs		(xmlNsPtr cur);
-xmlDocPtr xmlNewDoc			(const CHAR *version);
+xmlDocPtr xmlNewDoc			(const xmlChar *version);
 void		xmlFreeDoc		(xmlDocPtr cur);
 xmlAttrPtr	xmlNewDocProp		(xmlDocPtr doc,
-					 const CHAR *name,
-					 const CHAR *value);
+					 const xmlChar *name,
+					 const xmlChar *value);
 xmlAttrPtr	xmlNewProp		(xmlNodePtr node,
-					 const CHAR *name,
-					 const CHAR *value);
+					 const xmlChar *name,
+					 const xmlChar *value);
 xmlAttrPtr	xmlNewNsProp		(xmlNodePtr node,
 					 xmlNsPtr ns,
-					 const CHAR *name,
-					 const CHAR *value);
+					 const xmlChar *name,
+					 const xmlChar *value);
 void		xmlFreePropList		(xmlAttrPtr cur);
 void		xmlFreeProp		(xmlAttrPtr cur);
 xmlAttrPtr	xmlCopyProp		(xmlNodePtr target,
@@ -353,32 +360,32 @@
  */
 xmlNodePtr	xmlNewDocNode		(xmlDocPtr doc,
 					 xmlNsPtr ns,
-					 const CHAR *name,
-					 const CHAR *content);
+					 const xmlChar *name,
+					 const xmlChar *content);
 xmlNodePtr	xmlNewNode		(xmlNsPtr ns,
-					 const CHAR *name);
+					 const xmlChar *name);
 xmlNodePtr	xmlNewChild		(xmlNodePtr parent,
 					 xmlNsPtr ns,
-					 const CHAR *name,
-					 const CHAR *content);
+					 const xmlChar *name,
+					 const xmlChar *content);
 xmlNodePtr	xmlNewDocText		(xmlDocPtr doc,
-					 const CHAR *content);
-xmlNodePtr	xmlNewText		(const CHAR *content);
-xmlNodePtr	xmlNewPI		(const CHAR *name,
-					 const CHAR *content);
+					 const xmlChar *content);
+xmlNodePtr	xmlNewText		(const xmlChar *content);
+xmlNodePtr	xmlNewPI		(const xmlChar *name,
+					 const xmlChar *content);
 xmlNodePtr	xmlNewDocTextLen	(xmlDocPtr doc,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
-xmlNodePtr	xmlNewTextLen		(const CHAR *content,
+xmlNodePtr	xmlNewTextLen		(const xmlChar *content,
 					 int len);
 xmlNodePtr	xmlNewDocComment	(xmlDocPtr doc,
-					 const CHAR *content);
-xmlNodePtr	xmlNewComment		(const CHAR *content);
+					 const xmlChar *content);
+xmlNodePtr	xmlNewComment		(const xmlChar *content);
 xmlNodePtr	xmlNewCDataBlock	(xmlDocPtr doc,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
 xmlNodePtr	xmlNewReference		(xmlDocPtr doc,
-					 const CHAR *name);
+					 const xmlChar *name);
 xmlNodePtr	xmlCopyNode		(xmlNodePtr node,
 					 int recursive);
 xmlNodePtr	xmlCopyNodeList		(xmlNodePtr node);
@@ -400,7 +407,7 @@
 xmlNodePtr	xmlTextMerge		(xmlNodePtr first,
 					 xmlNodePtr second);
 void		xmlTextConcat		(xmlNodePtr node,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
 void		xmlFreeNodeList		(xmlNodePtr cur);
 void		xmlFreeNode		(xmlNodePtr cur);
@@ -410,10 +417,10 @@
  */
 xmlNsPtr	xmlSearchNs		(xmlDocPtr doc,
 					 xmlNodePtr node,
-					 const CHAR *nameSpace);
+					 const xmlChar *nameSpace);
 xmlNsPtr	xmlSearchNsByHref	(xmlDocPtr doc,
 					 xmlNodePtr node,
-					 const CHAR *href);
+					 const xmlChar *href);
 xmlNsPtr *	xmlGetNsList		(xmlDocPtr doc,
 					 xmlNodePtr node);
 void		xmlSetNs		(xmlNodePtr node,
@@ -425,32 +432,32 @@
  * Changing the content.
  */
 xmlAttrPtr	xmlSetProp		(xmlNodePtr node,
-					 const CHAR *name,
-					 const CHAR *value);
-CHAR *		xmlGetProp		(xmlNodePtr node,
-					 const CHAR *name);
+					 const xmlChar *name,
+					 const xmlChar *value);
+xmlChar *		xmlGetProp		(xmlNodePtr node,
+					 const xmlChar *name);
 xmlNodePtr	xmlStringGetNodeList	(xmlDocPtr doc,
-					 const CHAR *value);
+					 const xmlChar *value);
 xmlNodePtr	xmlStringLenGetNodeList	(xmlDocPtr doc,
-					 const CHAR *value,
+					 const xmlChar *value,
 					 int len);
-CHAR *		xmlNodeListGetString	(xmlDocPtr doc,
+xmlChar *		xmlNodeListGetString	(xmlDocPtr doc,
 					 xmlNodePtr list,
 					 int inLine);
 void		xmlNodeSetContent	(xmlNodePtr cur,
-					 const CHAR *content);
+					 const xmlChar *content);
 void		xmlNodeSetContentLen	(xmlNodePtr cur,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
 void		xmlNodeAddContent	(xmlNodePtr cur,
-					 const CHAR *content);
+					 const xmlChar *content);
 void		xmlNodeAddContentLen	(xmlNodePtr cur,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
-CHAR *		xmlNodeGetContent	(xmlNodePtr cur);
-const CHAR *	xmlNodeGetLang		(xmlNodePtr cur);
+xmlChar *		xmlNodeGetContent	(xmlNodePtr cur);
+const xmlChar *	xmlNodeGetLang		(xmlNodePtr cur);
 void		xmlNodeSetLang		(xmlNodePtr cur,
-					 const CHAR *lang);
+					 const xmlChar *lang);
 
 /*
  * Removing content.
@@ -462,17 +469,17 @@
  * Internal, don't use
  */
 void		xmlBufferWriteCHAR	(xmlBufferPtr buf,
-					 const CHAR *string);
+					 const xmlChar *string);
 void		xmlBufferWriteChar	(xmlBufferPtr buf,
 					 const char *string);
 void		xmlBufferWriteQuotedString(xmlBufferPtr buf,
-					 const CHAR *string);
+					 const xmlChar *string);
 
 /*
  * Saving
  */
 void		xmlDocDumpMemory	(xmlDocPtr cur,
-					 CHAR**mem,
+					 xmlChar**mem,
 					 int *size);
 void		xmlDocDump		(FILE *f,
 					 xmlDocPtr cur);
diff --git a/include/libxml/valid.h b/include/libxml/valid.h
index 22a2c27..30a2a32 100644
--- a/include/libxml/valid.h
+++ b/include/libxml/valid.h
@@ -105,16 +105,16 @@
 /* Notation */
 xmlNotationPtr	    xmlAddNotationDecl	(xmlValidCtxtPtr ctxt,
 					 xmlDtdPtr dtd,
-					 const CHAR *name,
-					 const CHAR *PublicID,
-					 const CHAR *SystemID);
+					 const xmlChar *name,
+					 const xmlChar *PublicID,
+					 const xmlChar *SystemID);
 xmlNotationTablePtr xmlCopyNotationTable(xmlNotationTablePtr table);
 void		    xmlFreeNotationTable(xmlNotationTablePtr table);
 void		    xmlDumpNotationTable(xmlBufferPtr buf,
 					 xmlNotationTablePtr table);
 
 /* Element Content */
-xmlElementContentPtr xmlNewElementContent (CHAR *name,
+xmlElementContentPtr xmlNewElementContent (xmlChar *name,
 					   xmlElementContentType type);
 xmlElementContentPtr xmlCopyElementContent(xmlElementContentPtr content);
 void		     xmlFreeElementContent(xmlElementContentPtr cur);
@@ -122,7 +122,7 @@
 /* Element */
 xmlElementPtr	   xmlAddElementDecl	(xmlValidCtxtPtr ctxt,
 					 xmlDtdPtr dtd,
-					 const CHAR *name,
+					 const xmlChar *name,
 					 xmlElementContentType type,
 					 xmlElementContentPtr content);
 xmlElementTablePtr xmlCopyElementTable	(xmlElementTablePtr table);
@@ -131,18 +131,18 @@
 					 xmlElementTablePtr table);
 
 /* Enumeration */
-xmlEnumerationPtr  xmlCreateEnumeration	(CHAR *name);
+xmlEnumerationPtr  xmlCreateEnumeration	(xmlChar *name);
 void		   xmlFreeEnumeration	(xmlEnumerationPtr cur);
 xmlEnumerationPtr  xmlCopyEnumeration	(xmlEnumerationPtr cur);
 
 /* Attribute */
 xmlAttributePtr	    xmlAddAttributeDecl	    (xmlValidCtxtPtr ctxt,
 					     xmlDtdPtr dtd,
-					     const CHAR *elem,
-					     const CHAR *name,
+					     const xmlChar *elem,
+					     const xmlChar *name,
 					     xmlAttributeType type,
 					     xmlAttributeDefault def,
-					     const CHAR *defaultValue,
+					     const xmlChar *defaultValue,
 					     xmlEnumerationPtr tree);
 xmlAttributeTablePtr xmlCopyAttributeTable  (xmlAttributeTablePtr table);
 void		     xmlFreeAttributeTable  (xmlAttributeTablePtr table);
@@ -152,12 +152,12 @@
 /* IDs */
 xmlIDPtr	xmlAddID	(xmlValidCtxtPtr ctxt,
 				 xmlDocPtr doc,
-				 const CHAR *value,
+				 const xmlChar *value,
 				 xmlAttrPtr attr);
 xmlIDTablePtr	xmlCopyIDTable	(xmlIDTablePtr table);
 void		xmlFreeIDTable	(xmlIDTablePtr table);
 xmlAttrPtr	xmlGetID	(xmlDocPtr doc,
-				 const CHAR *ID);
+				 const xmlChar *ID);
 int		xmlIsID		(xmlDocPtr doc,
 				 xmlNodePtr elem,
 				 xmlAttrPtr attr);
@@ -165,7 +165,7 @@
 /* IDREFs */
 xmlRefPtr	xmlAddRef	(xmlValidCtxtPtr ctxt,
 				 xmlDocPtr doc,
-				 const CHAR *value,
+				 const xmlChar *value,
 				 xmlAttrPtr attr);
 xmlRefTablePtr	xmlCopyRefTable	(xmlRefTablePtr table);
 void		xmlFreeRefTable	(xmlRefTablePtr table);
@@ -186,7 +186,7 @@
 					 xmlDocPtr doc,
 		                         xmlAttributePtr attr);
 int		xmlValidateAttributeValue(xmlAttributeType type,
-					 const CHAR *value);
+					 const xmlChar *value);
 int		xmlValidateNotationDecl	(xmlValidCtxtPtr ctxt,
 					 xmlDocPtr doc,
 		                         xmlNotationPtr nota);
@@ -205,21 +205,21 @@
 					 xmlDocPtr doc,
 					 xmlNodePtr	elem,
 					 xmlAttrPtr attr,
-					 const CHAR *value);
+					 const xmlChar *value);
 int		xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
 					 xmlDocPtr doc);
 int		xmlValidateNotationUse	(xmlValidCtxtPtr ctxt,
 					 xmlDocPtr doc,
-					 const CHAR *notationName);
+					 const xmlChar *notationName);
 int		xmlIsMixedElement	(xmlDocPtr doc,
-					 const CHAR *name);
+					 const xmlChar *name);
 xmlAttributePtr	xmlGetDtdAttrDesc	(xmlDtdPtr dtd,
-					 const CHAR *elem,
-					 const CHAR *name);
+					 const xmlChar *elem,
+					 const xmlChar *name);
 xmlNotationPtr	xmlGetDtdNotationDesc	(xmlDtdPtr dtd,
-					 const CHAR *name);
+					 const xmlChar *name);
 xmlElementPtr	xmlGetDtdElementDesc	(xmlDtdPtr dtd,
-					 const CHAR *name);
+					 const xmlChar *name);
 
 #ifdef __cplusplus
 }
diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h
index d46c063..9a082ce 100644
--- a/include/libxml/xpath.h
+++ b/include/libxml/xpath.h
@@ -46,7 +46,7 @@
     xmlNodeSetPtr nodesetval;
     int boolval;
     double floatval;
-    CHAR *stringval;
+    xmlChar *stringval;
     void *user;
 } xmlXPathObject, *xmlXPathObjectPtr;
 
@@ -61,7 +61,7 @@
  */
 
 typedef struct xmlXPathType {
-    const CHAR         *name;		/* the type name */
+    const xmlChar         *name;		/* the type name */
     xmlXPathConvertFunc func;		/* the conversion function */
 } xmlXPathType, *xmlXPathTypePtr;
 
@@ -70,7 +70,7 @@
  */
 
 typedef struct xmlXPathVariable {
-    const CHAR       *name;		/* the variable name */
+    const xmlChar       *name;		/* the variable name */
     xmlXPathObjectPtr value;		/* the value */
 } xmlXPathVariable, *xmlXPathVariablePtr;
 
@@ -85,7 +85,7 @@
  */
 
 typedef struct xmlXPathFunct {
-    const CHAR      *name;		/* the function name */
+    const xmlChar      *name;		/* the function name */
     xmlXPathEvalFunc func;		/* the evaluation function */
 } xmlXPathFunc, *xmlXPathFuncPtr;
 
@@ -103,7 +103,7 @@
  */
 
 typedef struct xmlXPathAxis {
-    const CHAR      *name;		/* the axis name */
+    const xmlChar      *name;		/* the axis name */
     xmlXPathAxisFunc func;		/* the search function */
 } xmlXPathAxis, *xmlXPathAxisPtr;
 
@@ -149,8 +149,8 @@
  * an xmlXPathContext, and the stack of objects.
  */
 typedef struct xmlXPathParserContext {
-    const CHAR *cur;			/* the current char being parsed */
-    const CHAR *base;			/* the full expression */
+    const xmlChar *cur;			/* the current char being parsed */
+    const xmlChar *base;			/* the full expression */
 
     int error;				/* error code */
 
@@ -179,16 +179,16 @@
  * Registering extensions to the expression language
  */
 /* TODO */ int	   xmlXPathRegisterType		(xmlXPathContextPtr ctxt,
-						 const CHAR *name,
+						 const xmlChar *name,
                                                  xmlXPathConvertFunc f);
 /* TODO */ int	   xmlXPathRegisterAxis		(xmlXPathContextPtr ctxt,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 xmlXPathAxisFunc f);
 /* TODO */ int	   xmlXPathRegisterFunc		(xmlXPathContextPtr ctxt,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 xmlXPathFunction f);
 /* TODO */ int	   xmlXPathRegisterVariable	(xmlXPathContextPtr ctxt,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 xmlXPathObject value);
 
 /**
@@ -196,10 +196,10 @@
  */
 xmlXPathContextPtr xmlXPathNewContext		(xmlDocPtr doc);
 void		   xmlXPathFreeContext		(xmlXPathContextPtr ctxt);
-xmlXPathObjectPtr  xmlXPathEval			(const CHAR *str,
+xmlXPathObjectPtr  xmlXPathEval			(const xmlChar *str,
 						 xmlXPathContextPtr ctxt);
 void		   xmlXPathFreeObject		(xmlXPathObjectPtr obj);
-xmlXPathObjectPtr  xmlXPathEvalExpression	(const CHAR *str,
+xmlXPathObjectPtr  xmlXPathEvalExpression	(const xmlChar *str,
 						 xmlXPathContextPtr ctxt);
 
 #endif /* ! __XML_XPATH_H__ */
diff --git a/libxml.spec.in b/libxml.spec.in
index b2fac0e..810362b 100644
--- a/libxml.spec.in
+++ b/libxml.spec.in
@@ -32,6 +32,13 @@
 
 %changelog
 
+* Thu Sep 23 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+- corrected the spec file alpha stuff
+- switched to version 1.7.1
+- Added validation, XPath, nanohttp, removed memory leaks
+- Renamed CHAR to xmlChar
+
 * Wed Jun  2 1999 Daniel Veillard <Daniel.Veillard@w3.org>
 
 - Switched to version 1.1: SAX extensions, better entities support, lots of
@@ -52,15 +59,13 @@
 # Needed for snapshot releases.
 if [ ! -f configure ]; then
 %ifarch alpha
-  CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --host=alpha-redhat-linux --prefix=%prefi
-x --sysconfdir="/etc"
+  CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --host=alpha-redhat-linux --prefix=%prefix --sysconfdir="/etc"
 %else
   CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --prefix=%prefix --sysconfdir="/etc"
 %endif
 else
 %ifarch alpha
-  CFLAGS="$RPM_OPT_FLAGS" ./configure --host=alpha-redhat-linux --prefix=%prefix
- --sysconfdir="/etc"
+  CFLAGS="$RPM_OPT_FLAGS" ./configure --host=alpha-redhat-linux --prefix=%prefix --sysconfdir="/etc"
 %else
   CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix --sysconfdir="/etc"
 %endif
diff --git a/parser.c b/parser.c
index e01f162..659af3f 100644
--- a/parser.c
+++ b/parser.c
@@ -90,7 +90,7 @@
  * This function refresh the input for the parser. It doesn't try to
  * preserve pointers to the input buffer, and discard already read data
  *
- * Returns the number of CHARs read, or -1 in case of error, 0 indicate the
+ * Returns the number of xmlChars read, or -1 in case of error, 0 indicate the
  * end of this entity
  */
 int
@@ -138,7 +138,7 @@
  * This function increase the input for the parser. It tries to
  * preserve pointers to the input buffer, and keep already read data
  *
- * Returns the number of CHARs read, or -1 in case of error, 0 indicate the
+ * Returns the number of xmlChars read, or -1 in case of error, 0 indicate the
  * end of this entity
  */
 int
@@ -277,15 +277,15 @@
  *
  * Dirty macros, i.e. one need to make assumption on the context to use them
  *
- *   CUR_PTR return the current pointer to the CHAR to be parsed.
- *   CUR     returns the current CHAR value, i.e. a 8 bit value if compiled
+ *   CUR_PTR return the current pointer to the xmlChar to be parsed.
+ *   CUR     returns the current xmlChar value, i.e. a 8 bit value if compiled
  *           in ISO-Latin or UTF-8, and the current 16 bit value if compiled
  *           in UNICODE mode. This should be used internally by the parser
  *           only to compare to ASCII values otherwise it would break when
  *           running with UTF-8 encoding.
- *   NXT(n)  returns the n'th next CHAR. Same as CUR is should be used only
+ *   NXT(n)  returns the n'th next xmlChar. Same as CUR is should be used only
  *           to compare on ASCII based substring.
- *   SKIP(n) Skip n CHAR, and must also be used only to skip ASCII defined
+ *   SKIP(n) Skip n xmlChar, and must also be used only to skip ASCII defined
  *           strings within the parser.
  *
  * Clean macros, not dependent of an ASCII context, expect UTF-8 encoding
@@ -351,9 +351,9 @@
  * xmlPopInput: the current input pointed by ctxt->input came to an end
  *          pop it and return the next char.
  *
- * Returns the current CHAR in the parser context
+ * Returns the current xmlChar in the parser context
  */
-CHAR
+xmlChar
 xmlPopInput(xmlParserCtxtPtr ctxt) {
     if (ctxt->inputNr == 1) return(0); /* End of main Input */
     xmlFreeInputStream(inputPop(ctxt));
@@ -390,7 +390,7 @@
     if (input->filename != NULL) xmlFree((char *) input->filename);
     if (input->directory != NULL) xmlFree((char *) input->directory);
     if ((input->free != NULL) && (input->base != NULL))
-        input->free((CHAR *) input->base);
+        input->free((xmlChar *) input->base);
     if (input->buf != NULL) 
         xmlFreeParserInputBuffer(input->buf);
     memset(input, -1, sizeof(xmlParserInput));
@@ -410,11 +410,11 @@
 
     input = (xmlParserInputPtr) xmlMalloc(sizeof(xmlParserInput));
     if (input == NULL) {
-        ctxt->errno = XML_ERR_NO_MEMORY;
+        ctxt->errNo = XML_ERR_NO_MEMORY;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, 
 	                     "malloc: couldn't allocate a new input stream\n");
-	ctxt->errno = XML_ERR_NO_MEMORY;
+	ctxt->errNo = XML_ERR_NO_MEMORY;
 	return(NULL);
     }
     input->filename = NULL;
@@ -444,17 +444,17 @@
     xmlParserInputPtr input;
 
     if (entity == NULL) {
-        ctxt->errno = XML_ERR_INTERNAL_ERROR;
+        ctxt->errNo = XML_ERR_INTERNAL_ERROR;
         if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	      "internal: xmlNewEntityInputStream entity = NULL\n");
-	ctxt->errno = XML_ERR_INTERNAL_ERROR;
+	ctxt->errNo = XML_ERR_INTERNAL_ERROR;
 	return(NULL);
     }
     if (entity->content == NULL) {
 	switch (entity->type) {
             case XML_EXTERNAL_GENERAL_UNPARSED_ENTITY:
-	        ctxt->errno = XML_ERR_UNPARSED_ENTITY;
+	        ctxt->errNo = XML_ERR_UNPARSED_ENTITY;
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		      "xmlNewEntityInputStream unparsed entity !\n");
@@ -469,13 +469,13 @@
 	  "Internal entity %s without content !\n", entity->name);
                 break;
             case XML_INTERNAL_PARAMETER_ENTITY:
-		ctxt->errno = XML_ERR_INTERNAL_ERROR;
+		ctxt->errNo = XML_ERR_INTERNAL_ERROR;
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 	  "Internal parameter entity %s without content !\n", entity->name);
                 break;
             case XML_INTERNAL_PREDEFINED_ENTITY:
-		ctxt->errno = XML_ERR_INTERNAL_ERROR;
+		ctxt->errNo = XML_ERR_INTERNAL_ERROR;
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 	      "Predefined entity %s without content !\n", entity->name);
@@ -487,7 +487,7 @@
     if (input == NULL) {
 	return(NULL);
     }
-    input->filename = (char *) entity->SystemID; /* TODO !!! char <- CHAR */
+    input->filename = (char *) entity->SystemID; /* TODO !!! char <- xmlChar */
     input->base = entity->content;
     input->cur = entity->content;
     return(input);
@@ -502,11 +502,11 @@
  * Returns the new input stream
  */
 xmlParserInputPtr
-xmlNewStringInputStream(xmlParserCtxtPtr ctxt, const CHAR *buffer) {
+xmlNewStringInputStream(xmlParserCtxtPtr ctxt, const xmlChar *buffer) {
     xmlParserInputPtr input;
 
     if (buffer == NULL) {
-	ctxt->errno = XML_ERR_INTERNAL_ERROR;
+	ctxt->errNo = XML_ERR_INTERNAL_ERROR;
         if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	      "internal: xmlNewStringInputStream string = NULL\n");
@@ -759,7 +759,7 @@
 	    else if ((CUR >= 'A') && (CUR <= 'F'))
 	        val = val * 16 + (CUR - 'A') + 10;
 	    else {
-		ctxt->errno = XML_ERR_INVALID_HEX_CHARREF;
+		ctxt->errNo = XML_ERR_INVALID_HEX_CHARREF;
 	        if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 		         "xmlParseCharRef: invalid hexadecimal value\n");
@@ -777,7 +777,7 @@
 	    if ((CUR >= '0') && (CUR <= '9')) 
 	        val = val * 10 + (CUR - '0');
 	    else {
-		ctxt->errno = XML_ERR_INVALID_DEC_CHARREF;
+		ctxt->errNo = XML_ERR_INVALID_DEC_CHARREF;
 	        if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 		         "xmlParseCharRef: invalid decimal value\n");
@@ -790,7 +790,7 @@
 	if (CUR == ';')
 	    NEXT;
     } else {
-	ctxt->errno = XML_ERR_INVALID_CHARREF;
+	ctxt->errNo = XML_ERR_INVALID_CHARREF;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	       "xmlParseCharRef: invalid value\n");
@@ -805,9 +805,9 @@
     if (IS_CHAR(val)) {
         return(val);
     } else {
-	ctxt->errno = XML_ERR_INVALID_CHAR;
+	ctxt->errNo = XML_ERR_INVALID_CHAR;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
-	    ctxt->sax->error(ctxt->userData, "CharRef: invalid CHAR value %d\n",
+	    ctxt->sax->error(ctxt->userData, "CharRef: invalid xmlChar value %d\n",
 	                     val);
 	ctxt->wellFormed = 0;
     }
@@ -840,7 +840,7 @@
 void
 xmlParserHandleReference(xmlParserCtxtPtr ctxt) {
     xmlParserInputPtr input;
-    CHAR *name;
+    xmlChar *name;
     xmlEntityPtr ent = NULL;
 
     if (ctxt->token != 0) return;
@@ -853,25 +853,25 @@
 	    case XML_PARSER_COMMENT:
 		return;
 	    case XML_PARSER_EOF:
-		ctxt->errno = XML_ERR_CHARREF_AT_EOF;
+		ctxt->errNo = XML_ERR_CHARREF_AT_EOF;
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, "CharRef at EOF\n");
 		ctxt->wellFormed = 0;
 		return;
 	    case XML_PARSER_PROLOG:
-		ctxt->errno = XML_ERR_CHARREF_IN_PROLOG;
+		ctxt->errNo = XML_ERR_CHARREF_IN_PROLOG;
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, "CharRef in prolog!\n");
 		ctxt->wellFormed = 0;
 		return;
 	    case XML_PARSER_EPILOG:
-		ctxt->errno = XML_ERR_CHARREF_IN_EPILOG;
+		ctxt->errNo = XML_ERR_CHARREF_IN_EPILOG;
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, "CharRef in epilog!\n");
 		ctxt->wellFormed = 0;
 		return;
 	    case XML_PARSER_DTD:
-		ctxt->errno = XML_ERR_CHARREF_IN_DTD;
+		ctxt->errNo = XML_ERR_CHARREF_IN_DTD;
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 		           "CharRef are forbiden in DTDs!\n");
@@ -904,19 +904,19 @@
         case XML_PARSER_COMMENT:
 	    return;
         case XML_PARSER_EOF:
-	    ctxt->errno = XML_ERR_ENTITYREF_AT_EOF;
+	    ctxt->errNo = XML_ERR_ENTITYREF_AT_EOF;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "Reference at EOF\n");
 	    ctxt->wellFormed = 0;
 	    return;
         case XML_PARSER_PROLOG:
-	    ctxt->errno = XML_ERR_ENTITYREF_IN_PROLOG;
+	    ctxt->errNo = XML_ERR_ENTITYREF_IN_PROLOG;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "Reference in prolog!\n");
 	    ctxt->wellFormed = 0;
 	    return;
         case XML_PARSER_EPILOG:
-	    ctxt->errno = XML_ERR_ENTITYREF_IN_EPILOG;
+	    ctxt->errNo = XML_ERR_ENTITYREF_IN_EPILOG;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "Reference in epilog!\n");
 	    ctxt->wellFormed = 0;
@@ -947,7 +947,7 @@
 	     */
 	    return;
         case XML_PARSER_DTD:
-	    ctxt->errno = XML_ERR_ENTITYREF_IN_DTD;
+	    ctxt->errNo = XML_ERR_ENTITYREF_IN_DTD;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, 
 		       "Entity references are forbiden in DTDs!\n");
@@ -960,7 +960,7 @@
     NEXT;
     name = xmlScanName(ctxt);
     if (name == NULL) {
-	ctxt->errno = XML_ERR_ENTITYREF_NO_NAME;
+	ctxt->errNo = XML_ERR_ENTITYREF_NO_NAME;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "Entity reference: no name\n");
 	ctxt->wellFormed = 0;
@@ -968,7 +968,7 @@
 	return;
     }
     if (NXT(xmlStrlen(name)) != ';') {
-	ctxt->errno = XML_ERR_ENTITYREF_SEMICOL_MISSING;
+	ctxt->errNo = XML_ERR_ENTITYREF_SEMICOL_MISSING;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, 
 	                     "Entity reference: ';' expected\n");
@@ -992,7 +992,7 @@
     if (ent == NULL)
 	ent = xmlGetPredefinedEntity(name);
     if (ent == NULL) {
-        ctxt->errno = XML_ERR_UNDECLARED_ENTITY;
+        ctxt->errNo = XML_ERR_UNDECLARED_ENTITY;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, 
 			     "Entity reference: entity %s not declared\n",
@@ -1007,7 +1007,7 @@
      * An entity reference must not contain the name of an unparsed entity
      */
     if (ent->type == XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) {
-        ctxt->errno = XML_ERR_UNPARSED_ENTITY;
+        ctxt->errNo = XML_ERR_UNPARSED_ENTITY;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, 
 			 "Entity reference to unparsed entity %s\n", name);
@@ -1059,7 +1059,7 @@
  */
 void
 xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
+    xmlChar *name;
     xmlEntityPtr entity = NULL;
     xmlParserInputPtr input;
 
@@ -1071,13 +1071,13 @@
         case XML_PARSER_COMMENT:
 	    return;
         case XML_PARSER_EOF:
-	    ctxt->errno = XML_ERR_PEREF_AT_EOF;
+	    ctxt->errNo = XML_ERR_PEREF_AT_EOF;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "PEReference at EOF\n");
 	    ctxt->wellFormed = 0;
 	    return;
         case XML_PARSER_PROLOG:
-	    ctxt->errno = XML_ERR_PEREF_IN_PROLOG;
+	    ctxt->errNo = XML_ERR_PEREF_IN_PROLOG;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "PEReference in prolog!\n");
 	    ctxt->wellFormed = 0;
@@ -1088,7 +1088,7 @@
 	    /* we just ignore it there */
 	    return;
         case XML_PARSER_EPILOG:
-	    ctxt->errno = XML_ERR_PEREF_IN_EPILOG;
+	    ctxt->errNo = XML_ERR_PEREF_IN_EPILOG;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "PEReference in epilog!\n");
 	    ctxt->wellFormed = 0;
@@ -1117,7 +1117,7 @@
     NEXT;
     name = xmlParseName(ctxt);
     if (name == NULL) {
-        ctxt->errno = XML_ERR_PEREF_NO_NAME;
+        ctxt->errNo = XML_ERR_PEREF_NO_NAME;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "xmlHandlePEReference: no name\n");
 	ctxt->wellFormed = 0;
@@ -1176,7 +1176,7 @@
 		}
 	    }
 	} else {
-	    ctxt->errno = XML_ERR_PEREF_SEMICOL_MISSING;
+	    ctxt->errNo = XML_ERR_PEREF_SEMICOL_MISSING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 				 "xmlHandlePEReference: expecting ';'\n");
@@ -1191,7 +1191,7 @@
  */
 #define growBuffer(buffer) {						\
     buffer##_size *= 2;							\
-    buffer = (CHAR *) xmlRealloc(buffer, buffer##_size * sizeof(CHAR));	\
+    buffer = (xmlChar *) xmlRealloc(buffer, buffer##_size * sizeof(xmlChar));	\
     if (buffer == NULL) {						\
 	perror("realloc failed");					\
 	exit(1);							\
@@ -1203,9 +1203,9 @@
  * @ctxt:  the parser context
  * @what:  combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF
  * @len:  the len to decode (in bytes !), -1 for no size limit
- * @end:  an end marker CHAR, 0 if none
- * @end2:  an end marker CHAR, 0 if none
- * @end3:  an end marker CHAR, 0 if none
+ * @end:  an end marker xmlChar, 0 if none
+ * @end2:  an end marker xmlChar, 0 if none
+ * @end3:  an end marker xmlChar, 0 if none
  * 
  * [67] Reference ::= EntityRef | CharRef
  *
@@ -1214,24 +1214,24 @@
  * Returns A newly allocated string with the substitution done. The caller
  *      must deallocate it !
  */
-CHAR *
+xmlChar *
 xmlDecodeEntities(xmlParserCtxtPtr ctxt, int len, int what,
-                  CHAR end, CHAR  end2, CHAR end3) {
-    CHAR *buffer = NULL;
+                  xmlChar end, xmlChar  end2, xmlChar end3) {
+    xmlChar *buffer = NULL;
     int buffer_size = 0;
-    CHAR *out = NULL;
+    xmlChar *out = NULL;
 
-    CHAR *current = NULL;
+    xmlChar *current = NULL;
     xmlEntityPtr ent;
     int nbchars = 0;
     unsigned int max = (unsigned int) len;
-    CHAR cur;
+    xmlChar cur;
 
     /*
      * allocate a translation buffer.
      */
     buffer_size = 1000;
-    buffer = (CHAR *) xmlMalloc(buffer_size * sizeof(CHAR));
+    buffer = (xmlChar *) xmlMalloc(buffer_size * sizeof(xmlChar));
     if (buffer == NULL) {
 	perror("xmlDecodeEntities: malloc failed");
 	return(NULL);
@@ -1267,7 +1267,7 @@
 		nbchars += 3 + xmlStrlen(ent->name);
 	    } else if (ent != NULL) {
 		int i = xmlStrlen(ent->name);
-		const CHAR *cur = ent->name;
+		const xmlChar *cur = ent->name;
 
 		nbchars += i + 2;
 		*out++ = '&';
@@ -1337,7 +1337,7 @@
 {
     switch (enc) {
         case XML_CHAR_ENCODING_ERROR:
-	    ctxt->errno = XML_ERR_UNKNOWN_ENCODING;
+	    ctxt->errNo = XML_ERR_UNKNOWN_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "encoding unknown\n");
 	    ctxt->wellFormed = 0;
@@ -1349,121 +1349,121 @@
 	    /* default encoding, no conversion should be needed */
             return;
         case XML_CHAR_ENCODING_UTF16LE:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding UTF16 little endian not supported\n");
             break;
         case XML_CHAR_ENCODING_UTF16BE:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding UTF16 big endian not supported\n");
             break;
         case XML_CHAR_ENCODING_UCS4LE:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding USC4 little endian not supported\n");
             break;
         case XML_CHAR_ENCODING_UCS4BE:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding USC4 big endian not supported\n");
             break;
         case XML_CHAR_ENCODING_EBCDIC:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding EBCDIC not supported\n");
             break;
         case XML_CHAR_ENCODING_UCS4_2143:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding UCS4 2143 not supported\n");
             break;
         case XML_CHAR_ENCODING_UCS4_3412:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding UCS4 3412 not supported\n");
             break;
         case XML_CHAR_ENCODING_UCS2:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding UCS2 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_1:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_1 ISO Latin 1 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_2:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_2 ISO Latin 2 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_3:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_3 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_4:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_4 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_5:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_5 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_6:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_6 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_7:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_7 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_8:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_8 not supported\n");
             break;
         case XML_CHAR_ENCODING_8859_9:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
 		  "char encoding ISO_8859_9 not supported\n");
             break;
         case XML_CHAR_ENCODING_2022_JP:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
             if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
                   "char encoding ISO-2022-JPnot supported\n");
             break;
         case XML_CHAR_ENCODING_SHIFT_JIS:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
             if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
                   "char encoding Shift_JISnot supported\n");
             break;
         case XML_CHAR_ENCODING_EUC_JP:
-	    ctxt->errno = XML_ERR_UNSUPPORTED_ENCODING;
+	    ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING;
             if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
                 ctxt->sax->error(ctxt->userData,
                   "char encoding EUC-JPnot supported\n");
@@ -1473,44 +1473,44 @@
 
 /************************************************************************
  *									*
- *		Commodity functions to handle CHARs			*
+ *		Commodity functions to handle xmlChars			*
  *									*
  ************************************************************************/
 
 /**
  * xmlStrndup:
- * @cur:  the input CHAR *
+ * @cur:  the input xmlChar *
  * @len:  the len of @cur
  *
- * a strndup for array of CHAR's
+ * a strndup for array of xmlChar's
  *
- * Returns a new CHAR * or NULL
+ * Returns a new xmlChar * or NULL
  */
-CHAR *
-xmlStrndup(const CHAR *cur, int len) {
-    CHAR *ret = xmlMalloc((len + 1) * sizeof(CHAR));
+xmlChar *
+xmlStrndup(const xmlChar *cur, int len) {
+    xmlChar *ret = xmlMalloc((len + 1) * sizeof(xmlChar));
 
     if (ret == NULL) {
         fprintf(stderr, "malloc of %ld byte failed\n",
-	        (len + 1) * (long)sizeof(CHAR));
+	        (len + 1) * (long)sizeof(xmlChar));
         return(NULL);
     }
-    memcpy(ret, cur, len * sizeof(CHAR));
+    memcpy(ret, cur, len * sizeof(xmlChar));
     ret[len] = 0;
     return(ret);
 }
 
 /**
  * xmlStrdup:
- * @cur:  the input CHAR *
+ * @cur:  the input xmlChar *
  *
- * a strdup for array of CHAR's
+ * a strdup for array of xmlChar's
  *
- * Returns a new CHAR * or NULL
+ * Returns a new xmlChar * or NULL
  */
-CHAR *
-xmlStrdup(const CHAR *cur) {
-    const CHAR *p = cur;
+xmlChar *
+xmlStrdup(const xmlChar *cur) {
+    const xmlChar *p = cur;
 
     while (IS_CHAR(*p)) p++;
     return(xmlStrndup(cur, p - cur));
@@ -1521,23 +1521,23 @@
  * @cur:  the input char *
  * @len:  the len of @cur
  *
- * a strndup for char's to CHAR's
+ * a strndup for char's to xmlChar's
  *
- * Returns a new CHAR * or NULL
+ * Returns a new xmlChar * or NULL
  */
 
-CHAR *
+xmlChar *
 xmlCharStrndup(const char *cur, int len) {
     int i;
-    CHAR *ret = xmlMalloc((len + 1) * sizeof(CHAR));
+    xmlChar *ret = xmlMalloc((len + 1) * sizeof(xmlChar));
 
     if (ret == NULL) {
         fprintf(stderr, "malloc of %ld byte failed\n",
-	        (len + 1) * (long)sizeof(CHAR));
+	        (len + 1) * (long)sizeof(xmlChar));
         return(NULL);
     }
     for (i = 0;i < len;i++)
-        ret[i] = (CHAR) cur[i];
+        ret[i] = (xmlChar) cur[i];
     ret[len] = 0;
     return(ret);
 }
@@ -1547,12 +1547,12 @@
  * @cur:  the input char *
  * @len:  the len of @cur
  *
- * a strdup for char's to CHAR's
+ * a strdup for char's to xmlChar's
  *
- * Returns a new CHAR * or NULL
+ * Returns a new xmlChar * or NULL
  */
 
-CHAR *
+xmlChar *
 xmlCharStrdup(const char *cur) {
     const char *p = cur;
 
@@ -1562,16 +1562,16 @@
 
 /**
  * xmlStrcmp:
- * @str1:  the first CHAR *
- * @str2:  the second CHAR *
+ * @str1:  the first xmlChar *
+ * @str2:  the second xmlChar *
  *
- * a strcmp for CHAR's
+ * a strcmp for xmlChar's
  *
  * Returns the integer result of the comparison
  */
 
 int
-xmlStrcmp(const CHAR *str1, const CHAR *str2) {
+xmlStrcmp(const xmlChar *str1, const xmlChar *str2) {
     register int tmp;
 
     do {
@@ -1583,17 +1583,17 @@
 
 /**
  * xmlStrncmp:
- * @str1:  the first CHAR *
- * @str2:  the second CHAR *
+ * @str1:  the first xmlChar *
+ * @str2:  the second xmlChar *
  * @len:  the max comparison length
  *
- * a strncmp for CHAR's
+ * a strncmp for xmlChar's
  *
  * Returns the integer result of the comparison
  */
 
 int
-xmlStrncmp(const CHAR *str1, const CHAR *str2, int len) {
+xmlStrncmp(const xmlChar *str1, const xmlChar *str2, int len) {
     register int tmp;
 
     if (len <= 0) return(0);
@@ -1608,18 +1608,18 @@
 
 /**
  * xmlStrchr:
- * @str:  the CHAR * array
- * @val:  the CHAR to search
+ * @str:  the xmlChar * array
+ * @val:  the xmlChar to search
  *
- * a strchr for CHAR's
+ * a strchr for xmlChar's
  *
- * Returns the CHAR * for the first occurence or NULL.
+ * Returns the xmlChar * for the first occurence or NULL.
  */
 
-const CHAR *
-xmlStrchr(const CHAR *str, CHAR val) {
+const xmlChar *
+xmlStrchr(const xmlChar *str, xmlChar val) {
     while (*str != 0) {
-        if (*str == val) return((CHAR *) str);
+        if (*str == val) return((xmlChar *) str);
 	str++;
     }
     return(NULL);
@@ -1627,16 +1627,16 @@
 
 /**
  * xmlStrstr:
- * @str:  the CHAR * array (haystack)
- * @val:  the CHAR to search (needle)
+ * @str:  the xmlChar * array (haystack)
+ * @val:  the xmlChar to search (needle)
  *
- * a strstr for CHAR's
+ * a strstr for xmlChar's
  *
- * Returns the CHAR * for the first occurence or NULL.
+ * Returns the xmlChar * for the first occurence or NULL.
  */
 
-const CHAR *
-xmlStrstr(const CHAR *str, CHAR *val) {
+const xmlChar *
+xmlStrstr(const xmlChar *str, xmlChar *val) {
     int n;
     
     if (str == NULL) return(NULL);
@@ -1646,7 +1646,7 @@
     if (n == 0) return(str);
     while (*str != 0) {
         if (*str == *val) {
-	    if (!xmlStrncmp(str, val, n)) return((const CHAR *) str);
+	    if (!xmlStrncmp(str, val, n)) return((const xmlChar *) str);
 	}
 	str++;
     }
@@ -1655,17 +1655,17 @@
 
 /**
  * xmlStrsub:
- * @str:  the CHAR * array (haystack)
+ * @str:  the xmlChar * array (haystack)
  * @start:  the index of the first char (zero based)
  * @len:  the length of the substring
  *
  * Extract a substring of a given string
  *
- * Returns the CHAR * for the first occurence or NULL.
+ * Returns the xmlChar * for the first occurence or NULL.
  */
 
-CHAR *
-xmlStrsub(const CHAR *str, int start, int len) {
+xmlChar *
+xmlStrsub(const xmlChar *str, int start, int len) {
     int i;
     
     if (str == NULL) return(NULL);
@@ -1682,15 +1682,15 @@
 
 /**
  * xmlStrlen:
- * @str:  the CHAR * array
+ * @str:  the xmlChar * array
  *
- * lenght of a CHAR's string
+ * lenght of a xmlChar's string
  *
- * Returns the number of CHAR contained in the ARRAY.
+ * Returns the number of xmlChar contained in the ARRAY.
  */
 
 int
-xmlStrlen(const CHAR *str) {
+xmlStrlen(const xmlChar *str) {
     int len = 0;
 
     if (str == NULL) return(0);
@@ -1703,19 +1703,19 @@
 
 /**
  * xmlStrncat:
- * @cur:  the original CHAR * array
- * @add:  the CHAR * array added
+ * @cur:  the original xmlChar * array
+ * @add:  the xmlChar * array added
  * @len:  the length of @add
  *
- * a strncat for array of CHAR's
+ * a strncat for array of xmlChar's
  *
- * Returns a new CHAR * containing the concatenated string.
+ * Returns a new xmlChar * containing the concatenated string.
  */
 
-CHAR *
-xmlStrncat(CHAR *cur, const CHAR *add, int len) {
+xmlChar *
+xmlStrncat(xmlChar *cur, const xmlChar *add, int len) {
     int size;
-    CHAR *ret;
+    xmlChar *ret;
 
     if ((add == NULL) || (len == 0))
         return(cur);
@@ -1723,29 +1723,29 @@
         return(xmlStrndup(add, len));
 
     size = xmlStrlen(cur);
-    ret = xmlRealloc(cur, (size + len + 1) * sizeof(CHAR));
+    ret = xmlRealloc(cur, (size + len + 1) * sizeof(xmlChar));
     if (ret == NULL) {
         fprintf(stderr, "xmlStrncat: realloc of %ld byte failed\n",
-	        (size + len + 1) * (long)sizeof(CHAR));
+	        (size + len + 1) * (long)sizeof(xmlChar));
         return(cur);
     }
-    memcpy(&ret[size], add, len * sizeof(CHAR));
+    memcpy(&ret[size], add, len * sizeof(xmlChar));
     ret[size + len] = 0;
     return(ret);
 }
 
 /**
  * xmlStrcat:
- * @cur:  the original CHAR * array
- * @add:  the CHAR * array added
+ * @cur:  the original xmlChar * array
+ * @add:  the xmlChar * array added
  *
- * a strcat for array of CHAR's
+ * a strcat for array of xmlChar's
  *
- * Returns a new CHAR * containing the concatenated string.
+ * Returns a new xmlChar * containing the concatenated string.
  */
-CHAR *
-xmlStrcat(CHAR *cur, const CHAR *add) {
-    const CHAR *p = add;
+xmlChar *
+xmlStrcat(xmlChar *cur, const xmlChar *add) {
+    const xmlChar *p = add;
 
     if (add == NULL) return(cur);
     if (cur == NULL) 
@@ -1764,7 +1764,7 @@
 /**
  * areBlanks:
  * @ctxt:  an XML parser context
- * @str:  a CHAR *
+ * @str:  a xmlChar *
  * @len:  the size of @str
  *
  * Is this a sequence of blank chars that one can ignore ?
@@ -1775,7 +1775,7 @@
  * Returns 1 if ignorable 0 otherwise.
  */
 
-static int areBlanks(xmlParserCtxtPtr ctxt, const CHAR *str, int len) {
+static int areBlanks(xmlParserCtxtPtr ctxt, const xmlChar *str, int len) {
     int i, ret;
     xmlNodePtr lastChild;
 
@@ -1820,7 +1820,7 @@
     xmlParserInputPtr input;
 
     if (entity->content == NULL) {
-	ctxt->errno = XML_ERR_INTERNAL_ERROR;
+	ctxt->errNo = XML_ERR_INTERNAL_ERROR;
         if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "xmlHandleEntity %s: content == NULL\n",
 	               entity->name);
@@ -1873,9 +1873,9 @@
  * Returns the namespace name or NULL
  */
 
-CHAR *
+xmlChar *
 xmlNamespaceParseNCName(xmlParserCtxtPtr ctxt) {
-    CHAR buf[XML_MAX_NAMELEN];
+    xmlChar buf[XML_MAX_NAMELEN];
     int len = 0;
 
     if (!IS_LETTER(CUR) && (CUR != '_')) return(NULL);
@@ -1905,7 +1905,7 @@
 /**
  * xmlNamespaceParseQName:
  * @ctxt:  an XML parser context
- * @prefix:  a CHAR ** 
+ * @prefix:  a xmlChar ** 
  *
  * parse an XML qualified name
  *
@@ -1919,9 +1919,9 @@
  *   to get the Prefix if any.
  */
 
-CHAR *
-xmlNamespaceParseQName(xmlParserCtxtPtr ctxt, CHAR **prefix) {
-    CHAR *ret = NULL;
+xmlChar *
+xmlNamespaceParseQName(xmlParserCtxtPtr ctxt, xmlChar **prefix) {
+    xmlChar *ret = NULL;
 
     *prefix = NULL;
     ret = xmlNamespaceParseNCName(ctxt);
@@ -1937,7 +1937,7 @@
 /**
  * xmlSplitQName:
  * @name:  an XML parser context
- * @prefix:  a CHAR ** 
+ * @prefix:  a xmlChar ** 
  *
  * parse an XML qualified name string
  *
@@ -1951,11 +1951,11 @@
  *   to get the Prefix if any.
  */
 
-CHAR *
-xmlSplitQName(const CHAR *name, CHAR **prefix) {
-    CHAR *ret = NULL;
-    const CHAR *q;
-    const CHAR *cur = name;
+xmlChar *
+xmlSplitQName(const xmlChar *name, xmlChar **prefix) {
+    xmlChar *ret = NULL;
+    const xmlChar *q;
+    const xmlChar *cur = name;
 
     *prefix = NULL;
 
@@ -2008,9 +2008,9 @@
  * Returns the namespace name
  */
 
-CHAR *
+xmlChar *
 xmlNamespaceParseNSDef(xmlParserCtxtPtr ctxt) {
-    CHAR *name = NULL;
+    xmlChar *name = NULL;
 
     if ((CUR == 'x') && (NXT(1) == 'm') &&
         (NXT(2) == 'l') && (NXT(3) == 'n') &&
@@ -2033,17 +2033,17 @@
  *
  * Returns the string parser or NULL.
  */
-CHAR *
+xmlChar *
 xmlParseQuotedString(xmlParserCtxtPtr ctxt) {
-    CHAR *ret = NULL;
-    const CHAR *q;
+    xmlChar *ret = NULL;
+    const xmlChar *q;
 
     if (CUR == '"') {
         NEXT;
 	q = CUR_PTR;
 	while (IS_CHAR(CUR) && (CUR != '"')) NEXT;
 	if (CUR != '"') {
-	    ctxt->errno = XML_ERR_STRING_NOT_CLOSED;
+	    ctxt->errNo = XML_ERR_STRING_NOT_CLOSED;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "String not closed \"%.50s\"\n", q);
 	    ctxt->wellFormed = 0;
@@ -2056,7 +2056,7 @@
 	q = CUR_PTR;
 	while (IS_CHAR(CUR) && (CUR != '\'')) NEXT;
 	if (CUR != '\'') {
-	    ctxt->errno = XML_ERR_STRING_NOT_CLOSED;
+	    ctxt->errNo = XML_ERR_STRING_NOT_CLOSED;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "String not closed \"%.50s\"\n", q);
 	    ctxt->wellFormed = 0;
@@ -2083,8 +2083,8 @@
 
 void
 xmlParseNamespace(xmlParserCtxtPtr ctxt) {
-    CHAR *href = NULL;
-    CHAR *prefix = NULL;
+    xmlChar *href = NULL;
+    xmlChar *prefix = NULL;
     int garbage = 0;
 
     /*
@@ -2156,7 +2156,7 @@
 		    ctxt->sax->error(ctxt->userData,
 		                     "xmlParseNamespace found garbage\n");
 	    }
-	    ctxt->errno = XML_ERR_NS_DECL_ERROR;
+	    ctxt->errNo = XML_ERR_NS_DECL_ERROR;
 	    ctxt->wellFormed = 0;
             NEXT;
         }
@@ -2200,9 +2200,9 @@
  * Returns the Name parsed or NULL
  */
 
-CHAR *
+xmlChar *
 xmlScanName(xmlParserCtxtPtr ctxt) {
-    CHAR buf[XML_MAX_NAMELEN];
+    xmlChar buf[XML_MAX_NAMELEN];
     int len = 0;
 
     GROW;
@@ -2249,11 +2249,11 @@
  * Returns the Name parsed or NULL
  */
 
-CHAR *
+xmlChar *
 xmlParseName(xmlParserCtxtPtr ctxt) {
-    CHAR buf[XML_MAX_NAMELEN];
+    xmlChar buf[XML_MAX_NAMELEN];
     int len = 0;
-    CHAR cur;
+    xmlChar cur;
 
     GROW;
     cur = CUR;
@@ -2300,9 +2300,9 @@
  * Returns the Nmtoken parsed or NULL
  */
 
-CHAR *
+xmlChar *
 xmlParseNmtoken(xmlParserCtxtPtr ctxt) {
-    CHAR buf[XML_MAX_NAMELEN];
+    xmlChar buf[XML_MAX_NAMELEN];
     int len = 0;
 
     GROW;
@@ -2341,12 +2341,12 @@
  * Returns the EntityValue parsed with reference substitued or NULL
  */
 
-CHAR *
-xmlParseEntityValue(xmlParserCtxtPtr ctxt, CHAR **orig) {
-    CHAR *ret = NULL;
-    const CHAR *org = NULL;
-    const CHAR *tst = NULL;
-    const CHAR *temp = NULL;
+xmlChar *
+xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) {
+    xmlChar *ret = NULL;
+    const xmlChar *org = NULL;
+    const xmlChar *tst = NULL;
+    const xmlChar *temp = NULL;
     xmlParserInputPtr input;
 
     SHRINK;
@@ -2386,12 +2386,12 @@
 		xmlPopInput(ctxt);
 
 	    if ((temp == NULL) && (tst == CUR_PTR)) {
-	        ret = xmlStrndup((CHAR *) "", 0);
+	        ret = xmlStrndup((xmlChar *) "", 0);
 	        break;
 	    }
 	    if ((temp[0] == 0) && (tst == CUR_PTR)) {
 	        xmlFree((char *)temp);
-	        ret = xmlStrndup((CHAR *) "", 0);
+	        ret = xmlStrndup((xmlChar *) "", 0);
 	        break;
 	    }
 	    ret = xmlStrcat(ret, temp);
@@ -2399,7 +2399,7 @@
 	    GROW;
 	}
         if (CUR != '"') {
-	    ctxt->errno = XML_ERR_ENTITY_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_ENTITY_NOT_FINISHED;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, "EntityValue: \" expected\n");
 	    ctxt->wellFormed = 0;
@@ -2407,7 +2407,7 @@
 	    if (orig != NULL) /* !!!!!!!!! */
 	        *orig = xmlStrndup(org, CUR_PTR - org);
 	    if (ret == NULL)
-		ret = xmlStrndup((CHAR *) "", 0);
+		ret = xmlStrndup((xmlChar *) "", 0);
 	    NEXT;
 	}
     } else if (CUR == '\'') {
@@ -2446,12 +2446,12 @@
 		xmlPopInput(ctxt);
 
 	    if ((temp == NULL) && (tst == CUR_PTR)) {
-	        ret = xmlStrndup((CHAR *) "", 0);
+	        ret = xmlStrndup((xmlChar *) "", 0);
 	        break;
 	    }
 	    if ((temp[0] == 0) && (tst == CUR_PTR)) {
 	        xmlFree((char *)temp);
-	        ret = xmlStrndup((CHAR *) "", 0);
+	        ret = xmlStrndup((xmlChar *) "", 0);
 	        break;
 	    }
 	    ret = xmlStrcat(ret, temp);
@@ -2459,7 +2459,7 @@
 	    GROW;
 	}
         if (CUR != '\'') {
-	    ctxt->errno = XML_ERR_ENTITY_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_ENTITY_NOT_FINISHED;
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, "EntityValue: ' expected\n");
 	    ctxt->wellFormed = 0;
@@ -2467,11 +2467,11 @@
 	    if (orig != NULL) /* !!!!!!!!! */
 	        *orig = xmlStrndup(org, CUR_PTR - org);
 	    if (ret == NULL)
-		ret = xmlStrndup((CHAR *) "", 0);
+		ret = xmlStrndup((xmlChar *) "", 0);
 	    NEXT;
 	}
     } else {
-	ctxt->errno = XML_ERR_ENTITY_NOT_STARTED;
+	ctxt->errNo = XML_ERR_ENTITY_NOT_STARTED;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "EntityValue: \" or ' expected\n");
 	ctxt->wellFormed = 0;
@@ -2494,9 +2494,9 @@
  * Returns the AttValue parsed or NULL.
  */
 
-CHAR *
+xmlChar *
 xmlParseAttValue(xmlParserCtxtPtr ctxt) {
-    CHAR *ret = NULL;
+    xmlChar *ret = NULL;
 
     SHRINK;
     if (CUR == '"') {
@@ -2507,13 +2507,13 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 		   "Unescaped '<' not allowed in attributes values\n");
-	    ctxt->errno = XML_ERR_LT_IN_ATTRIBUTE;
+	    ctxt->errNo = XML_ERR_LT_IN_ATTRIBUTE;
 	    ctxt->wellFormed = 0;
 	}
         if (CUR != '"') {
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, "AttValue: ' expected\n");
-	    ctxt->errno = XML_ERR_ATTRIBUTE_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_ATTRIBUTE_NOT_FINISHED;
 	    ctxt->wellFormed = 0;
 	} else
 	    NEXT;
@@ -2525,18 +2525,18 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 		   "Unescaped '<' not allowed in attributes values\n");
-	    ctxt->errno = XML_ERR_LT_IN_ATTRIBUTE;
+	    ctxt->errNo = XML_ERR_LT_IN_ATTRIBUTE;
 	    ctxt->wellFormed = 0;
 	}
         if (CUR != '\'') {
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, "AttValue: ' expected\n");
-	    ctxt->errno = XML_ERR_ATTRIBUTE_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_ATTRIBUTE_NOT_FINISHED;
 	    ctxt->wellFormed = 0;
 	} else
 	    NEXT;
     } else {
-	ctxt->errno = XML_ERR_ATTRIBUTE_NOT_STARTED;
+	ctxt->errNo = XML_ERR_ATTRIBUTE_NOT_STARTED;
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "AttValue: \" or ' expected\n");
 	ctxt->wellFormed = 0;
@@ -2556,10 +2556,10 @@
  * Returns the SystemLiteral parsed or NULL
  */
 
-CHAR *
+xmlChar *
 xmlParseSystemLiteral(xmlParserCtxtPtr ctxt) {
-    const CHAR *q;
-    CHAR *ret = NULL;
+    const xmlChar *q;
+    xmlChar *ret = NULL;
 
     SHRINK;
     if (CUR == '"') {
@@ -2570,7 +2570,7 @@
 	if (!IS_CHAR(CUR)) {
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "Unfinished SystemLiteral\n");
-	    ctxt->errno = XML_ERR_LITERAL_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_LITERAL_NOT_FINISHED;
 	    ctxt->wellFormed = 0;
 	} else {
 	    ret = xmlStrndup(q, CUR_PTR - q);
@@ -2584,7 +2584,7 @@
 	if (!IS_CHAR(CUR)) {
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "Unfinished SystemLiteral\n");
-	    ctxt->errno = XML_ERR_LITERAL_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_LITERAL_NOT_FINISHED;
 	    ctxt->wellFormed = 0;
 	} else {
 	    ret = xmlStrndup(q, CUR_PTR - q);
@@ -2594,7 +2594,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "SystemLiteral \" or ' expected\n");
-	ctxt->errno = XML_ERR_LITERAL_NOT_STARTED;
+	ctxt->errNo = XML_ERR_LITERAL_NOT_STARTED;
 	ctxt->wellFormed = 0;
     }
     
@@ -2612,10 +2612,10 @@
  * Returns the PubidLiteral parsed or NULL.
  */
 
-CHAR *
+xmlChar *
 xmlParsePubidLiteral(xmlParserCtxtPtr ctxt) {
-    const CHAR *q;
-    CHAR *ret = NULL;
+    const xmlChar *q;
+    xmlChar *ret = NULL;
     /*
      * Name ::= (Letter | '_') (NameChar)*
      */
@@ -2627,7 +2627,7 @@
 	if (CUR != '"') {
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "Unfinished PubidLiteral\n");
-	    ctxt->errno = XML_ERR_LITERAL_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_LITERAL_NOT_FINISHED;
 	    ctxt->wellFormed = 0;
 	} else {
 	    ret = xmlStrndup(q, CUR_PTR - q);
@@ -2641,7 +2641,7 @@
 	if (!IS_LETTER(CUR)) {
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "Unfinished PubidLiteral\n");
-	    ctxt->errno = XML_ERR_LITERAL_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_LITERAL_NOT_FINISHED;
 	    ctxt->wellFormed = 0;
 	} else {
 	    ret = xmlStrndup(q, CUR_PTR - q);
@@ -2651,7 +2651,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "SystemLiteral \" or ' expected\n");
-	ctxt->errno = XML_ERR_LITERAL_NOT_STARTED;
+	ctxt->errNo = XML_ERR_LITERAL_NOT_STARTED;
 	ctxt->wellFormed = 0;
     }
     
@@ -2671,9 +2671,9 @@
 
 void
 xmlParseCharData(xmlParserCtxtPtr ctxt, int cdata) {
-    CHAR buf[1000];
+    xmlChar buf[1000];
     int nbchar = 0;
-    CHAR cur;
+    xmlChar cur;
 
     SHRINK;
     /*
@@ -2691,7 +2691,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		       "Sequence ']]>' not allowed in content\n");
-		ctxt->errno = XML_ERR_MISPLACED_CDATA_END;
+		ctxt->errNo = XML_ERR_MISPLACED_CDATA_END;
 		ctxt->wellFormed = 0;
 	    }
 	}
@@ -2734,7 +2734,7 @@
 /**
  * xmlParseExternalID:
  * @ctxt:  an XML parser context
- * @publicID:  a CHAR** receiving PubidLiteral
+ * @publicID:  a xmlChar** receiving PubidLiteral
  * @strict: indicate whether we should restrict parsing to only
  *          production [75], see NOTE below
  *
@@ -2753,9 +2753,9 @@
  *                it is possible to return NULL and have publicID set.
  */
 
-CHAR *
-xmlParseExternalID(xmlParserCtxtPtr ctxt, CHAR **publicID, int strict) {
-    CHAR *URI = NULL;
+xmlChar *
+xmlParseExternalID(xmlParserCtxtPtr ctxt, xmlChar **publicID, int strict) {
+    xmlChar *URI = NULL;
 
     SHRINK;
     if ((CUR == 'S') && (NXT(1) == 'Y') &&
@@ -2766,7 +2766,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 		    "Space required after 'SYSTEM'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
         SKIP_BLANKS;
@@ -2775,7 +2775,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 	          "xmlParseExternalID: SYSTEM, no URI\n");
-	    ctxt->errno = XML_ERR_URI_REQUIRED;
+	    ctxt->errNo = XML_ERR_URI_REQUIRED;
 	    ctxt->wellFormed = 0;
         }
     } else if ((CUR == 'P') && (NXT(1) == 'U') &&
@@ -2786,7 +2786,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 		    "Space required after 'PUBLIC'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
         SKIP_BLANKS;
@@ -2795,7 +2795,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, 
 	          "xmlParseExternalID: PUBLIC, no Public Identifier\n");
-	    ctxt->errno = XML_ERR_PUBID_REQUIRED;
+	    ctxt->errNo = XML_ERR_PUBID_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
 	if (strict) {
@@ -2806,7 +2806,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 			"Space required after the Public Identifier\n");
-		ctxt->errno = XML_ERR_SPACE_REQUIRED;
+		ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 		ctxt->wellFormed = 0;
 	    }
 	} else {
@@ -2815,7 +2815,7 @@
 	     * "S SystemLiteral" is not detected. From a purely parsing
 	     * point of view that's a nice mess.
 	     */
-	    const CHAR *ptr = CUR_PTR;
+	    const xmlChar *ptr = CUR_PTR;
 	    if (!IS_BLANK(*ptr)) return(NULL);
 	    
 	    while (IS_BLANK(*ptr)) ptr++;
@@ -2827,7 +2827,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, 
 	           "xmlParseExternalID: PUBLIC, no URI\n");
-	    ctxt->errno = XML_ERR_URI_REQUIRED;
+	    ctxt->errNo = XML_ERR_URI_REQUIRED;
 	    ctxt->wellFormed = 0;
         }
     }
@@ -2846,9 +2846,9 @@
  */
 void
 xmlParseComment(xmlParserCtxtPtr ctxt) {
-    const CHAR *q, *start;
-    const CHAR *r;
-    CHAR *val;
+    const xmlChar *q, *start;
+    const xmlChar *r;
+    xmlChar *val;
 
     /*
      * Check that there is a comment right here.
@@ -2870,7 +2870,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 	       "Comment must not contain '--' (double-hyphen)`\n");
-	    ctxt->errno = XML_ERR_HYPHEN_IN_COMMENT;
+	    ctxt->errNo = XML_ERR_HYPHEN_IN_COMMENT;
 	    ctxt->wellFormed = 0;
 	}
         NEXT;r++;q++;
@@ -2879,7 +2879,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "Comment not terminated \n<!--%.50s\n", start);
-	ctxt->errno = XML_ERR_COMMENT_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_COMMENT_NOT_FINISHED;
 	ctxt->wellFormed = 0;
     } else {
         NEXT;
@@ -2901,9 +2901,9 @@
  * Returns the PITarget name or NULL
  */
 
-CHAR *
+xmlChar *
 xmlParsePITarget(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
+    xmlChar *name;
 
     name = xmlParseName(ctxt);
     if ((name != NULL) && (name[3] == 0) &&
@@ -2913,7 +2913,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) {
 	    ctxt->sax->error(ctxt->userData,
 	         "xmlParsePItarget: invalid name prefix 'xml'\n");
-	    ctxt->errno = XML_ERR_RESERVED_XML_NAME;
+	    ctxt->errNo = XML_ERR_RESERVED_XML_NAME;
 	    /* ctxt->wellFormed = 0; !!! ? */
 	}
 	return(NULL);
@@ -2934,7 +2934,7 @@
 
 void
 xmlParsePI(xmlParserCtxtPtr ctxt) {
-    CHAR *target;
+    xmlChar *target;
 
     if ((CUR == '<') && (NXT(1) == '?')) {
 	/*
@@ -2949,13 +2949,13 @@
 	 */
         target = xmlParsePITarget(ctxt);
 	if (target != NULL) {
-	    const CHAR *q;
+	    const xmlChar *q;
 
 	    if (!IS_BLANK(CUR)) {
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		      "xmlParsePI: PI %s space expected\n", target);
-		ctxt->errno = XML_ERR_SPACE_REQUIRED;
+		ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 		ctxt->wellFormed = 0;
 	    }
             SKIP_BLANKS;
@@ -2967,10 +2967,10 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		      "xmlParsePI: PI %s never end ...\n", target);
-		ctxt->errno = XML_ERR_PI_NOT_FINISHED;
+		ctxt->errNo = XML_ERR_PI_NOT_FINISHED;
 		ctxt->wellFormed = 0;
 	    } else {
-		CHAR *data;
+		xmlChar *data;
 
 		data = xmlStrndup(q, CUR_PTR - q);
 		SKIP(2);
@@ -2989,7 +2989,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		       "xmlParsePI : no target name\n");
-	    ctxt->errno = XML_ERR_PI_NOT_STARTED;
+	    ctxt->errNo = XML_ERR_PI_NOT_STARTED;
 	    ctxt->wellFormed = 0;
 	}
     }
@@ -3013,9 +3013,9 @@
 
 void
 xmlParseNotationDecl(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
-    CHAR *Pubid;
-    CHAR *Systemid;
+    xmlChar *name;
+    xmlChar *Pubid;
+    xmlChar *Systemid;
     
     if ((CUR == '<') && (NXT(1) == '!') &&
         (NXT(2) == 'N') && (NXT(3) == 'O') &&
@@ -3028,7 +3028,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 		                 "Space required after '<!NOTATION'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	    return;
 	}
@@ -3039,7 +3039,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		                 "NOTATION: Name expected here\n");
-	    ctxt->errno = XML_ERR_NOTATION_NOT_STARTED;
+	    ctxt->errNo = XML_ERR_NOTATION_NOT_STARTED;
 	    ctxt->wellFormed = 0;
 	    return;
 	}
@@ -3047,7 +3047,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, 
 		     "Space required after the NOTATION name'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	    return;
 	}
@@ -3067,7 +3067,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 		       "'>' required to close NOTATION declaration\n");
-	    ctxt->errno = XML_ERR_NOTATION_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_NOTATION_NOT_FINISHED;
 	    ctxt->wellFormed = 0;
 	}
 	xmlFree(name);
@@ -3100,12 +3100,12 @@
 
 void
 xmlParseEntityDecl(xmlParserCtxtPtr ctxt) {
-    CHAR *name = NULL;
-    CHAR *value = NULL;
-    CHAR *URI = NULL, *literal = NULL;
-    CHAR *ndata = NULL;
+    xmlChar *name = NULL;
+    xmlChar *value = NULL;
+    xmlChar *URI = NULL, *literal = NULL;
+    xmlChar *ndata = NULL;
     int isParameter = 0;
-    CHAR *orig = NULL;
+    xmlChar *orig = NULL;
     
     GROW;
     if ((CUR == '<') && (NXT(1) == '!') &&
@@ -3119,7 +3119,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 		                 "Space required after '<!ENTITY'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
 	SKIP_BLANKS;
@@ -3130,7 +3130,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		                     "Space required after '%'\n");
-		ctxt->errno = XML_ERR_SPACE_REQUIRED;
+		ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 		ctxt->wellFormed = 0;
 	    }
 	    SKIP_BLANKS;
@@ -3141,7 +3141,7 @@
 	if (name == NULL) {
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, "xmlParseEntityDecl: no name\n");
-	    ctxt->errno = XML_ERR_NAME_REQUIRED;
+	    ctxt->errNo = XML_ERR_NAME_REQUIRED;
 	    ctxt->wellFormed = 0;
             return;
 	}
@@ -3149,7 +3149,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData,
 		     "Space required after the entity name\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
         SKIP_BLANKS;
@@ -3188,7 +3188,7 @@
 		    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			ctxt->sax->error(ctxt->userData,
 			    "Space required before 'NDATA'\n");
-		    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+		    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 		    ctxt->wellFormed = 0;
 		}
 		SKIP_BLANKS;
@@ -3200,7 +3200,7 @@
 			if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			    ctxt->sax->error(ctxt->userData,
 			        "Space required after 'NDATA'\n");
-			ctxt->errno = XML_ERR_SPACE_REQUIRED;
+			ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 			ctxt->wellFormed = 0;
 		    }
 		    SKIP_BLANKS;
@@ -3222,7 +3222,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, 
 	            "xmlParseEntityDecl: entity %s not terminated\n", name);
-	    ctxt->errno = XML_ERR_ENTITY_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_ENTITY_NOT_FINISHED;
 	    ctxt->wellFormed = 0;
 	} else
 	    NEXT;
@@ -3287,9 +3287,9 @@
  */
 
 int
-xmlParseDefaultDecl(xmlParserCtxtPtr ctxt, CHAR **value) {
+xmlParseDefaultDecl(xmlParserCtxtPtr ctxt, xmlChar **value) {
     int val;
-    CHAR *ret;
+    xmlChar *ret;
 
     *value = NULL;
     if ((CUR == '#') && (NXT(1) == 'R') &&
@@ -3317,7 +3317,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		                 "Space required after '#FIXED'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
 	SKIP_BLANKS;
@@ -3353,14 +3353,14 @@
 
 xmlEnumerationPtr
 xmlParseNotationType(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
+    xmlChar *name;
     xmlEnumerationPtr ret = NULL, last = NULL, cur;
 
     if (CUR != '(') {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "'(' required to start 'NOTATION'\n");
-	ctxt->errno = XML_ERR_NOTATION_NOT_STARTED;
+	ctxt->errNo = XML_ERR_NOTATION_NOT_STARTED;
 	ctxt->wellFormed = 0;
 	return(NULL);
     }
@@ -3373,7 +3373,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, 
 		                 "Name expected in NOTATION declaration\n");
-	    ctxt->errno = XML_ERR_NAME_REQUIRED;
+	    ctxt->errNo = XML_ERR_NAME_REQUIRED;
 	    ctxt->wellFormed = 0;
 	    return(ret);
 	}
@@ -3391,7 +3391,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "')' required to finish NOTATION declaration\n");
-	ctxt->errno = XML_ERR_NOTATION_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_NOTATION_NOT_FINISHED;
 	ctxt->wellFormed = 0;
 	return(ret);
     }
@@ -3416,14 +3416,14 @@
 
 xmlEnumerationPtr
 xmlParseEnumerationType(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
+    xmlChar *name;
     xmlEnumerationPtr ret = NULL, last = NULL, cur;
 
     if (CUR != '(') {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "'(' required to start ATTLIST enumeration\n");
-	ctxt->errno = XML_ERR_ATTLIST_NOT_STARTED;
+	ctxt->errNo = XML_ERR_ATTLIST_NOT_STARTED;
 	ctxt->wellFormed = 0;
 	return(NULL);
     }
@@ -3436,7 +3436,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, 
 		                 "NmToken expected in ATTLIST enumeration\n");
-	    ctxt->errno = XML_ERR_NMTOKEN_REQUIRED;
+	    ctxt->errNo = XML_ERR_NMTOKEN_REQUIRED;
 	    ctxt->wellFormed = 0;
 	    return(ret);
 	}
@@ -3454,7 +3454,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "')' required to finish ATTLIST enumeration\n");
-	ctxt->errno = XML_ERR_ATTLIST_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_ATTLIST_NOT_FINISHED;
 	ctxt->wellFormed = 0;
 	return(ret);
     }
@@ -3488,7 +3488,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		                 "Space required after 'NOTATION'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	    return(0);
 	}
@@ -3608,8 +3608,8 @@
  */
 void
 xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt) {
-    CHAR *elemName;
-    CHAR *attrName;
+    xmlChar *elemName;
+    xmlChar *attrName;
     xmlEnumerationPtr tree;
 
     if ((CUR == '<') && (NXT(1) == '!') &&
@@ -3622,7 +3622,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		                 "Space required after '<!ATTLIST'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
         SKIP_BLANKS;
@@ -3631,16 +3631,16 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		                 "ATTLIST: no name for Element\n");
-	    ctxt->errno = XML_ERR_NAME_REQUIRED;
+	    ctxt->errNo = XML_ERR_NAME_REQUIRED;
 	    ctxt->wellFormed = 0;
 	    return;
 	}
 	SKIP_BLANKS;
 	while (CUR != '>') {
-	    const CHAR *check = CUR_PTR;
+	    const xmlChar *check = CUR_PTR;
 	    int type;
 	    int def;
-	    CHAR *defaultValue = NULL;
+	    xmlChar *defaultValue = NULL;
 
             tree = NULL;
 	    attrName = xmlParseName(ctxt);
@@ -3648,7 +3648,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		                     "ATTLIST: no name for Attribute\n");
-		ctxt->errno = XML_ERR_NAME_REQUIRED;
+		ctxt->errNo = XML_ERR_NAME_REQUIRED;
 		ctxt->wellFormed = 0;
 		break;
 	    }
@@ -3657,7 +3657,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 		        "Space required after the attribute name\n");
-		ctxt->errno = XML_ERR_SPACE_REQUIRED;
+		ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 		ctxt->wellFormed = 0;
 		break;
 	    }
@@ -3671,7 +3671,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 		        "Space required after the attribute type\n");
-		ctxt->errno = XML_ERR_SPACE_REQUIRED;
+		ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 		ctxt->wellFormed = 0;
 		break;
 	    }
@@ -3686,7 +3686,7 @@
 		    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			ctxt->sax->error(ctxt->userData, 
 			"Space required after the attribute default value\n");
-		    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+		    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 		    ctxt->wellFormed = 0;
 		    break;
 		}
@@ -3696,7 +3696,7 @@
 	        if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 		    "xmlParseAttributeListDecl: detected internal error\n");
-		ctxt->errno = XML_ERR_INTERNAL_ERROR;
+		ctxt->errNo = XML_ERR_INTERNAL_ERROR;
 		break;
 	    }
 	    if ((ctxt->sax != NULL) && (ctxt->sax->attributeDecl != NULL))
@@ -3736,7 +3736,7 @@
 xmlElementContentPtr
 xmlParseElementMixedContentDecl(xmlParserCtxtPtr ctxt) {
     xmlElementContentPtr ret = NULL, cur = NULL, n;
-    CHAR *elem = NULL;
+    xmlChar *elem = NULL;
 
     GROW;
     if ((CUR == '#') && (NXT(1) == 'P') &&
@@ -3776,7 +3776,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 			"xmlParseElementMixedContentDecl : Name expected\n");
-		ctxt->errno = XML_ERR_NAME_REQUIRED;
+		ctxt->errNo = XML_ERR_NAME_REQUIRED;
 		ctxt->wellFormed = 0;
 		xmlFreeElementContent(cur);
 		return(NULL);
@@ -3797,7 +3797,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, 
 		    "xmlParseElementMixedContentDecl : '|' or ')*' expected\n");
-	    ctxt->errno = XML_ERR_MIXED_NOT_STARTED;
+	    ctxt->errNo = XML_ERR_MIXED_NOT_STARTED;
 	    ctxt->wellFormed = 0;
 	    xmlFreeElementContent(ret);
 	    return(NULL);
@@ -3807,7 +3807,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, 
 		"xmlParseElementMixedContentDecl : '#PCDATA' expected\n");
-	ctxt->errno = XML_ERR_PCDATA_REQUIRED;
+	ctxt->errNo = XML_ERR_PCDATA_REQUIRED;
 	ctxt->wellFormed = 0;
     }
     return(ret);
@@ -3846,8 +3846,8 @@
 xmlElementContentPtr
 xmlParseElementChildrenContentDecl(xmlParserCtxtPtr ctxt) {
     xmlElementContentPtr ret = NULL, cur = NULL, last = NULL, op = NULL;
-    CHAR *elem;
-    CHAR type = 0;
+    xmlChar *elem;
+    xmlChar type = 0;
 
     SKIP_BLANKS;
     GROW;
@@ -3864,7 +3864,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, 
 		"xmlParseElementChildrenContentDecl : Name or '(' expected\n");
-	    ctxt->errno = XML_ERR_ELEMCONTENT_NOT_STARTED;
+	    ctxt->errNo = XML_ERR_ELEMCONTENT_NOT_STARTED;
 	    ctxt->wellFormed = 0;
 	    return(NULL);
 	}
@@ -3902,7 +3902,7 @@
 		    ctxt->sax->error(ctxt->userData, 
 		    "xmlParseElementChildrenContentDecl : '%c' expected\n",
 		    type);
-		ctxt->errno = XML_ERR_SEPARATOR_REQUIRED;
+		ctxt->errNo = XML_ERR_SEPARATOR_REQUIRED;
 		ctxt->wellFormed = 0;
 		xmlFreeElementContent(ret);
 		return(NULL);
@@ -3934,7 +3934,7 @@
 		    ctxt->sax->error(ctxt->userData, 
 		    "xmlParseElementChildrenContentDecl : '%c' expected\n",
 		    type);
-		ctxt->errno = XML_ERR_SEPARATOR_REQUIRED;
+		ctxt->errNo = XML_ERR_SEPARATOR_REQUIRED;
 		ctxt->wellFormed = 0;
 		xmlFreeElementContent(ret);
 		return(NULL);
@@ -3960,7 +3960,7 @@
 		ctxt->sax->error(ctxt->userData, 
 	    "xmlParseElementChildrenContentDecl : ',' '|' or ')' expected\n");
 	    ctxt->wellFormed = 0;
-	    ctxt->errno = XML_ERR_ELEMCONTENT_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_ELEMCONTENT_NOT_FINISHED;
 	    xmlFreeElementContent(ret);
 	    return(NULL);
 	}
@@ -3979,7 +3979,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 		"xmlParseElementChildrenContentDecl : Name or '(' expected\n");
-		ctxt->errno = XML_ERR_ELEMCONTENT_NOT_STARTED;
+		ctxt->errNo = XML_ERR_ELEMCONTENT_NOT_STARTED;
 		ctxt->wellFormed = 0;
 		return(NULL);
 	    }
@@ -4033,7 +4033,7 @@
  */
 
 int
-xmlParseElementContentDecl(xmlParserCtxtPtr ctxt, CHAR *name,
+xmlParseElementContentDecl(xmlParserCtxtPtr ctxt, xmlChar *name,
                            xmlElementContentPtr *result) {
 
     xmlElementContentPtr tree = NULL;
@@ -4045,7 +4045,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, 
 		"xmlParseElementContentDecl : '(' expected\n");
-	ctxt->errno = XML_ERR_ELEMCONTENT_NOT_STARTED;
+	ctxt->errNo = XML_ERR_ELEMCONTENT_NOT_STARTED;
 	ctxt->wellFormed = 0;
 	return(-1);
     }
@@ -4091,7 +4091,7 @@
  */
 int
 xmlParseElementDecl(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
+    xmlChar *name;
     int ret = -1;
     xmlElementContentPtr content  = NULL;
 
@@ -4106,7 +4106,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, 
 		    "Space required after 'ELEMENT'\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
         SKIP_BLANKS;
@@ -4115,7 +4115,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		   "xmlParseElementDecl: no name for Element\n");
-	    ctxt->errno = XML_ERR_NAME_REQUIRED;
+	    ctxt->errNo = XML_ERR_NAME_REQUIRED;
 	    ctxt->wellFormed = 0;
 	    return(-1);
 	}
@@ -4123,7 +4123,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		ctxt->sax->error(ctxt->userData, 
 		    "Space required after the element name\n");
-	    ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	    ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	    ctxt->wellFormed = 0;
 	}
         SKIP_BLANKS;
@@ -4153,12 +4153,12 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 	  "PEReference: forbidden within markup decl in internal subset\n");
-		ctxt->errno = XML_ERR_PEREF_IN_INT_SUBSET;
+		ctxt->errNo = XML_ERR_PEREF_IN_INT_SUBSET;
 	    } else {
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, 
 		      "xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected\n");
-		ctxt->errno = XML_ERR_ELEMCONTENT_NOT_STARTED;
+		ctxt->errNo = XML_ERR_ELEMCONTENT_NOT_STARTED;
             }
 	    ctxt->wellFormed = 0;
 	    if (name != NULL) xmlFree(name);
@@ -4169,7 +4169,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, 
 	          "xmlParseElementDecl: expected '>' at the end\n");
-	    ctxt->errno = XML_ERR_GT_REQUIRED;
+	    ctxt->errNo = XML_ERR_GT_REQUIRED;
 	    ctxt->wellFormed = 0;
 	} else {
 	    NEXT;
@@ -4238,10 +4238,10 @@
  * Returns the only valuable info for an external parsed entity, the encoding
  */
 
-CHAR *
+xmlChar *
 xmlParseTextDecl(xmlParserCtxtPtr ctxt) {
-    CHAR *version;
-    CHAR *encoding = NULL;
+    xmlChar *version;
+    xmlChar *encoding = NULL;
 
     /*
      * We know that '<?xml' is here.
@@ -4252,7 +4252,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "Space needed after '<?xml'\n");
-	ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	ctxt->wellFormed = 0;
     }
     SKIP_BLANKS;
@@ -4272,7 +4272,7 @@
     if (!IS_BLANK(CUR)) {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "Space needed here\n");
-	ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	ctxt->wellFormed = 0;
     }
     encoding = xmlParseEncodingDecl(ctxt);
@@ -4285,14 +4285,14 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "XML declaration must end-up with '?>'\n");
-	ctxt->errno = XML_ERR_XMLDECL_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_XMLDECL_NOT_FINISHED;
 	ctxt->wellFormed = 0;
 	NEXT;
     } else {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "parsing XML declaration: '?>' expected\n");
-	ctxt->errno = XML_ERR_XMLDECL_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_XMLDECL_NOT_FINISHED;
 	ctxt->wellFormed = 0;
 	MOVETO_ENDTAG(CUR_PTR);
 	NEXT;
@@ -4327,7 +4327,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	        "XML conditional section not closed\n");
-	ctxt->errno = XML_ERR_CONDSEC_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_CONDSEC_NOT_FINISHED;
 	ctxt->wellFormed = 0;
     }
 }
@@ -4343,8 +4343,8 @@
  * [31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) *
  */
 void
-xmlParseExternalSubset(xmlParserCtxtPtr ctxt, const CHAR *ExternalID,
-                       const CHAR *SystemID) {
+xmlParseExternalSubset(xmlParserCtxtPtr ctxt, const xmlChar *ExternalID,
+                       const xmlChar *SystemID) {
     if ((CUR == '<') && (NXT(1) == '?') &&
         (NXT(2) == 'x') && (NXT(3) == 'm') &&
 	(NXT(4) == 'l')) {
@@ -4361,7 +4361,7 @@
     while (((CUR == '<') && (NXT(1) == '?')) ||
            ((CUR == '<') && (NXT(1) == '!')) ||
            IS_BLANK(CUR)) {
-	const CHAR *check = CUR_PTR;
+	const xmlChar *check = CUR_PTR;
 	int cons = ctxt->input->consumed;
 
         if ((CUR == '<') && (NXT(1) == '!') && (NXT(2) == '[')) {
@@ -4384,7 +4384,7 @@
 		ctxt->sax->error(ctxt->userData,
 		    "Content error in the external subset\n");
 	    ctxt->wellFormed = 0;
-	    ctxt->errno = XML_ERR_EXT_SUBSET_NOT_FINISHED;
+	    ctxt->errNo = XML_ERR_EXT_SUBSET_NOT_FINISHED;
 	    break;
 	}
     }
@@ -4393,7 +4393,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	        "Extra content at the end of the document\n");
-	ctxt->errno = XML_ERR_EXT_SUBSET_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_EXT_SUBSET_NOT_FINISHED;
 	ctxt->wellFormed = 0;
     }
 
@@ -4413,11 +4413,11 @@
 void
 xmlParseReference(xmlParserCtxtPtr ctxt) {
     xmlEntityPtr ent;
-    CHAR *val;
+    xmlChar *val;
     if (CUR != '&') return;
 
     if (ctxt->inputNr > 1) {
-        CHAR cur[2] = { '&' , 0 } ;
+        xmlChar cur[2] = { '&' , 0 } ;
 
 	if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
 	    ctxt->sax->characters(ctxt->userData, cur, 1);
@@ -4429,7 +4429,7 @@
 	return;
     }
     if (NXT(1) == '#') {
-	CHAR out[2];
+	xmlChar out[2];
 	int val = xmlParseCharRef(ctxt);
 	/* invalid for UTF-8 variable encoding !!!!! */
 	out[0] = val;
@@ -4496,7 +4496,7 @@
  */
 xmlEntityPtr
 xmlParseEntityRef(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
+    xmlChar *name;
     xmlEntityPtr ent = NULL;
 
     GROW;
@@ -4508,7 +4508,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		                 "xmlParseEntityRef: no name\n");
-	    ctxt->errno = XML_ERR_NAME_REQUIRED;
+	    ctxt->errNo = XML_ERR_NAME_REQUIRED;
 	    ctxt->wellFormed = 0;
 	} else {
 	    if (CUR == ';') {
@@ -4551,13 +4551,13 @@
 			if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			    ctxt->sax->error(ctxt->userData, 
 				 "Entity '%s' not defined\n", name);
-			ctxt->errno = XML_ERR_UNDECLARED_ENTITY;
+			ctxt->errNo = XML_ERR_UNDECLARED_ENTITY;
 			ctxt->wellFormed = 0;
 		    } else {
 			if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL))
 			    ctxt->sax->warning(ctxt->userData, 
 				 "Entity '%s' not defined\n", name);
-			ctxt->errno = XML_WAR_UNDECLARED_ENTITY;
+			ctxt->errNo = XML_WAR_UNDECLARED_ENTITY;
 		    }
 		}
 
@@ -4570,7 +4570,7 @@
 		    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			ctxt->sax->error(ctxt->userData, 
 			     "Entity reference to unparsed entity %s\n", name);
-		    ctxt->errno = XML_ERR_UNPARSED_ENTITY;
+		    ctxt->errNo = XML_ERR_UNPARSED_ENTITY;
 		    ctxt->wellFormed = 0;
 		}
 
@@ -4584,7 +4584,7 @@
 		    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			ctxt->sax->error(ctxt->userData, 
 		     "Attribute references external entity '%s'\n", name);
-		    ctxt->errno = XML_ERR_ENTITY_IS_EXTERNAL;
+		    ctxt->errNo = XML_ERR_ENTITY_IS_EXTERNAL;
 		    ctxt->wellFormed = 0;
 		}
 		/*
@@ -4601,7 +4601,7 @@
 		    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			ctxt->sax->error(ctxt->userData, 
 	 "'<' in entity '%s' is not allowed in attributes values\n", name);
-		    ctxt->errno = XML_ERR_LT_IN_ATTRIBUTE;
+		    ctxt->errNo = XML_ERR_LT_IN_ATTRIBUTE;
 		    ctxt->wellFormed = 0;
 		}
 
@@ -4615,7 +4615,7 @@
 			if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			    ctxt->sax->error(ctxt->userData, 
 		     "Attempt to reference the parameter entity '%s'\n", name);
-			ctxt->errno = XML_ERR_ENTITY_IS_PARAMETER;
+			ctxt->errNo = XML_ERR_ENTITY_IS_PARAMETER;
 			ctxt->wellFormed = 0;
 			break;
 		    }
@@ -4631,7 +4631,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		                     "xmlParseEntityRef: expecting ';'\n");
-		ctxt->errno = XML_ERR_ENTITYREF_SEMICOL_MISSING;
+		ctxt->errNo = XML_ERR_ENTITYREF_SEMICOL_MISSING;
 		ctxt->wellFormed = 0;
 	    }
 	    xmlFree(name);
@@ -4671,7 +4671,7 @@
  */
 void
 xmlParsePEReference(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
+    xmlChar *name;
     xmlEntityPtr entity = NULL;
     xmlParserInputPtr input;
 
@@ -4682,7 +4682,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		                 "xmlParsePEReference: no name\n");
-	    ctxt->errno = XML_ERR_NAME_REQUIRED;
+	    ctxt->errNo = XML_ERR_NAME_REQUIRED;
 	    ctxt->wellFormed = 0;
 	} else {
 	    if (CUR == ';') {
@@ -4706,7 +4706,7 @@
 			if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 			    ctxt->sax->error(ctxt->userData,
 			     "PEReference: %%%s; not found\n", name);
-			ctxt->errno = XML_ERR_UNDECLARED_ENTITY;
+			ctxt->errNo = XML_ERR_UNDECLARED_ENTITY;
 			ctxt->wellFormed = 0;
 		    } else {
 			/*
@@ -4740,7 +4740,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		                     "xmlParsePEReference: expecting ';'\n");
-		ctxt->errno = XML_ERR_ENTITYREF_SEMICOL_MISSING;
+		ctxt->errNo = XML_ERR_ENTITYREF_SEMICOL_MISSING;
 		ctxt->wellFormed = 0;
 	    }
 	    xmlFree(name);
@@ -4764,9 +4764,9 @@
 
 void
 xmlParseDocTypeDecl(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
-    CHAR *ExternalID = NULL;
-    CHAR *URI = NULL;
+    xmlChar *name;
+    xmlChar *ExternalID = NULL;
+    xmlChar *URI = NULL;
 
     /*
      * We know that '<!DOCTYPE' has been detected.
@@ -4784,7 +4784,7 @@
 	    ctxt->sax->error(ctxt->userData, 
 	        "xmlParseDocTypeDecl : no DOCTYPE name !\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_NAME_REQUIRED;
+	ctxt->errNo = XML_ERR_NAME_REQUIRED;
     }
 
     SKIP_BLANKS;
@@ -4819,7 +4819,7 @@
 	 * Subsequence (markupdecl | PEReference | S)*
 	 */
 	while (CUR != ']') {
-	    const CHAR *check = CUR_PTR;
+	    const xmlChar *check = CUR_PTR;
 	    int cons = ctxt->input->consumed;
 
 	    SKIP_BLANKS;
@@ -4837,7 +4837,7 @@
 		    ctxt->sax->error(ctxt->userData, 
 		 "xmlParseDocTypeDecl: error detected in Markup declaration\n");
 		ctxt->wellFormed = 0;
-		ctxt->errno = XML_ERR_INTERNAL_ERROR;
+		ctxt->errNo = XML_ERR_INTERNAL_ERROR;
 		break;
 	    }
 	}
@@ -4851,7 +4851,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "DOCTYPE unproperly terminated\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_DOCTYPE_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_DOCTYPE_NOT_FINISHED;
     }
     NEXT;
 
@@ -4866,7 +4866,7 @@
 /**
  * xmlParseAttribute:
  * @ctxt:  an XML parser context
- * @value:  a CHAR ** used to store the value of the attribute
+ * @value:  a xmlChar ** used to store the value of the attribute
  *
  * parse an attribute
  *
@@ -4896,9 +4896,9 @@
  * Returns the attribute name, and the value in *value.
  */
 
-CHAR *
-xmlParseAttribute(xmlParserCtxtPtr ctxt, CHAR **value) {
-    CHAR *name, *val;
+xmlChar *
+xmlParseAttribute(xmlParserCtxtPtr ctxt, xmlChar **value) {
+    xmlChar *name, *val;
 
     *value = NULL;
     name = xmlParseName(ctxt);
@@ -4906,7 +4906,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "error parsing attribute name\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_NAME_REQUIRED;
+	ctxt->errNo = XML_ERR_NAME_REQUIRED;
         return(NULL);
     }
 
@@ -4923,7 +4923,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	       "Specification mandate value for attribute %s\n", name);
-	ctxt->errno = XML_ERR_ATTRIBUTE_WITHOUT_VALUE;
+	ctxt->errNo = XML_ERR_ATTRIBUTE_WITHOUT_VALUE;
 	ctxt->wellFormed = 0;
 	return(NULL);
     }
@@ -4960,12 +4960,12 @@
  * Returns the element name parsed
  */
 
-CHAR *
+xmlChar *
 xmlParseStartTag(xmlParserCtxtPtr ctxt) {
-    CHAR *name;
-    CHAR *attname;
-    CHAR *attvalue;
-    const CHAR **atts = NULL;
+    xmlChar *name;
+    xmlChar *attname;
+    xmlChar *attvalue;
+    const xmlChar **atts = NULL;
     int nbatts = 0;
     int maxatts = 0;
     int i;
@@ -4978,7 +4978,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, 
 	     "xmlParseStartTag: invalid element name\n");
-	ctxt->errno = XML_ERR_NAME_REQUIRED;
+	ctxt->errNo = XML_ERR_NAME_REQUIRED;
 	ctxt->wellFormed = 0;
         return(NULL);
     }
@@ -4993,7 +4993,7 @@
     while ((IS_CHAR(CUR)) &&
            (CUR != '>') && 
 	   ((CUR != '/') || (NXT(1) != '>'))) {
-	const CHAR *q = CUR_PTR;
+	const xmlChar *q = CUR_PTR;
 	int cons = ctxt->input->consumed;
 
 	attname = xmlParseAttribute(ctxt, &attvalue);
@@ -5010,7 +5010,7 @@
 			        "Attribute %s redefined\n",
 			                 attname);
 		    ctxt->wellFormed = 0;
-		    ctxt->errno = XML_ERR_ATTRIBUTE_REDEFINED;
+		    ctxt->errNo = XML_ERR_ATTRIBUTE_REDEFINED;
 		    xmlFree(attname);
 		    xmlFree(attvalue);
 		    goto failed;
@@ -5022,19 +5022,19 @@
 	     */
 	    if (atts == NULL) {
 	        maxatts = 10;
-	        atts = (const CHAR **) xmlMalloc(maxatts * sizeof(CHAR *));
+	        atts = (const xmlChar **) xmlMalloc(maxatts * sizeof(xmlChar *));
 		if (atts == NULL) {
 		    fprintf(stderr, "malloc of %ld byte failed\n",
-			    maxatts * (long)sizeof(CHAR *));
+			    maxatts * (long)sizeof(xmlChar *));
 		    return(NULL);
 		}
 	    } else if (nbatts + 2 < maxatts) {
 	        maxatts *= 2;
-	        atts = (const CHAR **) xmlRealloc(atts,
-		                                  maxatts * sizeof(CHAR *));
+	        atts = (const xmlChar **) xmlRealloc(atts,
+		                                  maxatts * sizeof(xmlChar *));
 		if (atts == NULL) {
 		    fprintf(stderr, "realloc of %ld byte failed\n",
-			    maxatts * (long)sizeof(CHAR *));
+			    maxatts * (long)sizeof(xmlChar *));
 		    return(NULL);
 		}
 	    }
@@ -5050,7 +5050,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData, 
 	         "xmlParseStartTag: problem parsing attributes\n");
-	    ctxt->errno = XML_ERR_INTERNAL_ERROR;
+	    ctxt->errNo = XML_ERR_INTERNAL_ERROR;
 	    ctxt->wellFormed = 0;
 	    break;
 	}
@@ -5064,7 +5064,7 @@
         ctxt->sax->startElement(ctxt->userData, name, atts);
 
     if (atts != NULL) {
-        for (i = 0;i < nbatts;i++) xmlFree((CHAR *) atts[i]);
+        for (i = 0;i < nbatts;i++) xmlFree((xmlChar *) atts[i]);
 	xmlFree(atts);
     }
     return(name);
@@ -5085,15 +5085,15 @@
  */
 
 void
-xmlParseEndTag(xmlParserCtxtPtr ctxt, CHAR *tagname) {
-    CHAR *name;
+xmlParseEndTag(xmlParserCtxtPtr ctxt, xmlChar *tagname) {
+    xmlChar *name;
 
     GROW;
     if ((CUR != '<') || (NXT(1) != '/')) {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "xmlParseEndTag: '</' not found\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_LTSLASH_REQUIRED;
+	ctxt->errNo = XML_ERR_LTSLASH_REQUIRED;
 	return;
     }
     SKIP(2);
@@ -5108,7 +5108,7 @@
     if ((!IS_CHAR(CUR)) || (CUR != '>')) {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "End tag : expected '>'\n");
-	ctxt->errno = XML_ERR_GT_REQUIRED;
+	ctxt->errNo = XML_ERR_GT_REQUIRED;
 	ctxt->wellFormed = 0;
     } else
 	NEXT;
@@ -5124,7 +5124,7 @@
 	    ctxt->sax->error(ctxt->userData,
 	     "Opening and ending tag mismatch: %s and %s\n", tagname, name);
 
-	ctxt->errno = XML_ERR_TAG_NAME_MISMATCH;
+	ctxt->errNo = XML_ERR_TAG_NAME_MISMATCH;
 	ctxt->wellFormed = 0;
     }
 
@@ -5156,9 +5156,9 @@
  */
 void
 xmlParseCDSect(xmlParserCtxtPtr ctxt) {
-    const CHAR *base;
-    CHAR r, s;
-    CHAR cur;
+    const xmlChar *base;
+    xmlChar r, s;
+    xmlChar cur;
 
     if ((NXT(0) == '<') && (NXT(1) == '!') &&
 	(NXT(2) == '[') && (NXT(3) == 'C') &&
@@ -5176,7 +5176,7 @@
 	    ctxt->sax->error(ctxt->userData,
 	                     "CData section not finished\n%.50s\n", base);
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_CDATA_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_CDATA_NOT_FINISHED;
 	ctxt->instate = XML_PARSER_CONTENT;
         return;
     }
@@ -5186,7 +5186,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "CData section not finished\n%.50s\n", base);
-	ctxt->errno = XML_ERR_CDATA_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_CDATA_NOT_FINISHED;
 	ctxt->wellFormed = 0;
 	ctxt->instate = XML_PARSER_CONTENT;
         return;
@@ -5206,7 +5206,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "CData section not finished\n%.50s\n", base);
-	ctxt->errno = XML_ERR_CDATA_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_CDATA_NOT_FINISHED;
 	ctxt->wellFormed = 0;
         return;
     }
@@ -5234,9 +5234,9 @@
 xmlParseContent(xmlParserCtxtPtr ctxt) {
     GROW;
     while ((CUR != '<') || (NXT(1) != '/')) {
-	const CHAR *test = CUR_PTR;
+	const xmlChar *test = CUR_PTR;
 	int cons = ctxt->input->consumed;
-	CHAR tok = ctxt->token;
+	xmlChar tok = ctxt->token;
 
 	/*
 	 * First case : a Processing Instruction.
@@ -5300,7 +5300,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		     "detected an error in element content\n");
-	    ctxt->errno = XML_ERR_INTERNAL_ERROR;
+	    ctxt->errNo = XML_ERR_INTERNAL_ERROR;
 	    ctxt->wellFormed = 0;
             break;
 	}
@@ -5335,8 +5335,8 @@
 
 void
 xmlParseElement(xmlParserCtxtPtr ctxt) {
-    const CHAR *openTag = CUR_PTR;
-    CHAR *name;
+    const xmlChar *openTag = CUR_PTR;
+    xmlChar *name;
     xmlParserNodeInfo node_info;
     xmlNodePtr ret;
 
@@ -5380,7 +5380,7 @@
 	                     "Couldn't find end of Start Tag\n%.30s\n",
 	                     openTag);
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_GT_REQUIRED;
+	ctxt->errNo = XML_ERR_GT_REQUIRED;
 
 	/*
 	 * end of parsing of this node.
@@ -5410,7 +5410,7 @@
 	    ctxt->sax->error(ctxt->userData,
 	         "Premature end of data in tag %.30s\n", openTag);
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_TAG_NOT_FINISED;
+	ctxt->errNo = XML_ERR_TAG_NOT_FINISED;
 
 	/*
 	 * end of parsing of this node.
@@ -5448,10 +5448,10 @@
  *
  * Returns the string giving the XML version number, or NULL
  */
-CHAR *
+xmlChar *
 xmlParseVersionNum(xmlParserCtxtPtr ctxt) {
-    const CHAR *q = CUR_PTR;
-    CHAR *ret;
+    const xmlChar *q = CUR_PTR;
+    xmlChar *ret;
 
     while (IS_CHAR(CUR) &&
            (((CUR >= 'a') && (CUR <= 'z')) ||
@@ -5476,10 +5476,10 @@
  * Returns the version string, e.g. "1.0"
  */
 
-CHAR *
+xmlChar *
 xmlParseVersionInfo(xmlParserCtxtPtr ctxt) {
-    CHAR *version = NULL;
-    const CHAR *q;
+    xmlChar *version = NULL;
+    const xmlChar *q;
 
     if ((CUR == 'v') && (NXT(1) == 'e') &&
         (NXT(2) == 'r') && (NXT(3) == 's') &&
@@ -5492,7 +5492,7 @@
 	        ctxt->sax->error(ctxt->userData,
 		                 "xmlParseVersionInfo : expected '='\n");
 	    ctxt->wellFormed = 0;
-	    ctxt->errno = XML_ERR_EQUAL_REQUIRED;
+	    ctxt->errNo = XML_ERR_EQUAL_REQUIRED;
 	    return(NULL);
         }
 	NEXT;
@@ -5506,7 +5506,7 @@
 		    ctxt->sax->error(ctxt->userData, 
 		                     "String not closed\n%.50s\n", q);
 		ctxt->wellFormed = 0;
-		ctxt->errno = XML_ERR_STRING_NOT_CLOSED;
+		ctxt->errNo = XML_ERR_STRING_NOT_CLOSED;
 	    } else
 	        NEXT;
 	} else if (CUR == '\''){
@@ -5517,7 +5517,7 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		                     "String not closed\n%.50s\n", q);
-		ctxt->errno = XML_ERR_STRING_NOT_CLOSED;
+		ctxt->errNo = XML_ERR_STRING_NOT_CLOSED;
 		ctxt->wellFormed = 0;
 	    } else
 	        NEXT;
@@ -5526,7 +5526,7 @@
 	        ctxt->sax->error(ctxt->userData,
 		      "xmlParseVersionInfo : expected ' or \"\n");
 	    ctxt->wellFormed = 0;
-	    ctxt->errno = XML_ERR_STRING_NOT_STARTED;
+	    ctxt->errNo = XML_ERR_STRING_NOT_STARTED;
 	}
     }
     return(version);
@@ -5542,10 +5542,10 @@
  *
  * Returns the encoding name value or NULL
  */
-CHAR *
+xmlChar *
 xmlParseEncName(xmlParserCtxtPtr ctxt) {
-    const CHAR *q = CUR_PTR;
-    CHAR *ret = NULL;
+    const xmlChar *q = CUR_PTR;
+    xmlChar *ret = NULL;
 
     if (((CUR >= 'a') && (CUR <= 'z')) ||
         ((CUR >= 'A') && (CUR <= 'Z'))) {
@@ -5560,7 +5560,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "Invalid XML encoding name\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_ENCODING_NAME;
+	ctxt->errNo = XML_ERR_ENCODING_NAME;
     }
     return(ret);
 }
@@ -5578,10 +5578,10 @@
  * Returns the encoding value or NULL
  */
 
-CHAR *
+xmlChar *
 xmlParseEncodingDecl(xmlParserCtxtPtr ctxt) {
-    CHAR *encoding = NULL;
-    const CHAR *q;
+    xmlChar *encoding = NULL;
+    const xmlChar *q;
 
     SKIP_BLANKS;
     if ((CUR == 'e') && (NXT(1) == 'n') &&
@@ -5595,7 +5595,7 @@
 	        ctxt->sax->error(ctxt->userData,
 		                 "xmlParseEncodingDecl : expected '='\n");
 	    ctxt->wellFormed = 0;
-	    ctxt->errno = XML_ERR_EQUAL_REQUIRED;
+	    ctxt->errNo = XML_ERR_EQUAL_REQUIRED;
 	    return(NULL);
         }
 	NEXT;
@@ -5609,7 +5609,7 @@
 		    ctxt->sax->error(ctxt->userData, 
 		                     "String not closed\n%.50s\n", q);
 		ctxt->wellFormed = 0;
-		ctxt->errno = XML_ERR_STRING_NOT_CLOSED;
+		ctxt->errNo = XML_ERR_STRING_NOT_CLOSED;
 	    } else
 	        NEXT;
 	} else if (CUR == '\''){
@@ -5621,7 +5621,7 @@
 		    ctxt->sax->error(ctxt->userData,
 		                     "String not closed\n%.50s\n", q);
 		ctxt->wellFormed = 0;
-		ctxt->errno = XML_ERR_STRING_NOT_CLOSED;
+		ctxt->errNo = XML_ERR_STRING_NOT_CLOSED;
 	    } else
 	        NEXT;
 	} else if (CUR == '"'){
@@ -5629,7 +5629,7 @@
 	        ctxt->sax->error(ctxt->userData,
 		     "xmlParseEncodingDecl : expected ' or \"\n");
 	    ctxt->wellFormed = 0;
-	    ctxt->errno = XML_ERR_STRING_NOT_STARTED;
+	    ctxt->errNo = XML_ERR_STRING_NOT_STARTED;
 	}
     }
     return(encoding);
@@ -5677,7 +5677,7 @@
 	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	        ctxt->sax->error(ctxt->userData,
 		    "XML standalone declaration : expected '='\n");
-	    ctxt->errno = XML_ERR_EQUAL_REQUIRED;
+	    ctxt->errNo = XML_ERR_EQUAL_REQUIRED;
 	    ctxt->wellFormed = 0;
 	    return(standalone);
         }
@@ -5696,13 +5696,13 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		                     "standalone accepts only 'yes' or 'no'\n");
-		ctxt->errno = XML_ERR_STANDALONE_VALUE;
+		ctxt->errNo = XML_ERR_STANDALONE_VALUE;
 		ctxt->wellFormed = 0;
 	    }
 	    if (CUR != '\'') {
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, "String not closed\n");
-		ctxt->errno = XML_ERR_STRING_NOT_CLOSED;
+		ctxt->errNo = XML_ERR_STRING_NOT_CLOSED;
 		ctxt->wellFormed = 0;
 	    } else
 	        NEXT;
@@ -5719,14 +5719,14 @@
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData,
 		        "standalone accepts only 'yes' or 'no'\n");
-		ctxt->errno = XML_ERR_STANDALONE_VALUE;
+		ctxt->errNo = XML_ERR_STANDALONE_VALUE;
 		ctxt->wellFormed = 0;
 	    }
 	    if (CUR != '"') {
 		if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 		    ctxt->sax->error(ctxt->userData, "String not closed\n");
 		ctxt->wellFormed = 0;
-		ctxt->errno = XML_ERR_STRING_NOT_CLOSED;
+		ctxt->errNo = XML_ERR_STRING_NOT_CLOSED;
 	    } else
 	        NEXT;
 	} else {
@@ -5734,7 +5734,7 @@
 	        ctxt->sax->error(ctxt->userData,
 		                 "Standalone value not found\n");
 	    ctxt->wellFormed = 0;
-	    ctxt->errno = XML_ERR_STRING_NOT_STARTED;
+	    ctxt->errNo = XML_ERR_STRING_NOT_STARTED;
         }
     }
     return(standalone);
@@ -5751,7 +5751,7 @@
 
 void
 xmlParseXMLDecl(xmlParserCtxtPtr ctxt) {
-    CHAR *version;
+    xmlChar *version;
 
     /*
      * We know that '<?xml' is here.
@@ -5761,7 +5761,7 @@
     if (!IS_BLANK(CUR)) {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "Blank needed after '<?xml'\n");
-	ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	ctxt->wellFormed = 0;
     }
     SKIP_BLANKS;
@@ -5785,7 +5785,7 @@
 	}
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "Blank needed here\n");
-	ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	ctxt->errNo = XML_ERR_SPACE_REQUIRED;
 	ctxt->wellFormed = 0;
     }
     ctxt->encoding = xmlParseEncodingDecl(ctxt);
@@ -5801,7 +5801,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "Blank needed here\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_SPACE_REQUIRED;
+	ctxt->errNo = XML_ERR_SPACE_REQUIRED;
     }
     SKIP_BLANKS;
     ctxt->standalone = xmlParseSDDecl(ctxt);
@@ -5815,14 +5815,14 @@
 	    ctxt->sax->error(ctxt->userData, 
 	                     "XML declaration must end-up with '?>'\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_XMLDECL_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_XMLDECL_NOT_FINISHED;
 	NEXT;
     } else {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	                     "parsing XML declaration: '?>' expected\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_XMLDECL_NOT_FINISHED;
+	ctxt->errNo = XML_ERR_XMLDECL_NOT_FINISHED;
 	MOVETO_ENDTAG(CUR_PTR);
 	NEXT;
     }
@@ -5891,7 +5891,7 @@
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData,
 	    "Extra spaces at the beginning of the document are not allowed\n");
-	ctxt->errno = XML_ERR_DOCUMENT_START;
+	ctxt->errNo = XML_ERR_DOCUMENT_START;
 	ctxt->wellFormed = 0;
 	SKIP_BLANKS;
     }
@@ -5899,7 +5899,7 @@
     if (CUR == 0) {
 	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "Document is empty\n");
-	ctxt->errno = XML_ERR_DOCUMENT_EMPTY;
+	ctxt->errNo = XML_ERR_DOCUMENT_EMPTY;
 	ctxt->wellFormed = 0;
     }
 
@@ -5968,7 +5968,7 @@
 	    ctxt->sax->error(ctxt->userData,
 	        "Extra content at the end of the document\n");
 	ctxt->wellFormed = 0;
-	ctxt->errno = XML_ERR_DOCUMENT_END;
+	ctxt->errNo = XML_ERR_DOCUMENT_END;
     }
     ctxt->instate = XML_PARSER_EOF;
 
@@ -5989,14 +5989,14 @@
 
 /**
  * xmlCreateDocParserCtxt :
- * @cur:  a pointer to an array of CHAR
+ * @cur:  a pointer to an array of xmlChar
  *
  * Create a parser context for an XML in-memory document.
  *
  * Returns the new parser context or NULL
  */
 xmlParserCtxtPtr
-xmlCreateDocParserCtxt(CHAR *cur) {
+xmlCreateDocParserCtxt(xmlChar *cur) {
     xmlParserCtxtPtr ctxt;
     xmlParserInputPtr input;
     xmlCharEncoding enc;
@@ -6027,7 +6027,7 @@
 /**
  * xmlSAXParseDoc :
  * @sax:  the SAX handler block
- * @cur:  a pointer to an array of CHAR
+ * @cur:  a pointer to an array of xmlChar
  * @recovery:  work in recovery mode, i.e. tries to read no Well Formed
  *             documents
  *
@@ -6039,7 +6039,7 @@
  */
 
 xmlDocPtr
-xmlSAXParseDoc(xmlSAXHandlerPtr sax, CHAR *cur, int recovery) {
+xmlSAXParseDoc(xmlSAXHandlerPtr sax, xmlChar *cur, int recovery) {
     xmlDocPtr ret;
     xmlParserCtxtPtr ctxt;
 
@@ -6069,7 +6069,7 @@
 
 /**
  * xmlParseDoc :
- * @cur:  a pointer to an array of CHAR
+ * @cur:  a pointer to an array of xmlChar
  *
  * parse an XML in-memory document and build a tree.
  * 
@@ -6077,7 +6077,7 @@
  */
 
 xmlDocPtr
-xmlParseDoc(CHAR *cur) {
+xmlParseDoc(xmlChar *cur) {
     return(xmlSAXParseDoc(NULL, cur, 0));
 }
 
@@ -6093,8 +6093,8 @@
  */
 
 xmlDtdPtr
-xmlSAXParseDTD(xmlSAXHandlerPtr sax, const CHAR *ExternalID,
-                          const CHAR *SystemID) {
+xmlSAXParseDTD(xmlSAXHandlerPtr sax, const xmlChar *ExternalID,
+                          const xmlChar *SystemID) {
     xmlDtdPtr ret = NULL;
     xmlParserCtxtPtr ctxt;
     xmlParserInputPtr input = NULL;
@@ -6177,13 +6177,13 @@
  */
 
 xmlDtdPtr
-xmlParseDTD(const CHAR *ExternalID, const CHAR *SystemID) {
+xmlParseDTD(const xmlChar *ExternalID, const xmlChar *SystemID) {
     return(xmlSAXParseDTD(NULL, ExternalID, SystemID));
 }
 
 /**
  * xmlRecoverDoc :
- * @cur:  a pointer to an array of CHAR
+ * @cur:  a pointer to an array of xmlChar
  *
  * parse an XML in-memory document and build a tree.
  * In the case the document is not Well Formed, a tree is built anyway
@@ -6192,7 +6192,7 @@
  */
 
 xmlDocPtr
-xmlRecoverDoc(CHAR *cur) {
+xmlRecoverDoc(xmlChar *cur) {
     return(xmlSAXParseDoc(NULL, cur, 1));
 }
 
@@ -6276,7 +6276,7 @@
     if ((ctxt->directory == NULL) && (directory == NULL))
         directory = xmlParserGetDirectory(filename);
     if ((ctxt->directory == NULL) && (directory != NULL))
-        ctxt->directory = (char *) xmlStrdup((CHAR *) directory); /* !!!!!!! */
+        ctxt->directory = (char *) xmlStrdup((xmlChar *) directory); /* !!!!!!! */
 
     xmlParseDocument(ctxt);
 
@@ -6446,7 +6446,7 @@
 /**
  * xmlSetupParserForBuffer:
  * @ctxt:  an XML parser context
- * @buffer:  a CHAR * buffer
+ * @buffer:  a xmlChar * buffer
  * @filename:  a file name
  *
  * Setup the parser context to parse a new buffer; Clears any prior
@@ -6454,7 +6454,7 @@
  * NULL, but the filename parameter can be
  */
 void
-xmlSetupParserForBuffer(xmlParserCtxtPtr ctxt, const CHAR* buffer,
+xmlSetupParserForBuffer(xmlParserCtxtPtr ctxt, const xmlChar* buffer,
                              const char* filename)
 {
     xmlParserInputPtr input;
@@ -6611,7 +6611,7 @@
       if ( tmp_buffer == NULL ) {
         if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
 	    ctxt->sax->error(ctxt->userData, "Out of memory\n");
-	ctxt->errno = XML_ERR_NO_MEMORY;
+	ctxt->errNo = XML_ERR_NO_MEMORY;
         return;
       }
       ctxt->node_seq.buffer = tmp_buffer;
diff --git a/parser.h b/parser.h
index 06db141..f5f96e9 100644
--- a/parser.h
+++ b/parser.h
@@ -31,18 +31,18 @@
  * progressive reading and I18N conversions to the internal UTF-8 format.
  */
 
-typedef void (* xmlParserInputDeallocate)(CHAR *);
+typedef void (* xmlParserInputDeallocate)(xmlChar *);
 typedef struct xmlParserInput {
     /* Input buffer */
     xmlParserInputBufferPtr buf;      /* UTF-8 encoded buffer */
 
     const char *filename;             /* The file analyzed, if any */
     const char *directory;            /* the directory/base of teh file */
-    const CHAR *base;                 /* Base of the array to parse */
-    const CHAR *cur;                  /* Current char being parsed */
+    const xmlChar *base;                 /* Base of the array to parse */
+    const xmlChar *cur;                  /* Current char being parsed */
     int line;                         /* Current line */
     int col;                          /* Current column */
-    int consumed;                     /* How many CHARs were already consumed */
+    int consumed;                     /* How many xmlChars were already consumed */
     xmlParserInputDeallocate free;    /* function to deallocate the base */
 } xmlParserInput;
 typedef xmlParserInput *xmlParserInputPtr;
@@ -107,8 +107,8 @@
     xmlDocPtr           myDoc;        /* the document being built */
     int            wellFormed;        /* is the document well formed */
     int       replaceEntities;        /* shall we replace entities ? */
-    const CHAR       *version;        /* the XML version string */
-    const CHAR      *encoding;        /* encoding, if any */
+    const xmlChar       *version;        /* the XML version string */
+    const xmlChar      *encoding;        /* encoding, if any */
     int            standalone;        /* standalone document */
     int                  html;        /* are we parsing an HTML document */
 
@@ -127,7 +127,7 @@
     int record_info;                  /* Whether node info should be kept */
     xmlParserNodeInfoSeq node_seq;    /* info about each node parsed */
 
-    int errno;                        /* error code */
+    int errNo;                        /* error code */
 
     int     hasExternalSubset;        /* reference and external subset */
     int             hasPErefs;        /* the internal subset has PE refs */
@@ -149,8 +149,8 @@
  * a SAX Locator.
  */
 typedef struct xmlSAXLocator {
-    const CHAR *(*getPublicId)(void *ctx);
-    const CHAR *(*getSystemId)(void *ctx);
+    const xmlChar *(*getPublicId)(void *ctx);
+    const xmlChar *(*getSystemId)(void *ctx);
     int (*getLineNumber)(void *ctx);
     int (*getColumnNumber)(void *ctx);
 } _xmlSAXLocator;
@@ -165,44 +165,44 @@
 #include "entities.h"
 
 typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx,
-			    const CHAR *publicId, const CHAR *systemId);
-typedef void (*internalSubsetSAXFunc) (void *ctx, const CHAR *name,
-                            const CHAR *ExternalID, const CHAR *SystemID);
+			    const xmlChar *publicId, const xmlChar *systemId);
+typedef void (*internalSubsetSAXFunc) (void *ctx, const xmlChar *name,
+                            const xmlChar *ExternalID, const xmlChar *SystemID);
 typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx,
-                            const CHAR *name);
+                            const xmlChar *name);
 typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx,
-                            const CHAR *name);
+                            const xmlChar *name);
 typedef void (*entityDeclSAXFunc) (void *ctx,
-                            const CHAR *name, int type, const CHAR *publicId,
-			    const CHAR *systemId, CHAR *content);
-typedef void (*notationDeclSAXFunc)(void *ctx, const CHAR *name,
-			    const CHAR *publicId, const CHAR *systemId);
-typedef void (*attributeDeclSAXFunc)(void *ctx, const CHAR *elem,
-                            const CHAR *name, int type, int def,
-			    const CHAR *defaultValue, xmlEnumerationPtr tree);
-typedef void (*elementDeclSAXFunc)(void *ctx, const CHAR *name,
+                            const xmlChar *name, int type, const xmlChar *publicId,
+			    const xmlChar *systemId, xmlChar *content);
+typedef void (*notationDeclSAXFunc)(void *ctx, const xmlChar *name,
+			    const xmlChar *publicId, const xmlChar *systemId);
+typedef void (*attributeDeclSAXFunc)(void *ctx, const xmlChar *elem,
+                            const xmlChar *name, int type, int def,
+			    const xmlChar *defaultValue, xmlEnumerationPtr tree);
+typedef void (*elementDeclSAXFunc)(void *ctx, const xmlChar *name,
 			    int type, xmlElementContentPtr content);
 typedef void (*unparsedEntityDeclSAXFunc)(void *ctx,
-                            const CHAR *name, const CHAR *publicId,
-			    const CHAR *systemId, const CHAR *notationName);
+                            const xmlChar *name, const xmlChar *publicId,
+			    const xmlChar *systemId, const xmlChar *notationName);
 typedef void (*setDocumentLocatorSAXFunc) (void *ctx,
                             xmlSAXLocatorPtr loc);
 typedef void (*startDocumentSAXFunc) (void *ctx);
 typedef void (*endDocumentSAXFunc) (void *ctx);
-typedef void (*startElementSAXFunc) (void *ctx, const CHAR *name,
-                            const CHAR **atts);
-typedef void (*endElementSAXFunc) (void *ctx, const CHAR *name);
-typedef void (*attributeSAXFunc) (void *ctx, const CHAR *name,
-                                  const CHAR *value);
-typedef void (*referenceSAXFunc) (void *ctx, const CHAR *name);
-typedef void (*charactersSAXFunc) (void *ctx, const CHAR *ch,
+typedef void (*startElementSAXFunc) (void *ctx, const xmlChar *name,
+                            const xmlChar **atts);
+typedef void (*endElementSAXFunc) (void *ctx, const xmlChar *name);
+typedef void (*attributeSAXFunc) (void *ctx, const xmlChar *name,
+                                  const xmlChar *value);
+typedef void (*referenceSAXFunc) (void *ctx, const xmlChar *name);
+typedef void (*charactersSAXFunc) (void *ctx, const xmlChar *ch,
 		            int len);
 typedef void (*ignorableWhitespaceSAXFunc) (void *ctx,
-			    const CHAR *ch, int len);
+			    const xmlChar *ch, int len);
 typedef void (*processingInstructionSAXFunc) (void *ctx,
-                            const CHAR *target, const CHAR *data);
-typedef void (*commentSAXFunc) (void *ctx, const CHAR *value);
-typedef void (*cdataBlockSAXFunc) (void *ctx, const CHAR *value, int len);
+                            const xmlChar *target, const xmlChar *data);
+typedef void (*commentSAXFunc) (void *ctx, const xmlChar *value);
+typedef void (*cdataBlockSAXFunc) (void *ctx, const xmlChar *value, int len);
 typedef void (*warningSAXFunc) (void *ctx, const char *msg, ...);
 typedef void (*errorSAXFunc) (void *ctx, const char *msg, ...);
 typedef void (*fatalErrorSAXFunc) (void *ctx, const char *msg, ...);
@@ -270,34 +270,34 @@
 					 int len);
 
 /**
- * CHAR handling
+ * xmlChar handling
  */
-CHAR *		xmlStrdup		(const CHAR *cur);
-CHAR *		xmlStrndup		(const CHAR *cur,
+xmlChar *		xmlStrdup		(const xmlChar *cur);
+xmlChar *		xmlStrndup		(const xmlChar *cur,
 					 int len);
-CHAR *		xmlStrsub		(const CHAR *str,
+xmlChar *		xmlStrsub		(const xmlChar *str,
 					 int start,
 					 int len);
-const CHAR *	xmlStrchr		(const CHAR *str,
-					 CHAR val);
-const CHAR *	xmlStrstr		(const CHAR *str,
-					 CHAR *val);
-int		xmlStrcmp		(const CHAR *str1,
-					 const CHAR *str2);
-int		xmlStrncmp		(const CHAR *str1,
-					 const CHAR *str2,
+const xmlChar *	xmlStrchr		(const xmlChar *str,
+					 xmlChar val);
+const xmlChar *	xmlStrstr		(const xmlChar *str,
+					 xmlChar *val);
+int		xmlStrcmp		(const xmlChar *str1,
+					 const xmlChar *str2);
+int		xmlStrncmp		(const xmlChar *str1,
+					 const xmlChar *str2,
 					 int len);
-int		xmlStrlen		(const CHAR *str);
-CHAR *		xmlStrcat		(CHAR *cur,
-					 const CHAR *add);
-CHAR *		xmlStrncat		(CHAR *cur,
-					 const CHAR *add,
+int		xmlStrlen		(const xmlChar *str);
+xmlChar *		xmlStrcat		(xmlChar *cur,
+					 const xmlChar *add);
+xmlChar *		xmlStrncat		(xmlChar *cur,
+					 const xmlChar *add,
 					 int len);
 
 /**
  * Basic parsing Interfaces
  */
-xmlDocPtr	xmlParseDoc		(CHAR *cur);
+xmlDocPtr	xmlParseDoc		(xmlChar *cur);
 xmlDocPtr	xmlParseMemory		(char *buffer,
 					 int size);
 xmlDocPtr	xmlParseFile		(const char *filename);
@@ -306,7 +306,7 @@
 /**
  * Recovery mode 
  */
-xmlDocPtr	xmlRecoverDoc		(CHAR *cur);
+xmlDocPtr	xmlRecoverDoc		(xmlChar *cur);
 xmlDocPtr	xmlRecoverMemory	(char *buffer,
 					 int size);
 xmlDocPtr	xmlRecoverFile		(const char *filename);
@@ -316,7 +316,7 @@
  */
 int		xmlParseDocument	(xmlParserCtxtPtr ctxt);
 xmlDocPtr	xmlSAXParseDoc		(xmlSAXHandlerPtr sax,
-					 CHAR *cur,
+					 xmlChar *cur,
 					 int recovery);
 xmlDocPtr	xmlSAXParseMemory	(xmlSAXHandlerPtr sax,
 					 char *buffer,
@@ -325,15 +325,15 @@
 xmlDocPtr	xmlSAXParseFile		(xmlSAXHandlerPtr sax,
 					 const char *filename,
 					 int recovery);
-xmlDtdPtr	xmlParseDTD		(const CHAR *ExternalID,
-					 const CHAR *SystemID);
+xmlDtdPtr	xmlParseDTD		(const xmlChar *ExternalID,
+					 const xmlChar *SystemID);
 xmlDtdPtr	xmlSAXParseDTD		(xmlSAXHandlerPtr sax,
-					 const CHAR *ExternalID,
-					 const CHAR *SystemID);
+					 const xmlChar *ExternalID,
+					 const xmlChar *SystemID);
 void		xmlInitParserCtxt	(xmlParserCtxtPtr ctxt);
 void		xmlClearParserCtxt	(xmlParserCtxtPtr ctxt);
 void		xmlSetupParserForBuffer	(xmlParserCtxtPtr ctxt,
-					 const CHAR* buffer,
+					 const xmlChar* buffer,
 					 const char* filename);
 void		xmlDefaultSAXHandlerInit(void);
 void		htmlDefaultSAXHandlerInit(void);
diff --git a/parserInternals.h b/parserInternals.h
index cb28943..1ce25b0 100644
--- a/parserInternals.h
+++ b/parserInternals.h
@@ -511,7 +511,7 @@
 /**
  * Parser context
  */
-xmlParserCtxtPtr	xmlCreateDocParserCtxt	(CHAR *cur);
+xmlParserCtxtPtr	xmlCreateDocParserCtxt	(xmlChar *cur);
 xmlParserCtxtPtr	xmlCreateFileParserCtxt	(const char *filename);
 xmlParserCtxtPtr	xmlCreateMemoryParserCtxt(char *buffer,
 						 int size);
@@ -533,7 +533,7 @@
 						 xmlEntityPtr entity);
 void			xmlPushInput		(xmlParserCtxtPtr ctxt,
 						 xmlParserInputPtr input);
-CHAR			xmlPopInput		(xmlParserCtxtPtr ctxt);
+xmlChar			xmlPopInput		(xmlParserCtxtPtr ctxt);
 void			xmlFreeInputStream	(xmlParserInputPtr input);
 xmlParserInputPtr	xmlNewInputFromFile	(xmlParserCtxtPtr ctxt,
 						 const char *filename);
@@ -541,38 +541,38 @@
 /**
  * Namespaces.
  */
-CHAR *			xmlSplitQName		(const CHAR *name,
-						 CHAR **prefix);
-CHAR *			xmlNamespaceParseNCName	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlNamespaceParseQName	(xmlParserCtxtPtr ctxt,
-						 CHAR **prefix);
-CHAR *			xmlNamespaceParseNSDef	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseQuotedString	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlSplitQName		(const xmlChar *name,
+						 xmlChar **prefix);
+xmlChar *			xmlNamespaceParseNCName	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlNamespaceParseQName	(xmlParserCtxtPtr ctxt,
+						 xmlChar **prefix);
+xmlChar *			xmlNamespaceParseNSDef	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseQuotedString	(xmlParserCtxtPtr ctxt);
 void			xmlParseNamespace	(xmlParserCtxtPtr ctxt);
 
 /**
  * Generic production rules
  */
-CHAR *			xmlScanName		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseName		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseNmtoken		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseEntityValue	(xmlParserCtxtPtr ctxt,
-						 CHAR **orig);
-CHAR *			xmlParseAttValue	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseSystemLiteral	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParsePubidLiteral	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlScanName		(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseName		(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseNmtoken		(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseEntityValue	(xmlParserCtxtPtr ctxt,
+						 xmlChar **orig);
+xmlChar *			xmlParseAttValue	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseSystemLiteral	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParsePubidLiteral	(xmlParserCtxtPtr ctxt);
 void			xmlParseCharData	(xmlParserCtxtPtr ctxt,
 						 int cdata);
-CHAR *			xmlParseExternalID	(xmlParserCtxtPtr ctxt,
-						 CHAR **publicID,
+xmlChar *			xmlParseExternalID	(xmlParserCtxtPtr ctxt,
+						 xmlChar **publicID,
 						 int strict);
 void			xmlParseComment		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParsePITarget	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParsePITarget	(xmlParserCtxtPtr ctxt);
 void			xmlParsePI		(xmlParserCtxtPtr ctxt);
 void			xmlParseNotationDecl	(xmlParserCtxtPtr ctxt);
 void			xmlParseEntityDecl	(xmlParserCtxtPtr ctxt);
 int			xmlParseDefaultDecl	(xmlParserCtxtPtr ctxt,
-						 CHAR **value);
+						 xmlChar **value);
 xmlEnumerationPtr	xmlParseNotationType	(xmlParserCtxtPtr ctxt);
 xmlEnumerationPtr	xmlParseEnumerationType	(xmlParserCtxtPtr ctxt);
 int			xmlParseEnumeratedType	(xmlParserCtxtPtr ctxt,
@@ -585,7 +585,7 @@
 xmlElementContentPtr	xmlParseElementChildrenContentDecl
 						(xmlParserCtxtPtr ctxt);
 int			xmlParseElementContentDecl(xmlParserCtxtPtr ctxt,
-						 CHAR *name,
+						 xmlChar *name,
 						 xmlElementContentPtr *result);
 int			xmlParseElementDecl	(xmlParserCtxtPtr ctxt);
 void			xmlParseMarkupDecl	(xmlParserCtxtPtr ctxt);
@@ -594,24 +594,24 @@
 void			xmlParseReference	(xmlParserCtxtPtr ctxt);
 void			xmlParsePEReference	(xmlParserCtxtPtr ctxt);
 void			xmlParseDocTypeDecl	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseAttribute	(xmlParserCtxtPtr ctxt,
-						 CHAR **value);
-CHAR *			xmlParseStartTag	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseAttribute	(xmlParserCtxtPtr ctxt,
+						 xmlChar **value);
+xmlChar *			xmlParseStartTag	(xmlParserCtxtPtr ctxt);
 void			xmlParseEndTag		(xmlParserCtxtPtr ctxt,
-						 CHAR *tagname);
+						 xmlChar *tagname);
 void			xmlParseCDSect		(xmlParserCtxtPtr ctxt);
 void			xmlParseContent		(xmlParserCtxtPtr ctxt);
 void			xmlParseElement		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseVersionNum	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseVersionInfo	(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseEncName		(xmlParserCtxtPtr ctxt);
-CHAR *			xmlParseEncodingDecl	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseVersionNum	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseVersionInfo	(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseEncName		(xmlParserCtxtPtr ctxt);
+xmlChar *			xmlParseEncodingDecl	(xmlParserCtxtPtr ctxt);
 int			xmlParseSDDecl		(xmlParserCtxtPtr ctxt);
 void			xmlParseXMLDecl		(xmlParserCtxtPtr ctxt);
 void			xmlParseMisc		(xmlParserCtxtPtr ctxt);
 void			xmlParseExternalSubset	(xmlParserCtxtPtr ctxt,
-						 const CHAR *ExternalID,
-						 const CHAR *SystemID); 
+						 const xmlChar *ExternalID,
+						 const xmlChar *SystemID); 
 /*
  * Entities substitution
  */
@@ -620,12 +620,12 @@
 #define XML_SUBSTITUTE_PEREF	2
 #define XML_SUBSTITUTE_BOTH 	3
 
-CHAR *			xmlDecodeEntities	(xmlParserCtxtPtr ctxt,
+xmlChar *			xmlDecodeEntities	(xmlParserCtxtPtr ctxt,
 						 int len,
 						 int what,
-						 CHAR end,
-						 CHAR  end2,
-						 CHAR end3);
+						 xmlChar end,
+						 xmlChar  end2,
+						 xmlChar end3);
 
 /*
  * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP
diff --git a/testHTML.c b/testHTML.c
index cfb1517..9415a39 100644
--- a/testHTML.c
+++ b/testHTML.c
@@ -41,7 +41,7 @@
 
 /*
  * Note: this is perfectly clean HTML, i.e. not a useful test.
-static CHAR buffer[] = 
+static xmlChar buffer[] = 
 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"\n\
                       \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n\
 <html>\n\
@@ -96,7 +96,7 @@
     xmlFreeDoc(doc);
 }
 
-void parseAndPrintBuffer(CHAR *buf) {
+void parseAndPrintBuffer(xmlChar *buf) {
     htmlDocPtr doc, tmp;
 
     /*
diff --git a/testSAX.c b/testSAX.c
index 76b3d5d..be242cb 100644
--- a/testSAX.c
+++ b/testSAX.c
@@ -77,7 +77,7 @@
 /*
  * Note: there is a couple of errors introduced on purpose.
  */
-static CHAR buffer[] = 
+static xmlChar buffer[] = 
 "<?xml version=\"1.0\"?>\n\
 <?xml:namespace ns = \"http://www.ietf.org/standards/dav/\" prefix = \"D\"?>\n\
 <?xml:namespace ns = \"http://www.w3.com/standards/z39.50/\" prefix = \"Z\"?>\n\
@@ -155,8 +155,8 @@
  * Does this document has an internal subset
  */
 void
-internalSubsetDebug(void *ctx, const CHAR *name,
-	       const CHAR *ExternalID, const CHAR *SystemID)
+internalSubsetDebug(void *ctx, const xmlChar *name,
+	       const xmlChar *ExternalID, const xmlChar *SystemID)
 {
     xmlDtdPtr externalSubset;
 
@@ -186,7 +186,7 @@
  * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
  */
 xmlParserInputPtr
-resolveEntityDebug(void *ctx, const CHAR *publicId, const CHAR *systemId)
+resolveEntityDebug(void *ctx, const xmlChar *publicId, const xmlChar *systemId)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
 
@@ -216,7 +216,7 @@
  * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
  */
 xmlEntityPtr
-getEntityDebug(void *ctx, const CHAR *name)
+getEntityDebug(void *ctx, const xmlChar *name)
 {
     fprintf(stdout, "SAX.getEntity(%s)\n", name);
     return(NULL);
@@ -232,7 +232,7 @@
  * Returns the xmlParserInputPtr
  */
 xmlEntityPtr
-getParameterEntityDebug(void *ctx, const CHAR *name)
+getParameterEntityDebug(void *ctx, const xmlChar *name)
 {
     fprintf(stdout, "SAX.getParameterEntity(%s)\n", name);
     return(NULL);
@@ -251,8 +251,8 @@
  * An entity definition has been parsed
  */
 void
-entityDeclDebug(void *ctx, const CHAR *name, int type,
-          const CHAR *publicId, const CHAR *systemId, CHAR *content)
+entityDeclDebug(void *ctx, const xmlChar *name, int type,
+          const xmlChar *publicId, const xmlChar *systemId, xmlChar *content)
 {
     fprintf(stdout, "SAX.entityDecl(%s, %d, %s, %s, %s)\n",
             name, type, publicId, systemId, content);
@@ -267,8 +267,8 @@
  * An attribute definition has been parsed
  */
 void
-attributeDeclDebug(void *ctx, const CHAR *elem, const CHAR *name,
-              int type, int def, const CHAR *defaultValue,
+attributeDeclDebug(void *ctx, const xmlChar *elem, const xmlChar *name,
+              int type, int def, const xmlChar *defaultValue,
 	      xmlEnumerationPtr tree)
 {
     fprintf(stdout, "SAX.attributeDecl(%s, %s, %d, %d, %s, ...)\n",
@@ -285,7 +285,7 @@
  * An element definition has been parsed
  */
 void
-elementDeclDebug(void *ctx, const CHAR *name, int type,
+elementDeclDebug(void *ctx, const xmlChar *name, int type,
 	    xmlElementContentPtr content)
 {
     fprintf(stdout, "SAX.elementDecl(%s, %d, ...)\n",
@@ -302,8 +302,8 @@
  * What to do when a notation declaration has been parsed.
  */
 void
-notationDeclDebug(void *ctx, const CHAR *name,
-	     const CHAR *publicId, const CHAR *systemId)
+notationDeclDebug(void *ctx, const xmlChar *name,
+	     const xmlChar *publicId, const xmlChar *systemId)
 {
     fprintf(stdout, "SAX.notationDecl(%s, %s, %s)\n",
             (char *) name, (char *) publicId, (char *) systemId);
@@ -320,9 +320,9 @@
  * What to do when an unparsed entity declaration is parsed
  */
 void
-unparsedEntityDeclDebug(void *ctx, const CHAR *name,
-		   const CHAR *publicId, const CHAR *systemId,
-		   const CHAR *notationName)
+unparsedEntityDeclDebug(void *ctx, const xmlChar *name,
+		   const xmlChar *publicId, const xmlChar *systemId,
+		   const xmlChar *notationName)
 {
     fprintf(stdout, "SAX.unparsedEntityDecl(%s, %s, %s, %s)\n",
             (char *) name, (char *) publicId, (char *) systemId,
@@ -375,7 +375,7 @@
  * called when an opening tag has been processed.
  */
 void
-startElementDebug(void *ctx, const CHAR *name, const CHAR **atts)
+startElementDebug(void *ctx, const xmlChar *name, const xmlChar **atts)
 {
     int i;
 
@@ -397,7 +397,7 @@
  * called when the end of an element has been detected.
  */
 void
-endElementDebug(void *ctx, const CHAR *name)
+endElementDebug(void *ctx, const xmlChar *name)
 {
     fprintf(stdout, "SAX.endElement(%s)\n", (char *) name);
 }
@@ -405,14 +405,14 @@
 /**
  * charactersDebug:
  * @ctxt:  An XML parser context
- * @ch:  a CHAR string
- * @len: the number of CHAR
+ * @ch:  a xmlChar string
+ * @len: the number of xmlChar
  *
  * receiving some chars from the parser.
  * Question: how much at a time ???
  */
 void
-charactersDebug(void *ctx, const CHAR *ch, int len)
+charactersDebug(void *ctx, const xmlChar *ch, int len)
 {
     int i;
 
@@ -430,7 +430,7 @@
  * called when an entity reference is detected. 
  */
 void
-referenceDebug(void *ctx, const CHAR *name)
+referenceDebug(void *ctx, const xmlChar *name)
 {
     fprintf(stdout, "SAX.reference(%s)\n", name);
 }
@@ -438,15 +438,15 @@
 /**
  * ignorableWhitespaceDebug:
  * @ctxt:  An XML parser context
- * @ch:  a CHAR string
+ * @ch:  a xmlChar string
  * @start: the first char in the string
- * @len: the number of CHAR
+ * @len: the number of xmlChar
  *
  * receiving some ignorable whitespaces from the parser.
  * Question: how much at a time ???
  */
 void
-ignorableWhitespaceDebug(void *ctx, const CHAR *ch, int len)
+ignorableWhitespaceDebug(void *ctx, const xmlChar *ch, int len)
 {
     fprintf(stdout, "SAX.ignorableWhitespace(%.30s, %d)\n",
             (char *) ch, len);
@@ -457,13 +457,13 @@
  * @ctxt:  An XML parser context
  * @target:  the target name
  * @data: the PI data's
- * @len: the number of CHAR
+ * @len: the number of xmlChar
  *
  * A processing instruction has been parsed.
  */
 void
-processingInstructionDebug(void *ctx, const CHAR *target,
-                      const CHAR *data)
+processingInstructionDebug(void *ctx, const xmlChar *target,
+                      const xmlChar *data)
 {
     fprintf(stdout, "SAX.processingInstruction(%s, %s)\n",
             (char *) target, (char *) data);
@@ -477,7 +477,7 @@
  * A comment has been parsed.
  */
 void
-commentDebug(void *ctx, const CHAR *value)
+commentDebug(void *ctx, const xmlChar *value)
 {
     fprintf(stdout, "SAX.comment(%s)\n", value);
 }
@@ -600,7 +600,7 @@
     }
 }
 
-void parseAndPrintBuffer(CHAR *buf) {
+void parseAndPrintBuffer(xmlChar *buf) {
     xmlDocPtr doc;
 
     /*
diff --git a/testXPath.c b/testXPath.c
index 21df3e7..236f506 100644
--- a/testXPath.c
+++ b/testXPath.c
@@ -45,7 +45,7 @@
 /*
  * Default document
  */
-static CHAR buffer[] = 
+static xmlChar buffer[] = 
 "<?xml version=\"1.0\"?>\n\
 <EXAMPLE prop1=\"gnome is great\" prop2=\"&amp; linux too\">\n\
   <head>\n\
diff --git a/tester.c b/tester.c
index c795c81..1357eca 100644
--- a/tester.c
+++ b/tester.c
@@ -49,7 +49,7 @@
 
 /*
  * Note: there is a couple of errors introduced on purpose.
-static CHAR buffer[] = 
+static xmlChar buffer[] = 
 "<?xml version=\"1.0\"?>\n\
 <?xml:namespace ns = \"http://www.ietf.org/standards/dav/\" prefix = \"D\"?>\n\
 <?xml:namespace ns = \"http://www.w3.com/standards/z39.50/\" prefix = \"Z\"?>\n\
@@ -156,7 +156,7 @@
     xmlFreeDoc(doc);
 }
 
-void parseAndPrintBuffer(CHAR *buf) {
+void parseAndPrintBuffer(xmlChar *buf) {
     xmlDocPtr doc, tmp;
 
     /*
diff --git a/tree.c b/tree.c
index c873898..c95e3eb 100644
--- a/tree.c
+++ b/tree.c
@@ -31,7 +31,7 @@
 #include "entities.h"
 #include "valid.h"
 
-static CHAR xmlStringText[] = { 't', 'e', 'x', 't', 0 };
+static xmlChar xmlStringText[] = { 't', 'e', 'x', 't', 0 };
 int oldXMLWDcompatibility = 0;
 int xmlIndentTreeOutput = 1;
 
@@ -89,7 +89,7 @@
  * Returns returns a new namespace pointer
  */
 xmlNsPtr
-xmlNewNs(xmlNodePtr node, const CHAR *href, const CHAR *prefix) {
+xmlNewNs(xmlNodePtr node, const xmlChar *href, const xmlChar *prefix) {
     xmlNsPtr cur;
 
     if (href == NULL) {
@@ -144,7 +144,7 @@
  * Returns returns a new namespace pointer
  */
 xmlNsPtr
-xmlNewGlobalNs(xmlDocPtr doc, const CHAR *href, const CHAR *prefix) {
+xmlNewGlobalNs(xmlDocPtr doc, const xmlChar *href, const xmlChar *prefix) {
     xmlNsPtr cur;
 
     /*
@@ -249,8 +249,8 @@
  * Returns a pointer to the new DTD structure
  */
 xmlDtdPtr
-xmlNewDtd(xmlDocPtr doc, const CHAR *name,
-                    const CHAR *ExternalID, const CHAR *SystemID) {
+xmlNewDtd(xmlDocPtr doc, const xmlChar *name,
+                    const xmlChar *ExternalID, const xmlChar *SystemID) {
     xmlDtdPtr cur;
 
     if ((doc != NULL) && (doc->extSubset != NULL)) {
@@ -301,8 +301,8 @@
  * Returns a pointer to the new DTD structure
  */
 xmlDtdPtr
-xmlCreateIntSubset(xmlDocPtr doc, const CHAR *name,
-                   const CHAR *ExternalID, const CHAR *SystemID) {
+xmlCreateIntSubset(xmlDocPtr doc, const xmlChar *name,
+                   const xmlChar *ExternalID, const xmlChar *SystemID) {
     xmlDtdPtr cur;
 
     if ((doc != NULL) && (doc->intSubset != NULL)) {
@@ -372,12 +372,12 @@
 
 /**
  * xmlNewDoc:
- * @version:  CHAR string giving the version of XML "1.0"
+ * @version:  xmlChar string giving the version of XML "1.0"
  *
  * Returns a new document
  */
 xmlDocPtr
-xmlNewDoc(const CHAR *version) {
+xmlNewDoc(const xmlChar *version) {
     xmlDocPtr cur;
 
     if (version == NULL) {
@@ -452,12 +452,12 @@
  * Returns a pointer to the first child
  */
 xmlNodePtr
-xmlStringLenGetNodeList(xmlDocPtr doc, const CHAR *value, int len) {
+xmlStringLenGetNodeList(xmlDocPtr doc, const xmlChar *value, int len) {
     xmlNodePtr ret = NULL, last = NULL;
     xmlNodePtr node;
-    CHAR *val;
-    const CHAR *cur = value;
-    const CHAR *q;
+    xmlChar *val;
+    const xmlChar *cur = value;
+    const xmlChar *q;
     xmlEntityPtr ent;
 
     if (value == NULL) return(NULL);
@@ -563,12 +563,12 @@
  * Returns a pointer to the first child
  */
 xmlNodePtr
-xmlStringGetNodeList(xmlDocPtr doc, const CHAR *value) {
+xmlStringGetNodeList(xmlDocPtr doc, const xmlChar *value) {
     xmlNodePtr ret = NULL, last = NULL;
     xmlNodePtr node;
-    CHAR *val;
-    const CHAR *cur = value;
-    const CHAR *q;
+    xmlChar *val;
+    const xmlChar *cur = value;
+    const xmlChar *q;
     xmlEntityPtr ent;
 
     if (value == NULL) return(NULL);
@@ -674,10 +674,10 @@
  * made of TEXTs and ENTITY_REFs
  * Returns a pointer to the string copy, the calller must free it.
  */
-CHAR *
+xmlChar *
 xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int inLine) {
     xmlNodePtr node = list;
-    CHAR *ret = NULL;
+    xmlChar *ret = NULL;
     xmlEntityPtr ent;
 
     if (list == NULL) return(NULL);
@@ -687,7 +687,7 @@
 	    if (inLine)
 		ret = xmlStrcat(ret, node->content);
 	    else {
-	        CHAR *buffer;
+	        xmlChar *buffer;
 
 		buffer = xmlEncodeEntitiesReentrant(doc, node->content);
 		if (buffer != NULL) {
@@ -703,7 +703,7 @@
 		else
 		    ret = xmlStrcat(ret, node->content);
             } else {
-	        CHAR buf[2];
+	        xmlChar buf[2];
 		buf[0] = '&'; buf[1] = 0;
 		ret = xmlStrncat(ret, buf, 1);
 		ret = xmlStrcat(ret, node->name);
@@ -732,7 +732,7 @@
  * Returns a pointer to the attribute
  */
 xmlAttrPtr
-xmlNewProp(xmlNodePtr node, const CHAR *name, const CHAR *value) {
+xmlNewProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
     xmlAttrPtr cur;
 
     if (name == NULL) {
@@ -790,8 +790,8 @@
  * Returns a pointer to the attribute
  */
 xmlAttrPtr
-xmlNewNsProp(xmlNodePtr node, xmlNsPtr ns, const CHAR *name,
-           const CHAR *value) {
+xmlNewNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name,
+           const xmlChar *value) {
     xmlAttrPtr cur;
 
     if (name == NULL) {
@@ -848,7 +848,7 @@
  * Returns a pointer to the attribute
  */
 xmlAttrPtr
-xmlNewDocProp(xmlDocPtr doc, const CHAR *name, const CHAR *value) {
+xmlNewDocProp(xmlDocPtr doc, const xmlChar *name, const xmlChar *value) {
     xmlAttrPtr cur;
 
     if (name == NULL) {
@@ -928,7 +928,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewPI(const CHAR *name, const CHAR *content) {
+xmlNewPI(const xmlChar *name, const xmlChar *content) {
     xmlNodePtr cur;
 
     if (name == NULL) {
@@ -978,7 +978,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewNode(xmlNsPtr ns, const CHAR *name) {
+xmlNewNode(xmlNsPtr ns, const xmlChar *name) {
     xmlNodePtr cur;
 
     if (name == NULL) {
@@ -1027,7 +1027,7 @@
  */
 xmlNodePtr
 xmlNewDocNode(xmlDocPtr doc, xmlNsPtr ns,
-                         const CHAR *name, const CHAR *content) {
+                         const xmlChar *name, const xmlChar *content) {
     xmlNodePtr cur;
 
     cur = xmlNewNode(ns, name);
@@ -1050,7 +1050,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewText(const CHAR *content) {
+xmlNewText(const xmlChar *content) {
     xmlNodePtr cur;
 
     /*
@@ -1090,7 +1090,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewReference(xmlDocPtr doc, const CHAR *name) {
+xmlNewReference(xmlDocPtr doc, const xmlChar *name) {
     xmlNodePtr cur;
     xmlEntityPtr ent;
 
@@ -1141,7 +1141,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewDocText(xmlDocPtr doc, const CHAR *content) {
+xmlNewDocText(xmlDocPtr doc, const xmlChar *content) {
     xmlNodePtr cur;
 
     cur = xmlNewText(content);
@@ -1158,7 +1158,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewTextLen(const CHAR *content, int len) {
+xmlNewTextLen(const xmlChar *content, int len) {
     xmlNodePtr cur;
 
     /*
@@ -1200,7 +1200,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewDocTextLen(xmlDocPtr doc, const CHAR *content, int len) {
+xmlNewDocTextLen(xmlDocPtr doc, const xmlChar *content, int len) {
     xmlNodePtr cur;
 
     cur = xmlNewTextLen(content, len);
@@ -1216,7 +1216,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewComment(const CHAR *content) {
+xmlNewComment(const xmlChar *content) {
     xmlNodePtr cur;
 
     /*
@@ -1257,7 +1257,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewCDataBlock(xmlDocPtr doc, const CHAR *content, int len) {
+xmlNewCDataBlock(xmlDocPtr doc, const xmlChar *content, int len) {
     xmlNodePtr cur;
 
     /*
@@ -1296,7 +1296,7 @@
  * Returns a pointer to the new node object.
  */
 xmlNodePtr
-xmlNewDocComment(xmlDocPtr doc, const CHAR *content) {
+xmlNewDocComment(xmlDocPtr doc, const xmlChar *content) {
     xmlNodePtr cur;
 
     cur = xmlNewComment(content);
@@ -1319,7 +1319,7 @@
  */
 xmlNodePtr
 xmlNewChild(xmlNodePtr parent, xmlNsPtr ns,
-                       const CHAR *name, const CHAR *content) {
+                       const xmlChar *name, const xmlChar *content) {
     xmlNodePtr cur, prev;
 
     if (parent == NULL) {
@@ -1929,7 +1929,7 @@
  * Returns a pointer to the lang value, or NULL if not found
  */
 void
-xmlNodeSetLang(xmlNodePtr cur, const CHAR *lang) {
+xmlNodeSetLang(xmlNodePtr cur, const xmlChar *lang) {
     /* TODO xmlNodeSetLang check against the production [33] LanguageID */
     xmlSetProp(cur, BAD_CAST "xml:lang", lang);
 }
@@ -1943,9 +1943,9 @@
  *
  * Returns a pointer to the lang value, or NULL if not found
  */
-const CHAR *
+const xmlChar *
 xmlNodeGetLang(xmlNodePtr cur) {
-    const CHAR *lang;
+    const xmlChar *lang;
 
     while (cur != NULL) {
         lang = xmlGetProp(cur, BAD_CAST "xml:lang");
@@ -1964,10 +1964,10 @@
  * directly by this node if it's a TEXT node or the aggregate string
  * of the values carried by this node child's (TEXT and ENTITY_REF).
  * Entity references are substitued.
- * Returns a new CHAR * or NULL if no content is available.
+ * Returns a new xmlChar * or NULL if no content is available.
  *     It's up to the caller to free the memory.
  */
-CHAR *
+xmlChar *
 xmlNodeGetContent(xmlNodePtr cur) {
     if (cur == NULL) return(NULL);
     switch (cur->type) {
@@ -2011,7 +2011,7 @@
  * Replace the content of a node.
  */
 void
-xmlNodeSetContent(xmlNodePtr cur, const CHAR *content) {
+xmlNodeSetContent(xmlNodePtr cur, const xmlChar *content) {
     if (cur == NULL) {
         fprintf(stderr, "xmlNodeSetContent : node == NULL\n");
 	return;
@@ -2060,7 +2060,7 @@
  * Replace the content of a node.
  */
 void
-xmlNodeSetContentLen(xmlNodePtr cur, const CHAR *content, int len) {
+xmlNodeSetContentLen(xmlNodePtr cur, const xmlChar *content, int len) {
     if (cur == NULL) {
         fprintf(stderr, "xmlNodeSetContentLen : node == NULL\n");
 	return;
@@ -2116,7 +2116,7 @@
  * Append the extra substring to the node content.
  */
 void
-xmlNodeAddContentLen(xmlNodePtr cur, const CHAR *content, int len) {
+xmlNodeAddContentLen(xmlNodePtr cur, const xmlChar *content, int len) {
     if (cur == NULL) {
         fprintf(stderr, "xmlNodeAddContentLen : node == NULL\n");
 	return;
@@ -2175,7 +2175,7 @@
  * Append the extra substring to the node content.
  */
 void
-xmlNodeAddContent(xmlNodePtr cur, const CHAR *content) {
+xmlNodeAddContent(xmlNodePtr cur, const xmlChar *content) {
     int len;
 
     if (cur == NULL) {
@@ -2274,7 +2274,7 @@
  * Returns the namespace pointer or NULL.
  */
 xmlNsPtr
-xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const CHAR *nameSpace) {
+xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace) {
     xmlNsPtr cur;
 
     while (node != NULL) {
@@ -2312,7 +2312,7 @@
  * Returns the namespace pointer or NULL.
  */
 xmlNsPtr
-xmlSearchNsByHref(xmlDocPtr doc, xmlNodePtr node, const CHAR *href) {
+xmlSearchNsByHref(xmlDocPtr doc, xmlNodePtr node, const xmlChar *href) {
     xmlNsPtr cur;
 
     while (node != NULL) {
@@ -2346,15 +2346,15 @@
  * This does the entity substitution.
  * Returns the attribute value or NULL if not found.
  */
-CHAR *xmlGetProp(xmlNodePtr node, const CHAR *name) {
+xmlChar *xmlGetProp(xmlNodePtr node, const xmlChar *name) {
     xmlAttrPtr prop = node->properties;
 
     while (prop != NULL) {
         if (!xmlStrcmp(prop->name, name))  {
-	    CHAR *ret;
+	    xmlChar *ret;
 
 	    ret = xmlNodeListGetString(node->doc, prop->val, 1);
-	    if (ret == NULL) return(xmlStrdup((CHAR *)""));
+	    if (ret == NULL) return(xmlStrdup((xmlChar *)""));
 	    return(ret);
         }
 	prop = prop->next;
@@ -2372,7 +2372,7 @@
  * Returns the attribute pointer.
  */
 xmlAttrPtr
-xmlSetProp(xmlNodePtr node, const CHAR *name, const CHAR *value) {
+xmlSetProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
     xmlAttrPtr prop = node->properties;
 
     while (prop != NULL) {
@@ -2415,7 +2415,7 @@
  */
 
 void
-xmlTextConcat(xmlNodePtr node, const CHAR *content, int len) {
+xmlTextConcat(xmlNodePtr node, const xmlChar *content, int len) {
     if (node == NULL) return;
 
     if (node->type != XML_TEXT_NODE) {
@@ -2450,7 +2450,7 @@
     }
     ret->use = 0;
     ret->size = BASE_BUFFER_SIZE;
-    ret->content = (CHAR *) xmlMalloc(ret->size * sizeof(CHAR));
+    ret->content = (xmlChar *) xmlMalloc(ret->size * sizeof(xmlChar));
     if (ret->content == NULL) {
 	fprintf(stderr, "xmlBufferCreate : out of memory!\n");
 	xmlFree(ret);
@@ -2497,11 +2497,11 @@
 /**
  * xmlBufferShrink:
  * @buf:  the buffer to dump
- * @len:  the number of CHAR to remove
+ * @len:  the number of xmlChar to remove
  *
  * Remove the beginning of an XML buffer.
  *
- * Returns the number of CHAR removed, or -1 in case of failure.
+ * Returns the number of xmlChar removed, or -1 in case of failure.
  */
 int
 xmlBufferShrink(xmlBufferPtr buf, int len) {
@@ -2509,7 +2509,7 @@
     if (len > buf->use) return(-1);
 
     buf->use -= len;
-    memmove(buf->content, &buf->content[len], buf->use * sizeof(CHAR));
+    memmove(buf->content, &buf->content[len], buf->use * sizeof(xmlChar));
 
     buf->content[buf->use] = 0;
     return(len);
@@ -2521,7 +2521,7 @@
  * @buf:  the buffer to dump
  *
  * Dumps an XML buffer to  a FILE *.
- * Returns the number of CHAR written
+ * Returns the number of xmlChar written
  */
 int
 xmlBufferDump(FILE *file, xmlBufferPtr buf) {
@@ -2536,20 +2536,20 @@
 	return(0);
     }
     if (file == NULL) file = stdout;
-    ret = fwrite(buf->content, sizeof(CHAR), buf->use, file);
+    ret = fwrite(buf->content, sizeof(xmlChar), buf->use, file);
     return(ret);
 }
 
 /**
  * xmlBufferAdd:
  * @buf:  the buffer to dump
- * @str:  the CHAR string
- * @len:  the number of CHAR to add
+ * @str:  the xmlChar string
+ * @len:  the number of xmlChar to add
  *
  * Add a string range to an XML buffer.
  */
 void
-xmlBufferAdd(xmlBufferPtr buf, const CHAR *str, int len) {
+xmlBufferAdd(xmlBufferPtr buf, const xmlChar *str, int len) {
     int l;
 
     if (str == NULL) {
@@ -2561,12 +2561,12 @@
     if (len <= 0) return;
 
     if (buf->use + len + 10 >= buf->size) {
-	CHAR *rebuf;
+	xmlChar *rebuf;
 
         buf->size *= 2;
 	if (buf->use + len + 10 > buf->size)
 	    buf->size = buf->use + len + 10;
-	rebuf = (CHAR *) xmlRealloc(buf->content, buf->size * sizeof(CHAR));
+	rebuf = (xmlChar *) xmlRealloc(buf->content, buf->size * sizeof(xmlChar));
 	if (rebuf == NULL) {
 	    fprintf(stderr, "xmlBufferAdd : out of memory!\n");
 	    return;
@@ -2581,13 +2581,13 @@
 /**
  * xmlBufferCat:
  * @buf:  the buffer to dump
- * @str:  the CHAR string
+ * @str:  the xmlChar string
  *
  * Append a zero terminated string to an XML buffer.
  */
 void
-xmlBufferCat(xmlBufferPtr buf, const CHAR *str) {
-    const CHAR *cur;
+xmlBufferCat(xmlBufferPtr buf, const xmlChar *str) {
+    const xmlChar *cur;
 
     if (str == NULL) {
         fprintf(stderr, "xmlBufferAdd: str == NULL\n");
@@ -2595,10 +2595,10 @@
     }
     for (cur = str;*cur != 0;cur++) {
         if (buf->use  + 10 >= buf->size) {
-	    CHAR *rebuf;
+	    xmlChar *rebuf;
 
 	    buf->size *= 2;
-	    rebuf = (CHAR *) xmlRealloc(buf->content, buf->size * sizeof(CHAR));
+	    rebuf = (xmlChar *) xmlRealloc(buf->content, buf->size * sizeof(xmlChar));
 	    if (rebuf == NULL) {
 	        fprintf(stderr, "xmlBufferAdd : out of memory!\n");
 		return;
@@ -2626,10 +2626,10 @@
     }
     for (cur = str;*cur != 0;cur++) {
         if (buf->use  + 10 >= buf->size) {
-	    CHAR *rebuf;
+	    xmlChar *rebuf;
 
 	    buf->size *= 2;
-	    rebuf = (CHAR *) xmlRealloc(buf->content, buf->size * sizeof(CHAR));
+	    rebuf = (xmlChar *) xmlRealloc(buf->content, buf->size * sizeof(xmlChar));
 	    if (rebuf == NULL) {
 	        fprintf(stderr, "xmlBufferAdd : out of memory!\n");
 		return;
@@ -2646,10 +2646,10 @@
  * @string:  the string to add
  *
  * routine which manage and grows an output buffer. This one add
- * CHARs at the end of the buffer.
+ * xmlChars at the end of the buffer.
  */
 void
-xmlBufferWriteCHAR(xmlBufferPtr buf, const CHAR *string) {
+xmlBufferWriteCHAR(xmlBufferPtr buf, const xmlChar *string) {
     xmlBufferCat(buf, string);
 }
 
@@ -2673,11 +2673,11 @@
  * @string:  the string to add
  *
  * routine which manage and grows an output buffer. This one writes
- * a quoted or double quoted CHAR string, checking first if it holds
+ * a quoted or double quoted xmlChar string, checking first if it holds
  * quote or double-quotes internally
  */
 void
-xmlBufferWriteQuotedString(xmlBufferPtr buf, const CHAR *string) {
+xmlBufferWriteQuotedString(xmlBufferPtr buf, const xmlChar *string) {
     if (xmlStrchr(string, '"')) {
         if (xmlStrchr(string, '\'')) {
 	    fprintf(stderr,
@@ -2833,7 +2833,7 @@
  */
 static void
 xmlAttrDump(xmlBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur) {
-    CHAR *value;
+    xmlChar *value;
 
     if (cur == NULL) {
         fprintf(stderr, "xmlAttrDump : property == NULL\n");
@@ -2930,7 +2930,7 @@
     }
     if (cur->type == XML_TEXT_NODE) {
 	if (cur->content != NULL) {
-            CHAR *buffer;
+            xmlChar *buffer;
 
             buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
 	    if (buffer != NULL) {
@@ -2995,7 +2995,7 @@
     }
     xmlBufferWriteChar(buf, ">");
     if (cur->content != NULL) {
-	CHAR *buffer;
+	xmlChar *buffer;
 
 	buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
 	if (buffer != NULL) {
@@ -3067,11 +3067,11 @@
  * @mem:  OUT: the memory pointer
  * @size:  OUT: the memory lenght
  *
- * Dump an XML document in memory and return the CHAR * and it's size.
+ * Dump an XML document in memory and return the xmlChar * and it's size.
  * It's up to the caller to free the memory.
  */
 void
-xmlDocDumpMemory(xmlDocPtr cur, CHAR**mem, int *size) {
+xmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int *size) {
     xmlBufferPtr buf;
 
     if (cur == NULL) {
@@ -3211,7 +3211,7 @@
     }
 
     if (zoutput != NULL) {
-        ret = gzwrite(zoutput, buf->content, sizeof(CHAR) * buf->use);
+        ret = gzwrite(zoutput, buf->content, sizeof(xmlChar) * buf->use);
 	gzclose(zoutput);
     } else {
 #endif
@@ -3221,6 +3221,6 @@
     }
 #endif
     xmlBufferFree(buf);
-    return(ret * sizeof(CHAR));
+    return(ret * sizeof(xmlChar));
 }
 
diff --git a/tree.h b/tree.h
index bf8a77e..bd29083 100644
--- a/tree.h
+++ b/tree.h
@@ -44,25 +44,32 @@
  * Currently we use 8bit chars internal representation for memory efficiency,
  * but the parser is not tied to that, just define UNICODE to switch to
  * a 16 bits internal representation. Note that with 8 bits wide
- * CHARs one can still use UTF-8 to handle correctly non ISO-Latin
+ * xmlChars one can still use UTF-8 to handle correctly non ISO-Latin
  * input.
  */
+
 #ifdef UNICODE
-typedef unsigned short CHAR;
+typedef unsigned short xmlChar;
 #else
-typedef unsigned char CHAR;
+typedef unsigned char xmlChar;
 #endif
 
-#define BAD_CAST (CHAR *)
+#ifndef WIN32
+#ifndef CHAR
+#define CHAR xmlChar
+#endif
+#endif
+
+#define BAD_CAST (xmlChar *)
 
 /*
  * a DTD Notation definition
  */
 
 typedef struct xmlNotation {
-    const CHAR               *name;	/* Notation name */
-    const CHAR               *PublicID;	/* Public identifier, if any */
-    const CHAR               *SystemID;	/* System identifier, if any */
+    const xmlChar               *name;	/* Notation name */
+    const xmlChar               *PublicID;	/* Public identifier, if any */
+    const xmlChar               *SystemID;	/* System identifier, if any */
 } xmlNotation;
 typedef xmlNotation *xmlNotationPtr;
 
@@ -92,17 +99,17 @@
 
 typedef struct xmlEnumeration {
     struct xmlEnumeration    *next;	/* next one */
-    const CHAR               *name;	/* Enumeration name */
+    const xmlChar               *name;	/* Enumeration name */
 } xmlEnumeration;
 typedef xmlEnumeration *xmlEnumerationPtr;
 
 typedef struct xmlAttribute {
-    const CHAR            *elem;	/* Element holding the attribute */
-    const CHAR            *name;	/* Attribute name */
+    const xmlChar            *elem;	/* Element holding the attribute */
+    const xmlChar            *name;	/* Attribute name */
     struct xmlAttribute   *next;        /* list of attributes of an element */
     xmlAttributeType       type;	/* The type */
     xmlAttributeDefault    def;		/* the default */
-    const CHAR            *defaultValue;/* or the default value */
+    const xmlChar            *defaultValue;/* or the default value */
     xmlEnumerationPtr      tree;        /* or the enumeration tree if any */
 } xmlAttribute;
 typedef xmlAttribute *xmlAttributePtr;
@@ -127,7 +134,7 @@
 typedef struct xmlElementContent {
     xmlElementContentType     type;	/* PCDATA, ELEMENT, SEQ or OR */
     xmlElementContentOccur    ocur;	/* ONCE, OPT, MULT or PLUS */
-    const CHAR               *name;	/* Element name */
+    const xmlChar               *name;	/* Element name */
     struct xmlElementContent *c1;	/* first child */
     struct xmlElementContent *c2;	/* second child */
 } xmlElementContent;
@@ -141,7 +148,7 @@
 } xmlElementTypeVal;
 
 typedef struct xmlElement {
-    const CHAR             *name;	/* Element name */
+    const xmlChar             *name;	/* Element name */
     xmlElementTypeVal       type;	/* The type */
     xmlElementContentPtr content;	/* the allowed element content */
     xmlAttributePtr   attributes;	/* List of the declared attributes */
@@ -162,8 +169,8 @@
 typedef struct xmlNs {
     struct xmlNs  *next;	/* next Ns link for this node  */
     xmlNsType      type;	/* global or local */
-    const CHAR    *href;	/* URL for the namespace */
-    const CHAR    *prefix;	/* prefix for the namespace */
+    const xmlChar    *href;	/* URL for the namespace */
+    const xmlChar    *prefix;	/* prefix for the namespace */
 } xmlNs;
 typedef xmlNs *xmlNsPtr;
 
@@ -171,9 +178,9 @@
  * An XML DtD, as defined by <!DOCTYPE.
  */
 typedef struct xmlDtd {
-    const CHAR    *name;	/* Name of the DTD */
-    const CHAR    *ExternalID;	/* External identifier for PUBLIC DTD */
-    const CHAR    *SystemID;	/* URI for a SYSTEM or PUBLIC DTD */
+    const xmlChar    *name;	/* Name of the DTD */
+    const xmlChar    *ExternalID;	/* External identifier for PUBLIC DTD */
+    const xmlChar    *SystemID;	/* URI for a SYSTEM or PUBLIC DTD */
     void          *notations;   /* Hash table for notations if any */
     void          *elements;    /* Hash table for elements if any */
     void          *attributes;  /* Hash table for attributes if any */
@@ -193,7 +200,7 @@
     xmlElementType  type;       /* XML_ATTRIBUTE_NODE, must be third ! */
     struct xmlNode *node;	/* attr->node link */
     struct xmlAttr *next;	/* attribute list link */
-    const CHAR     *name;       /* the name of the property */
+    const xmlChar     *name;       /* the name of the property */
     struct xmlNode *val;        /* the value of the property */
     xmlNs          *ns;         /* pointer to the associated namespace */
 } xmlAttr;
@@ -205,7 +212,7 @@
 
 typedef struct xmlID {
     struct xmlID     *next;	/* next ID */
-    const CHAR       *value;	/* The ID name */
+    const xmlChar       *value;	/* The ID name */
     xmlAttrPtr        attr;	/* The attribut holding it */
 } xmlID;
 typedef xmlID *xmlIDPtr;
@@ -216,7 +223,7 @@
 
 typedef struct xmlRef {
     struct xmlRef     *next;	/* next Ref */
-    const CHAR       *value;	/* The Ref name */
+    const xmlChar       *value;	/* The Ref name */
     xmlAttrPtr        attr;	/* The attribut holding it */
 } xmlRef;
 typedef xmlRef *xmlRefPtr;
@@ -237,10 +244,10 @@
     struct xmlNode *childs;	/* parent->childs link */
     struct xmlNode *last;	/* last child link */
     struct xmlAttr *properties;	/* properties list */
-    const CHAR     *name;       /* the name of the node, or the entity */
+    const xmlChar     *name;       /* the name of the node, or the entity */
     xmlNs          *ns;         /* pointer to the associated namespace */
     xmlNs          *nsDef;      /* namespace definitions on this node */
-    CHAR           *content;    /* the content */
+    xmlChar           *content;    /* the content */
 } _xmlNode;
 typedef _xmlNode xmlNode;
 typedef _xmlNode *xmlNodePtr;
@@ -255,8 +262,8 @@
 #endif
     xmlElementType  type;       /* XML_DOCUMENT_NODE, must be second ! */
     char           *name;	/* name/filename/URI of the document */
-    const CHAR     *version;	/* the XML version string */
-    const CHAR     *encoding;   /* encoding, if any */
+    const xmlChar     *version;	/* the XML version string */
+    const xmlChar     *encoding;   /* encoding, if any */
     int             compression;/* level of zlib compression */
     int             standalone; /* standalone document (no external refs) */
     struct xmlDtd  *intSubset;	/* the document internal subset */
@@ -274,7 +281,7 @@
  */
 
 typedef struct xmlBuffer {
-    CHAR *content;		/* The buffer content UTF8 */
+    xmlChar *content;		/* The buffer content UTF8 */
     unsigned int use;		/* The buffer size used */
     unsigned int size;		/* The buffer size */
 } _xmlBuffer;
@@ -297,10 +304,10 @@
 int		xmlBufferDump		(FILE *file,
 					 xmlBufferPtr buf);
 void		xmlBufferAdd		(xmlBufferPtr buf,
-					 const CHAR *str,
+					 const xmlChar *str,
 					 int len);
 void		xmlBufferCat		(xmlBufferPtr buf,
-					 const CHAR *str);
+					 const xmlChar *str);
 void		xmlBufferCCat		(xmlBufferPtr buf,
 					 const char *str);
 int		xmlBufferShrink		(xmlBufferPtr buf,
@@ -311,33 +318,33 @@
  * Creating/freeing new structures
  */
 xmlDtdPtr	xmlCreateIntSubset	(xmlDocPtr doc,
-					 const CHAR *name,
-					 const CHAR *ExternalID,
-					 const CHAR *SystemID);
+					 const xmlChar *name,
+					 const xmlChar *ExternalID,
+					 const xmlChar *SystemID);
 xmlDtdPtr	xmlNewDtd		(xmlDocPtr doc,
-					 const CHAR *name,
-					 const CHAR *ExternalID,
-					 const CHAR *SystemID);
+					 const xmlChar *name,
+					 const xmlChar *ExternalID,
+					 const xmlChar *SystemID);
 void		xmlFreeDtd		(xmlDtdPtr cur);
 xmlNsPtr	xmlNewGlobalNs		(xmlDocPtr doc,
-					 const CHAR *href,
-					 const CHAR *prefix);
+					 const xmlChar *href,
+					 const xmlChar *prefix);
 xmlNsPtr	xmlNewNs		(xmlNodePtr node,
-					 const CHAR *href,
-					 const CHAR *prefix);
+					 const xmlChar *href,
+					 const xmlChar *prefix);
 void		xmlFreeNs		(xmlNsPtr cur);
-xmlDocPtr xmlNewDoc			(const CHAR *version);
+xmlDocPtr xmlNewDoc			(const xmlChar *version);
 void		xmlFreeDoc		(xmlDocPtr cur);
 xmlAttrPtr	xmlNewDocProp		(xmlDocPtr doc,
-					 const CHAR *name,
-					 const CHAR *value);
+					 const xmlChar *name,
+					 const xmlChar *value);
 xmlAttrPtr	xmlNewProp		(xmlNodePtr node,
-					 const CHAR *name,
-					 const CHAR *value);
+					 const xmlChar *name,
+					 const xmlChar *value);
 xmlAttrPtr	xmlNewNsProp		(xmlNodePtr node,
 					 xmlNsPtr ns,
-					 const CHAR *name,
-					 const CHAR *value);
+					 const xmlChar *name,
+					 const xmlChar *value);
 void		xmlFreePropList		(xmlAttrPtr cur);
 void		xmlFreeProp		(xmlAttrPtr cur);
 xmlAttrPtr	xmlCopyProp		(xmlNodePtr target,
@@ -353,32 +360,32 @@
  */
 xmlNodePtr	xmlNewDocNode		(xmlDocPtr doc,
 					 xmlNsPtr ns,
-					 const CHAR *name,
-					 const CHAR *content);
+					 const xmlChar *name,
+					 const xmlChar *content);
 xmlNodePtr	xmlNewNode		(xmlNsPtr ns,
-					 const CHAR *name);
+					 const xmlChar *name);
 xmlNodePtr	xmlNewChild		(xmlNodePtr parent,
 					 xmlNsPtr ns,
-					 const CHAR *name,
-					 const CHAR *content);
+					 const xmlChar *name,
+					 const xmlChar *content);
 xmlNodePtr	xmlNewDocText		(xmlDocPtr doc,
-					 const CHAR *content);
-xmlNodePtr	xmlNewText		(const CHAR *content);
-xmlNodePtr	xmlNewPI		(const CHAR *name,
-					 const CHAR *content);
+					 const xmlChar *content);
+xmlNodePtr	xmlNewText		(const xmlChar *content);
+xmlNodePtr	xmlNewPI		(const xmlChar *name,
+					 const xmlChar *content);
 xmlNodePtr	xmlNewDocTextLen	(xmlDocPtr doc,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
-xmlNodePtr	xmlNewTextLen		(const CHAR *content,
+xmlNodePtr	xmlNewTextLen		(const xmlChar *content,
 					 int len);
 xmlNodePtr	xmlNewDocComment	(xmlDocPtr doc,
-					 const CHAR *content);
-xmlNodePtr	xmlNewComment		(const CHAR *content);
+					 const xmlChar *content);
+xmlNodePtr	xmlNewComment		(const xmlChar *content);
 xmlNodePtr	xmlNewCDataBlock	(xmlDocPtr doc,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
 xmlNodePtr	xmlNewReference		(xmlDocPtr doc,
-					 const CHAR *name);
+					 const xmlChar *name);
 xmlNodePtr	xmlCopyNode		(xmlNodePtr node,
 					 int recursive);
 xmlNodePtr	xmlCopyNodeList		(xmlNodePtr node);
@@ -400,7 +407,7 @@
 xmlNodePtr	xmlTextMerge		(xmlNodePtr first,
 					 xmlNodePtr second);
 void		xmlTextConcat		(xmlNodePtr node,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
 void		xmlFreeNodeList		(xmlNodePtr cur);
 void		xmlFreeNode		(xmlNodePtr cur);
@@ -410,10 +417,10 @@
  */
 xmlNsPtr	xmlSearchNs		(xmlDocPtr doc,
 					 xmlNodePtr node,
-					 const CHAR *nameSpace);
+					 const xmlChar *nameSpace);
 xmlNsPtr	xmlSearchNsByHref	(xmlDocPtr doc,
 					 xmlNodePtr node,
-					 const CHAR *href);
+					 const xmlChar *href);
 xmlNsPtr *	xmlGetNsList		(xmlDocPtr doc,
 					 xmlNodePtr node);
 void		xmlSetNs		(xmlNodePtr node,
@@ -425,32 +432,32 @@
  * Changing the content.
  */
 xmlAttrPtr	xmlSetProp		(xmlNodePtr node,
-					 const CHAR *name,
-					 const CHAR *value);
-CHAR *		xmlGetProp		(xmlNodePtr node,
-					 const CHAR *name);
+					 const xmlChar *name,
+					 const xmlChar *value);
+xmlChar *		xmlGetProp		(xmlNodePtr node,
+					 const xmlChar *name);
 xmlNodePtr	xmlStringGetNodeList	(xmlDocPtr doc,
-					 const CHAR *value);
+					 const xmlChar *value);
 xmlNodePtr	xmlStringLenGetNodeList	(xmlDocPtr doc,
-					 const CHAR *value,
+					 const xmlChar *value,
 					 int len);
-CHAR *		xmlNodeListGetString	(xmlDocPtr doc,
+xmlChar *		xmlNodeListGetString	(xmlDocPtr doc,
 					 xmlNodePtr list,
 					 int inLine);
 void		xmlNodeSetContent	(xmlNodePtr cur,
-					 const CHAR *content);
+					 const xmlChar *content);
 void		xmlNodeSetContentLen	(xmlNodePtr cur,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
 void		xmlNodeAddContent	(xmlNodePtr cur,
-					 const CHAR *content);
+					 const xmlChar *content);
 void		xmlNodeAddContentLen	(xmlNodePtr cur,
-					 const CHAR *content,
+					 const xmlChar *content,
 					 int len);
-CHAR *		xmlNodeGetContent	(xmlNodePtr cur);
-const CHAR *	xmlNodeGetLang		(xmlNodePtr cur);
+xmlChar *		xmlNodeGetContent	(xmlNodePtr cur);
+const xmlChar *	xmlNodeGetLang		(xmlNodePtr cur);
 void		xmlNodeSetLang		(xmlNodePtr cur,
-					 const CHAR *lang);
+					 const xmlChar *lang);
 
 /*
  * Removing content.
@@ -462,17 +469,17 @@
  * Internal, don't use
  */
 void		xmlBufferWriteCHAR	(xmlBufferPtr buf,
-					 const CHAR *string);
+					 const xmlChar *string);
 void		xmlBufferWriteChar	(xmlBufferPtr buf,
 					 const char *string);
 void		xmlBufferWriteQuotedString(xmlBufferPtr buf,
-					 const CHAR *string);
+					 const xmlChar *string);
 
 /*
  * Saving
  */
 void		xmlDocDumpMemory	(xmlDocPtr cur,
-					 CHAR**mem,
+					 xmlChar**mem,
 					 int *size);
 void		xmlDocDump		(FILE *f,
 					 xmlDocPtr cur);
diff --git a/valid.c b/valid.c
index 2f4722a..e756b0d 100644
--- a/valid.c
+++ b/valid.c
@@ -36,8 +36,8 @@
    if (doc == NULL) return(0);					\
    else if (doc->intSubset == NULL) return(0)
 
-xmlElementPtr xmlGetDtdElementDesc(xmlDtdPtr dtd, const CHAR *name);
-xmlAttributePtr xmlScanAttributeDecl(xmlDtdPtr dtd, const CHAR *elem);
+xmlElementPtr xmlGetDtdElementDesc(xmlDtdPtr dtd, const xmlChar *name);
+xmlAttributePtr xmlScanAttributeDecl(xmlDtdPtr dtd, const xmlChar *elem);
 
 /****************************************************************
  *								*
@@ -55,7 +55,7 @@
  * Returns NULL if not, othervise the new element content structure
  */
 xmlElementContentPtr
-xmlNewElementContent(CHAR *name, xmlElementContentType type) {
+xmlNewElementContent(xmlChar *name, xmlElementContentType type) {
     xmlElementContentPtr ret;
 
     switch(type) {
@@ -103,7 +103,7 @@
     xmlElementContentPtr ret;
 
     if (cur == NULL) return(NULL);
-    ret = xmlNewElementContent((CHAR *) cur->name, cur->type);
+    ret = xmlNewElementContent((xmlChar *) cur->name, cur->type);
     if (ret == NULL) {
         fprintf(stderr, "xmlCopyElementContent : out of memory\n");
 	return(NULL);
@@ -125,7 +125,7 @@
     if (cur == NULL) return;
     if (cur->c1 != NULL) xmlFreeElementContent(cur->c1);
     if (cur->c2 != NULL) xmlFreeElementContent(cur->c2);
-    if (cur->name != NULL) xmlFree((CHAR *) cur->name);
+    if (cur->name != NULL) xmlFree((xmlChar *) cur->name);
     memset(cur, -1, sizeof(xmlElementContent));
     xmlFree(cur);
 }
@@ -307,7 +307,7 @@
  * Returns NULL if not, othervise the entity
  */
 xmlElementPtr
-xmlAddElementDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const CHAR *name,
+xmlAddElementDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name,
                   xmlElementContentType type, xmlElementContentPtr content) {
     xmlElementPtr ret, cur;
     xmlElementTablePtr table;
@@ -426,7 +426,7 @@
     if (elem == NULL) return;
     xmlFreeElementContent(elem->content);
     if (elem->name != NULL)
-	xmlFree((CHAR *) elem->name);
+	xmlFree((xmlChar *) elem->name);
     memset(elem, -1, sizeof(xmlElement));
     xmlFree(elem);
 }
@@ -558,7 +558,7 @@
  *                of error.
  */
 xmlEnumerationPtr
-xmlCreateEnumeration(CHAR *name) {
+xmlCreateEnumeration(xmlChar *name) {
     xmlEnumerationPtr ret;
 
     ret = (xmlEnumerationPtr) xmlMalloc(sizeof(xmlEnumeration));
@@ -588,7 +588,7 @@
 
     if (cur->next != NULL) xmlFreeEnumeration(cur->next);
 
-    if (cur->name != NULL) xmlFree((CHAR *) cur->name);
+    if (cur->name != NULL) xmlFree((xmlChar *) cur->name);
     memset(cur, -1, sizeof(xmlEnumeration));
     xmlFree(cur);
 }
@@ -607,7 +607,7 @@
     xmlEnumerationPtr ret;
 
     if (cur == NULL) return(NULL);
-    ret = xmlCreateEnumeration((CHAR *) cur->name);
+    ret = xmlCreateEnumeration((xmlChar *) cur->name);
 
     if (cur->next != NULL) ret->next = xmlCopyEnumeration(cur->next);
     else ret->next = NULL;
@@ -679,7 +679,7 @@
  *         possibly NULL.
  */
 xmlAttributePtr
-xmlScanAttributeDecl(xmlDtdPtr dtd, const CHAR *elem) {
+xmlScanAttributeDecl(xmlDtdPtr dtd, const xmlChar *elem) {
     xmlAttributePtr ret = NULL;
     xmlAttributeTablePtr table;
     int i;
@@ -752,9 +752,9 @@
  * Returns NULL if not, othervise the entity
  */
 xmlAttributePtr
-xmlAddAttributeDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const CHAR *elem,
-                    const CHAR *name, xmlAttributeType type, 
-                    xmlAttributeDefault def, const CHAR *defaultValue,
+xmlAddAttributeDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *elem,
+                    const xmlChar *name, xmlAttributeType type, 
+                    xmlAttributeDefault def, const xmlChar *defaultValue,
                     xmlEnumerationPtr tree) {
     xmlAttributePtr ret, cur;
     xmlAttributeTablePtr table;
@@ -896,11 +896,11 @@
     if (attr->tree != NULL)
         xmlFreeEnumeration(attr->tree);
     if (attr->elem != NULL)
-	xmlFree((CHAR *) attr->elem);
+	xmlFree((xmlChar *) attr->elem);
     if (attr->name != NULL)
-	xmlFree((CHAR *) attr->name);
+	xmlFree((xmlChar *) attr->name);
     if (attr->defaultValue != NULL)
-	xmlFree((CHAR *) attr->defaultValue);
+	xmlFree((xmlChar *) attr->defaultValue);
     memset(attr, -1, sizeof(xmlAttribute));
     xmlFree(attr);
 }
@@ -1116,8 +1116,8 @@
  * Returns NULL if not, othervise the entity
  */
 xmlNotationPtr
-xmlAddNotationDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const CHAR *name,
-                   const CHAR *PublicID, const CHAR *SystemID) {
+xmlAddNotationDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name,
+                   const xmlChar *PublicID, const xmlChar *SystemID) {
     xmlNotationPtr ret, cur;
     xmlNotationTablePtr table;
     int i;
@@ -1210,11 +1210,11 @@
 xmlFreeNotation(xmlNotationPtr nota) {
     if (nota == NULL) return;
     if (nota->name != NULL)
-	xmlFree((CHAR *) nota->name);
+	xmlFree((xmlChar *) nota->name);
     if (nota->PublicID != NULL)
-	xmlFree((CHAR *) nota->PublicID);
+	xmlFree((xmlChar *) nota->PublicID);
     if (nota->SystemID != NULL)
-	xmlFree((CHAR *) nota->SystemID);
+	xmlFree((xmlChar *) nota->SystemID);
     memset(nota, -1, sizeof(xmlNotation));
     xmlFree(nota);
 }
@@ -1375,7 +1375,7 @@
  * Returns NULL if not, othervise the new xmlIDPtr
  */
 xmlIDPtr 
-xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const CHAR *value,
+xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value,
          xmlAttrPtr attr) {
     xmlIDPtr ret, cur;
     xmlIDTablePtr table;
@@ -1463,7 +1463,7 @@
 xmlFreeID(xmlIDPtr id) {
     if (id == NULL) return;
     if (id->value != NULL)
-	xmlFree((CHAR *) id->value);
+	xmlFree((xmlChar *) id->value);
     memset(id, -1, sizeof(xmlID));
     xmlFree(id);
 }
@@ -1529,7 +1529,7 @@
  * Returns NULL if not found, otherwise the xmlAttrPtr defining the ID
  */
 xmlAttrPtr 
-xmlGetID(xmlDocPtr doc, const CHAR *ID) {
+xmlGetID(xmlDocPtr doc, const xmlChar *ID) {
     xmlIDPtr cur;
     xmlIDTablePtr table;
     int i;
@@ -1610,7 +1610,7 @@
  * Returns NULL if not, othervise the new xmlRefPtr
  */
 xmlRefPtr 
-xmlAddRef(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const CHAR *value,
+xmlAddRef(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value,
          xmlAttrPtr attr) {
     xmlRefPtr ret;
     xmlRefTablePtr table;
@@ -1682,7 +1682,7 @@
 xmlFreeRef(xmlRefPtr ref) {
     if (ref == NULL) return;
     if (ref->value != NULL)
-	xmlFree((CHAR *) ref->value);
+	xmlFree((xmlChar *) ref->value);
     memset(ref, -1, sizeof(xmlRef));
     xmlFree(ref);
 }
@@ -1751,7 +1751,7 @@
  * Returns NULL if not found, otherwise the xmlAttrPtr defining the Ref
  */
 xmlAttrPtr 
-xmlGetRef(xmlDocPtr doc, const CHAR *Ref) {
+xmlGetRef(xmlDocPtr doc, const xmlChar *Ref) {
     xmlRefPtr cur;
     xmlRefTablePtr table;
     int i;
@@ -1799,7 +1799,7 @@
  */
 
 xmlElementPtr
-xmlGetDtdElementDesc(xmlDtdPtr dtd, const CHAR *name) {
+xmlGetDtdElementDesc(xmlDtdPtr dtd, const xmlChar *name) {
     xmlElementTablePtr table;
     xmlElementPtr cur;
     int i;
@@ -1829,7 +1829,7 @@
  */
 
 xmlAttributePtr
-xmlGetDtdAttrDesc(xmlDtdPtr dtd, const CHAR *elem, const CHAR *name) {
+xmlGetDtdAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name) {
     xmlAttributeTablePtr table;
     xmlAttributePtr cur;
     int i;
@@ -1858,7 +1858,7 @@
  */
 
 xmlNotationPtr
-xmlGetDtdNotationDesc(xmlDtdPtr dtd, const CHAR *name) {
+xmlGetDtdNotationDesc(xmlDtdPtr dtd, const xmlChar *name) {
     xmlNotationTablePtr table;
     xmlNotationPtr cur;
     int i;
@@ -1889,7 +1889,7 @@
 
 int
 xmlValidateNotationUse(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
-                       const CHAR *notationName) {
+                       const xmlChar *notationName) {
     xmlNotationPtr notaDecl;
     if ((doc == NULL) || (doc->intSubset == NULL)) return(-1);
 
@@ -1917,7 +1917,7 @@
  */
 
 int
-xmlIsMixedElement(xmlDocPtr doc, const CHAR *name) {
+xmlIsMixedElement(xmlDocPtr doc, const xmlChar *name) {
     xmlElementPtr elemDecl;
 
     if ((doc == NULL) || (doc->intSubset == NULL)) return(-1);
@@ -1951,8 +1951,8 @@
  */
 
 int
-xmlValidateNameValue(const CHAR *value) {
-    const CHAR *cur;
+xmlValidateNameValue(const xmlChar *value) {
+    const xmlChar *cur;
 
     if (value == NULL) return(0);
     cur = value;
@@ -1984,8 +1984,8 @@
  */
 
 int
-xmlValidateNamesValue(const CHAR *value) {
-    const CHAR *cur;
+xmlValidateNamesValue(const xmlChar *value) {
+    const xmlChar *cur;
 
     if (value == NULL) return(0);
     cur = value;
@@ -2035,8 +2035,8 @@
  */
 
 int
-xmlValidateNmtokenValue(const CHAR *value) {
-    const CHAR *cur;
+xmlValidateNmtokenValue(const xmlChar *value) {
+    const xmlChar *cur;
 
     if (value == NULL) return(0);
     cur = value;
@@ -2073,8 +2073,8 @@
  */
 
 int
-xmlValidateNmtokensValue(const CHAR *value) {
-    const CHAR *cur;
+xmlValidateNmtokensValue(const xmlChar *value) {
+    const xmlChar *cur;
 
     if (value == NULL) return(0);
     cur = value;
@@ -2165,7 +2165,7 @@
  */
 
 int
-xmlValidateAttributeValue(xmlAttributeType type, const CHAR *value) {
+xmlValidateAttributeValue(xmlAttributeType type, const xmlChar *value) {
     switch (type) {
 	case XML_ATTRIBUTE_ENTITIES:
 	case XML_ATTRIBUTE_IDREFS:
@@ -2282,7 +2282,7 @@
     /* No Duplicate Types */
     if (elem->type == XML_ELEMENT_TYPE_MIXED) {
 	xmlElementContentPtr cur, next;
-        const CHAR *name;
+        const xmlChar *name;
 
 	cur = elem->content;
 	while (cur != NULL) {
@@ -2363,7 +2363,7 @@
 
 int
 xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
-                        xmlNodePtr elem, xmlAttrPtr attr, const CHAR *value) {
+                        xmlNodePtr elem, xmlAttrPtr attr, const xmlChar *value) {
     /* xmlElementPtr elemDecl; */
     xmlAttributePtr attrDecl;
     int val;
@@ -2711,7 +2711,7 @@
     xmlElementContentPtr cont;
     xmlNodePtr child;
     int ret = 1;
-    const CHAR *name;
+    const xmlChar *name;
 
     CHECK_DTD;
 
@@ -2849,7 +2849,7 @@
 xmlValidateElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem) {
     xmlNodePtr child;
     xmlAttrPtr attr;
-    CHAR *value;
+    xmlChar *value;
     int ret = 1;
 
     /* TODO xmlValidateElement */
diff --git a/valid.h b/valid.h
index 22a2c27..30a2a32 100644
--- a/valid.h
+++ b/valid.h
@@ -105,16 +105,16 @@
 /* Notation */
 xmlNotationPtr	    xmlAddNotationDecl	(xmlValidCtxtPtr ctxt,
 					 xmlDtdPtr dtd,
-					 const CHAR *name,
-					 const CHAR *PublicID,
-					 const CHAR *SystemID);
+					 const xmlChar *name,
+					 const xmlChar *PublicID,
+					 const xmlChar *SystemID);
 xmlNotationTablePtr xmlCopyNotationTable(xmlNotationTablePtr table);
 void		    xmlFreeNotationTable(xmlNotationTablePtr table);
 void		    xmlDumpNotationTable(xmlBufferPtr buf,
 					 xmlNotationTablePtr table);
 
 /* Element Content */
-xmlElementContentPtr xmlNewElementContent (CHAR *name,
+xmlElementContentPtr xmlNewElementContent (xmlChar *name,
 					   xmlElementContentType type);
 xmlElementContentPtr xmlCopyElementContent(xmlElementContentPtr content);
 void		     xmlFreeElementContent(xmlElementContentPtr cur);
@@ -122,7 +122,7 @@
 /* Element */
 xmlElementPtr	   xmlAddElementDecl	(xmlValidCtxtPtr ctxt,
 					 xmlDtdPtr dtd,
-					 const CHAR *name,
+					 const xmlChar *name,
 					 xmlElementContentType type,
 					 xmlElementContentPtr content);
 xmlElementTablePtr xmlCopyElementTable	(xmlElementTablePtr table);
@@ -131,18 +131,18 @@
 					 xmlElementTablePtr table);
 
 /* Enumeration */
-xmlEnumerationPtr  xmlCreateEnumeration	(CHAR *name);
+xmlEnumerationPtr  xmlCreateEnumeration	(xmlChar *name);
 void		   xmlFreeEnumeration	(xmlEnumerationPtr cur);
 xmlEnumerationPtr  xmlCopyEnumeration	(xmlEnumerationPtr cur);
 
 /* Attribute */
 xmlAttributePtr	    xmlAddAttributeDecl	    (xmlValidCtxtPtr ctxt,
 					     xmlDtdPtr dtd,
-					     const CHAR *elem,
-					     const CHAR *name,
+					     const xmlChar *elem,
+					     const xmlChar *name,
 					     xmlAttributeType type,
 					     xmlAttributeDefault def,
-					     const CHAR *defaultValue,
+					     const xmlChar *defaultValue,
 					     xmlEnumerationPtr tree);
 xmlAttributeTablePtr xmlCopyAttributeTable  (xmlAttributeTablePtr table);
 void		     xmlFreeAttributeTable  (xmlAttributeTablePtr table);
@@ -152,12 +152,12 @@
 /* IDs */
 xmlIDPtr	xmlAddID	(xmlValidCtxtPtr ctxt,
 				 xmlDocPtr doc,
-				 const CHAR *value,
+				 const xmlChar *value,
 				 xmlAttrPtr attr);
 xmlIDTablePtr	xmlCopyIDTable	(xmlIDTablePtr table);
 void		xmlFreeIDTable	(xmlIDTablePtr table);
 xmlAttrPtr	xmlGetID	(xmlDocPtr doc,
-				 const CHAR *ID);
+				 const xmlChar *ID);
 int		xmlIsID		(xmlDocPtr doc,
 				 xmlNodePtr elem,
 				 xmlAttrPtr attr);
@@ -165,7 +165,7 @@
 /* IDREFs */
 xmlRefPtr	xmlAddRef	(xmlValidCtxtPtr ctxt,
 				 xmlDocPtr doc,
-				 const CHAR *value,
+				 const xmlChar *value,
 				 xmlAttrPtr attr);
 xmlRefTablePtr	xmlCopyRefTable	(xmlRefTablePtr table);
 void		xmlFreeRefTable	(xmlRefTablePtr table);
@@ -186,7 +186,7 @@
 					 xmlDocPtr doc,
 		                         xmlAttributePtr attr);
 int		xmlValidateAttributeValue(xmlAttributeType type,
-					 const CHAR *value);
+					 const xmlChar *value);
 int		xmlValidateNotationDecl	(xmlValidCtxtPtr ctxt,
 					 xmlDocPtr doc,
 		                         xmlNotationPtr nota);
@@ -205,21 +205,21 @@
 					 xmlDocPtr doc,
 					 xmlNodePtr	elem,
 					 xmlAttrPtr attr,
-					 const CHAR *value);
+					 const xmlChar *value);
 int		xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
 					 xmlDocPtr doc);
 int		xmlValidateNotationUse	(xmlValidCtxtPtr ctxt,
 					 xmlDocPtr doc,
-					 const CHAR *notationName);
+					 const xmlChar *notationName);
 int		xmlIsMixedElement	(xmlDocPtr doc,
-					 const CHAR *name);
+					 const xmlChar *name);
 xmlAttributePtr	xmlGetDtdAttrDesc	(xmlDtdPtr dtd,
-					 const CHAR *elem,
-					 const CHAR *name);
+					 const xmlChar *elem,
+					 const xmlChar *name);
 xmlNotationPtr	xmlGetDtdNotationDesc	(xmlDtdPtr dtd,
-					 const CHAR *name);
+					 const xmlChar *name);
 xmlElementPtr	xmlGetDtdElementDesc	(xmlDtdPtr dtd,
-					 const CHAR *name);
+					 const xmlChar *name);
 
 #ifdef __cplusplus
 }
diff --git a/xmlIO.c b/xmlIO.c
index 8d3d8be..668caab 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -311,23 +311,23 @@
 	return(-1);
     }
     if (in->encoder != NULL) {
-        CHAR *buf;
+        xmlChar *buf;
 
-	buf = (CHAR *) xmlMalloc((res + 1) * 2 * sizeof(CHAR));
+	buf = (xmlChar *) xmlMalloc((res + 1) * 2 * sizeof(xmlChar));
 	if (buf == NULL) {
 	    fprintf(stderr, "xmlParserInputBufferGrow : out of memory !\n");
 	    xmlFree(buffer);
 	    return(-1);
 	}
-	nbchars = in->encoder->input(buf, (res + 1) * 2 * sizeof(CHAR),
+	nbchars = in->encoder->input(buf, (res + 1) * 2 * sizeof(xmlChar),
 	                             BAD_CAST buffer, res);
         buf[nbchars] = 0;
-        xmlBufferAdd(in->buffer, (CHAR *) buf, nbchars);
+        xmlBufferAdd(in->buffer, (xmlChar *) buf, nbchars);
 	xmlFree(buf);
     } else {
 	nbchars = res;
         buffer[nbchars] = 0;
-        xmlBufferAdd(in->buffer, (CHAR *) buffer, nbchars);
+        xmlBufferAdd(in->buffer, (xmlChar *) buffer, nbchars);
     }
 #ifdef DEBUG_INPUT
     fprintf(stderr, "I/O: read %d chars, buffer %d/%d\n",
diff --git a/xpath.c b/xpath.c
index 94c7f5a..3b0c535 100644
--- a/xpath.c
+++ b/xpath.c
@@ -166,7 +166,7 @@
     fprintf(xmlXPathDebug, "Internal error at %s:%d\n",			\
             __FILE__, __LINE__);
 
-double xmlXPathStringEvalNumber(const CHAR *str);
+double xmlXPathStringEvalNumber(const xmlChar *str);
 void xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
 
 /************************************************************************
@@ -215,21 +215,21 @@
  *
  * Dirty macros, i.e. one need to make assumption on the context to use them
  *
- *   CUR_PTR return the current pointer to the CHAR to be parsed.
- *   CUR     returns the current CHAR value, i.e. a 8 bit value if compiled
+ *   CUR_PTR return the current pointer to the xmlChar to be parsed.
+ *   CUR     returns the current xmlChar value, i.e. a 8 bit value if compiled
  *           in ISO-Latin or UTF-8, and the current 16 bit value if compiled
  *           in UNICODE mode. This should be used internally by the parser
  *           only to compare to ASCII values otherwise it would break when
  *           running with UTF-8 encoding.
- *   NXT(n)  returns the n'th next CHAR. Same as CUR is should be used only
+ *   NXT(n)  returns the n'th next xmlChar. Same as CUR is should be used only
  *           to compare on ASCII based substring.
- *   SKIP(n) Skip n CHAR, and must also be used only to skip ASCII defined
+ *   SKIP(n) Skip n xmlChar, and must also be used only to skip ASCII defined
  *           strings within the parser.
  *   CURRENT Returns the current char value, with the full decoding of
  *           UTF-8 if we are using this mode. It returns an int.
  *   NEXT    Skip to the next character, this does the proper decoding
  *           in UTF-8 mode. It also pop-up unfinished entities on the fly.
- *           It returns the pointer to the current CHAR.
+ *           It returns the pointer to the current xmlChar.
  */
 
 #define CUR (*ctxt->cur)
@@ -297,8 +297,8 @@
 xmlXPatherror(xmlXPathParserContextPtr ctxt, const char *file,
               int line, int no) {
     int n;
-    const CHAR *cur;
-    const CHAR *base;
+    const xmlChar *cur;
+    const xmlChar *base;
 
     fprintf(xmlXPathDebug, "Error %s:%d: %s\n", file, line,
             xmlXPathErrorMessages[no]);
@@ -595,7 +595,7 @@
  */
 xmlXPathObjectPtr
 xmlXPathVariablelookup(xmlXPathParserContextPtr ctxt,
-                       const CHAR *prefix, const CHAR *name) {
+                       const xmlChar *prefix, const xmlChar *name) {
     return(NULL);
 }
 
@@ -655,14 +655,14 @@
 
 /**
  * xmlXPathNewString:
- * @val:  the CHAR * value
+ * @val:  the xmlChar * value
  *
  * Create a new xmlXPathObjectPtr of type string and of value @val
  *
  * Returns the newly created object.
  */
 xmlXPathObjectPtr
-xmlXPathNewString(const CHAR *val) {
+xmlXPathNewString(const xmlChar *val) {
     xmlXPathObjectPtr ret;
 
     ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
@@ -872,7 +872,7 @@
  * Returns the xmlXPathParserContext just allocated.
  */
 xmlXPathParserContextPtr
-xmlXPathNewParserContext(const CHAR *str, xmlXPathContextPtr ctxt) {
+xmlXPathNewParserContext(const xmlChar *str, xmlXPathContextPtr ctxt) {
     xmlXPathParserContextPtr ret;
 
     ret = (xmlXPathParserContextPtr) xmlMalloc(sizeof(xmlXPathParserContext));
@@ -955,10 +955,10 @@
  * Returns 0 or 1 depending on the results of the test.
  */
 int
-xmlXPathEqualNodeSetString(xmlXPathObjectPtr arg, const CHAR *str) {
+xmlXPathEqualNodeSetString(xmlXPathObjectPtr arg, const xmlChar *str) {
     int i;
     xmlNodeSetPtr ns;
-    CHAR *str2;
+    xmlChar *str2;
 
     if ((str == NULL) || (arg == NULL) || (arg->type != XPATH_NODESET))
         return(0);
@@ -1027,7 +1027,7 @@
 xmlXPathEqualNodeSets(xmlXPathObjectPtr arg1, xmlXPathObjectPtr arg2) {
     int i;
     xmlNodeSetPtr ns;
-    CHAR *str;
+    xmlChar *str;
 
     if ((arg1 == NULL) || (arg1->type != XPATH_NODESET))
         return(0);
@@ -1820,7 +1820,7 @@
  */
 xmlNodeSetPtr
 xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, int axis,
-                 int test, int type, const CHAR *prefix, const CHAR *name) {
+                 int test, int type, const xmlChar *prefix, const xmlChar *name) {
 #ifdef DEBUG_STEP
     int n = 0, t = 0;
 #endif
@@ -2141,9 +2141,9 @@
  */
 void
 xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs) {
-    const CHAR *tokens;
-    const CHAR *cur;
-    CHAR *ID;
+    const xmlChar *tokens;
+    const xmlChar *cur;
+    xmlChar *ID;
     xmlAttrPtr attr;
     xmlNodePtr elem = NULL;
     xmlXPathObjectPtr ret, obj;
@@ -2357,7 +2357,7 @@
 	    if (cur->nodesetval->nodeNr == 0) {
 		valuePush(ctxt, xmlXPathNewCString(""));
 	    } else {
-		CHAR *res;
+		xmlChar *res;
 	        int i = 0; /* Should be first in document order !!!!! */
 		res = xmlNodeGetContent(cur->nodesetval->nodeTab[i]);
 		valuePush(ctxt, xmlXPathNewString(res));
@@ -2410,7 +2410,7 @@
 	if (ctxt->context->node == NULL) {
 	    valuePush(ctxt, xmlXPathNewFloat(0));
 	} else {
-	    CHAR *content;
+	    xmlChar *content;
 
 	    content = xmlNodeGetContent(ctxt->context->node);
 	    valuePush(ctxt, xmlXPathNewFloat(xmlStrlen(content)));
@@ -2435,7 +2435,7 @@
 void
 xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     xmlXPathObjectPtr cur, new;
-    CHAR *tmp;
+    xmlChar *tmp;
 
     if (nargs < 2) {
 	CHECK_ARITY(2);
@@ -2556,7 +2556,7 @@
     xmlXPathObjectPtr str, start, len;
     double le, in;
     int i, l;
-    CHAR *ret;
+    xmlChar *ret;
 
     /* 
      * Conformance needs to be checked !!!!!
@@ -2800,8 +2800,8 @@
 void
 xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     xmlXPathObjectPtr val;
-    const CHAR *theLang;
-    const CHAR *lang;
+    const xmlChar *theLang;
+    const xmlChar *lang;
     int ret = 0;
     int i;
 
@@ -2959,10 +2959,10 @@
  * Returns the namespace name or NULL
  */
 
-CHAR *
+xmlChar *
 xmlXPathParseNCName(xmlXPathParserContextPtr ctxt) {
-    const CHAR *q;
-    CHAR *ret = NULL;
+    const xmlChar *q;
+    xmlChar *ret = NULL;
 
     if (!IS_LETTER(CUR) && (CUR != '_')) return(NULL);
     q = NEXT;
@@ -2982,7 +2982,7 @@
 /**
  * xmlXPathParseQName:
  * @ctxt:  the XPath Parser context
- * @prefix:  a CHAR ** 
+ * @prefix:  a xmlChar ** 
  *
  * parse an XML qualified name
  *
@@ -2996,9 +2996,9 @@
  *   to get the Prefix if any.
  */
 
-CHAR *
-xmlXPathParseQName(xmlXPathParserContextPtr ctxt, CHAR **prefix) {
-    CHAR *ret = NULL;
+xmlChar *
+xmlXPathParseQName(xmlXPathParserContextPtr ctxt, xmlChar **prefix) {
+    xmlChar *ret = NULL;
 
     *prefix = NULL;
     ret = xmlXPathParseNCName(ctxt);
@@ -3026,8 +3026,8 @@
  * Returns the double value.
  */
 double
-xmlXPathStringEvalNumber(const CHAR *str) {
-    const CHAR *cur = str;
+xmlXPathStringEvalNumber(const xmlChar *str) {
+    const xmlChar *cur = str;
     double ret = 0.0;
     double mult = 1;
     int ok = 0;
@@ -3112,8 +3112,8 @@
  */
 void
 xmlXPathEvalLiteral(xmlXPathParserContextPtr ctxt) {
-    const CHAR *q;
-    CHAR *ret = NULL;
+    const xmlChar *q;
+    xmlChar *ret = NULL;
 
     if (CUR == '"') {
         NEXT;
@@ -3164,8 +3164,8 @@
  */
 void
 xmlXPathEvalVariableReference(xmlXPathParserContextPtr ctxt) {
-    CHAR *name;
-    CHAR *prefix;
+    xmlChar *name;
+    xmlChar *prefix;
     xmlXPathObjectPtr value;
 
     if (CUR != '$') {
@@ -3199,7 +3199,7 @@
  * Returns the xmlXPathFunction if found, or NULL otherwise
  */
 xmlXPathFunction
-xmlXPathIsFunction(xmlXPathParserContextPtr ctxt, const CHAR *name) {
+xmlXPathIsFunction(xmlXPathParserContextPtr ctxt, const xmlChar *name) {
     switch (name[0]) {
         case 'b':
 	    if (!xmlStrcmp(name, BAD_CAST "boolean"))
@@ -3306,7 +3306,7 @@
  *                    | 'node'
  */
 int
-xmlXPathGetNameType(xmlXPathParserContextPtr ctxt, const CHAR *name) {
+xmlXPathGetNameType(xmlXPathParserContextPtr ctxt, const xmlChar *name) {
     switch (name[0]) {
         case 'a':
 	    if (!xmlStrcmp(name, BAD_CAST "ancestor")) return(AXIS_ANCESTOR);
@@ -3364,8 +3364,8 @@
  */
 void
 xmlXPathEvalFunctionCall(xmlXPathParserContextPtr ctxt) {
-    CHAR *name;
-    CHAR *prefix;
+    xmlChar *name;
+    xmlChar *prefix;
     xmlXPathFunction func;
     int nbargs = 0;
 
@@ -3487,9 +3487,9 @@
  * Returns the Name parsed or NULL
  */
 
-CHAR *
+xmlChar *
 xmlXPathScanName(xmlXPathParserContextPtr ctxt) {
-    CHAR buf[XML_MAX_NAMELEN];
+    xmlChar buf[XML_MAX_NAMELEN];
     int len = 0;
 
     if (!IS_LETTER(CUR) && (CUR != '_') &&
@@ -3562,7 +3562,7 @@
 	    xmlXPathEvalRelativeLocationPath(ctxt);
 	}
     } else {
-        CHAR *name;
+        xmlChar *name;
 
 	name = xmlXPathScanName(ctxt);
 	if ((name == NULL) || (!xmlXPathIsFunction(ctxt, name)))
@@ -3887,7 +3887,7 @@
  */
 void
 xmlXPathEvalPredicate(xmlXPathParserContextPtr ctxt) {
-    const CHAR *cur;
+    const xmlChar *cur;
     xmlXPathObjectPtr res;
     xmlNodeSetPtr newset = NULL;
     int i;
@@ -3953,8 +3953,8 @@
  */
 void
 xmlXPathEvalBasis(xmlXPathParserContextPtr ctxt) {
-    CHAR *name = NULL;
-    CHAR *prefix = NULL;
+    xmlChar *name = NULL;
+    xmlChar *prefix = NULL;
     int type = 0;
     int axis = AXIS_CHILD; /* the default on abbreviated syntax */
     int nodetest = NODE_TEST_NONE;
@@ -4370,7 +4370,7 @@
  *         the caller has to free the object.
  */
 xmlXPathObjectPtr
-xmlXPathEval(const CHAR *str, xmlXPathContextPtr ctxt) {
+xmlXPathEval(const xmlChar *str, xmlXPathContextPtr ctxt) {
     xmlXPathParserContextPtr pctxt;
     xmlXPathObjectPtr res = NULL, tmp;
 
@@ -4406,7 +4406,7 @@
  *         the caller has to free the object.
  */
 xmlXPathObjectPtr
-xmlXPathEvalExpression(const CHAR *str, xmlXPathContextPtr ctxt) {
+xmlXPathEvalExpression(const xmlChar *str, xmlXPathContextPtr ctxt) {
     xmlXPathParserContextPtr pctxt;
     xmlXPathObjectPtr res, tmp;
 
diff --git a/xpath.h b/xpath.h
index d46c063..9a082ce 100644
--- a/xpath.h
+++ b/xpath.h
@@ -46,7 +46,7 @@
     xmlNodeSetPtr nodesetval;
     int boolval;
     double floatval;
-    CHAR *stringval;
+    xmlChar *stringval;
     void *user;
 } xmlXPathObject, *xmlXPathObjectPtr;
 
@@ -61,7 +61,7 @@
  */
 
 typedef struct xmlXPathType {
-    const CHAR         *name;		/* the type name */
+    const xmlChar         *name;		/* the type name */
     xmlXPathConvertFunc func;		/* the conversion function */
 } xmlXPathType, *xmlXPathTypePtr;
 
@@ -70,7 +70,7 @@
  */
 
 typedef struct xmlXPathVariable {
-    const CHAR       *name;		/* the variable name */
+    const xmlChar       *name;		/* the variable name */
     xmlXPathObjectPtr value;		/* the value */
 } xmlXPathVariable, *xmlXPathVariablePtr;
 
@@ -85,7 +85,7 @@
  */
 
 typedef struct xmlXPathFunct {
-    const CHAR      *name;		/* the function name */
+    const xmlChar      *name;		/* the function name */
     xmlXPathEvalFunc func;		/* the evaluation function */
 } xmlXPathFunc, *xmlXPathFuncPtr;
 
@@ -103,7 +103,7 @@
  */
 
 typedef struct xmlXPathAxis {
-    const CHAR      *name;		/* the axis name */
+    const xmlChar      *name;		/* the axis name */
     xmlXPathAxisFunc func;		/* the search function */
 } xmlXPathAxis, *xmlXPathAxisPtr;
 
@@ -149,8 +149,8 @@
  * an xmlXPathContext, and the stack of objects.
  */
 typedef struct xmlXPathParserContext {
-    const CHAR *cur;			/* the current char being parsed */
-    const CHAR *base;			/* the full expression */
+    const xmlChar *cur;			/* the current char being parsed */
+    const xmlChar *base;			/* the full expression */
 
     int error;				/* error code */
 
@@ -179,16 +179,16 @@
  * Registering extensions to the expression language
  */
 /* TODO */ int	   xmlXPathRegisterType		(xmlXPathContextPtr ctxt,
-						 const CHAR *name,
+						 const xmlChar *name,
                                                  xmlXPathConvertFunc f);
 /* TODO */ int	   xmlXPathRegisterAxis		(xmlXPathContextPtr ctxt,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 xmlXPathAxisFunc f);
 /* TODO */ int	   xmlXPathRegisterFunc		(xmlXPathContextPtr ctxt,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 xmlXPathFunction f);
 /* TODO */ int	   xmlXPathRegisterVariable	(xmlXPathContextPtr ctxt,
-						 const CHAR *name,
+						 const xmlChar *name,
 						 xmlXPathObject value);
 
 /**
@@ -196,10 +196,10 @@
  */
 xmlXPathContextPtr xmlXPathNewContext		(xmlDocPtr doc);
 void		   xmlXPathFreeContext		(xmlXPathContextPtr ctxt);
-xmlXPathObjectPtr  xmlXPathEval			(const CHAR *str,
+xmlXPathObjectPtr  xmlXPathEval			(const xmlChar *str,
 						 xmlXPathContextPtr ctxt);
 void		   xmlXPathFreeObject		(xmlXPathObjectPtr obj);
-xmlXPathObjectPtr  xmlXPathEvalExpression	(const CHAR *str,
+xmlXPathObjectPtr  xmlXPathEvalExpression	(const xmlChar *str,
 						 xmlXPathContextPtr ctxt);
 
 #endif /* ! __XML_XPATH_H__ */