summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Hommey <glandium@debian.org>2007-04-17 20:40:00 +0200
committerMike Hommey <glandium@debian.org>2007-04-17 20:40:00 +0200
commit789259a1b6850d30acffbb62b11456b9ed7a8f59 (patch)
tree842f2f9042a4264898ec29078aa029640078c393
parent968041a8b2ec86c39b5074024ce97d136ecd9a95 (diff)
downloadlibxml2-789259a1b6850d30acffbb62b11456b9ed7a8f59.tar.gz
Load /tmp/libxml2-2.6.28 intoupstream/2.6.28.dfsg
libxml2/branches/upstream/current.
-rw-r--r--ChangeLog215
-rw-r--r--HTMLparser.c104
-rw-r--r--Makefile.am4
-rw-r--r--Makefile.in4
-rw-r--r--NEWS36
-rw-r--r--catalog.c27
-rwxr-xr-xconfigure92
-rw-r--r--configure.in24
-rw-r--r--doc/APIchunk1.html2
-rw-r--r--doc/APIchunk10.html4
-rw-r--r--doc/APIchunk12.html3
-rw-r--r--doc/APIchunk13.html6
-rw-r--r--doc/APIchunk14.html2
-rw-r--r--doc/APIchunk15.html1
-rw-r--r--doc/APIchunk17.html1
-rw-r--r--doc/APIchunk19.html2
-rw-r--r--doc/APIchunk20.html2
-rw-r--r--doc/APIchunk21.html1
-rw-r--r--doc/APIchunk22.html2
-rw-r--r--doc/APIchunk23.html8
-rw-r--r--doc/APIchunk24.html14
-rw-r--r--doc/APIchunk26.html2
-rw-r--r--doc/APIchunk28.html7
-rw-r--r--doc/APIchunk29.html3
-rw-r--r--doc/APIchunk4.html4
-rw-r--r--doc/APIchunk7.html1
-rw-r--r--doc/APIfiles.html1
-rw-r--r--doc/APIfunctions.html2
-rw-r--r--doc/APIsymbols.html1
-rw-r--r--doc/DOM.html6
-rw-r--r--doc/FAQ.html26
-rw-r--r--doc/XSLT.html2
-rw-r--r--doc/bugs.html8
-rw-r--r--doc/catalog.html4
-rw-r--r--doc/devhelp/libxml2-parserInternals.html2
-rw-r--r--doc/devhelp/libxml2-tree.html10
-rw-r--r--doc/devhelp/libxml2-xmlreader.html133
-rw-r--r--doc/devhelp/libxml2-xpath.html8
-rw-r--r--doc/devhelp/libxml2.devhelp1
-rw-r--r--doc/docs.html2
-rw-r--r--doc/downloads.html10
-rw-r--r--doc/encoding.html2
-rw-r--r--doc/example.html2
-rw-r--r--doc/guidelines.html2
-rw-r--r--doc/html/index.html13
-rw-r--r--doc/html/libxml-parserInternals.html2
-rw-r--r--doc/html/libxml-tree.html8
-rw-r--r--doc/html/libxml-xmlreader.html9
-rw-r--r--doc/html/libxml-xpath.html8
-rw-r--r--doc/index.html2
-rw-r--r--doc/libxml2-api.xml164
-rw-r--r--doc/libxml2.xsa64
-rw-r--r--doc/news.html29
-rw-r--r--doc/python.html6
-rw-r--r--doc/search.php3
-rw-r--r--doc/xml.html119
-rw-r--r--doc/xmlcatalog_man.xml2
-rw-r--r--doc/xmlio.html2
-rw-r--r--doc/xmllint.xml2
-rw-r--r--doc/xmlmem.html4
-rw-r--r--doc/xmlreader.html2
-rw-r--r--elfgcchack.h76
-rwxr-xr-xgentest.py13
-rw-r--r--include/libxml/tree.h7
-rw-r--r--include/libxml/xmlreader.h6
-rw-r--r--include/libxml/xmlversion.h10
-rw-r--r--include/libxml/xpath.h8
-rw-r--r--libxml.h14
-rw-r--r--libxml2.spec6
-rw-r--r--nanoftp.c4
-rw-r--r--nanohttp.c3
-rw-r--r--parser.c46
-rwxr-xr-xpython/generator.py2
-rw-r--r--python/libxml.c3
-rw-r--r--python/libxml.py26
-rw-r--r--python/libxml2-py.c24
-rwxr-xr-xpython/setup.py2
-rw-r--r--testAutomata.c2
-rw-r--r--testRegexp.c3
-rw-r--r--testThreads.c3
-rw-r--r--testThreadsWin32.c2
-rw-r--r--testapi.c64
-rw-r--r--threads.c83
-rw-r--r--tree.c12
-rw-r--r--trio.c30
-rw-r--r--trio.h2
-rw-r--r--triodef.h2
-rw-r--r--trionan.c4
-rw-r--r--trionan.h2
-rw-r--r--triop.h2
-rw-r--r--triostr.c14
-rw-r--r--triostr.h6
-rw-r--r--uri.c48
-rw-r--r--win32/Makefile.mingw.orig336
-rw-r--r--win32/Makefile.mingw.rej17
-rw-r--r--win32/libxml2.def.src14
-rw-r--r--win32/wince/wincecompat.c8
-rw-r--r--win32/wince/wincecompat.h4
-rw-r--r--xinclude.c8
-rw-r--r--xmlIO.c20
-rw-r--r--xmllint.c9
-rw-r--r--xmlreader.c51
-rw-r--r--xmlregexp.c78
-rw-r--r--xmlsave.c4
-rw-r--r--xmlschemas.c22
-rw-r--r--xmlwriter.c2
-rw-r--r--xpath.c36
107 files changed, 1503 insertions, 867 deletions
diff --git a/ChangeLog b/ChangeLog
index 11098d8..b6a6855 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,218 @@
+Tue Apr 17 14:47:42 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * catalog.c libxml.h win32/wince/wincecompat.h win32/wince/wincecompat.c
+ xmlIO.c nanohttp.c nanoftp.c trio.c triostr.c triostr.h: applied
+ patch from Andreas Stricke to ease the compilation on Windows CE
+
+Tue Apr 17 14:34:45 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmllint.c catalog.c: "xmllint unusable on win32" so applied
+ a libxml2 patch from Christian Ehrlicher
+
+Mon Apr 16 09:05:01 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: change the way script/style are parsed to
+ not try to detect comments, reported by Mike Day
+ * result/HTML/doc3.*: affects the result of that test
+
+Wed Apr 11 22:38:18 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: small enhancement for quantifier range with
+ min occurs of 0; fixes bug 425542.
+
+Fri Mar 30 14:41:57 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlIO.c: applied change from Michael Day to avoid a problem when
+ compiled without zlib support.
+
+Wed Mar 21 17:58:13 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * include/libxml/xpath.h: applied documentation patch from James Dennett
+
+Wed Mar 21 21:20:48 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xmlregexp.c: fixed problem with 0x2d in Char Range (bug #420596)
+ * test/regexp/bug420596, result/regexp/bug420596: added regression
+ test for this
+
+Wed Mar 21 14:23:08 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * HTMLparser.c: fixed memory access error on parsing of meta data
+ which had errors (bug #382206). Also cleaned up a few warnings
+ by adding some additional DECL macros.
+
+Tue Mar 20 09:58:13 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * nanoftp.c: applied patch from Björn Wiberg to try to fix again
+ the silly __ss_familly problem on various AIXes, should fix #420184
+
+Wed Mar 14 20:30:38 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * configure.in: corrected small error in last commit
+ * xmlreader.c: corrected small typo in last commit
+
+Wed Mar 14 19:35:28 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xmlschemas.c: fixed problem with referenced attribute groups
+ (bug #417621)
+ * configure.in: re-ordered some includes for types.h / socket.h
+ (bug #416001)
+
+Fri Mar 9 17:54:40 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: applied patch from Julien Reichel cleaning up mode
+ and state internal flags mixups
+
+Wed Mar 7 16:18:18 HKT 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: fixed xmlXPathCmpNodes for incorrect result on certain
+ cases when comparing identical nodes (bug #415567) with patch
+ from Oleg Paraschenko
+
+Fri Feb 16 09:13:38 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * python/libxml.py: fixed tab problem with patch from
+ Andreas Hanke (bug #408626)
+
+Thu Feb 15 12:43:28 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * doc/xml.html: Changed all references to libxml2 CVS over to
+ the corresponding SVN. A few other spelling/grammar/links
+ also changed.
+ * doc/libxml2-api.xml, doc/*.html: Regenerated all docs.
+
+Tue Feb 13 18:15:58 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: Fixed memory bug with invalid function reported by
+ Francois Delyon on mailing list
+
+Mon Feb 12 16:40:48 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xinclude.c: fixed problem with invalid char encountered
+ during text include (reported on xslt mailing list)
+
+Mon Feb 12 18:30:01 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: small cleanup to avoid packaging .svn
+ * libxml.h threads.c parser.c: applied patch to avoid a problem
+ in concurrent threaded initialization fix from Ted Phelps
+
+Thu Feb 08 15:35:18 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: added a GROW when parsing complex comments (bug #405666)
+ * gentest.py, testapi.c: added a hack to prevent destruction of any
+ param with 'destroy' in it's description (i.e. param destroyed by
+ the routine under test, so shouldn't be destroyed by testapi)
+ * xmlreader.c: added freeing of 'input' param even on error
+ (fixes leak detected by testapi)
+
+Wed Jan 31 10:25:38 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * testAutomata.c, testRegexp.c, testThreads.c, testThreadsWin32.c,
+ xmlwriter.c: repositioned #include for libxml.h to avoid
+ compilation error on some architectures (bug #398277)
+ * fixed screwed-up ChangeLog (deleted some duplicate entries)
+
+Fri Jan 26 00:05:18 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * implemented patch from Stéphane Bidoul for uri.c (bug #389767)
+
+Thu Jan 25 11:15:08 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * xpath.c: added checks for alloc fail on calls to
+ xmlXPathNewContext (libxslt bug #400242)
+
+Thu Jan 11 15:38:08 PST 2007 William Brack <wbrack@mmm.com.hk>
+
+ * Re-generated the documentation (API chunks 27-29 were missing)
+ (also causes changes to testapi.c, elfgcchack.h and
+ win32/libxml2.def.src)
+
+Tue Jan 9 22:24:26 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * python/libxml.c: fix a memory leak in the python string handling
+ when SAX event are passed back to the python handlers
+
+Thu Jan 4 18:27:49 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * xmlreader.c: fix xmlTextReaderSetup() description
+ * test/relaxng/empty1.rng test/relaxng/comps_0.xml
+ test/relaxng/empty1_0.xml test/relaxng/comps.rng
+ test/relaxng/empty0.rng test/relaxng/empty0_0.xml
+ test/relaxng/empty1_1.xml: tests which were apparently
+ never commited to CVS
+
+Wed Jan 3 16:05:21 PST 2007 Aleksey Sanin <aleksey@aleksey.com>
+
+ * xmlreader.c include/libxml/xmlreader.h win32/libxml2.def.src:
+ expose xmlTextReaderSetup() function
+
+Wed Jan 3 16:14:13 CET 2007 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: adapt the extra versioning code to SVN
+
+Thu Dec 14 16:52:34 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * python/generator.py python/libxml.py: apparently id() sometimes
+ generate negative values and %X outputs -XXXX :-(
+
+Mon Dec 4 10:30:25 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * parser.c include/libxml/tree.h: patch from Michael Day on standalone
+ and XML declaration detection, and associated documentation change
+
+Mon Dec 4 10:27:01 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xinclude.c: another XInclude user data propagation patch from
+ Michael Day
+
+Thu Nov 23 17:22:03 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied patch from Steven Rainwater to fix
+ UTF8ToHtml behaviour on code points which are not mappable to
+ predefined HTML entities, fixes #377544
+
+Thu Nov 23 17:11:23 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: fixed a bug where the principal node type of an axis
+ wasn't tested on name check, fixes bug #377432
+
+Wed Nov 8 10:19:27 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: change htmlCtxtReset() following Michael Day bug
+ report and suggestion.
+
+Mon Nov 6 09:56:41 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * uri.c: applied patch from Igor for path conversion on Windows
+
+Thu Nov 2 11:29:17 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xmlregexp.c: another small change on the algorithm for the
+ elimination of epsilon transitions, should help on #362989 too
+
+Wed Nov 1 16:33:10 CET 2006 Daniel Veillard <daniel@veillard.com>
+
+ * tree.c: applied documentation patches from Markus Keim
+ * xmlregexp.c: fixed one bug and added a couple of optimisations
+ while working on bug #362989
+
+Fri Oct 27 14:54:07 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * HTMLparser.c: applied a reworked version of Usamah Malik patch
+ to avoid growing the parser stack in some autoclose cases, should
+ fix #361221
+
+Thu Oct 26 10:54:40 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * xpath.c: William spotted an obvious bug
+
+Wed Oct 25 18:04:50 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+ * NEWS configure.in testapi.c doc//*: preparing release of
+ libxml2-2.6.27
+ * include/libxml/tree.h: fix a small problem with preproc flags
+
Fri Oct 20 14:55:47 CEST 2006 Daniel Veillard <daniel@veillard.com>
* tree.c: fix comment for xmlDocSetRootElement c.f. #351981
diff --git a/HTMLparser.c b/HTMLparser.c
index 5e23ad7..8f2f776 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -698,7 +698,7 @@ html40ElementTable[] = {
DECL html_flow, NULL, DECL html_attrs, DECL align_attr, NULL
},
{ "dl", 0, 0, 0, 0, 0, 0, 0, "definition list ",
- DECL dl_contents , "dd" , html_attrs, DECL compact_attr, NULL
+ DECL dl_contents , "dd" , DECL html_attrs, DECL compact_attr, NULL
},
{ "dt", 0, 1, 0, 0, 0, 0, 0, "definition term ",
DECL html_inline, NULL, DECL html_attrs, NULL, NULL
@@ -755,7 +755,7 @@ html40ElementTable[] = {
DECL html_flow, NULL, NULL, DECL iframe_attrs, NULL
},
{ "img", 0, 2, 2, 1, 0, 0, 1, "embedded image ",
- EMPTY, NULL, DECL img_attrs, DECL align_attr, src_alt_attrs
+ EMPTY, NULL, DECL img_attrs, DECL align_attr, DECL src_alt_attrs
},
{ "input", 0, 2, 2, 1, 0, 0, 1, "form control ",
EMPTY, NULL, DECL input_attrs , DECL align_attr, NULL
@@ -782,7 +782,7 @@ html40ElementTable[] = {
EMPTY, NULL, DECL link_attrs, DECL target_attr, NULL
},
{ "map", 0, 0, 0, 0, 0, 0, 2, "client-side image map ",
- DECL map_contents , NULL, DECL html_attrs , NULL, name_attr
+ DECL map_contents , NULL, DECL html_attrs , NULL, DECL name_attr
},
{ "menu", 0, 0, 0, 0, 1, 1, 0, "menu list ",
DECL blockli_elt , NULL, NULL, DECL compact_attrs, NULL
@@ -803,7 +803,7 @@ html40ElementTable[] = {
DECL li_elt , "li" , DECL html_attrs, DECL ol_attrs, NULL
},
{ "optgroup", 0, 0, 0, 0, 0, 0, 0, "option group ",
- option_elt , "option", DECL optgroup_attrs, NULL, DECL label_attr
+ DECL option_elt , "option", DECL optgroup_attrs, NULL, DECL label_attr
},
{ "option", 0, 1, 0, 0, 0, 0, 0, "selectable choice " ,
DECL html_pcdata, NULL, DECL option_attrs, NULL, NULL
@@ -812,7 +812,7 @@ html40ElementTable[] = {
DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
},
{ "param", 0, 2, 2, 1, 0, 0, 0, "named property value ",
- EMPTY, NULL, DECL param_attrs, NULL, name_attr
+ EMPTY, NULL, DECL param_attrs, NULL, DECL name_attr
},
{ "pre", 0, 0, 0, 0, 0, 0, 0, "preformatted text ",
DECL pre_content, NULL, DECL html_attrs, DECL width_attr, NULL
@@ -1842,6 +1842,8 @@ UTF8ToHtml(unsigned char* out, int *outlen,
} else {
int len;
const htmlEntityDesc * ent;
+ const char *cp;
+ char nbuf[16];
/*
* Try to lookup a predefined HTML entity for it
@@ -1849,16 +1851,16 @@ UTF8ToHtml(unsigned char* out, int *outlen,
ent = htmlEntityValueLookup(c);
if (ent == NULL) {
- /* no chance for this in Ascii */
- *outlen = out - outstart;
- *inlen = processed - instart;
- return(-2);
+ snprintf(nbuf, sizeof(nbuf), "#%u", c);
+ cp = nbuf;
}
- len = strlen(ent->name);
+ else
+ cp = ent->name;
+ len = strlen(cp);
if (out + 2 + len >= outend)
break;
*out++ = '&';
- memcpy(out, ent->name, len);
+ memcpy(out, cp, len);
out += len;
*out++ = ';';
}
@@ -2205,6 +2207,38 @@ htmlParseHTMLName(htmlParserCtxtPtr ctxt) {
return(xmlDictLookup(ctxt->dict, loc, i));
}
+
+/**
+ * htmlParseHTMLName_nonInvasive:
+ * @ctxt: an HTML parser context
+ *
+ * parse an HTML tag or attribute name, note that we convert it to lowercase
+ * since HTML names are not case-sensitive, this doesn't consume the data
+ * from the stream, it's a look-ahead
+ *
+ * Returns the Tag Name parsed or NULL
+ */
+
+static const xmlChar *
+htmlParseHTMLName_nonInvasive(htmlParserCtxtPtr ctxt) {
+ int i = 0;
+ xmlChar loc[HTML_PARSER_BUFFER_SIZE];
+
+ if (!IS_ASCII_LETTER(NXT(1)) && (NXT(1) != '_') &&
+ (NXT(1) != ':')) return(NULL);
+
+ while ((i < HTML_PARSER_BUFFER_SIZE) &&
+ ((IS_ASCII_LETTER(NXT(1+i))) || (IS_ASCII_DIGIT(NXT(1+i))) ||
+ (NXT(1+i) == ':') || (NXT(1+i) == '-') || (NXT(1+i) == '_'))) {
+ if ((NXT(1+i) >= 'A') && (NXT(1+i) <= 'Z')) loc[i] = NXT(1+i) + 0x20;
+ else loc[i] = NXT(1+i);
+ i++;
+ }
+
+ return(xmlDictLookup(ctxt->dict, loc, i));
+}
+
+
/**
* htmlParseName:
* @ctxt: an HTML parser context
@@ -2644,23 +2678,7 @@ htmlParseScript(htmlParserCtxtPtr ctxt) {
SHRINK;
cur = CUR_CHAR(l);
while (IS_CHAR_CH(cur)) {
- if ((cur == '<') && (NXT(1) == '!') && (NXT(2) == '-') &&
- (NXT(3) == '-')) {
- if ((nbchar != 0) && (ctxt->sax != NULL) && (!ctxt->disableSAX)) {
- if (ctxt->sax->cdataBlock!= NULL) {
- /*
- * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
- */
- ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
- } else if (ctxt->sax->characters != NULL) {
- ctxt->sax->characters(ctxt->userData, buf, nbchar);
- }
- }
- nbchar = 0;
- htmlParseComment(ctxt);
- cur = CUR_CHAR(l);
- continue;
- } else if ((cur == '<') && (NXT(1) == '/')) {
+ if ((cur == '<') && (NXT(1) == '/')) {
/*
* One should break here, the specification is clear:
* Authors should therefore escape "</" within the content.
@@ -3560,7 +3578,7 @@ failed:
/*
* Handle specific association to the META tag
*/
- if (meta)
+ if (meta && (nbatts != 0))
htmlCheckMeta(ctxt, atts);
/*
@@ -3775,6 +3793,7 @@ static void
htmlParseContent(htmlParserCtxtPtr ctxt) {
xmlChar *currentNode;
int depth;
+ const xmlChar *name;
currentNode = xmlStrdup(ctxt->name);
depth = ctxt->nameNr;
@@ -3795,6 +3814,31 @@ htmlParseContent(htmlParserCtxtPtr ctxt) {
continue; /* while */
}
+ else if ((CUR == '<') &&
+ ((IS_ASCII_LETTER(NXT(1))) ||
+ (NXT(1) == '_') || (NXT(1) == ':'))) {
+ name = htmlParseHTMLName_nonInvasive(ctxt);
+ if (name == NULL) {
+ htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
+ "htmlParseStartTag: invalid element name\n",
+ NULL, NULL);
+ /* Dump the bogus tag like browsers do */
+ while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
+ NEXT;
+
+ if (currentNode != NULL)
+ xmlFree(currentNode);
+ return;
+ }
+
+ if (ctxt->name != NULL) {
+ if (htmlCheckAutoClose(name, ctxt->name) == 1) {
+ htmlAutoClose(ctxt, name);
+ continue;
+ }
+ }
+ }
+
/*
* Has this node been popped out during parsing of
* the next element
@@ -5806,7 +5850,7 @@ htmlCtxtReset(htmlParserCtxtPtr ctxt)
ctxt->inSubset = 0;
ctxt->errNo = XML_ERR_OK;
ctxt->depth = 0;
- ctxt->charset = XML_CHAR_ENCODING_UTF8;
+ ctxt->charset = XML_CHAR_ENCODING_NONE;
ctxt->catalogs = NULL;
xmlInitNodeInfoSeq(&ctxt->node_seq);
diff --git a/Makefile.am b/Makefile.am
index 5ef9d90..6676040 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1108,14 +1108,14 @@ cleanup:
dist-hook: cleanup libxml2.spec
-cp libxml2.spec $(distdir)
- (cd $(srcdir) ; tar -cf - --exclude CVS win32 macos vms bakefile test result) | (cd $(distdir); tar xf -)
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn win32 macos vms bakefile test result) | (cd $(distdir); tar xf -)
dist-source: distdir
$(AMTAR) -chof - --exclude Tests --exclude test --exclude result $(distdir) | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-sources+"`.tar.gz
dist-test: distdir
(mkdir -p $(distdir))
- (cd $(srcdir) ; tar -cf - --exclude CVS xstc/Tests) | (cd $(distdir); tar xf -)
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn xstc/Tests) | (cd $(distdir); tar xf -)
tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
@(rm -rf $(distdir)/xstc/Test)
diff --git a/Makefile.in b/Makefile.in
index d0b3f87..e49ced2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2379,14 +2379,14 @@ cleanup:
dist-hook: cleanup libxml2.spec
-cp libxml2.spec $(distdir)
- (cd $(srcdir) ; tar -cf - --exclude CVS win32 macos vms bakefile test result) | (cd $(distdir); tar xf -)
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn win32 macos vms bakefile test result) | (cd $(distdir); tar xf -)
dist-source: distdir
$(AMTAR) -chof - --exclude Tests --exclude test --exclude result $(distdir) | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-sources+"`.tar.gz
dist-test: distdir
(mkdir -p $(distdir))
- (cd $(srcdir) ; tar -cf - --exclude CVS xstc/Tests) | (cd $(distdir); tar xf -)
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn xstc/Tests) | (cd $(distdir); tar xf -)
tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
@(rm -rf $(distdir)/xstc/Test)
diff --git a/NEWS b/NEWS
index e13224f..fa7ae09 100644
--- a/NEWS
+++ b/NEWS
@@ -12,9 +12,35 @@ to help those - More testing on RelaxNG
The change log at
ChangeLog.html
describes the recents commits
-to the CVS at
-http://cvs.gnome.org/viewcvs/libxml2/
- code base.There is the list of public releases:
+to the SVN at
+http://svn.gnome.org/viewcvs/libxml2/trunk/
+ code base.Here is the list of public releases:
+2.6.28: Apr 17 2007:
+ - Documentation: comment fixes (Markus Keim), xpath comments fixes too
+ (James Dennett)
+ - Bug fixes: XPath bug (William Brack), HTML parser autoclose stack usage
+ (Usamah Malik), various regexp bug fixes (DV and William), path conversion
+ on Windows (Igor Zlatkovic), htmlCtxtReset fix (Michael Day), XPath
+ principal node of axis bug, HTML serialization of some codepoint
+ (Steven Rainwater), user data propagation in XInclude (Michael Day),
+ standalone and XML decl detection (Michael Day), Python id ouptut
+ for some id, fix the big python string memory leak, URI parsing fixes
+ (Stéphane Bidoul and William), long comments parsing bug (William),
+ concurrent threads initialization (Ted Phelps), invalid char
+ in text XInclude (William), XPath memory leak (William), tab in
+ python problems (Andreas Hanke), XPath node comparison error
+ (Oleg Paraschenko), cleanup patch for reader (Julien Reichel),
+ XML Schemas attribute group (William), HTML parsing problem (William),
+ fix char 0x2d in regexps (William), regexp quantifier range with
+ min occurs of 0 (William), HTML script/style parsing (Mike Day)
+ - Improvement: make xmlTextReaderSetup() public
+ - Compilation and postability: fix a missing include problem (William),
+ __ss_familly on AIX again (Björn Wiberg), compilation without zlib
+ (Michael Day), catalog patch for Win32 (Christian Ehrlicher),
+ Windows CE fixes (Andreas Stricke)
+ - Various CVS to SVN infrastructure changes
+
+
2.6.27: Oct 25 2006:
- Portability fixes: file names on windows (Roland Schwingel,
Emelyanov Alexey), windows compile fixup (Rob Richards),
@@ -683,7 +709,7 @@ Do not use or package 2.6.25
- New xmlWriter API provided by Alfred Mickautsch
- Schemas: base64 support by Anthony Carrico
- Parser<->HTTP integration fix, proper processing of the Mime-Type
- and charset informations if available.
+ and charset information if available.
- Relax-NG: bug fixes including the one reported by Martijn Faassen and
zeroOrMore, better error reporting.
- Python bindings (Stéphane Bidoul), never use stdout for errors
@@ -901,7 +927,7 @@ A bugfixes only release - Windows Makefiles (William Brack)
- Fix for HTTP URL escaping problem
- added an TextXmlReader (C#) like API (work in progress)
- Rewrote the API in XML generation script, includes a C parser and saves
- more informations needed for C# bindings
+ more information needed for C# bindings
2.4.28: Nov 22 2002:
diff --git a/catalog.c b/catalog.c
index 5456094..95ebee8 100644
--- a/catalog.c
+++ b/catalog.c
@@ -44,6 +44,12 @@
#define MAX_DELEGATE 50
#define MAX_CATAL_DEPTH 50
+#ifdef _WIN32
+# define PATH_SEAPARATOR ';'
+#else
+# define PATH_SEAPARATOR ':'
+#endif
+
/**
* TODO:
*
@@ -71,9 +77,15 @@
#if defined(_WIN32) && defined(_MSC_VER)
#undef XML_XML_DEFAULT_CATALOG
static char XML_XML_DEFAULT_CATALOG[256] = "file:///etc/xml/catalog";
+#if defined(_WIN32_WCE)
+/* Windows CE don't have a A variant */
+#define GetModuleHandleA GetModuleHandle
+#define GetModuleFileNameA GetModuleFileName
+#else
void* __stdcall GetModuleHandleA(const char*);
unsigned long __stdcall GetModuleFileNameA(void*, char*, unsigned long);
#endif
+#endif
static xmlChar *xmlCatalogNormalizePublic(const xmlChar *pubID);
static int xmlExpandCatalog(xmlCatalogPtr catal, const char *filename);
@@ -3209,6 +3221,9 @@ xmlLoadCatalogs(const char *pathss) {
const char *cur;
const char *paths;
xmlChar *path;
+#ifdef _WIN32
+ int i, iLen;
+#endif
if (pathss == NULL)
return;
@@ -3218,15 +3233,23 @@ xmlLoadCatalogs(const char *pathss) {
while (xmlIsBlank_ch(*cur)) cur++;
if (*cur != 0) {
paths = cur;
- while ((*cur != 0) && (*cur != ':') && (!xmlIsBlank_ch(*cur)))
+ while ((*cur != 0) && (*cur != PATH_SEAPARATOR) && (!xmlIsBlank_ch(*cur)))
cur++;
path = xmlStrndup((const xmlChar *)paths, cur - paths);
+#ifdef _WIN32
+ iLen = strlen(path);
+ for(i = 0; i < iLen; i++) {
+ if(path[i] == '\\') {
+ path[i] = '/';
+ }
+ }
+#endif
if (path != NULL) {
xmlLoadCatalog((const char *) path);
xmlFree(path);
}
}
- while (*cur == ':')
+ while (*cur == PATH_SEAPARATOR)
cur++;
}
}
diff --git a/configure b/configure
index 0749a93..19453ad 100755
--- a/configure
+++ b/configure
@@ -1618,20 +1618,28 @@ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
LIBXML_MAJOR_VERSION=2
LIBXML_MINOR_VERSION=6
-LIBXML_MICRO_VERSION=27
+LIBXML_MICRO_VERSION=28
LIBXML_MICRO_VERSION_SUFFIX=
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
LIBXML_VERSION_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
-if test -f CVS/Entries; then
+if test -f CVS/Entries ; then
extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
echo extra=$extra
if test "$extra" != ""
then
LIBXML_VERSION_EXTRA="-CVS$extra"
fi
+else if test -d .svn ; then
+ extra=`svn info | grep Revision | sed 's+Revision: ++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-SVN$extra"
+ fi
+fi
fi
@@ -4746,7 +4754,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4749 "configure"' > conftest.$ac_ext
+ echo '#line 4757 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -6114,7 +6122,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:6117:" \
+echo "$as_me:6125:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -7177,11 +7185,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7180: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7188: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7184: \$? = $ac_status" >&5
+ echo "$as_me:7192: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -7445,11 +7453,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7448: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7456: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7452: \$? = $ac_status" >&5
+ echo "$as_me:7460: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -7549,11 +7557,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7552: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7560: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:7556: \$? = $ac_status" >&5
+ echo "$as_me:7564: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -9018,7 +9026,7 @@ linux*)
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 9021 "configure"' > conftest.$ac_ext
+ echo '#line 9029 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -9915,7 +9923,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9918 "configure"
+#line 9926 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10015,7 +10023,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 10018 "configure"
+#line 10026 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12358,11 +12366,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:12361: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:12369: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:12365: \$? = $ac_status" >&5
+ echo "$as_me:12373: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -12462,11 +12470,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:12465: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:12473: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:12469: \$? = $ac_status" >&5
+ echo "$as_me:12477: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12998,7 +13006,7 @@ linux*)
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 13001 "configure"' > conftest.$ac_ext
+ echo '#line 13009 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -14056,11 +14064,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14059: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14067: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:14063: \$? = $ac_status" >&5
+ echo "$as_me:14071: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -14160,11 +14168,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14163: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14171: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14167: \$? = $ac_status" >&5
+ echo "$as_me:14175: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15609,7 +15617,7 @@ linux*)
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 15612 "configure"' > conftest.$ac_ext
+ echo '#line 15620 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -16387,11 +16395,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16390: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16398: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16394: \$? = $ac_status" >&5
+ echo "$as_me:16402: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16655,11 +16663,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16658: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16666: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16662: \$? = $ac_status" >&5
+ echo "$as_me:16670: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16759,11 +16767,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16762: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16770: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16766: \$? = $ac_status" >&5
+ echo "$as_me:16774: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -18228,7 +18236,7 @@ linux*)
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 18231 "configure"' > conftest.$ac_ext
+ echo '#line 18239 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -26048,7 +26056,7 @@ fi
echo "$as_me:$LINENO: checking for type of socket length (socklen_t)" >&5
echo $ECHO_N "checking for type of socket length (socklen_t)... $ECHO_C" >&6
cat > conftest.$ac_ext <<EOF
-#line 26051 "configure"
+#line 26059 "configure"
#include "confdefs.h"
#include <stddef.h>
@@ -26059,7 +26067,7 @@ int main(void) {
(void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)
; return 0; }
EOF
-if { (eval echo configure:26062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+if { (eval echo configure:26070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
rm -rf conftest*
echo "$as_me:$LINENO: result: socklen_t *" >&5
@@ -26071,7 +26079,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 26074 "configure"
+#line 26082 "configure"
#include "confdefs.h"
#include <stddef.h>
@@ -26082,7 +26090,7 @@ int main(void) {
(void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)
; return 0; }
EOF
-if { (eval echo configure:26085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+if { (eval echo configure:26093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
rm -rf conftest*
echo "$as_me:$LINENO: result: size_t *" >&5
@@ -26094,7 +26102,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 26097 "configure"
+#line 26105 "configure"
#include "confdefs.h"
#include <stddef.h>
@@ -26105,7 +26113,7 @@ int main(void) {
(void)getsockopt (1, 1, 1, NULL, (int *)NULL)
; return 0; }
EOF
-if { (eval echo configure:26108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+if { (eval echo configure:26116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
rm -rf conftest*
echo "$as_me:$LINENO: result: int *" >&5
@@ -26154,8 +26162,9 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
- #include <sys/socket.h>
#include <sys/types.h>
+ #include <sys/socket.h>
+
int
main ()
{
@@ -26218,8 +26227,9 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
- #include <sys/socket.h>
#include <sys/types.h>
+ #include <sys/socket.h>
+
int
main ()
{
@@ -26274,8 +26284,9 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
- #include <sys/socket.h>
#include <sys/types.h>
+ #include <sys/socket.h>
+
int
main ()
{
@@ -27507,8 +27518,7 @@ fi
if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ] || \
[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ] || \
- [ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomecvs/xmltest" ] || \
- [ "${LOGNAME}" = "wbrack" -a "`pwd`" = "/Users/wbrack/gnomecvs/xmltest" ]
+ [ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]
then
if test "$with_minimum" != "yes"
then
diff --git a/configure.in b/configure.in
index b2174c6..c355498 100644
--- a/configure.in
+++ b/configure.in
@@ -5,20 +5,28 @@ AC_CANONICAL_HOST
LIBXML_MAJOR_VERSION=2
LIBXML_MINOR_VERSION=6
-LIBXML_MICRO_VERSION=27
+LIBXML_MICRO_VERSION=28
LIBXML_MICRO_VERSION_SUFFIX=
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
LIBXML_VERSION_NUMBER=`expr $LIBXML_MAJOR_VERSION \* 10000 + $LIBXML_MINOR_VERSION \* 100 + $LIBXML_MICRO_VERSION`
-if test -f CVS/Entries; then
+if test -f CVS/Entries ; then
extra=`grep ChangeLog CVS/Entries | grep -v LIBXML | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
echo extra=$extra
if test "$extra" != ""
then
LIBXML_VERSION_EXTRA="-CVS$extra"
fi
+else if test -d .svn ; then
+ extra=`svn info | grep Revision | sed 's+Revision: ++'`
+ echo extra=$extra
+ if test "$extra" != ""
+ then
+ LIBXML_VERSION_EXTRA="-SVN$extra"
+ fi
+fi
fi
AC_SUBST(LIBXML_MAJOR_VERSION)
AC_SUBST(LIBXML_MINOR_VERSION)
@@ -498,8 +506,9 @@ fi
if test $enable_ipv6 = yes; then
have_ipv6=no
AC_TRY_COMPILE([
+ #include <sys/types.h>
#include <sys/socket.h>
- #include <sys/types.h>], [
+ ], [
struct sockaddr_storage ss;
socket(AF_INET6, SOCK_STREAM, 0)
],
@@ -521,8 +530,9 @@ if test $enable_ipv6 = yes; then
dnl ********************************************************************
AC_MSG_CHECKING([struct sockaddr::ss_family])
AC_TRY_COMPILE([
+ #include <sys/types.h>
#include <sys/socket.h>
- #include <sys/types.h>], [
+ ], [
struct sockaddr_storage ss ;
ss.ss_family = 0 ;
],
@@ -533,8 +543,9 @@ if test $enable_ipv6 = yes; then
if test x$have_ss_family = xno ; then
AC_MSG_CHECKING([broken struct sockaddr::ss_family])
AC_TRY_COMPILE([
+ #include <sys/types.h>
#include <sys/socket.h>
- #include <sys/types.h>], [
+ ], [
struct sockaddr_storage ss ;
ss.__ss_family = 0 ;
],
@@ -788,8 +799,7 @@ dnl (-Wunreachable-code)
dnl
if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \
[[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/home/veillard/libxml2" ]] || \
- [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomecvs/xmltest" ]] || \
- [[ "${LOGNAME}" = "wbrack" -a "`pwd`" = "/Users/wbrack/gnomecvs/xmltest" ]]
+ [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxml2" ]]
then
if test "$with_minimum" != "yes"
then
diff --git a/doc/APIchunk1.html b/doc/APIchunk1.html
index a222fe0..f17f1af 100644
--- a/doc/APIchunk1.html
+++ b/doc/APIchunk1.html
@@ -49,6 +49,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
<a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
diff --git a/doc/APIchunk10.html b/doc/APIchunk10.html
index 432eb31..c55e04a 100644
--- a/doc/APIchunk10.html
+++ b/doc/APIchunk10.html
@@ -331,6 +331,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
<a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />
@@ -345,6 +347,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
</dd><dt>already</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a><br />
diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html
index b036fc8..fb3ad79 100644
--- a/doc/APIchunk12.html
+++ b/doc/APIchunk12.html
@@ -679,6 +679,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
</dd><dt>contentspec</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
<a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
+</dd><dt>context?</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
</dd><dt>contexts</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
</dd><dt>contextual</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
@@ -689,6 +690,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>contraint</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
</dd><dt>contrary</dt><dd><a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
<a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
+</dd><dt>contrast</dt><dd><a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
</dd><dt>control</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
<a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html
index 1c9e865..834cde1 100644
--- a/doc/APIchunk13.html
+++ b/doc/APIchunk13.html
@@ -44,6 +44,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>day:minute</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
</dd><dt>de-coupled</dt><dd><a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
</dd><dt>deactivated</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
@@ -251,10 +252,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
</dd><dt>des</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
</dd><dt>desactivated</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
</dd><dt>descend</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
</dd><dt>descendant</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextDescendant">xmlXPathNextDescendant</a><br />
@@ -323,6 +322,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
</dd><dt>destruction</dt><dd><a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
</dd><dt>details</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
@@ -374,6 +374,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
</dd><dt>dict</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
</dd><dt>dictionary</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
@@ -384,7 +385,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
</dd><dt>dictionnary</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
-<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html
index dfe748d..77106c1 100644
--- a/doc/APIchunk14.html
+++ b/doc/APIchunk14.html
@@ -273,6 +273,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
<a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
diff --git a/doc/APIchunk15.html b/doc/APIchunk15.html
index 5bd7b26..802fb82 100644
--- a/doc/APIchunk15.html
+++ b/doc/APIchunk15.html
@@ -122,6 +122,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
<a href="html/libxml-pattern.html#xmlStreamWantsAnyNode">xmlStreamWantsAnyNode</a><br />
+</dd><dt>feed</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
</dd><dt>fetch</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPOpen">xmlNanoFTPOpen</a><br />
<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html
index 9842c3a..c92691a 100644
--- a/doc/APIchunk17.html
+++ b/doc/APIchunk17.html
@@ -482,6 +482,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>interpreter</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
</dd><dt>intersection</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
</dd><dt>invalid</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
</dd><dt>invited</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
diff --git a/doc/APIchunk19.html b/doc/APIchunk19.html
index 5bb6121..98688f2 100644
--- a/doc/APIchunk19.html
+++ b/doc/APIchunk19.html
@@ -153,6 +153,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>maybe</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
</dd><dt>mean</dt><dd><a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
</dd><dt>means</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
@@ -243,6 +244,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>misc</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
</dd><dt>misleading</dt><dd><a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>missing</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
</dd><dt>mixed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a><br />
<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
</dd><dt>mixed-content</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html
index 2a9174d..97a8fc6 100644
--- a/doc/APIchunk20.html
+++ b/doc/APIchunk20.html
@@ -100,6 +100,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
diff --git a/doc/APIchunk21.html b/doc/APIchunk21.html
index f7cf410..a49e002 100644
--- a/doc/APIchunk21.html
+++ b/doc/APIchunk21.html
@@ -240,6 +240,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
<a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
<a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
</dd><dt>ordered</dt><dd><a href="html/libxml-list.html#xmlListAppend">xmlListAppend</a><br />
<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html
index bd256cb..f823421 100644
--- a/doc/APIchunk22.html
+++ b/doc/APIchunk22.html
@@ -162,6 +162,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>piece</dt><dd><a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
</dd><dt>pieces</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
</dd><dt>place</dt><dd><a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
<a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
diff --git a/doc/APIchunk23.html b/doc/APIchunk23.html
index effe8f5..91b1835 100644
--- a/doc/APIchunk23.html
+++ b/doc/APIchunk23.html
@@ -101,6 +101,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
<a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
<a href="html/libxml-parserInternals.html#xmlNamespaceParseQName">xmlNamespaceParseQName</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
<a href="html/libxml-parserInternals.html#xmlParseCDSect">xmlParseCDSect</a><br />
<a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatRaw">xmlTextWriterWriteFormatRaw</a><br />
@@ -246,8 +248,12 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
<a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
@@ -512,6 +518,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schematron.html#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
+</dd><dt>resp</dt><dd><a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
</dd><dt>respect</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
</dd><dt>respecting</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
</dd><dt>response</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html
index b737b67..a965455 100644
--- a/doc/APIchunk24.html
+++ b/doc/APIchunk24.html
@@ -493,6 +493,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
</dd><dt>specialized</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
@@ -529,8 +533,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
<a href="html/libxml-SAX2.html#xmlSAX2IsStandalone">xmlSAX2IsStandalone</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
-</dd><dt>standalone=</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
+</dd><dt>standalone=</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
</dd><dt>standalone?</dt><dd><a href="html/libxml-parser.html#isStandaloneSAXFunc">isStandaloneSAXFunc</a><br />
</dd><dt>standard</dt><dd><a href="html/libxml-DOCBparser.html#docbParseDocument">docbParseDocument</a><br />
@@ -859,6 +865,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
<a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
@@ -866,6 +874,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
</dd><dt>sure</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html
index 828659a..5606555 100644
--- a/doc/APIchunk26.html
+++ b/doc/APIchunk26.html
@@ -58,6 +58,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>understand</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
</dd><dt>unescape</dt><dd><a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
</dd><dt>unescaped</dt><dd><a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
</dd><dt>unescaping</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
</dd><dt>unicode</dt><dd><a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
diff --git a/doc/APIchunk28.html b/doc/APIchunk28.html
index 05bde7b..97bb1b7 100644
--- a/doc/APIchunk28.html
+++ b/doc/APIchunk28.html
@@ -163,6 +163,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
<a href="html/libxml-tree.html#xmlNewDocNode">xmlNewDocNode</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
+</dd><dt>xmlEncodeSpecialChars</dt><dd><a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
</dd><dt>xmlEntitiesTablePtr</dt><dd><a href="html/libxml-entities.html#xmlCopyEntitiesTable">xmlCopyEntitiesTable</a><br />
<a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
</dd><dt>xmlEntityPtr</dt><dd><a href="html/libxml-SAX.html#getEntity">getEntity</a><br />
@@ -290,6 +294,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetDel">xmlXPathNodeSetDel</a><br />
<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
<a href="html/libxml-xpointer.html#xmlXPtrBuildNodeList">xmlXPtrBuildNodeList</a><br />
+</dd><dt>xmlNodeSetContent</dt><dd><a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+</dd><dt>xmlNodeSetContentLen</dt><dd><a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
</dd><dt>xmlNodeSetPtr</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeNodeSet">xmlXPathFreeNodeSet</a><br />
<a href="html/libxml-xpath.html#xmlXPathNodeSetCreate">xmlXPathNodeSetCreate</a><br />
</dd><dt>xmlNodeType</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
@@ -330,6 +336,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>xmlParserHandleReference</dt><dd><a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
</dd><dt>xmlParserInputBufferPtr</dt><dd><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
</dd><dt>xmlParserInputPtr</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
<a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />
<a href="html/libxml-parserInternals.html#xmlFreeInputStream">xmlFreeInputStream</a><br />
diff --git a/doc/APIchunk29.html b/doc/APIchunk29.html
index 92c88b4..2e413da 100644
--- a/doc/APIchunk29.html
+++ b/doc/APIchunk29.html
@@ -38,7 +38,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="APIchunk28.html">x-x</a>
<a href="APIchunk29.html">y-z</a>
</h2><h2>Letter y:</h2><dl><dt>year</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
-</dd><dt>yes</dt><dd><a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
+</dd><dt>yes</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
+<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
<a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
<a href="html/libxml-tree.html#xmlNodeIsText">xmlNodeIsText</a><br />
diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html
index b3c8364..4b74048 100644
--- a/doc/APIchunk4.html
+++ b/doc/APIchunk4.html
@@ -211,6 +211,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
<a href="html/libxml-xmlwriter.html#xmlNewTextWriter">xmlNewTextWriter</a><br />
<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
+<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
diff --git a/doc/APIchunk7.html b/doc/APIchunk7.html
index ed7c4a2..c8cde3b 100644
--- a/doc/APIchunk7.html
+++ b/doc/APIchunk7.html
@@ -188,6 +188,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlreader.html#xmlReaderNewMemory">xmlReaderNewMemory</a><br />
<a href="html/libxml-xmlreader.html#xmlReaderNewWalker">xmlReaderNewWalker</a><br />
<a href="html/libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
</dd><dt>Shavian</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsShavian">xmlUCSIsShavian</a><br />
</dd><dt>Shell</dt><dd><a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
</dd><dt>Shema</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
diff --git a/doc/APIfiles.html b/doc/APIfiles.html
index e10fe00..8a3f6d7 100644
--- a/doc/APIfiles.html
+++ b/doc/APIfiles.html
@@ -2719,6 +2719,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index fea4fd3..bbfd181 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -1768,6 +1768,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
</p><h2>Type xmlParserInputPtr:</h2><p><a href="html/libxml-parserInternals.html#inputPush">inputPush</a><br />
<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
<a href="html/libxml-parserInternals.html#xmlFreeInputStream">xmlFreeInputStream</a><br />
@@ -2059,6 +2060,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html
index c6c5265..4cfeef8 100644
--- a/doc/APIsymbols.html
+++ b/doc/APIsymbols.html
@@ -2939,6 +2939,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSetup">xmlTextReaderSetup</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
diff --git a/doc/DOM.html b/doc/DOM.html
index 52f1139..90b988b 100644
--- a/doc/DOM.html
+++ b/doc/DOM.html
@@ -12,6 +12,6 @@ Object Model</em>; this is an API for accessing XML or HTML structured
documents. Native support for DOM in Gnome is on the way (module gnome-dom),
and will be based on gnome-xml. This will be a far cleaner interface to
manipulate XML files within Gnome since it won't expose the internal
-structure.</p><p>The current DOM implementation on top of libxml2 is the <a href="http://cvs.gnome.org/lxr/source/gdome2/">gdome2 Gnome module</a>, this
-is a full DOM interface, thanks to Paolo Casarini, check the <a href="http://www.cs.unibo.it/~casarini/gdome2/">Gdome2 homepage</a> for more
-informations.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+structure.</p><p>The current DOM implementation on top of libxml2 is the <a href="http:///svn.gnome.org/viewcvs/gdome2/trunk/">gdome2 Gnome module</a>, this
+is a full DOM interface, thanks to Paolo Casarini, check the <a href="http://gdome2.cs.unibo.it/">Gdome2 homepage</a> for more
+information.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/FAQ.html b/doc/FAQ.html
index 0d5ded6..6bc67ec 100644
--- a/doc/FAQ.html
+++ b/doc/FAQ.html
@@ -24,12 +24,14 @@ A:link, A:visited, A:active { text-decoration: underline }
</li>
</ol><h3><a name="Installati" id="Installati">Installation</a></h3><ol><li><strong><span style="background-color: #FF0000">Do Not Use
libxml1</span></strong>, use libxml2</li>
+ <p></p>
<li><em>Where can I get libxml</em> ?
<p>The original distribution comes from <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a> or <a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/">gnome.org</a></p>
<p>Most Linux and BSD distributions include libxml, this is probably the
safer way for end-users to use libxml.</p>
<p>David Doolin provides precompiled Windows versions at <a href="http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/ ">http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/</a></p>
</li>
+ <p></p>
<li><em>I see libxml and libxml2 releases, which one should I install ?</em>
<ul><li>If you are not constrained by backward compatibility issues with
existing applications, install libxml2 only</li>
@@ -86,6 +88,7 @@ A:link, A:visited, A:active { text-decoration: underline }
of the official UNIX</a> specification. Here is one <a href="http://www.gnu.org/software/libiconv/">implementation of the
library</a> which source can be found <a href="ftp://ftp.ilog.fr/pub/Users/haible/gnu/">here</a>.</li>
</ul></li>
+ <p></p>
<li><em>Make check fails on some platforms</em>
<p>Sometimes the regression tests' results don't completely match the
value produced by the parser, and the makefile uses diff to print the
@@ -94,7 +97,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<p>Sometimes (especially on Solaris) make checks fail due to limitations
in make. Try using GNU-make instead.</p>
</li>
- <li><em>I use the CVS version and there is no configure script</em>
+ <li><em>I use the SVN version and there is no configure script</em>
<p>The configure script (and other Makefiles) are generated. Use the
autogen.sh script to regenerate the configure script and Makefiles,
like:</p>
@@ -173,8 +176,9 @@ A:link, A:visited, A:active { text-decoration: underline }
()</a> and <a href="http://xmlsoft.org/html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile
()</a></li>
</ol></li>
- <li>Extra nodes in the document:
- <p><em>For a XML file as below:</em></p>
+ <p></p>
+ <li><em>Extra nodes in the document:</em>
+ <p><em>For an XML file as below:</em></p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;PLAN xmlns="http://www.argus.ca/autotest/1.0/"&gt;
&lt;NODE CommFlag="0"/&gt;
@@ -232,19 +236,23 @@ pnode=pxmlDoc-&gt;children-&gt;children;</pre>
<li>have a look at <a href="examples/index.html">the set of
examples</a>.</li>
<li>look for examples of use for libxml2 function using the Gnome code.
+<!--
For example the following will query the full Gnome CVS base for the
use of the <strong>xmlAddChild()</strong> function:
- <p><a href="http://cvs.gnome.org/lxr/search?string=xmlAddChild">http://cvs.gnome.org/lxr/search?string=xmlAddChild</a></p>
+ <p><a
+ href="http://cvs.gnome.org/lxr/search?string=xmlAddChild">http://cvs.gnome.org/lxr/search?string=xmlAddChild</a></p>
<p>This may be slow, a large hardware donation to the gnome project
could cure this :-)</p>
+-->
</li>
- <li><a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&amp;dir=gnome-xml">Browse
+ <li><a href="http://svn.gnome.org/viewcvs/libxml2/trunk/">Browse
the libxml2 source</a> , I try to write code as clean and documented
as possible, so looking at it may be helpful. In particular the code
- of xmllint.c and of the various testXXX.c test programs should
+ of <a href="http://svn.gnome.org/viewcvs/libxml2/trunk/xmllint.c?view=markup">xmllint.c</a> and of the various testXXX.c test programs should
provide good examples of how to do things with the library.</li>
</ul></li>
- <li>What about C++ ?
+ <p></p>
+ <li><em>What about C++ ?</em>
<p>libxml2 is written in pure C in order to allow easy reuse on a number
of platforms, including embedded systems. I don't intend to convert to
C++.</p>
@@ -260,7 +268,7 @@ pnode=pxmlDoc-&gt;children-&gt;children;</pre>
</li>
-->
</ul></li>
- <li>How to validate a document a posteriori ?
+ <li><em>How to validate a document a posteriori ?</em>
<p>It is possible to validate documents which had not been validated at
initial parsing time or documents which have been built from scratch
using the API. Use the <a href="http://xmlsoft.org/html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd()</a>
@@ -276,7 +284,7 @@ xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
else xmlAddPrevSibling(doc-&gt;children, (xmlNodePtr)dtd);
</pre>
</li>
- <li>So what is this funky "xmlChar" used all the time?
+ <li><em>So what is this funky "xmlChar" used all the time?</em>
<p>It is a null terminated sequence of utf-8 characters. And only utf-8!
You need to convert strings encoded in different ways to utf-8 before
passing them to the API. This can be accomplished with the iconv library
diff --git a/doc/XSLT.html b/doc/XSLT.html
index 657ead3..c483e04 100644
--- a/doc/XSLT.html
+++ b/doc/XSLT.html
@@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline }
</style><title>XSLT</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>XSLT</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>Check <a href="http://xmlsoft.org/XSLT">the separate libxslt page</a></p><p><a href="http://www.w3.org/TR/xslt">XSL Transformations</a>, is a
language for transforming XML documents into other XML documents (or
HTML/textual output).</p><p>A separate library called libxslt is available implementing XSLT-1.0 for
-libxml2. This module "libxslt" too can be found in the Gnome CVS base.</p><p>You can check the progresses on the libxslt <a href="http://xmlsoft.org/XSLT/ChangeLog.html">Changelog</a>.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+libxml2. This module "libxslt" too can be found in the Gnome SVN base.</p><p>You can check the progresses on the libxslt <a href="http://xmlsoft.org/XSLT/ChangeLog.html">Changelog</a>.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/bugs.html b/doc/bugs.html
index 6415c85..d37423b 100644
--- a/doc/bugs.html
+++ b/doc/bugs.html
@@ -14,7 +14,7 @@ bug tracking database</a> (make sure to use the "libxml2" module name). I
look at reports there regularly and it's good to have a reminder when a bug
is still open. Be sure to specify that the bug is for the package libxml2.</p><p>For small problems you can try to get help on IRC, the #xml channel on
irc.gnome.org (port 6667) usually have a few person subscribed which may help
-(but there is no garantee and if a real issue is raised it should go on the
+(but there is no guarantee and if a real issue is raised it should go on the
mailing-list for archival).</p><p>There is also a mailing-list <a href="mailto:xml@gnome.org">xml@gnome.org</a> for libxml, with an <a href="http://mail.gnome.org/archives/xml/">on-line archive</a> (<a href="http://xmlsoft.org/messages">old</a>). To subscribe to this list,
please visit the <a href="http://mail.gnome.org/mailman/listinfo/xml">associated Web</a> page and
follow the instructions. <strong>Do not send code, I won't debug it</strong>
@@ -24,13 +24,13 @@ bounces* (in the order of a thousand a day !) I cannot approve them manually
anymore. If your mail to the list bounced waiting for administrator approval,
it is LOST ! Repost it and fix the problem triggering the error. Also please
note that <span style="color: #FF0000; background-color: #FFFFFF">emails with
-a legal warning asking to not copy or redistribute freely the informations
+a legal warning asking to not copy or redistribute freely the information
they contain</span> are <strong>NOT</strong> acceptable for the mailing-list,
such mail will as much as possible be discarded automatically, and are less
likely to be answered if they made it to the list, <strong>DO NOT</strong>
post to the list from an email address where such legal requirements are
automatically added, get private paying support if you can't share
-informations.</p><p>Check the following <strong><span style="color: #FF0000">before
+information.</p><p>Check the following <strong><span style="color: #FF0000">before
posting</span></strong>:</p><ul><li>Read the <a href="FAQ.html">FAQ</a> and <a href="search.php">use the
search engine</a> to get information related to your problem.</li>
<li>Make sure you are <a href="ftp://xmlsoft.org/libxml2/">using a recent
@@ -53,7 +53,7 @@ answer a given question, ask on the list.</p><p>To <span style="color: #E50000">
others" and is not welcome. I will automatically Carbon-Copy the
xml@gnome.org mailing list for any technical reply made about libxml2 or
libxslt.</li>
- <li>There is <span style="color: #E50000">no garantee of support</span>, if
+ <li>There is <span style="color: #E50000">no guarantee of support</span>. If
your question remains unanswered after a week, repost it, making sure you
gave all the detail needed and the information requested.</li>
<li>Failing to provide information as requested or double checking first
diff --git a/doc/catalog.html b/doc/catalog.html
index 4100fed..2448191 100644
--- a/doc/catalog.html
+++ b/doc/catalog.html
@@ -108,7 +108,7 @@ to its own set of catalogs, this can be done by setting the
<code>XML_CATALOG_FILES</code> environment variable to a list of catalogs, an
empty one should deactivate loading the default <code>/etc/xml/catalog</code>
default catalog</p><h3><a name="validate" id="validate">How to debug catalog processing:</a></h3><p>Setting up the <code>XML_DEBUG_CATALOG</code> environment variable will
-make libxml2 output debugging informations for each catalog operations, for
+make libxml2 output debugging information for each catalog operations, for
example:</p><pre>orchis:~/XML -&gt; xmllint --memory --noout test/ent2
warning: failed to load external entity "title.xml"
orchis:~/XML -&gt; export XML_DEBUG_CATALOG=
@@ -225,7 +225,7 @@ try to avoid troubles in multithreaded environments. The code is now thread
safe assuming that the libxml2 library has been compiled with threads
support.</p><p></p><h3><a name="Other" id="Other">Other resources</a></h3><p>The XML Catalog specification is relatively recent so there isn't much
literature to point at:</p><ul><li>You can find a good rant from Norm Walsh about <a href="http://www.arbortext.com/Think_Tank/XML_Resources/Issue_Three/issue_three.html">the
- need for catalogs</a>, it provides a lot of context informations even if
+ need for catalogs</a>, it provides a lot of context information even if
I don't agree with everything presented. Norm also wrote a more recent
article <a href="http://wwws.sun.com/software/xml/developers/resolver/article/">XML
entities and URI resolvers</a> describing them.</li>
diff --git a/doc/devhelp/libxml2-parserInternals.html b/doc/devhelp/libxml2-parserInternals.html
index 4287e2c..1e575f8 100644
--- a/doc/devhelp/libxml2-parserInternals.html
+++ b/doc/devhelp/libxml2-parserInternals.html
@@ -576,7 +576,7 @@ void <a href="#xmlParseEntityDecl">xmlParseEntityDecl</a> (<a href="libxml2-tre
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlParseSDDecl"/>xmlParseSDDecl ()</h3><pre class="programlisting">int xmlParseSDDecl (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
</pre><p>parse the XML standalone declaration [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value "no" if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the <a href="libxml2-SAX.html#attribute">attribute</a> appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if standalone, 0 otherwise</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if standalone="yes" 0 if standalone="no" -2 if standalone <a href="libxml2-SAX.html#attribute">attribute</a> is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlParseStartTag"/>xmlParseStartTag ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlParseStartTag (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
</pre><p>parse a start of tag either for rule element or EmptyElement. In both case we don't parse the tag closing chars. [40] STag ::= '&lt;' Name (S Attribute)* S? '&gt;' [ WFC: Unique Att Spec ] No <a href="libxml2-SAX.html#attribute">attribute</a> name may appear more than once in the same start-tag or empty-element tag. [44] EmptyElemTag ::= '&lt;' Name (S Attribute)* S? '/&gt;' [ WFC: Unique Att Spec ] No <a href="libxml2-SAX.html#attribute">attribute</a> name may appear more than once in the same start-tag or empty-element tag. With namespace: [NS 8] STag ::= '&lt;' QName (S Attribute)* S? '&gt;' [NS 10] EmptyElement ::= '&lt;' QName (S Attribute)* S? '/&gt;'</p>
diff --git a/doc/devhelp/libxml2-tree.html b/doc/devhelp/libxml2-tree.html
index 70c6e50..d5879f5 100644
--- a/doc/devhelp/libxml2-tree.html
+++ b/doc/devhelp/libxml2-tree.html
@@ -409,7 +409,7 @@ void <a href="#xmlFreeNsList">xmlFreeNsList</a> (<a href="libxml2-tree.html#xm
struct _xmlNode * prev : previous sibling link
struct _xmlDoc * doc : autoreference to itself End of common part
int compression : level of zlib compression
- int standalone : standalone document (no external refs)
+ int standalone : standalone document (no external refs) 1 if standalone="yes" 0 if sta
struct _xmlDtd * intSubset : the document internal subset
struct _xmlDtd * extSubset : the document external subset
struct _xmlNs * oldNs : Global namespace, the old way
@@ -1288,11 +1288,11 @@ void <a href="#xmlFreeNsList">xmlFreeNsList</a> (<a href="libxml2-tree.html#xm
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the text len.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlNodeAddContent"/>xmlNodeAddContent ()</h3><pre class="programlisting">void xmlNodeAddContent (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
-</pre><p>Append the extra substring to the node content.</p>
+</pre><p>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>extra content</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlNodeAddContentLen"/>xmlNodeAddContentLen ()</h3><pre class="programlisting">void xmlNodeAddContentLen (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
-</pre><p>Append the extra substring to the node content.</p>
+</pre><p>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>extra content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size of @content</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlNodeBufGetContent"/>xmlNodeBufGetContent ()</h3><pre class="programlisting">int xmlNodeBufGetContent (<a href="libxml2-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br/>
@@ -1340,11 +1340,11 @@ void <a href="#xmlFreeNsList">xmlFreeNsList</a> (<a href="libxml2-tree.html#xm
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>the new base URI</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlNodeSetContent"/>xmlNodeSetContent ()</h3><pre class="programlisting">void xmlNodeSetContent (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content)<br/>
-</pre><p>Replace the content of a node.</p>
+</pre><p>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the new value of the content</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlNodeSetContentLen"/>xmlNodeSetContentLen ()</h3><pre class="programlisting">void xmlNodeSetContentLen (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * content, <br/> int len)<br/>
-</pre><p>Replace the content of a node.</p>
+</pre><p>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the new value of the content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size of @content</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlNodeSetLang"/>xmlNodeSetLang ()</h3><pre class="programlisting">void xmlNodeSetLang (<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * lang)<br/>
diff --git a/doc/devhelp/libxml2-xmlreader.html b/doc/devhelp/libxml2-xmlreader.html
index a3bbbb5..e422f1d 100644
--- a/doc/devhelp/libxml2-xmlreader.html
+++ b/doc/devhelp/libxml2-xmlreader.html
@@ -50,91 +50,92 @@ typedef enum <a href="#xmlTextReaderMode">xmlTextReaderMode</a>;
typedef struct _xmlTextReader <a href="#xmlTextReader">xmlTextReader</a>;
typedef void * <a href="#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a>;
typedef enum <a href="#xmlReaderTypes">xmlReaderTypes</a>;
-const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderValue">xmlTextReaderValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a> (const char * URI);
-int <a href="#xmlTextReaderRead">xmlTextReaderRead</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadString">xmlTextReaderReadString</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int no);
-int <a href="#xmlTextReaderDepth">xmlTextReaderDepth</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-typedef void <a href="#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> (void * arg, <br/> const char * msg, <br/> <a href="libxml2-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
int <a href="#xmlTextReaderHasAttributes">xmlTextReaderHasAttributes</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a> (<a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
-int <a href="#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI);
-int <a href="#xmlTextReaderNext">xmlTextReaderNext</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderReadState">xmlTextReaderReadState</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForFile">xmlReaderForFile</a> (const char * filename, <br/> const char * encoding, <br/> int options);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstNamespaceUri">xmlTextReaderConstNamespaceUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderMoveToNextAttribute">xmlTextReaderMoveToNextAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
int <a href="#xmlTextReaderGetParserLineNumber">xmlTextReaderGetParserLineNumber</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI);
-int <a href="#xmlReaderNewWalker">xmlReaderNewWalker</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
-int <a href="#xmlReaderNewDoc">xmlReaderNewDoc</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderExpand">xmlTextReaderExpand</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderStandalone">xmlTextReaderStandalone</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForDoc">xmlReaderForDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
-int <a href="#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * xsd);
int <a href="#xmlReaderNewIO">xmlReaderNewIO</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
-int <a href="#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-void <a href="#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> f, <br/> void * arg);
int <a href="#xmlTextReaderClose">xmlTextReaderClose</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderWalker">xmlReaderWalker</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
-<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForIO">xmlReaderForIO</a> (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
-int <a href="#xmlTextReaderIsValid">xmlTextReaderIsValid</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-void <a href="#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> f, <br/> void * arg);
-const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstEncoding">xmlTextReaderConstEncoding</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderNodeType">xmlTextReaderNodeType</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
int <a href="#xmlTextReaderNormalization">xmlTextReaderNormalization</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-void <a href="#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> * f, <br/> void ** arg);
-const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
int <a href="#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int prop);
-int <a href="#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlReaderNewFile">xmlReaderNewFile</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * filename, <br/> const char * encoding, <br/> int options);
-void <a href="#xmlFreeTextReader">xmlFreeTextReader</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
int <a href="#xmlTextReaderMoveToAttribute">xmlTextReaderMoveToAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
-int <a href="#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderName">xmlTextReaderName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlReaderNewFd">xmlReaderNewFd</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
-int <a href="#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * rng);
-int <a href="#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderQuoteChar">xmlTextReaderQuoteChar</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
int <a href="#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema);
-<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForMemory">xmlReaderForMemory</a> (const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
-<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForFd">xmlReaderForFd</a> (int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderValue">xmlTextReaderValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderIsValid">xmlTextReaderIsValid</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
int <a href="#xmlTextReaderMoveToFirstAttribute">xmlTextReaderMoveToFirstAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderPrefix">xmlTextReaderPrefix</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-long <a href="#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a> (<a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
-int <a href="#xmlReaderNewMemory">xmlReaderNewMemory</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderGetParserColumnNumber">xmlTextReaderGetParserColumnNumber</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstValue">xmlTextReaderConstValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlNewTextReader">xmlNewTextReader</a> (<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> const char * URI);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int no);
-int <a href="#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> int options);
-<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLocalName">xmlTextReaderLocalName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderExpand">xmlTextReaderExpand</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstName">xmlTextReaderConstName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstString">xmlTextReaderConstString</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstXmlVersion">xmlTextReaderConstXmlVersion</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderDepth">xmlTextReaderDepth</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadString">xmlTextReaderReadString</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderIsDefault">xmlTextReaderIsDefault</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderMoveToNextAttribute">xmlTextReaderMoveToNextAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlReaderNewWalker">xmlReaderNewWalker</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstPrefix">xmlTextReaderConstPrefix</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderWalker">xmlReaderWalker</a> (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstLocalName">xmlTextReaderConstLocalName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderNodeType">xmlTextReaderNodeType</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+void <a href="#xmlFreeTextReader">xmlFreeTextReader</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderName">xmlTextReaderName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderRead">xmlTextReaderRead</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderIsEmptyElement">xmlTextReaderIsEmptyElement</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlReaderNewMemory">xmlReaderNewMemory</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderSchemaValidateCtxt">xmlTextReaderSchemaValidateCtxt</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br/> int options);
int <a href="#xmlTextReaderHasValue">xmlTextReaderHasValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderPreserve">xmlTextReaderPreserve</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-int <a href="#xmlTextReaderReadState">xmlTextReaderReadState</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstBaseUri">xmlTextReaderConstBaseUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
-const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstString">xmlTextReaderConstString</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderBaseUri">xmlTextReaderBaseUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderMoveToAttributeNo">xmlTextReaderMoveToAttributeNo</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int no);
+int <a href="#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a> (<a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
+int <a href="#xmlTextReaderMoveToAttributeNs">xmlTextReaderMoveToAttributeNs</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * localName, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namespaceURI);
+int <a href="#xmlTextReaderNext">xmlTextReaderNext</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix);
+int <a href="#xmlTextReaderMoveToElement">xmlTextReaderMoveToElement</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForIO">xmlReaderForIO</a> (<a href="libxml2-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br/> <a href="libxml2-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br/> void * ioctx, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderPrefix">xmlTextReaderPrefix</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+typedef void <a href="#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> (void * arg, <br/> const char * msg, <br/> <a href="libxml2-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForFd">xmlReaderForFd</a> (int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderGetAttribute">xmlTextReaderGetAttribute</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLocalName">xmlTextReaderLocalName</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderPreserve">xmlTextReaderPreserve</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> <a href="#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
int <a href="#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int prop, <br/> int value);
+<a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+void <a href="#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> f, <br/> void * arg);
+int <a href="#xmlTextReaderIsNamespaceDecl">xmlTextReaderIsNamespaceDecl</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlReaderNewDoc">xmlReaderNewDoc</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces);
+const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+void <a href="#xmlTextReaderGetErrorHandler">xmlTextReaderGetErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> * f, <br/> void ** arg);
+void <a href="#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> f, <br/> void * arg);
+int <a href="#xmlReaderNewFile">xmlReaderNewFile</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * filename, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema);
+int <a href="#xmlReaderNewFd">xmlReaderNewFd</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> int fd, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * rng);
+<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> <a href="#xmlReaderForMemory">xmlReaderForMemory</a> (const char * buffer, <br/> int size, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+int <a href="#xmlTextReaderSetup">xmlTextReaderSetup</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> const char * URL, <br/> const char * encoding, <br/> int options);
+long <a href="#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a> (<a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator);
+<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderNamespaceUri">xmlTextReaderNamespaceUri</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
+int <a href="#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * xsd);
+int <a href="#xmlTextReaderStandalone">xmlTextReaderStandalone</a> (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -510,8 +511,8 @@ The content of this structure is not made public by the API.
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled RelaxNG schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the RelaxNG validation could be (des)activated and -1 in case of error.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlTextReaderRelaxNGValidate"/>xmlTextReaderRelaxNGValidate ()</h3><pre class="programlisting">int xmlTextReaderRelaxNGValidate (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * rng)<br/>
-</pre><p>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is desactivated.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>rng</tt></i>:</span></td><td>the path to a RelaxNG schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the RelaxNG validation could be (des)activated and -1 in case of error.</td></tr></tbody></table></div></div>
+</pre><p>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>rng</tt></i>:</span></td><td>the path to a RelaxNG schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the RelaxNG validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlTextReaderSchemaValidate"/>xmlTextReaderSchemaValidate ()</h3><pre class="programlisting">int xmlTextReaderSchemaValidate (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const char * xsd)<br/>
</pre><p>Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.</p>
@@ -537,6 +538,10 @@ The content of this structure is not made public by the API.
</pre><p>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function to call on error and warnings</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument to pass to the callback function</td></tr></tbody></table></div></div>
<hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlTextReaderSetup"/>xmlTextReaderSetup ()</h3><pre class="programlisting">int xmlTextReaderSetup (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> <a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br/> const char * URL, <br/> const char * encoding, <br/> int options)<br/>
+</pre><p>Setup an XML reader with new options</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td><a href="libxml2-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> used to feed the reader, will be destroyed with it.</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml2-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div></div>
+ <hr/>
<div class="refsect2" lang="en"><h3><a name="xmlTextReaderStandalone"/>xmlTextReaderStandalone ()</h3><pre class="programlisting">int xmlTextReaderStandalone (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
</pre><p>Determine the standalone status of the document being read.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.</td></tr></tbody></table></div></div>
diff --git a/doc/devhelp/libxml2-xpath.html b/doc/devhelp/libxml2-xpath.html
index 86b0cc2..8fdd51c 100644
--- a/doc/devhelp/libxml2-xpath.html
+++ b/doc/devhelp/libxml2-xpath.html
@@ -193,7 +193,7 @@ The content of this structure is not made public by the API.
void * user : function to free extra variables
int contextSize : the context size
int proximityPosition : the proximity position extra stuff for XPointer
- int xptr : it this an XPointer context
+ int xptr : is this an XPointer context?
<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> here : for here()
<a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> origin : for origin() the set of namespace declarations in scope for the expre
<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> nsHash : The namespaces hash table
@@ -205,12 +205,12 @@ The content of this structure is not made public by the API.
<a href="libxml2-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> funcLookupFunc : function lookup func
void * funcLookupData : function lookup data temporary namespace lists kept for walking the n
<a href="libxml2-tree.html#xmlNsPtr">xmlNsPtr</a> * tmpNsList : Array of namespaces
- int tmpNsNr : number of namespace in scope error reporting mechanism
+ int tmpNsNr : number of namespaces in scope error reporting mechanism
void * userData : user specific data block
<a href="libxml2-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> error : the callback in case of errors
<a href="libxml2-xmlerror.html#xmlError">xmlError</a> lastError : the last error
- <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> debugNode : the source node XSLT dictionnary
- <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionnary if any
+ <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> debugNode : the source node XSLT dictionary
+ <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary if any
int flags : flags to control compilation Cache for reusal of XPath objects
void * cache
} xmlXPathContext;
diff --git a/doc/devhelp/libxml2.devhelp b/doc/devhelp/libxml2.devhelp
index d789934..6a3841c 100644
--- a/doc/devhelp/libxml2.devhelp
+++ b/doc/devhelp/libxml2.devhelp
@@ -2990,6 +2990,7 @@
<function name="xmlTextReaderSetParserProp ()" link="libxml2-xmlreader.html#xmlTextReaderSetParserProp"/>
<function name="xmlTextReaderSetSchema ()" link="libxml2-xmlreader.html#xmlTextReaderSetSchema"/>
<function name="xmlTextReaderSetStructuredErrorHandler ()" link="libxml2-xmlreader.html#xmlTextReaderSetStructuredErrorHandler"/>
+ <function name="xmlTextReaderSetup ()" link="libxml2-xmlreader.html#xmlTextReaderSetup"/>
<function name="xmlTextReaderStandalone ()" link="libxml2-xmlreader.html#xmlTextReaderStandalone"/>
<function name="xmlTextReaderValue ()" link="libxml2-xmlreader.html#xmlTextReaderValue"/>
<function name="xmlTextReaderXmlLang ()" link="libxml2-xmlreader.html#xmlTextReaderXmlLang"/>
diff --git a/doc/docs.html b/doc/docs.html
index 4c5fe55..4bd0663 100644
--- a/doc/docs.html
+++ b/doc/docs.html
@@ -24,7 +24,7 @@ A:link, A:visited, A:active { text-decoration: underline }
documentation</a> explaining how to use the libxml SAX interface.</li>
<li>George Lebl wrote <a href="http://www-106.ibm.com/developerworks/library/l-gnome3/">an article
for IBM developerWorks</a> about using libxml.</li>
- <li>Check <a href="http://cvs.gnome.org/lxr/source/gnome-xml/TODO">the TODO
+ <li>Check <a href="http://svn.gnome.org/viewcvs/libxml2/trunk/TODO?view=markup">the TODO
file</a>.</li>
<li>Read the <a href="upgrade.html">1.x to 2.x upgrade path</a>
description. If you are starting a new project using libxml you should
diff --git a/doc/downloads.html b/doc/downloads.html
index e49f483..efa8c07 100644
--- a/doc/downloads.html
+++ b/doc/downloads.html
@@ -7,7 +7,7 @@ H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
-</style><title>Downloads</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Downloads</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The latest versions of libxml2 can be found on the <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a> server ( <a href="http://xmlsoft.org/sources/">HTTP</a>, <a href="ftp://xmlsoft.org/libxml2/">FTP</a> and rsync are available), there is also
+</style><title>Downloads</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Downloads</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The latest versions of libxml2 can be found on the <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a> server ( <a href="ftp://xmlsoft.org/libxml2/">FTP</a> and rsync are available), there are also
mirrors (<a href="ftp://ftp.planetmirror.com/pub/xmlsoft/">Australia</a>( <a href="http://xmlsoft.planetmirror.com/">Web</a>), <a href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a> as <a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/">source archive</a>
, Antonin Sprinzl also provide <a href="ftp://gd.tuwien.ac.at/pub/libxml/">a
mirror in Austria</a>. (NOTE that you need both the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml(2)</a> and <a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml(2)-devel</a>
@@ -24,13 +24,13 @@ Windows binaries made by Igor Zlatovic are available in the <a href="http://xmls
<li>The HP-UX porting center provides <a href="http://hpux.connect.org.uk/hppd/hpux/Gnome/">HP-UX binaries</a></li>
<li>Bull provides precompiled <a href="http://gnome.bullfreeware.com/new_index.html">RPMs for AIX</a> as
patr of their GNOME packages</li>
-</ul><p>If you know other supported binary ports, please <a href="http://veillard.com/">contact me</a>.</p><p><a name="Snapshot" id="Snapshot">Snapshot:</a></p><ul><li>Code from the W3C cvs base libxml2 module, updated hourly <a href="ftp://xmlsoft.org/libxml2/libxml2-cvs-snapshot.tar.gz">libxml2-cvs-snapshot.tar.gz</a>.</li>
+</ul><p>If you know other supported binary ports, please <a href="http://veillard.com/">contact me</a>.</p><p><a name="Snapshot" id="Snapshot">Snapshot:</a></p><ul><li>Code from the W3C svn base libxml2 module, updated hourly <a href="ftp://xmlsoft.org/libxml2/libxml2-cvs-snapshot.tar.gz">libxml2-cvs-snapshot.tar.gz</a>.</li>
<li>Docs, content of the web site, the list archive included <a href="ftp://xmlsoft.org/libxml2/libxml-docs.tar.gz">libxml-docs.tar.gz</a>.</li>
</ul><p><a name="Contribs" id="Contribs">Contributions:</a></p><p>I do accept external contributions, especially if compiling on another
platform, get in touch with the list to upload the package, wrappers for
-various languages have been provided, and can be found in the <a href="python.html">bindings section</a></p><p>Libxml2 is also available from CVS:</p><ul><li><p>The <a href="http://cvs.gnome.org/viewcvs/libxml2/">Gnome CVS
- base</a>. Check the <a href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
- page; the CVS module is <b>libxml2</b>.</p>
+various languages have been provided, and can be found in the <a href="python.html">bindings section</a></p><p>Libxml2 is also available from SVN:</p><ul><li><p>The <a href="http://svn.gnome.org/viewcvs/libxml2/trunk/">Gnome SVN
+ base</a>. Check the <a href="http://developer.gnome.org/tools/svn.html">Gnome SVN Tools</a>
+ page; the SVN module is <b>libxml2</b>.</p>
</li>
<li>The <strong>libxslt</strong> module is also present there</li>
</ul><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/encoding.html b/doc/encoding.html
index 1f4558d..0d37cd3 100644
--- a/doc/encoding.html
+++ b/doc/encoding.html
@@ -34,7 +34,7 @@ they are clearly labeled as such. For example the following is a wellformed
XML document encoded in ISO-8859-1 and using accentuated letters that we
French like for both markup and content:</p><pre>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;très&gt;là&lt;/très&gt;</pre><p>Having internationalization support in libxml2 means the following:</p><ul><li>the document is properly parsed</li>
- <li>informations about it's encoding are saved</li>
+ <li>information about it's encoding is saved</li>
<li>it can be modified</li>
<li>it can be saved in its original encoding</li>
<li>it can also be saved in another encoding supported by libxml2 (for
diff --git a/doc/example.html b/doc/example.html
index 894f03a..295e141 100644
--- a/doc/example.html
+++ b/doc/example.html
@@ -183,4 +183,4 @@ data structure definitions, a set of XML examples or an XML DTD and produce
the code needed to import and export the content between C data and XML
storage. This is left as an exercise to the reader :-)</p><p>Feel free to use <a href="example/gjobread.c">the code for the full C
parsing example</a> as a template, it is also available with Makefile in the
-Gnome CVS base under gnome-xml/example</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+Gnome SVN base under libxml2/example</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/guidelines.html b/doc/guidelines.html
index 9cb6636..06f9692 100644
--- a/doc/guidelines.html
+++ b/doc/guidelines.html
@@ -367,7 +367,7 @@ ensure a smooth evolution of the resource and instances.</p>
<p><a href="mailto:veillard@redhat.com">Daniel Veillard</a></p>
-<p>$Id: guidelines.html,v 1.6 2004/12/26 21:01:48 veillard Exp $</p>
+<p>$Id: guidelines.html 2912 2004-12-26 21:01:48Z veillard $</p>
<p></p>
</body>
diff --git a/doc/html/index.html b/doc/html/index.html
new file mode 100644
index 0000000..4a4962a
--- /dev/null
+++ b/doc/html/index.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+</style><style type="text/css">
+ div.deprecated pre.programlisting {border-style: double;border-color:red}
+ pre.programlisting {border-style: double;background: #EECFA1}
+ </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-parserInternals.html b/doc/html/libxml-parserInternals.html
index f725f29..97de5a5 100644
--- a/doc/html/libxml-parserInternals.html
+++ b/doc/html/libxml-parserInternals.html
@@ -273,7 +273,7 @@ void xmlEntityReferenceFunc (<a href="libxml-tree.html#xmlEntityPtr">xmlEntityP
</pre><p>parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode. [67] Reference ::= EntityRef | CharRef</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlParseSDDecl" id="xmlParseSDDecl"></a>Function: xmlParseSDDecl</h3><pre class="programlisting">int xmlParseSDDecl (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
</pre><p>parse the XML standalone declaration [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value "no" if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the <a href="libxml-SAX.html#attribute">attribute</a> appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if standalone, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlParseStartTag" id="xmlParseStartTag"></a>Function: xmlParseStartTag</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseStartTag (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if standalone="yes" 0 if standalone="no" -2 if standalone <a href="libxml-SAX.html#attribute">attribute</a> is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).</td></tr></tbody></table></div><h3><a name="xmlParseStartTag" id="xmlParseStartTag"></a>Function: xmlParseStartTag</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseStartTag (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
</pre><p>parse a start of tag either for rule element or EmptyElement. In both case we don't parse the tag closing chars. [40] STag ::= '&lt;' Name (S Attribute)* S? '&gt;' [ WFC: Unique Att Spec ] No <a href="libxml-SAX.html#attribute">attribute</a> name may appear more than once in the same start-tag or empty-element tag. [44] EmptyElemTag ::= '&lt;' Name (S Attribute)* S? '/&gt;' [ WFC: Unique Att Spec ] No <a href="libxml-SAX.html#attribute">attribute</a> name may appear more than once in the same start-tag or empty-element tag. With namespace: [NS 8] STag ::= '&lt;' QName (S Attribute)* S? '&gt;' [NS 10] EmptyElement ::= '&lt;' QName (S Attribute)* S? '/&gt;'</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the element name parsed</td></tr></tbody></table></div><h3><a name="xmlParseSystemLiteral" id="xmlParseSystemLiteral"></a>Function: xmlParseSystemLiteral</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlParseSystemLiteral (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
</pre><p>parse an XML Literal [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")</p>
diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html
index 26ec73b..7a5c31b 100644
--- a/doc/html/libxml-tree.html
+++ b/doc/html/libxml-tree.html
@@ -820,9 +820,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the parent node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>a namespace if any</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the child</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content of the child if any.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNewTextLen" id="xmlNewTextLen"></a>Function: xmlNewTextLen</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlNewTextLen (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
</pre><p>Creation of a new text node with an extra parameter for the content's length</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the text content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the text len.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new node object.</td></tr></tbody></table></div><h3><a name="xmlNodeAddContent" id="xmlNodeAddContent"></a>Function: xmlNodeAddContent</h3><pre class="programlisting">void xmlNodeAddContent (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
-</pre><p>Append the extra substring to the node content.</p>
+</pre><p>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>extra content</td></tr></tbody></table></div><h3><a name="xmlNodeAddContentLen" id="xmlNodeAddContentLen"></a>Function: xmlNodeAddContentLen</h3><pre class="programlisting">void xmlNodeAddContentLen (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
-</pre><p>Append the extra substring to the node content.</p>
+</pre><p>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>extra content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size of @content</td></tr></tbody></table></div><h3><a name="xmlNodeBufGetContent" id="xmlNodeBufGetContent"></a>Function: xmlNodeBufGetContent</h3><pre class="programlisting">int xmlNodeBufGetContent (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buffer, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur)<br />
</pre><p>Read the value of a node @cur, this can be either the text carried 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 substituted. Fills up the buffer @buffer with this value</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlNodeDump" id="xmlNodeDump"></a>Function: xmlNodeDump</h3><pre class="programlisting">int xmlNodeDump (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br /> <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> int level, <br /> int format)<br />
@@ -846,9 +846,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>a Node list</td></tr><tr><td><span class="term"><i><tt>inLine</tt></i>:</span></td><td>should we replace entity contents or show their external form</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the string copy, the caller must free it with xmlFree().</td></tr></tbody></table></div><h3><a name="xmlNodeSetBase" id="xmlNodeSetBase"></a>Function: xmlNodeSetBase</h3><pre class="programlisting">void xmlNodeSetBase (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * uri)<br />
</pre><p>Set (or reset) the base URI of a node, i.e. the value of the xml:base attribute.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>the new base URI</td></tr></tbody></table></div><h3><a name="xmlNodeSetContent" id="xmlNodeSetContent"></a>Function: xmlNodeSetContent</h3><pre class="programlisting">void xmlNodeSetContent (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
-</pre><p>Replace the content of a node.</p>
+</pre><p>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the new value of the content</td></tr></tbody></table></div><h3><a name="xmlNodeSetContentLen" id="xmlNodeSetContentLen"></a>Function: xmlNodeSetContentLen</h3><pre class="programlisting">void xmlNodeSetContentLen (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content, <br /> int len)<br />
-</pre><p>Replace the content of a node.</p>
+</pre><p>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being modified</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>the new value of the content</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the size of @content</td></tr></tbody></table></div><h3><a name="xmlNodeSetLang" id="xmlNodeSetLang"></a>Function: xmlNodeSetLang</h3><pre class="programlisting">void xmlNodeSetLang (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * lang)<br />
</pre><p>Set the language of a node, i.e. the values of the xml:lang attribute.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the node being changed</td></tr><tr><td><span class="term"><i><tt>lang</tt></i>:</span></td><td>the language description</td></tr></tbody></table></div><h3><a name="xmlNodeSetName" id="xmlNodeSetName"></a>Function: xmlNodeSetName</h3><pre class="programlisting">void xmlNodeSetName (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
diff --git a/doc/html/libxml-xmlreader.html b/doc/html/libxml-xmlreader.html
index fd525de..b69d759 100644
--- a/doc/html/libxml-xmlreader.html
+++ b/doc/html/libxml-xmlreader.html
@@ -102,6 +102,7 @@ void <a href="#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a> (void * arg,
<pre class="programlisting">int <a href="#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> int prop, <br /> int value)</pre>
<pre class="programlisting">int <a href="#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlschemas.html#xmlSchemaPtr">xmlSchemaPtr</a> schema)</pre>
<pre class="programlisting">void <a href="#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> f, <br /> void * arg)</pre>
+<pre class="programlisting">int <a href="#xmlTextReaderSetup">xmlTextReaderSetup</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
<pre class="programlisting">int <a href="#xmlTextReaderStandalone">xmlTextReaderStandalone</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderValue">xmlTextReaderValue</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a> (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)</pre>
@@ -302,8 +303,8 @@ void xmlTextReaderErrorFunc (void * arg, <br /> const char * msg, <br />
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a string containing the contents of the Element or Text node, or NULL if the reader is positioned on any other type of node. The string must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xmlTextReaderRelaxNGSetSchema" id="xmlTextReaderRelaxNGSetSchema"></a>Function: xmlTextReaderRelaxNGSetSchema</h3><pre class="programlisting">int xmlTextReaderRelaxNGSetSchema (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a> schema)<br />
</pre><p>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then RelaxNG validation is desactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled RelaxNG schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the RelaxNG validation could be (des)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderRelaxNGValidate" id="xmlTextReaderRelaxNGValidate"></a>Function: xmlTextReaderRelaxNGValidate</h3><pre class="programlisting">int xmlTextReaderRelaxNGValidate (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * rng)<br />
-</pre><p>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is desactivated.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>rng</tt></i>:</span></td><td>the path to a RelaxNG schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the RelaxNG validation could be (des)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderSchemaValidate" id="xmlTextReaderSchemaValidate"></a>Function: xmlTextReaderSchemaValidate</h3><pre class="programlisting">int xmlTextReaderSchemaValidate (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * xsd)<br />
+</pre><p>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is deactivated.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>rng</tt></i>:</span></td><td>the path to a RelaxNG schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the RelaxNG validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderSchemaValidate" id="xmlTextReaderSchemaValidate"></a>Function: xmlTextReaderSchemaValidate</h3><pre class="programlisting">int xmlTextReaderSchemaValidate (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const char * xsd)<br />
</pre><p>Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>xsd</tt></i>:</span></td><td>the path to a W3C XSD schema or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the schemas validation could be (de)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderSchemaValidateCtxt" id="xmlTextReaderSchemaValidateCtxt"></a>Function: xmlTextReaderSchemaValidateCtxt</h3><pre class="programlisting">int xmlTextReaderSchemaValidateCtxt (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br /> int options)<br />
</pre><p>Use W3C XSD schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then XML Schema validation is deactivated.</p>
@@ -315,7 +316,9 @@ void xmlTextReaderErrorFunc (void * arg, <br /> const char * msg, <br />
</pre><p>Use XSD Schema to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then Schema validation is desactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>schema</tt></i>:</span></td><td>a precompiled Schema schema</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case the Schema validation could be (des)activated and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderSetStructuredErrorHandler" id="xmlTextReaderSetStructuredErrorHandler"></a>Function: xmlTextReaderSetStructuredErrorHandler</h3><pre class="programlisting">void xmlTextReaderSetStructuredErrorHandler (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> f, <br /> void * arg)<br />
</pre><p>Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function to call on error and warnings</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument to pass to the callback function</td></tr></tbody></table></div><h3><a name="xmlTextReaderStandalone" id="xmlTextReaderStandalone"></a>Function: xmlTextReaderStandalone</h3><pre class="programlisting">int xmlTextReaderStandalone (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the callback function to call on error and warnings</td></tr><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>a user argument to pass to the callback function</td></tr></tbody></table></div><h3><a name="xmlTextReaderSetup" id="xmlTextReaderSetup"></a>Function: xmlTextReaderSetup</h3><pre class="programlisting">int xmlTextReaderSetup (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
+</pre><p>Setup an XML reader with new options</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>an XML reader</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> used to feed the reader, will be destroyed with it.</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderStandalone" id="xmlTextReaderStandalone"></a>Function: xmlTextReaderStandalone</h3><pre class="programlisting">int xmlTextReaderStandalone (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
</pre><p>Determine the standalone status of the document being read.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderValue" id="xmlTextReaderValue"></a>Function: xmlTextReaderValue</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderValue (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
</pre><p>Provides the text value of the node if present</p>
diff --git a/doc/html/libxml-xpath.html b/doc/html/libxml-xpath.html
index 6aca3c3..19225da 100644
--- a/doc/html/libxml-xpath.html
+++ b/doc/html/libxml-xpath.html
@@ -122,7 +122,7 @@ The content of this structure is not made public by the API.
void * user : function to free extra variables
int contextSize : the context size
int proximityPosition : the proximity position extra stuff for
- int xptr : it this an XPointer context
+ int xptr : is this an XPointer context?
<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> here : for here()
<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> origin : for origin() the set of namespace decla
<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> nsHash : The namespaces hash table
@@ -134,12 +134,12 @@ The content of this structure is not made public by the API.
<a href="libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a> funcLookupFunc : function lookup func
void * funcLookupData : function lookup data temporary namespac
<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> * tmpNsList : Array of namespaces
- int tmpNsNr : number of namespace in scope error repo
+ int tmpNsNr : number of namespaces in scope error rep
void * userData : user specific data block
<a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> error : the callback in case of errors
<a href="libxml-xmlerror.html#xmlError">xmlError</a> lastError : the last error
- <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> debugNode : the source node XSLT dictionnary
- <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionnary if any
+ <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> debugNode : the source node XSLT dictionary
+ <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary if any
int flags : flags to control compilation Cache for
void * cache
}</pre><h3>Enum <a name="xmlXPathError" id="xmlXPathError">xmlXPathError</a></h3><pre class="programlisting">Enum xmlXPathError {
diff --git a/doc/index.html b/doc/index.html
index 21d61eb..7664c2a 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -277,7 +277,7 @@ conformance statement about it at the moment.</p>
<ul><li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a> providing an
implementation of XSLT 1.0 and common extensions like EXSLT for
libxml2</li>
- <li><a href="http://www.cs.unibo.it/~casarini/gdome2/">the gdome2 page</a>
+ <li><a href="http://gdome2.cs.unibo.it/">the gdome2 page</a>
: a standard DOM2 implementation for libxml2</li>
<li><a href="http://www.aleksey.com/xmlsec/">the XMLSec page</a>: an
implementation of <a href="http://www.w3.org/TR/xmldsig-core/">W3C XML
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index dd49a2b..a7a8d56 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -2812,91 +2812,92 @@
<exports symbol='xmlTextReader' type='typedef'/>
<exports symbol='xmlTextReaderLocatorPtr' type='typedef'/>
<exports symbol='xmlReaderTypes' type='typedef'/>
- <exports symbol='xmlTextReaderConstXmlVersion' type='function'/>
- <exports symbol='xmlTextReaderBaseUri' type='function'/>
- <exports symbol='xmlTextReaderValue' type='function'/>
<exports symbol='xmlNewTextReaderFilename' type='function'/>
- <exports symbol='xmlTextReaderRead' type='function'/>
- <exports symbol='xmlTextReaderReadString' type='function'/>
- <exports symbol='xmlTextReaderMoveToAttributeNo' type='function'/>
- <exports symbol='xmlTextReaderDepth' type='function'/>
- <exports symbol='xmlTextReaderErrorFunc' type='function'/>
<exports symbol='xmlTextReaderHasAttributes' type='function'/>
- <exports symbol='xmlTextReaderIsNamespaceDecl' type='function'/>
- <exports symbol='xmlTextReaderLocatorLineNumber' type='function'/>
- <exports symbol='xmlTextReaderLookupNamespace' type='function'/>
- <exports symbol='xmlTextReaderMoveToAttributeNs' type='function'/>
- <exports symbol='xmlTextReaderNext' type='function'/>
- <exports symbol='xmlTextReaderReadAttributeValue' type='function'/>
- <exports symbol='xmlTextReaderNamespaceUri' type='function'/>
- <exports symbol='xmlTextReaderIsDefault' type='function'/>
+ <exports symbol='xmlTextReaderReadState' type='function'/>
<exports symbol='xmlReaderForFile' type='function'/>
<exports symbol='xmlTextReaderConstNamespaceUri' type='function'/>
- <exports symbol='xmlTextReaderMoveToNextAttribute' type='function'/>
- <exports symbol='xmlTextReaderQuoteChar' type='function'/>
- <exports symbol='xmlTextReaderReadOuterXml' type='function'/>
+ <exports symbol='xmlTextReaderCurrentDoc' type='function'/>
<exports symbol='xmlTextReaderGetParserLineNumber' type='function'/>
- <exports symbol='xmlTextReaderGetAttributeNs' type='function'/>
- <exports symbol='xmlReaderNewWalker' type='function'/>
- <exports symbol='xmlReaderNewDoc' type='function'/>
+ <exports symbol='xmlTextReaderExpand' type='function'/>
<exports symbol='xmlTextReaderXmlLang' type='function'/>
- <exports symbol='xmlTextReaderStandalone' type='function'/>
<exports symbol='xmlReaderForDoc' type='function'/>
- <exports symbol='xmlTextReaderSchemaValidate' type='function'/>
<exports symbol='xmlReaderNewIO' type='function'/>
- <exports symbol='xmlTextReaderMoveToElement' type='function'/>
- <exports symbol='xmlTextReaderSetStructuredErrorHandler' type='function'/>
<exports symbol='xmlTextReaderClose' type='function'/>
<exports symbol='xmlTextReaderReadInnerXml' type='function'/>
- <exports symbol='xmlReaderWalker' type='function'/>
- <exports symbol='xmlReaderForIO' type='function'/>
- <exports symbol='xmlTextReaderIsValid' type='function'/>
- <exports symbol='xmlTextReaderSetErrorHandler' type='function'/>
- <exports symbol='xmlTextReaderConstXmlLang' type='function'/>
- <exports symbol='xmlTextReaderConstLocalName' type='function'/>
<exports symbol='xmlTextReaderConstEncoding' type='function'/>
- <exports symbol='xmlTextReaderNodeType' type='function'/>
<exports symbol='xmlTextReaderNormalization' type='function'/>
- <exports symbol='xmlTextReaderGetErrorHandler' type='function'/>
- <exports symbol='xmlTextReaderConstPrefix' type='function'/>
<exports symbol='xmlTextReaderGetParserProp' type='function'/>
- <exports symbol='xmlTextReaderGetParserColumnNumber' type='function'/>
- <exports symbol='xmlTextReaderGetRemainder' type='function'/>
- <exports symbol='xmlReaderNewFile' type='function'/>
- <exports symbol='xmlFreeTextReader' type='function'/>
<exports symbol='xmlTextReaderMoveToAttribute' type='function'/>
- <exports symbol='xmlTextReaderRelaxNGSetSchema' type='function'/>
- <exports symbol='xmlTextReaderName' type='function'/>
- <exports symbol='xmlReaderNewFd' type='function'/>
- <exports symbol='xmlTextReaderNextSibling' type='function'/>
- <exports symbol='xmlTextReaderRelaxNGValidate' type='function'/>
- <exports symbol='xmlTextReaderIsEmptyElement' type='function'/>
+ <exports symbol='xmlTextReaderQuoteChar' type='function'/>
<exports symbol='xmlTextReaderSetSchema' type='function'/>
- <exports symbol='xmlTextReaderCurrentDoc' type='function'/>
- <exports symbol='xmlReaderForMemory' type='function'/>
- <exports symbol='xmlTextReaderCurrentNode' type='function'/>
- <exports symbol='xmlReaderForFd' type='function'/>
+ <exports symbol='xmlTextReaderValue' type='function'/>
+ <exports symbol='xmlTextReaderIsValid' type='function'/>
<exports symbol='xmlTextReaderMoveToFirstAttribute' type='function'/>
- <exports symbol='xmlTextReaderPrefix' type='function'/>
- <exports symbol='xmlTextReaderByteConsumed' type='function'/>
- <exports symbol='xmlTextReaderPreservePattern' type='function'/>
- <exports symbol='xmlTextReaderLocatorBaseURI' type='function'/>
- <exports symbol='xmlTextReaderGetAttribute' type='function'/>
- <exports symbol='xmlReaderNewMemory' type='function'/>
+ <exports symbol='xmlTextReaderGetParserColumnNumber' type='function'/>
<exports symbol='xmlTextReaderConstValue' type='function'/>
<exports symbol='xmlNewTextReader' type='function'/>
<exports symbol='xmlTextReaderGetAttributeNo' type='function'/>
- <exports symbol='xmlTextReaderSchemaValidateCtxt' type='function'/>
- <exports symbol='xmlTextReaderLocalName' type='function'/>
- <exports symbol='xmlTextReaderExpand' type='function'/>
+ <exports symbol='xmlTextReaderGetAttributeNs' type='function'/>
<exports symbol='xmlTextReaderConstName' type='function'/>
+ <exports symbol='xmlTextReaderConstString' type='function'/>
+ <exports symbol='xmlTextReaderConstXmlVersion' type='function'/>
+ <exports symbol='xmlTextReaderDepth' type='function'/>
+ <exports symbol='xmlTextReaderReadString' type='function'/>
+ <exports symbol='xmlTextReaderIsDefault' type='function'/>
+ <exports symbol='xmlTextReaderMoveToNextAttribute' type='function'/>
+ <exports symbol='xmlReaderNewWalker' type='function'/>
+ <exports symbol='xmlTextReaderConstPrefix' type='function'/>
+ <exports symbol='xmlReaderWalker' type='function'/>
+ <exports symbol='xmlTextReaderConstLocalName' type='function'/>
+ <exports symbol='xmlTextReaderNodeType' type='function'/>
+ <exports symbol='xmlFreeTextReader' type='function'/>
+ <exports symbol='xmlTextReaderName' type='function'/>
+ <exports symbol='xmlTextReaderRead' type='function'/>
+ <exports symbol='xmlTextReaderIsEmptyElement' type='function'/>
+ <exports symbol='xmlReaderNewMemory' type='function'/>
+ <exports symbol='xmlTextReaderSchemaValidateCtxt' type='function'/>
<exports symbol='xmlTextReaderHasValue' type='function'/>
- <exports symbol='xmlTextReaderPreserve' type='function'/>
- <exports symbol='xmlTextReaderAttributeCount' type='function'/>
- <exports symbol='xmlTextReaderReadState' type='function'/>
<exports symbol='xmlTextReaderConstBaseUri' type='function'/>
- <exports symbol='xmlTextReaderConstString' type='function'/>
+ <exports symbol='xmlTextReaderBaseUri' type='function'/>
+ <exports symbol='xmlTextReaderMoveToAttributeNo' type='function'/>
+ <exports symbol='xmlTextReaderLocatorLineNumber' type='function'/>
+ <exports symbol='xmlTextReaderMoveToAttributeNs' type='function'/>
+ <exports symbol='xmlTextReaderNext' type='function'/>
+ <exports symbol='xmlTextReaderAttributeCount' type='function'/>
+ <exports symbol='xmlTextReaderLookupNamespace' type='function'/>
+ <exports symbol='xmlTextReaderMoveToElement' type='function'/>
+ <exports symbol='xmlReaderForIO' type='function'/>
+ <exports symbol='xmlTextReaderReadOuterXml' type='function'/>
+ <exports symbol='xmlTextReaderPrefix' type='function'/>
+ <exports symbol='xmlTextReaderReadAttributeValue' type='function'/>
+ <exports symbol='xmlTextReaderNextSibling' type='function'/>
+ <exports symbol='xmlTextReaderErrorFunc' type='function'/>
+ <exports symbol='xmlReaderForFd' type='function'/>
+ <exports symbol='xmlTextReaderGetAttribute' type='function'/>
+ <exports symbol='xmlTextReaderLocalName' type='function'/>
+ <exports symbol='xmlTextReaderPreserve' type='function'/>
+ <exports symbol='xmlTextReaderCurrentNode' type='function'/>
<exports symbol='xmlTextReaderSetParserProp' type='function'/>
+ <exports symbol='xmlTextReaderGetRemainder' type='function'/>
+ <exports symbol='xmlTextReaderSetErrorHandler' type='function'/>
+ <exports symbol='xmlTextReaderIsNamespaceDecl' type='function'/>
+ <exports symbol='xmlReaderNewDoc' type='function'/>
+ <exports symbol='xmlTextReaderPreservePattern' type='function'/>
+ <exports symbol='xmlTextReaderConstXmlLang' type='function'/>
+ <exports symbol='xmlTextReaderGetErrorHandler' type='function'/>
+ <exports symbol='xmlTextReaderSetStructuredErrorHandler' type='function'/>
+ <exports symbol='xmlReaderNewFile' type='function'/>
+ <exports symbol='xmlTextReaderRelaxNGSetSchema' type='function'/>
+ <exports symbol='xmlReaderNewFd' type='function'/>
+ <exports symbol='xmlTextReaderRelaxNGValidate' type='function'/>
+ <exports symbol='xmlReaderForMemory' type='function'/>
+ <exports symbol='xmlTextReaderSetup' type='function'/>
+ <exports symbol='xmlTextReaderByteConsumed' type='function'/>
+ <exports symbol='xmlTextReaderLocatorBaseURI' type='function'/>
+ <exports symbol='xmlTextReaderNamespaceUri' type='function'/>
+ <exports symbol='xmlTextReaderSchemaValidate' type='function'/>
+ <exports symbol='xmlTextReaderStandalone' type='function'/>
</file>
<file name='xmlregexp'>
<summary>regular expressions handling</summary>
@@ -5909,7 +5910,12 @@ if necessary or NULL'/>
<field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
<field name='doc' type='struct _xmlDoc *' info=' autoreference to itself End of common part'/>
<field name='compression' type='int' info=' level of zlib compression'/>
- <field name='standalone' type='int' info=' standalone document (no external refs)'/>
+ <field name='standalone' type='int' info=' standalone document (no external refs)
+1 if standalone=&quot;yes&quot;
+0 if standalone=&quot;no&quot;
+-1 if there is no XML declaration
+-2 if there is an XML declaration, but no
+standalone attribute was specified'/>
<field name='intSubset' type='struct _xmlDtd *' info=' the document internal subset'/>
<field name='extSubset' type='struct _xmlDtd *' info=' the document external subset'/>
<field name='oldNs' type='struct _xmlNs *' info=' Global namespace, the old way'/>
@@ -6694,7 +6700,7 @@ Could we use @subtypes for this?'/>
<field name='user' type='void *' info=' function to free extra variables'/>
<field name='contextSize' type='int' info=' the context size'/>
<field name='proximityPosition' type='int' info=' the proximity position extra stuff for XPointer'/>
- <field name='xptr' type='int' info=' it this an XPointer context'/>
+ <field name='xptr' type='int' info=' is this an XPointer context?'/>
<field name='here' type='xmlNodePtr' info=' for here()'/>
<field name='origin' type='xmlNodePtr' info=' for origin() the set of namespace declarations in scope for the expression'/>
<field name='nsHash' type='xmlHashTablePtr' info=' The namespaces hash table'/>
@@ -6706,12 +6712,12 @@ Could we use @subtypes for this?'/>
<field name='funcLookupFunc' type='xmlXPathFuncLookupFunc' info=' function lookup func'/>
<field name='funcLookupData' type='void *' info=' function lookup data temporary namespace lists kept for walking the namespace axis'/>
<field name='tmpNsList' type='xmlNsPtr *' info=' Array of namespaces'/>
- <field name='tmpNsNr' type='int' info=' number of namespace in scope error reporting mechanism'/>
+ <field name='tmpNsNr' type='int' info=' number of namespaces in scope error reporting mechanism'/>
<field name='userData' type='void *' info=' user specific data block'/>
<field name='error' type='xmlStructuredErrorFunc' info=' the callback in case of errors'/>
<field name='lastError' type='xmlError' info=' the last error'/>
- <field name='debugNode' type='xmlNodePtr' info=' the source node XSLT dictionnary'/>
- <field name='dict' type='xmlDictPtr' info=' dictionnary if any'/>
+ <field name='debugNode' type='xmlNodePtr' info=' the source node XSLT dictionary'/>
+ <field name='dict' type='xmlDictPtr' info=' dictionary if any'/>
<field name='flags' type='int' info=' flags to control compilation Cache for reusal of XPath objects'/>
<field name='cache' type='void *' info=''/>
</struct>
@@ -11429,13 +11435,13 @@ Could we use @subtypes for this?'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='the context in which the entity is called or NULL'/>
</function>
<function name='xmlNodeAddContent' file='tree' module='tree'>
- <info>Append the extra substring to the node content.</info>
+ <info>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being modified'/>
<arg name='content' type='const xmlChar *' info='extra content'/>
</function>
<function name='xmlNodeAddContentLen' file='tree' module='tree'>
- <info>Append the extra substring to the node content.</info>
+ <info>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being modified'/>
<arg name='content' type='const xmlChar *' info='extra content'/>
@@ -11517,14 +11523,14 @@ Could we use @subtypes for this?'/>
<arg name='uri' type='const xmlChar *' info='the new base URI'/>
</function>
<function name='xmlNodeSetContent' file='tree' module='tree'>
- <info>Replace the content of a node.</info>
+ <info>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being modified'/>
<arg name='content' type='const xmlChar *' info='the new value of the content'/>
</function>
<function name='xmlNodeSetContentLen' file='tree' module='tree'>
<cond>defined(LIBXML_TREE_ENABLED)</cond>
- <info>Replace the content of a node.</info>
+ <info>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</info>
<return type='void'/>
<arg name='cur' type='xmlNodePtr' info='the node being modified'/>
<arg name='content' type='const xmlChar *' info='the new value of the content'/>
@@ -12001,7 +12007,7 @@ Could we use @subtypes for this?'/>
</function>
<function name='xmlParseSDDecl' file='parserInternals' module='parser'>
<info>parse the XML standalone declaration [32] SDDecl ::= S &apos;standalone&apos; Eq ((&quot;&apos;&quot; (&apos;yes&apos; | &apos;no&apos;) &quot;&apos;&quot;) | (&apos;&quot;&apos; (&apos;yes&apos; | &apos;no&apos;)&apos;&quot;&apos;)) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value &quot;no&quot; if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the attribute appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</info>
- <return type='int' info='1 if standalone, 0 otherwise'/>
+ <return type='int' info='1 if standalone=&quot;yes&quot; 0 if standalone=&quot;no&quot; -2 if standalone attribute is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
</function>
<function name='xmlParseStartTag' file='parserInternals' module='parser'>
@@ -14728,8 +14734,8 @@ Could we use @subtypes for this?'/>
</function>
<function name='xmlTextReaderRelaxNGValidate' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
- <info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is desactivated.</info>
- <return type='int' info='0 in case the RelaxNG validation could be (des)activated and -1 in case of error.'/>
+ <info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is deactivated.</info>
+ <return type='int' info='0 in case the RelaxNG validation could be (de)activated and -1 in case of error.'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='rng' type='const char *' info='the path to a RelaxNG schema or NULL'/>
</function>
@@ -14779,6 +14785,16 @@ Could we use @subtypes for this?'/>
<arg name='f' type='xmlStructuredErrorFunc' info='the callback function to call on error and warnings'/>
<arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
</function>
+ <function name='xmlTextReaderSetup' file='xmlreader' module='xmlreader'>
+ <cond>defined(LIBXML_READER_ENABLED)</cond>
+ <info>Setup an XML reader with new options</info>
+ <return type='int' info='0 in case of success and -1 in case of error.'/>
+ <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
+ <arg name='input' type='xmlParserInputBufferPtr' info='xmlParserInputBufferPtr used to feed the reader, will be destroyed with it.'/>
+ <arg name='URL' type='const char *' info='the base URL to use for the document'/>
+ <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
+ <arg name='options' type='int' info='a combination of xmlParserOption'/>
+ </function>
<function name='xmlTextReaderStandalone' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
<info>Determine the standalone status of the document being read.</info>
diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa
index 341e126..45afec6 100644
--- a/doc/libxml2.xsa
+++ b/doc/libxml2.xsa
@@ -8,19 +8,59 @@
</vendor>
<product id="libxml2">
<name>libxml2</name>
- <version>2.6.26</version>
- <last-release> Jun 6 2006</last-release>
+ <version>2.6.27</version>
+ <last-release> Oct 25 2006</last-release>
<info-url>http://xmlsoft.org/</info-url>
- <changes> - portability fixes: Python detection (Joseph Sacco), compilation
- error(William Brack and Graham Bennett), LynxOS patch (Olli Savia)
- - bug fixes: encoding buffer problem, mix of code and data in
- xmlIO.c(Kjartan Maraas), entities in XSD validation (Kasimier Buchcik),
- variousXSD validation fixes (Kasimier), memory leak in pattern (Rob
- Richards andKasimier), attribute with colon in name (Rob Richards), XPath
- leak inerror reporting (Aleksey Sanin), XInclude text include of
- selfdocument.
- - improvements: Xpath optimizations (Kasimier), XPath object
- cache(Kasimier)
+ <changes> - Portability fixes: file names on windows (Roland Schwingel,
+ Emelyanov Alexey), windows compile fixup (Rob Richards),
+ AIX iconv() is apparently case sensitive
+ - improvements: Python XPath types mapping (Nic Ferrier), XPath optimization
+ (Kasimier), add xmlXPathCompiledEvalToBoolean (Kasimier), Python node
+ equality and comparison (Andreas Pakulat), xmlXPathCollectAndTest
+ improvememt (Kasimier), expose if library was compiled with zlib
+ support (Andrew Nosenko), cache for xmlSchemaIDCMatcher structs
+ (Kasimier), xmlTextConcat should work with comments and PIs (Rob
+ Richards), export htmlNewParserCtxt needed by Michael Day, refactoring
+ of catalog entity loaders (Michael Day), add XPointer support to
+ python bindings (Ross Reedstrom, Brian West and Stefan Anca),
+ try to sort out most file path to URI conversions and xmlPathToUri,
+ add --html --memory case to xmllint
+ - building fix: fix --with-minimum (Felipe Contreras), VMS fix,
+ const'ification of HTML parser structures (Matthias Clasen),
+ portability fix (Emelyanov Alexey), wget autodetection (Peter
+ Breitenlohner), remove the build path recorded in the python
+ shared module, separate library flags for shared and static builds
+ (Mikhail Zabaluev), fix --with-minimum --with-sax1 builds, fix
+ --with-minimum --with-schemas builds
+ - bug fix: xmlGetNodePath fix (Kasimier), xmlDOMWrapAdoptNode and
+ attribute (Kasimier), crash when using the recover mode,
+ xmlXPathEvalExpr problem (Kasimier), xmlXPathCompExprAdd bug (Kasimier),
+ missing destry in xmlFreeRMutex (Andrew Nosenko), XML Schemas fixes
+ (Kasimier), warning on entities processing, XHTML script and style
+ serialization (Kasimier), python generator for long types, bug in
+ xmlSchemaClearValidCtxt (Bertrand Fritsch), xmlSchemaXPathEvaluate
+ allocation bug (Marton Illes), error message end of line (Rob Richards),
+ fix attribute serialization in writer (Rob Richards), PHP4 DTD validation
+ crasher, parser safety patch (Ben Darnell), _private context propagation
+ when parsing entities (with Michael Day), fix entities behaviour when
+ using SAX, URI to file path fix (Mikhail Zabaluev), disapearing validity
+ context, arg error in SAX callback (Mike Hommey), fix mixed-content
+ autodetect when using --noblanks, fix xmlIOParseDTD error handling,
+ fix bug in xmlSplitQName on special Names, fix Relax-NG element content
+ validation bug, fix xmlReconciliateNs bug, fix potential attribute
+ XML parsing bug, fix line/column accounting in XML parser, chunking bug
+ in the HTML parser on script, try to detect obviously buggy HTML
+ meta encoding indications, bugs with encoding BOM and xmlSaveDoc,
+ HTML entities in attributes parsing, HTML minimized attribute values,
+ htmlReadDoc and htmlReadIO were broken, error handling bug in
+ xmlXPathEvalExpression (Olaf Walkowiak), fix a problem in
+ htmlCtxtUseOptions, xmlNewInputFromFile could leak (Marius Konitzer),
+ bug on misformed SSD regexps (Christopher Boumenot)
+
+ - documentation: warning about XML_PARSE_COMPACT (Kasimier Buchcik),
+ fix xmlXPathCastToString documentation, improve man pages for
+ xmllitn and xmlcatalog (Daniel Leidert), fixed comments of a few
+ functions
</changes>
</product>
diff --git a/doc/news.html b/doc/news.html
index 79a89d6..e05ab39 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -12,7 +12,30 @@ to help those</p><ul><li>More testing on RelaxNG</li>
<li>Finishing up <a href="http://www.w3.org/TR/xmlschema-1/">XML
Schemas</a></li>
</ul><p>The <a href="ChangeLog.html">change log</a> describes the recents commits
-to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p><p>There is the list of public releases:</p><h3>2.6.27: Oct 25 2006</h3><ul><li>Portability fixes: file names on windows (Roland Schwingel,
+to the <a href="http://svn.gnome.org/viewcvs/libxml2/trunk/">SVN</a> code base.</p><p>Here is the list of public releases:</p><h3>2.6.28: Apr 17 2007</h3><ul><li>Documentation: comment fixes (Markus Keim), xpath comments fixes too
+ (James Dennett)</li>
+ <li>Bug fixes: XPath bug (William Brack), HTML parser autoclose stack usage
+ (Usamah Malik), various regexp bug fixes (DV and William), path conversion
+ on Windows (Igor Zlatkovic), htmlCtxtReset fix (Michael Day), XPath
+ principal node of axis bug, HTML serialization of some codepoint
+ (Steven Rainwater), user data propagation in XInclude (Michael Day),
+ standalone and XML decl detection (Michael Day), Python id ouptut
+ for some id, fix the big python string memory leak, URI parsing fixes
+ (Stéphane Bidoul and William), long comments parsing bug (William),
+ concurrent threads initialization (Ted Phelps), invalid char
+ in text XInclude (William), XPath memory leak (William), tab in
+ python problems (Andreas Hanke), XPath node comparison error
+ (Oleg Paraschenko), cleanup patch for reader (Julien Reichel),
+ XML Schemas attribute group (William), HTML parsing problem (William),
+ fix char 0x2d in regexps (William), regexp quantifier range with
+ min occurs of 0 (William), HTML script/style parsing (Mike Day)</li>
+ <li>Improvement: make xmlTextReaderSetup() public</li>
+ <li>Compilation and postability: fix a missing include problem (William),
+ __ss_familly on AIX again (Björn Wiberg), compilation without zlib
+ (Michael Day), catalog patch for Win32 (Christian Ehrlicher),
+ Windows CE fixes (Andreas Stricke)</li>
+ <li>Various CVS to SVN infrastructure changes</li>
+</ul><h3>2.6.27: Oct 25 2006</h3><ul><li>Portability fixes: file names on windows (Roland Schwingel,
Emelyanov Alexey), windows compile fixup (Rob Richards),
AIX iconv() is apparently case sensitive</li>
<li>improvements: Python XPath types mapping (Nic Ferrier), XPath optimization
@@ -599,7 +622,7 @@ to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p><p>
<li>New xmlWriter API provided by Alfred Mickautsch</li>
<li>Schemas: base64 support by Anthony Carrico</li>
<li>Parser&lt;-&gt;HTTP integration fix, proper processing of the Mime-Type
- and charset informations if available.</li>
+ and charset information if available.</li>
<li>Relax-NG: bug fixes including the one reported by Martijn Faassen and
zeroOrMore, better error reporting.</li>
<li>Python bindings (Stéphane Bidoul), never use stdout for errors
@@ -775,7 +798,7 @@ to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p><p>
<li>Fix for HTTP URL escaping problem</li>
<li>added an TextXmlReader (C#) like API (work in progress)</li>
<li>Rewrote the API in XML generation script, includes a C parser and saves
- more informations needed for C# bindings</li>
+ more information needed for C# bindings</li>
</ul><h3>2.4.28: Nov 22 2002</h3><ul><li>a couple of python binding fixes</li>
<li>2 bug fixes in the XML push parser</li>
<li>potential memory leak removed (Martin Stoilov)</li>
diff --git a/doc/python.html b/doc/python.html
index 5910766..09b2aac 100644
--- a/doc/python.html
+++ b/doc/python.html
@@ -38,7 +38,7 @@ or libxslt wrappers or bindings:</p><ul><li><a href="http://libxmlplusplus.sourc
maintained by Tobias Peters.</li>
<li>Steve Ball and contributors maintains <a href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
Tcl</a>.</li>
- <li>libxml2 and libxslt is the default XML library for PHP5.</li>
+ <li>libxml2 and libxslt are the default XML libraries for PHP5.</li>
<li><a href="http://savannah.gnu.org/projects/classpathx/">LibxmlJ</a> is
an effort to create a 100% JAXP-compatible Java wrapper for libxml2 and
libxslt as part of GNU ClasspathX project.</li>
@@ -123,8 +123,8 @@ if valid != 0:
defines a new error handler global to the library. It is used to avoid seeing
the error messages when trying to validate the invalid document.</p><p>The main interest of that test is the creation of a parser context with
createFileParserCtxt() and how the behaviour can be changed before calling
-parseDocument() . Similarly the informations resulting from the parsing phase
-are also available using context methods.</p><p>Contexts like nodes are defined as class and the libxml2 wrappers maps the
+parseDocument() . Similarly the information resulting from the parsing phase
+is also available using context methods.</p><p>Contexts like nodes are defined as class and the libxml2 wrappers maps the
C function interfaces in terms of objects method as much as possible. The
best to get a complete view of what methods are supported is to look at the
libxml2.py module containing all the wrappers.</p><h3>push.py:</h3><p>This test show how to activate the push parser interface:</p><pre>import libxml2
diff --git a/doc/search.php b/doc/search.php
index 7b332c2..7d94cb7 100644
--- a/doc/search.php
+++ b/doc/search.php
@@ -305,7 +305,8 @@ A:link, A:visited, A:active { text-decoration: underline }
$id = mysql_result($result, $i, 2);
$module = mysql_result($result, $i, 3);
$desc = mysql_result($result, $i, 4);
- $url = $module;
+ if (strncmp($module, "libxml-", 7) == 0) {
+ $url = "html/$module";
if ($id != "") {
$url = $url + "#$id";
}
diff --git a/doc/xml.html b/doc/xml.html
index a25b8d0..4b01691 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -6,7 +6,6 @@
<meta name="GENERATOR" content="amaya 8.5, see http://www.w3.org/Amaya/">
<meta http-equiv="Content-Type" content="text/html">
</head>
-
<body bgcolor="#ffffff">
<h1 align="center">The XML C parser and toolkit of Gnome</h1>
@@ -108,7 +107,7 @@ conformance statement about it at the moment.</p>
<li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a> providing an
implementation of XSLT 1.0 and common extensions like EXSLT for
libxml2</li>
- <li><a href="http://www.cs.unibo.it/~casarini/gdome2/">the gdome2 page</a>
+ <li><a href="http://gdome2.cs.unibo.it/">the gdome2 page</a>
: a standard DOM2 implementation for libxml2</li>
<li><a href="http://www.aleksey.com/xmlsec/">the XMLSec page</a>: an
implementation of <a href="http://www.w3.org/TR/xmldsig-core/">W3C XML
@@ -116,13 +115,13 @@ conformance statement about it at the moment.</p>
<li>also check the related links section below for more related and active
projects.</li>
</ul>
-<!----------------<p>Results of the <a
+<!-- ----------------<p>Results of the <a
href="http://xmlbench.sourceforge.net/results/benchmark/index.html">xmlbench
benchmark</a> on sourceforge February 2004 (smaller is better):</p>
<p align="center"><img src="benchmark.png"
alt="benchmark results for Expat Xerces libxml2 Oracle and Sun toolkits"></p>
--------------->
+------------ -->
<p>Logo designed by <a href="mailto:liyanage@access.ch">Marc Liyanage</a>.</p>
@@ -197,6 +196,7 @@ libxml2</p>
<ol>
<li><strong><span style="background-color: #FF0000">Do Not Use
libxml1</span></strong>, use libxml2</li>
+ <p></p>
<li><em>Where can I get libxml</em> ?
<p>The original distribution comes from <a
href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a> or <a
@@ -206,6 +206,7 @@ libxml2</p>
<p>David Doolin provides precompiled Windows versions at <a
href="http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/ ">http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/</a></p>
</li>
+ <p></p>
<li><em>I see libxml and libxml2 releases, which one should I install ?</em>
<ul>
<li>If you are not constrained by backward compatibility issues with
@@ -278,6 +279,7 @@ libxml2</p>
href="ftp://ftp.ilog.fr/pub/Users/haible/gnu/">here</a>.</li>
</ul>
</li>
+ <p></p>
<li><em>Make check fails on some platforms</em>
<p>Sometimes the regression tests' results don't completely match the
value produced by the parser, and the makefile uses diff to print the
@@ -286,7 +288,7 @@ libxml2</p>
<p>Sometimes (especially on Solaris) make checks fail due to limitations
in make. Try using GNU-make instead.</p>
</li>
- <li><em>I use the CVS version and there is no configure script</em>
+ <li><em>I use the SVN version and there is no configure script</em>
<p>The configure script (and other Makefiles) are generated. Use the
autogen.sh script to regenerate the configure script and Makefiles,
like:</p>
@@ -375,8 +377,9 @@ libxml2</p>
()</a></li>
</ol>
</li>
- <li>Extra nodes in the document:
- <p><em>For a XML file as below:</em></p>
+ <p></p>
+ <li><em>Extra nodes in the document:</em>
+ <p><em>For an XML file as below:</em></p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;PLAN xmlns="http://www.argus.ca/autotest/1.0/"&gt;
&lt;NODE CommFlag="0"/&gt;
@@ -438,22 +441,25 @@ pnode=pxmlDoc-&gt;children-&gt;children;</pre>
<li>have a look at <a href="examples/index.html">the set of
examples</a>.</li>
<li>look for examples of use for libxml2 function using the Gnome code.
+<!--
For example the following will query the full Gnome CVS base for the
use of the <strong>xmlAddChild()</strong> function:
<p><a
href="http://cvs.gnome.org/lxr/search?string=xmlAddChild">http://cvs.gnome.org/lxr/search?string=xmlAddChild</a></p>
<p>This may be slow, a large hardware donation to the gnome project
could cure this :-)</p>
+-->
</li>
<li><a
- href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&amp;dir=gnome-xml">Browse
+ href="http://svn.gnome.org/viewcvs/libxml2/trunk/">Browse
the libxml2 source</a> , I try to write code as clean and documented
as possible, so looking at it may be helpful. In particular the code
- of xmllint.c and of the various testXXX.c test programs should
+ of <a href="http://svn.gnome.org/viewcvs/libxml2/trunk/xmllint.c?view=markup">xmllint.c</a> and of the various testXXX.c test programs should
provide good examples of how to do things with the library.</li>
</ul>
</li>
- <li>What about C++ ?
+ <p></p>
+ <li><em>What about C++ ?</em>
<p>libxml2 is written in pure C in order to allow easy reuse on a number
of platforms, including embedded systems. I don't intend to convert to
C++.</p>
@@ -473,7 +479,7 @@ pnode=pxmlDoc-&gt;children-&gt;children;</pre>
-->
</ul>
</li>
- <li>How to validate a document a posteriori ?
+ <li><em>How to validate a document a posteriori ?</em>
<p>It is possible to validate documents which had not been validated at
initial parsing time or documents which have been built from scratch
using the API. Use the <a
@@ -490,7 +496,7 @@ xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
else xmlAddPrevSibling(doc-&gt;children, (xmlNodePtr)dtd);
</pre>
</li>
- <li>So what is this funky "xmlChar" used all the time?
+ <li><em>So what is this funky "xmlChar" used all the time?</em>
<p>It is a null terminated sequence of utf-8 characters. And only utf-8!
You need to convert strings encoded in different ways to utf-8 before
passing them to the API. This can be accomplished with the iconv library
@@ -525,7 +531,7 @@ xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
<li>George Lebl wrote <a
href="http://www-106.ibm.com/developerworks/library/l-gnome3/">an article
for IBM developerWorks</a> about using libxml.</li>
- <li>Check <a href="http://cvs.gnome.org/lxr/source/gnome-xml/TODO">the TODO
+ <li>Check <a href="http://svn.gnome.org/viewcvs/libxml2/trunk/TODO?view=markup">the TODO
file</a>.</li>
<li>Read the <a href="upgrade.html">1.x to 2.x upgrade path</a>
description. If you are starting a new project using libxml you should
@@ -545,7 +551,7 @@ is still open. Be sure to specify that the bug is for the package libxml2.</p>
<p>For small problems you can try to get help on IRC, the #xml channel on
irc.gnome.org (port 6667) usually have a few person subscribed which may help
-(but there is no garantee and if a real issue is raised it should go on the
+(but there is no guarantee and if a real issue is raised it should go on the
mailing-list for archival).</p>
<p>There is also a mailing-list <a
@@ -563,13 +569,13 @@ bounces* (in the order of a thousand a day !) I cannot approve them manually
anymore. If your mail to the list bounced waiting for administrator approval,
it is LOST ! Repost it and fix the problem triggering the error. Also please
note that <span style="color: #FF0000; background-color: #FFFFFF">emails with
-a legal warning asking to not copy or redistribute freely the informations
+a legal warning asking to not copy or redistribute freely the information
they contain</span> are <strong>NOT</strong> acceptable for the mailing-list,
such mail will as much as possible be discarded automatically, and are less
likely to be answered if they made it to the list, <strong>DO NOT</strong>
post to the list from an email address where such legal requirements are
automatically added, get private paying support if you can't share
-informations.</p>
+information.</p>
<p>Check the following <strong><span style="color: #FF0000">before
posting</span></strong>:</p>
@@ -604,7 +610,7 @@ answer a given question, ask on the list.</p>
others" and is not welcome. I will automatically Carbon-Copy the
xml@gnome.org mailing list for any technical reply made about libxml2 or
libxslt.</li>
- <li>There is <span style="color: #E50000">no garantee of support</span>, if
+ <li>There is <span style="color: #E50000">no guarantee of support</span>. If
your question remains unanswered after a week, repost it, making sure you
gave all the detail needed and the information requested.</li>
<li>Failing to provide information as requested or double checking first
@@ -651,8 +657,7 @@ database</a>:</p>
<p>The latest versions of libxml2 can be found on the <a
href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a> server ( <a
-href="http://xmlsoft.org/sources/">HTTP</a>, <a
-href="ftp://xmlsoft.org/libxml2/">FTP</a> and rsync are available), there is also
+href="ftp://xmlsoft.org/libxml2/">FTP</a> and rsync are available), there are also
mirrors (<a href="ftp://ftp.planetmirror.com/pub/xmlsoft/">Australia</a>( <a
href="http://xmlsoft.planetmirror.com/">Web</a>), <a
href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a
@@ -696,7 +701,7 @@ href="http://veillard.com/">contact me</a>.</p>
<p><a name="Snapshot">Snapshot:</a></p>
<ul>
- <li>Code from the W3C cvs base libxml2 module, updated hourly <a
+ <li>Code from the W3C svn base libxml2 module, updated hourly <a
href="ftp://xmlsoft.org/libxml2/libxml2-cvs-snapshot.tar.gz">libxml2-cvs-snapshot.tar.gz</a>.</li>
<li>Docs, content of the web site, the list archive included <a
href="ftp://xmlsoft.org/libxml2/libxml-docs.tar.gz">libxml-docs.tar.gz</a>.</li>
@@ -709,12 +714,12 @@ platform, get in touch with the list to upload the package, wrappers for
various languages have been provided, and can be found in the <a
href="python.html">bindings section</a></p>
-<p>Libxml2 is also available from CVS:</p>
+<p>Libxml2 is also available from SVN:</p>
<ul>
- <li><p>The <a href="http://cvs.gnome.org/viewcvs/libxml2/">Gnome CVS
+ <li><p>The <a href="http://svn.gnome.org/viewcvs/libxml2/trunk/">Gnome SVN
base</a>. Check the <a
- href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
- page; the CVS module is <b>libxml2</b>.</p>
+ href="http://developer.gnome.org/tools/svn.html">Gnome SVN Tools</a>
+ page; the SVN module is <b>libxml2</b>.</p>
</li>
<li>The <strong>libxslt</strong> module is also present there</li>
</ul>
@@ -730,10 +735,36 @@ to help those</p>
</ul>
<p>The <a href="ChangeLog.html">change log</a> describes the recents commits
-to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p>
-
-<p>There is the list of public releases:</p>
-
+to the <a href="http://svn.gnome.org/viewcvs/libxml2/trunk/">SVN</a> code base.</p>
+
+<p>Here is the list of public releases:</p>
+
+<h3>2.6.28: Apr 17 2007</h3>
+<ul>
+ <li>Documentation: comment fixes (Markus Keim), xpath comments fixes too
+ (James Dennett)</li>
+ <li>Bug fixes: XPath bug (William Brack), HTML parser autoclose stack usage
+ (Usamah Malik), various regexp bug fixes (DV and William), path conversion
+ on Windows (Igor Zlatkovic), htmlCtxtReset fix (Michael Day), XPath
+ principal node of axis bug, HTML serialization of some codepoint
+ (Steven Rainwater), user data propagation in XInclude (Michael Day),
+ standalone and XML decl detection (Michael Day), Python id ouptut
+ for some id, fix the big python string memory leak, URI parsing fixes
+ (Stéphane Bidoul and William), long comments parsing bug (William),
+ concurrent threads initialization (Ted Phelps), invalid char
+ in text XInclude (William), XPath memory leak (William), tab in
+ python problems (Andreas Hanke), XPath node comparison error
+ (Oleg Paraschenko), cleanup patch for reader (Julien Reichel),
+ XML Schemas attribute group (William), HTML parsing problem (William),
+ fix char 0x2d in regexps (William), regexp quantifier range with
+ min occurs of 0 (William), HTML script/style parsing (Mike Day)</li>
+ <li>Improvement: make xmlTextReaderSetup() public</li>
+ <li>Compilation and postability: fix a missing include problem (William),
+ __ss_familly on AIX again (Björn Wiberg), compilation without zlib
+ (Michael Day), catalog patch for Win32 (Christian Ehrlicher),
+ Windows CE fixes (Andreas Stricke)</li>
+ <li>Various CVS to SVN infrastructure changes</li>
+</ul>
<h3>2.6.27: Oct 25 2006</h3>
<ul>
<li>Portability fixes: file names on windows (Roland Schwingel,
@@ -1430,7 +1461,7 @@ to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p>
<li>New xmlWriter API provided by Alfred Mickautsch</li>
<li>Schemas: base64 support by Anthony Carrico</li>
<li>Parser&lt;-&gt;HTTP integration fix, proper processing of the Mime-Type
- and charset informations if available.</li>
+ and charset information if available.</li>
<li>Relax-NG: bug fixes including the one reported by Martijn Faassen and
zeroOrMore, better error reporting.</li>
<li>Python bindings (Stéphane Bidoul), never use stdout for errors
@@ -1667,7 +1698,7 @@ to the <a href="http://cvs.gnome.org/viewcvs/libxml2/">CVS</a> code base.</p>
<li>Fix for HTTP URL escaping problem</li>
<li>added an TextXmlReader (C#) like API (work in progress)</li>
<li>Rewrote the API in XML generation script, includes a C parser and saves
- more informations needed for C# bindings</li>
+ more information needed for C# bindings</li>
</ul>
<h3>2.4.28: Nov 22 2002</h3>
@@ -2560,7 +2591,7 @@ language for transforming XML documents into other XML documents (or
HTML/textual output).</p>
<p>A separate library called libxslt is available implementing XSLT-1.0 for
-libxml2. This module "libxslt" too can be found in the Gnome CVS base.</p>
+libxml2. This module "libxslt" too can be found in the Gnome SVN base.</p>
<p>You can check the progresses on the libxslt <a
href="http://xmlsoft.org/XSLT/ChangeLog.html">Changelog</a>.</p>
@@ -2613,7 +2644,7 @@ or libxslt wrappers or bindings:</p>
<li>Steve Ball and contributors maintains <a
href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
Tcl</a>.</li>
- <li>libxml2 and libxslt is the default XML library for PHP5.</li>
+ <li>libxml2 and libxslt are the default XML libraries for PHP5.</li>
<li><a href="http://savannah.gnu.org/projects/classpathx/">LibxmlJ</a> is
an effort to create a 100% JAXP-compatible Java wrapper for libxml2 and
libxslt as part of GNU ClasspathX project.</li>
@@ -2739,8 +2770,8 @@ the error messages when trying to validate the invalid document.</p>
<p>The main interest of that test is the creation of a parser context with
createFileParserCtxt() and how the behaviour can be changed before calling
-parseDocument() . Similarly the informations resulting from the parsing phase
-are also available using context methods.</p>
+parseDocument() . Similarly the information resulting from the parsing phase
+is also available using context methods.</p>
<p>Contexts like nodes are defined as class and the libxml2 wrappers maps the
C function interfaces in terms of objects method as much as possible. The
@@ -3340,7 +3371,7 @@ or call a specific routine when a given block number is allocated:</p>
href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemStrdupLoc()</a>
are the memory debugging replacement allocation routines</li>
<li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemoryDump
- ()</a> dumps all the informations about the allocated memory block lefts
+ ()</a> dumps all the information about the allocated memory block lefts
in the <code>.memdump</code> file</li>
</ul>
@@ -3352,7 +3383,7 @@ allocations use (some libc implementations are known to be far too permissive
resulting in major portability problems!).</p>
<p>If the .memdump reports a leak, it displays the allocation function and
-also tries to give some informations about the content and structure of the
+also tries to give some information about the content and structure of the
allocated blocks left. This is sufficient in most cases to find the culprit,
but not always. Assuming the allocation problem is reproducible, it is
possible to find more easily:</p>
@@ -3455,7 +3486,7 @@ French like for both markup and content:</p>
<p>Having internationalization support in libxml2 means the following:</p>
<ul>
<li>the document is properly parsed</li>
- <li>informations about it's encoding are saved</li>
+ <li>information about it's encoding is saved</li>
<li>it can be modified</li>
<li>it can be saved in its original encoding</li>
<li>it can also be saved in another encoding supported by libxml2 (for
@@ -3707,7 +3738,7 @@ the interfaces to the libxml2 I/O system. This consists of 4 main parts:</p>
<code>xmlSetExternalEntityLoader()</code>. <a href="#entities">Check the
example</a>.</li>
<li>Input I/O buffers which are a commodity structure used by the parser(s)
- input layer to handle fetching the informations to feed the parser. This
+ input layer to handle fetching the information to feed the parser. This
provides buffering and is also a placeholder where the encoding
converters to UTF8 are piggy-backed.</li>
<li>Output I/O buffers are similar to the Input ones and fulfill similar
@@ -4008,7 +4039,7 @@ default catalog</p>
<h3><a name="validate">How to debug catalog processing:</a></h3>
<p>Setting up the <code>XML_DEBUG_CATALOG</code> environment variable will
-make libxml2 output debugging informations for each catalog operations, for
+make libxml2 output debugging information for each catalog operations, for
example:</p>
<pre>orchis:~/XML -&gt; xmllint --memory --noout test/ent2
warning: failed to load external entity "title.xml"
@@ -4210,7 +4241,7 @@ literature to point at:</p>
<ul>
<li>You can find a good rant from Norm Walsh about <a
href="http://www.arbortext.com/Think_Tank/XML_Resources/Issue_Three/issue_three.html">the
- need for catalogs</a>, it provides a lot of context informations even if
+ need for catalogs</a>, it provides a lot of context information even if
I don't agree with everything presented. Norm also wrote a more recent
article <a
href="http://wwws.sun.com/software/xml/developers/resolver/article/">XML
@@ -4763,10 +4794,10 @@ manipulate XML files within Gnome since it won't expose the internal
structure.</p>
<p>The current DOM implementation on top of libxml2 is the <a
-href="http://cvs.gnome.org/lxr/source/gdome2/">gdome2 Gnome module</a>, this
+href="http:///svn.gnome.org/viewcvs/gdome2/trunk/">gdome2 Gnome module</a>, this
is a full DOM interface, thanks to Paolo Casarini, check the <a
-href="http://www.cs.unibo.it/~casarini/gdome2/">Gdome2 homepage</a> for more
-informations.</p>
+href="http://gdome2.cs.unibo.it/">Gdome2 homepage</a> for more
+information.</p>
<h2><a name="Example"></a><a name="real">A real example</a></h2>
@@ -4963,7 +4994,7 @@ storage. This is left as an exercise to the reader :-)</p>
<p>Feel free to use <a href="example/gjobread.c">the code for the full C
parsing example</a> as a template, it is also available with Makefile in the
-Gnome CVS base under gnome-xml/example</p>
+Gnome SVN base under libxml2/example</p>
<h2><a name="Contributi">Contributions</a></h2>
<ul>
diff --git a/doc/xmlcatalog_man.xml b/doc/xmlcatalog_man.xml
index 8b45d44..08d3a41 100644
--- a/doc/xmlcatalog_man.xml
+++ b/doc/xmlcatalog_man.xml
@@ -26,7 +26,7 @@
</affiliation>
</author>
<!-- date should be the date of the latest change or the release version -->
- <date>$Date: 2006/08/21 08:34:11 $</date>
+ <date>$Date: 2006-08-21 10:34:11 +0200 (Mon, 21 Aug 2006) $</date>
<!-- still a bit buggy output, will talk to docbook-xsl upstream to fix this -->
<!-- <releaseinfo>This is release 0.3 of the xmlcatalog Manual.</releaseinfo> -->
<!-- <edition>0.3</edition> -->
diff --git a/doc/xmlio.html b/doc/xmlio.html
index 60188df..1e6f6fc 100644
--- a/doc/xmlio.html
+++ b/doc/xmlio.html
@@ -22,7 +22,7 @@ the interfaces to the libxml2 I/O system. This consists of 4 main parts:</p><ul>
<code>xmlSetExternalEntityLoader()</code>. <a href="#entities">Check the
example</a>.</li>
<li>Input I/O buffers which are a commodity structure used by the parser(s)
- input layer to handle fetching the informations to feed the parser. This
+ input layer to handle fetching the information to feed the parser. This
provides buffering and is also a placeholder where the encoding
converters to UTF8 are piggy-backed.</li>
<li>Output I/O buffers are similar to the Input ones and fulfill similar
diff --git a/doc/xmllint.xml b/doc/xmllint.xml
index 9757675..f9f4692 100644
--- a/doc/xmllint.xml
+++ b/doc/xmllint.xml
@@ -46,7 +46,7 @@
</author>
</authorgroup>
<!-- date should be the date of the latest change or the release version -->
- <date>$Date: 2006/08/21 08:34:11 $</date>
+ <date>$Date: 2006-08-21 10:34:11 +0200 (Mon, 21 Aug 2006) $</date>
<!-- still a bit buggy output, will talk to docbook-xsl upstream to fix this -->
<!-- <releaseinfo>This is release 0.5 of the xmllint Manual.</releaseinfo> -->
<!-- <edition>0.5</edition> -->
diff --git a/doc/xmlmem.html b/doc/xmlmem.html
index 58c2987..425ce23 100644
--- a/doc/xmlmem.html
+++ b/doc/xmlmem.html
@@ -49,7 +49,7 @@ or call a specific routine when a given block number is allocated:</p><ul><li><a
and <a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemStrdupLoc()</a>
are the memory debugging replacement allocation routines</li>
<li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemoryDump
- ()</a> dumps all the informations about the allocated memory block lefts
+ ()</a> dumps all the information about the allocated memory block lefts
in the <code>.memdump</code> file</li>
</ul><p>When developing libxml2 memory debug is enabled, the tests programs call
xmlMemoryDump () and the "make test" regression tests will check for any
@@ -57,7 +57,7 @@ memory leak during the full regression test sequence, this helps a lot
ensuring that libxml2 does not leak memory and bullet proof memory
allocations use (some libc implementations are known to be far too permissive
resulting in major portability problems!).</p><p>If the .memdump reports a leak, it displays the allocation function and
-also tries to give some informations about the content and structure of the
+also tries to give some information about the content and structure of the
allocated blocks left. This is sufficient in most cases to find the culprit,
but not always. Assuming the allocation problem is reproducible, it is
possible to find more easily:</p><ol><li>write down the block number xxxx not allocated</li>
diff --git a/doc/xmlreader.html b/doc/xmlreader.html
index b8382a8..416f047 100644
--- a/doc/xmlreader.html
+++ b/doc/xmlreader.html
@@ -468,7 +468,7 @@ process to the successor or return 0 if the document end is reached.</p>
<p><a href="mailto:xml@gnome.org">Daniel Veillard</a></p>
-<p>$Id: xmlreader.html,v 1.9 2005/10/18 19:11:54 veillard Exp $</p>
+<p>$Id: xmlreader.html 3320 2005-10-18 19:11:55Z veillard $</p>
<p></p>
</body>
diff --git a/elfgcchack.h b/elfgcchack.h
index 741f806..cd9605c 100644
--- a/elfgcchack.h
+++ b/elfgcchack.h
@@ -481,6 +481,18 @@ extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD__internal_alias __attribute((v
#endif
#endif
+#if defined(LIBXML_HTML_ENABLED)
+#ifdef bottom_HTMLparser
+#undef htmlNewParserCtxt
+extern __typeof (htmlNewParserCtxt) htmlNewParserCtxt __attribute((alias("htmlNewParserCtxt__internal_alias")));
+#else
+#ifndef htmlNewParserCtxt
+extern __typeof (htmlNewParserCtxt) htmlNewParserCtxt__internal_alias __attribute((visibility("hidden")));
+#define htmlNewParserCtxt htmlNewParserCtxt__internal_alias
+#endif
+#endif
+#endif
+
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlNodeDump
@@ -3999,7 +4011,7 @@ extern __typeof (xmlGetNodePath) xmlGetNodePath__internal_alias __attribute((vis
#endif
#endif
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED)
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlGetNsList
extern __typeof (xmlGetNsList) xmlGetNsList __attribute((alias("xmlGetNsList__internal_alias")));
@@ -7633,6 +7645,16 @@ extern __typeof (xmlParserWarning) xmlParserWarning__internal_alias __attribute(
#endif
#endif
+#ifdef bottom_uri
+#undef xmlPathToURI
+extern __typeof (xmlPathToURI) xmlPathToURI __attribute((alias("xmlPathToURI__internal_alias")));
+#else
+#ifndef xmlPathToURI
+extern __typeof (xmlPathToURI) xmlPathToURI__internal_alias __attribute((visibility("hidden")));
+#define xmlPathToURI xmlPathToURI__internal_alias
+#endif
+#endif
+
#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlPatternFromRoot
@@ -8545,7 +8567,6 @@ extern __typeof (xmlRemoveID) xmlRemoveID__internal_alias __attribute((visibilit
#endif
#endif
-#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlRemoveProp
extern __typeof (xmlRemoveProp) xmlRemoveProp __attribute((alias("xmlRemoveProp__internal_alias")));
@@ -8555,7 +8576,6 @@ extern __typeof (xmlRemoveProp) xmlRemoveProp__internal_alias __attribute((visib
#define xmlRemoveProp xmlRemoveProp__internal_alias
#endif
#endif
-#endif
#ifdef bottom_valid
#undef xmlRemoveRef
@@ -11663,6 +11683,18 @@ extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructu
#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
+#undef xmlTextReaderSetup
+extern __typeof (xmlTextReaderSetup) xmlTextReaderSetup __attribute((alias("xmlTextReaderSetup__internal_alias")));
+#else
+#ifndef xmlTextReaderSetup
+extern __typeof (xmlTextReaderSetup) xmlTextReaderSetup__internal_alias __attribute((visibility("hidden")));
+#define xmlTextReaderSetup xmlTextReaderSetup__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_READER_ENABLED)
+#ifdef bottom_xmlreader
#undef xmlTextReaderStandalone
extern __typeof (xmlTextReaderStandalone) xmlTextReaderStandalone __attribute((alias("xmlTextReaderStandalone__internal_alias")));
#else
@@ -15053,7 +15085,7 @@ extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl__internal_alias
#endif
#endif
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED)
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
#ifdef bottom_tree
#undef xmlValidateNCName
extern __typeof (xmlValidateNCName) xmlValidateNCName __attribute((alias("xmlValidateNCName__internal_alias")));
@@ -15307,6 +15339,18 @@ extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags__internal_alia
#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
+#undef xmlXIncludeProcessFlagsData
+extern __typeof (xmlXIncludeProcessFlagsData) xmlXIncludeProcessFlagsData __attribute((alias("xmlXIncludeProcessFlagsData__internal_alias")));
+#else
+#ifndef xmlXIncludeProcessFlagsData
+extern __typeof (xmlXIncludeProcessFlagsData) xmlXIncludeProcessFlagsData__internal_alias __attribute((visibility("hidden")));
+#define xmlXIncludeProcessFlagsData xmlXIncludeProcessFlagsData__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_XINCLUDE_ENABLED)
+#ifdef bottom_xinclude
#undef xmlXIncludeProcessNode
extern __typeof (xmlXIncludeProcessNode) xmlXIncludeProcessNode __attribute((alias("xmlXIncludeProcessNode__internal_alias")));
#else
@@ -15607,6 +15651,18 @@ extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval__internal_alias __at
#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
+#undef xmlXPathCompiledEvalToBoolean
+extern __typeof (xmlXPathCompiledEvalToBoolean) xmlXPathCompiledEvalToBoolean __attribute((alias("xmlXPathCompiledEvalToBoolean__internal_alias")));
+#else
+#ifndef xmlXPathCompiledEvalToBoolean
+extern __typeof (xmlXPathCompiledEvalToBoolean) xmlXPathCompiledEvalToBoolean__internal_alias __attribute((visibility("hidden")));
+#define xmlXPathCompiledEvalToBoolean xmlXPathCompiledEvalToBoolean__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_XPATH_ENABLED)
+#ifdef bottom_xpath
#undef xmlXPathConcatFunction
extern __typeof (xmlXPathConcatFunction) xmlXPathConcatFunction __attribute((alias("xmlXPathConcatFunction__internal_alias")));
#else
@@ -15631,6 +15687,18 @@ extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction__internal_al
#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
+#undef xmlXPathContextSetCache
+extern __typeof (xmlXPathContextSetCache) xmlXPathContextSetCache __attribute((alias("xmlXPathContextSetCache__internal_alias")));
+#else
+#ifndef xmlXPathContextSetCache
+extern __typeof (xmlXPathContextSetCache) xmlXPathContextSetCache__internal_alias __attribute((visibility("hidden")));
+#define xmlXPathContextSetCache xmlXPathContextSetCache__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_XPATH_ENABLED)
+#ifdef bottom_xpath
#undef xmlXPathConvertBoolean
extern __typeof (xmlXPathConvertBoolean) xmlXPathConvertBoolean __attribute((alias("xmlXPathConvertBoolean__internal_alias")));
#else
diff --git a/gentest.py b/gentest.py
index 8c143af..4538eb8 100755
--- a/gentest.py
+++ b/gentest.py
@@ -819,11 +819,14 @@ test_%s(void) {
i = 0;
for arg in t_args:
(nam, type, rtype, crtype, info) = arg;
- #
- test.write(" des_%s(n_%s, " % (type, nam))
- if rtype != crtype:
- test.write("(%s)" % rtype)
- test.write("%s, %d);\n" % (nam, i))
+ # This is a hack to prevent generating a destructor for the
+ # 'input' argument in xmlTextReaderSetup. There should be
+ # a better, more generic way to do this!
+ if string.find(info, 'destroy') == -1:
+ test.write(" des_%s(n_%s, " % (type, nam))
+ if rtype != crtype:
+ test.write("(%s)" % rtype)
+ test.write("%s, %d);\n" % (nam, i))
i = i + 1;
test.write(" xmlResetLastError();\n");
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index 321280e..0e1d47c 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -503,7 +503,12 @@ struct _xmlDoc {
/* End of common part */
int compression;/* level of zlib compression */
- int standalone; /* standalone document (no external refs) */
+ int standalone; /* standalone document (no external refs)
+ 1 if standalone="yes"
+ 0 if standalone="no"
+ -1 if there is no XML declaration
+ -2 if there is an XML declaration, but no
+ standalone attribute was specified */
struct _xmlDtd *intSubset; /* the document internal subset */
struct _xmlDtd *extSubset; /* the document external subset */
struct _xmlNs *oldNs; /* Global namespace, the old way */
diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h
index 1d12988..dfe51a3 100644
--- a/include/libxml/xmlreader.h
+++ b/include/libxml/xmlreader.h
@@ -113,9 +113,15 @@ XMLPUBFUN xmlTextReaderPtr XMLCALL
const char *URI);
XMLPUBFUN xmlTextReaderPtr XMLCALL
xmlNewTextReaderFilename(const char *URI);
+
XMLPUBFUN void XMLCALL
xmlFreeTextReader (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderSetup(xmlTextReaderPtr reader,
+ xmlParserInputBufferPtr input, const char *URL,
+ const char *encoding, int options);
+
/*
* Iterators
*/
diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h
index bacbe1d..6eee895 100644
--- a/include/libxml/xmlversion.h
+++ b/include/libxml/xmlversion.h
@@ -29,28 +29,28 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
*
* the version string like "1.2.3"
*/
-#define LIBXML_DOTTED_VERSION "2.6.27"
+#define LIBXML_DOTTED_VERSION "2.6.28"
/**
* LIBXML_VERSION:
*
* the version number: 1.2.3 value is 10203
*/
-#define LIBXML_VERSION 20627
+#define LIBXML_VERSION 20628
/**
* LIBXML_VERSION_STRING:
*
* the version number string, 1.2.3 value is "10203"
*/
-#define LIBXML_VERSION_STRING "20627"
+#define LIBXML_VERSION_STRING "20628"
/**
* LIBXML_VERSION_EXTRA:
*
* extra version information, used to show a CVS compilation
*/
-#define LIBXML_VERSION_EXTRA "-CVS2872"
+#define LIBXML_VERSION_EXTRA "-CVS2831"
/**
* LIBXML_TEST_VERSION:
@@ -58,7 +58,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
* Macro to check that the libxml version in use is compatible with
* the version the software has been compiled against
*/
-#define LIBXML_TEST_VERSION xmlCheckVersion(20627);
+#define LIBXML_TEST_VERSION xmlCheckVersion(20628);
#ifndef VMS
#if 0
diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h
index 89008fc..725cebe 100644
--- a/include/libxml/xpath.h
+++ b/include/libxml/xpath.h
@@ -310,7 +310,7 @@ struct _xmlXPathContext {
int proximityPosition; /* the proximity position */
/* extra stuff for XPointer */
- int xptr; /* it this an XPointer context */
+ int xptr; /* is this an XPointer context? */
xmlNodePtr here; /* for here() */
xmlNodePtr origin; /* for origin() */
@@ -332,7 +332,7 @@ struct _xmlXPathContext {
/* temporary namespace lists kept for walking the namespace axis */
xmlNsPtr *tmpNsList; /* Array of namespaces */
- int tmpNsNr; /* number of namespace in scope */
+ int tmpNsNr; /* number of namespaces in scope */
/* error reporting mechanism */
void *userData; /* user specific data block */
@@ -340,8 +340,8 @@ struct _xmlXPathContext {
xmlError lastError; /* the last error */
xmlNodePtr debugNode; /* the source node XSLT */
- /* dictionnary */
- xmlDictPtr dict; /* dictionnary if any */
+ /* dictionary */
+ xmlDictPtr dict; /* dictionary if any */
int flags; /* flags to control compilation */
diff --git a/libxml.h b/libxml.h
index 696be62..478d3e3 100644
--- a/libxml.h
+++ b/libxml.h
@@ -32,6 +32,15 @@ int snprintf(char *, size_t, const char *, ...);
int vfprintf(FILE *, const char *, va_list);
#endif
+/*
+ * Windows CE compatibility definitions and functions
+ * This is needed to compile libxml2 for Windows CE.
+ * At least I tested it with WinCE 4.2 for Emulator and SH4 target
+ */
+#if defined(_WIN32_WCE)
+#include <wincecompat.h>
+#endif
+
#ifndef WITH_TRIO
#include <stdio.h>
#else
@@ -64,6 +73,11 @@ void __xmlLoaderErr(void *ctx, const char *msg, const char *filename);
void __htmlParseContent(void *ctx);
#endif
+/*
+ * internal global initialization critical section routines.
+ */
+void __xmlGlobalInitMutexLock(void);
+void __xmlGlobalInitMutexUnlock(void);
#ifdef IN_LIBXML
#ifdef __GNUC__
diff --git a/libxml2.spec b/libxml2.spec
index 9cf0f73..675eda1 100644
--- a/libxml2.spec
+++ b/libxml2.spec
@@ -1,6 +1,6 @@
Summary: Library providing XML and HTML support
Name: libxml2
-Version: 2.6.27
+Version: 2.6.28
Release: 1
License: MIT
Group: Development/Libraries
@@ -128,6 +128,6 @@ rm -fr %{buildroot}
%doc doc/python.html
%changelog
-* Wed Oct 25 2006 Daniel Veillard <veillard@redhat.com>
-- upstream release 2.6.27 see http://xmlsoft.org/news.html
+* Tue Apr 17 2007 Daniel Veillard <veillard@redhat.com>
+- upstream release 2.6.28 see http://xmlsoft.org/news.html
diff --git a/nanoftp.c b/nanoftp.c
index c78503b..8c4ea88 100644
--- a/nanoftp.c
+++ b/nanoftp.c
@@ -77,7 +77,7 @@
#endif
-#ifdef __MINGW32__
+#if defined(__MINGW32__) || defined(_WIN32_WCE)
#define _WINSOCKAPI_
#include <wsockcompat.h>
#include <winsock2.h>
@@ -102,8 +102,10 @@
#endif
#ifdef _AIX
+#ifdef HAVE_BROKEN_SS_FAMILY
#define ss_family __ss_family
#endif
+#endif
#ifndef XML_SOCKLEN_T
#define XML_SOCKLEN_T unsigned int
diff --git a/nanohttp.c b/nanohttp.c
index ae7923f..26b5d7e 100644
--- a/nanohttp.c
+++ b/nanohttp.c
@@ -74,8 +74,7 @@
#define SOCKET int
#endif
-
-#ifdef __MINGW32__
+#if defined(__MINGW32__) || defined(_WIN32_WCE)
#define _WINSOCKAPI_
#include <wsockcompat.h>
#include <winsock2.h>
diff --git a/parser.c b/parser.c
index bd44585..b405164 100644
--- a/parser.c
+++ b/parser.c
@@ -3808,6 +3808,7 @@ xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf, int len, int size) {
return;
}
}
+ GROW; /* Assure there's enough input data */
q = CUR_CHAR(ql);
if (q == 0)
goto not_terminated;
@@ -8925,12 +8926,17 @@ xmlParseEncodingDecl(xmlParserCtxtPtr ctxt) {
* - element types with element content, if white space occurs directly
* within any instance of those types.
*
- * Returns 1 if standalone, 0 otherwise
+ * Returns:
+ * 1 if standalone="yes"
+ * 0 if standalone="no"
+ * -2 if standalone attribute is missing or invalid
+ * (A standalone value of -2 means that the XML declaration was found,
+ * but no value was specified for the standalone attribute).
*/
int
xmlParseSDDecl(xmlParserCtxtPtr ctxt) {
- int standalone = -1;
+ int standalone = -2;
SKIP_BLANKS;
if (CMP10(CUR_PTR, 's', 't', 'a', 'n', 'd', 'a', 'l', 'o', 'n', 'e')) {
@@ -12839,26 +12845,34 @@ xmlInitParser(void) {
if (xmlParserInitialized != 0)
return;
- if ((xmlGenericError == xmlGenericErrorDefaultFunc) ||
- (xmlGenericError == NULL))
- initGenericErrorDefaultFunc(NULL);
- xmlInitGlobals();
- xmlInitThreads();
- xmlInitMemory();
- xmlInitCharEncodingHandlers();
- xmlDefaultSAXHandlerInit();
- xmlRegisterDefaultInputCallbacks();
+#ifdef LIBXML_THREAD_ENABLED
+ __xmlGlobalInitMutexLock();
+ if (xmlParserInitialized == 0) {
+#endif
+ if ((xmlGenericError == xmlGenericErrorDefaultFunc) ||
+ (xmlGenericError == NULL))
+ initGenericErrorDefaultFunc(NULL);
+ xmlInitGlobals();
+ xmlInitThreads();
+ xmlInitMemory();
+ xmlInitCharEncodingHandlers();
+ xmlDefaultSAXHandlerInit();
+ xmlRegisterDefaultInputCallbacks();
#ifdef LIBXML_OUTPUT_ENABLED
- xmlRegisterDefaultOutputCallbacks();
+ xmlRegisterDefaultOutputCallbacks();
#endif /* LIBXML_OUTPUT_ENABLED */
#ifdef LIBXML_HTML_ENABLED
- htmlInitAutoClose();
- htmlDefaultSAXHandlerInit();
+ htmlInitAutoClose();
+ htmlDefaultSAXHandlerInit();
#endif
#ifdef LIBXML_XPATH_ENABLED
- xmlXPathInit();
+ xmlXPathInit();
+#endif
+ xmlParserInitialized = 1;
+#ifdef LIBXML_THREAD_ENABLED
+ }
+ __xmlGlobalInitMutexUnlock();
#endif
- xmlParserInitialized = 1;
}
/**
diff --git a/python/generator.py b/python/generator.py
index f116f8a..a38a23c 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -1055,7 +1055,7 @@ def buildWrappers():
classes_ancestor[classname] == "xmlNode":
classes.write(" def __repr__(self):\n")
format = "<%s (%%s) object at 0x%%x>" % (classname)
- classes.write(" return \"%s\" %% (self.name, long(id (self)))\n\n" % (
+ classes.write(" return \"%s\" %% (self.name, long(pos_id (self)))\n\n" % (
format))
else:
txt.write("Class %s()\n" % (classname))
diff --git a/python/libxml.c b/python/libxml.c
index 6e9a78e..747e44c 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -773,6 +773,8 @@ pythonStartElement(void *user_data, const xmlChar * name,
attrvalue = Py_None;
}
PyDict_SetItem(dict, attrname, attrvalue);
+ Py_DECREF(attrname);
+ Py_DECREF(attrvalue);
}
}
@@ -1170,6 +1172,7 @@ pythonAttributeDecl(void *user_data,
for (node = tree; node != NULL; node = node->next) {
newName = PyString_FromString((char *) node->name);
PyList_SetItem(nameList, count, newName);
+ Py_DECREF(newName);
count++;
}
result = PyObject_CallMethod(handler, (char *) "attributeDecl",
diff --git a/python/libxml.py b/python/libxml.py
index 4c9fe92..18cfad2 100644
--- a/python/libxml.py
+++ b/python/libxml.py
@@ -1,10 +1,20 @@
import libxml2mod
import types
+import sys
# The root of all libxml2 errors.
class libxmlError(Exception): pass
#
+# id() is sometimes negative ...
+#
+def pos_id(o):
+ i = id(o)
+ if (i < 0):
+ return (sys.maxint - i)
+ return i
+
+#
# Errors raised by the wrappers when some tree handling failed.
#
class treeError(libxmlError):
@@ -235,19 +245,19 @@ class xmlCore:
def __eq__(self, other):
if other == None:
- return False
+ return False
ret = libxml2mod.compareNodesEqual(self._o, other._o)
- if ret == None:
- return False
- return ret == True
+ if ret == None:
+ return False
+ return ret == True
def __ne__(self, other):
if other == None:
- return True
+ return True
ret = libxml2mod.compareNodesEqual(self._o, other._o)
- return not ret
+ return not ret
def __hash__(self):
- ret = libxml2mod.nodeHash(self._o)
- return ret
+ ret = libxml2mod.nodeHash(self._o)
+ return ret
def __str__(self):
return self.serialize()
diff --git a/python/libxml2-py.c b/python/libxml2-py.c
index 853a894..c979a3a 100644
--- a/python/libxml2-py.c
+++ b/python/libxml2-py.c
@@ -9249,6 +9249,30 @@ libxml_xmlFreeDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
return(Py_None);
}
+#if defined(LIBXML_READER_ENABLED)
+PyObject *
+libxml_xmlTextReaderSetup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ xmlTextReaderPtr reader;
+ PyObject *pyobj_reader;
+ xmlParserInputBufferPtr input;
+ PyObject *pyobj_input;
+ char * URL;
+ char * encoding;
+ int options;
+
+ if (!PyArg_ParseTuple(args, (char *)"OOzzi:xmlTextReaderSetup", &pyobj_reader, &pyobj_input, &URL, &encoding, &options))
+ return(NULL);
+ reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader);
+ input = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_input);
+
+ c_retval = xmlTextReaderSetup(reader, input, URL, encoding, options);
+ py_retval = libxml_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+#endif /* defined(LIBXML_READER_ENABLED) */
PyObject *
libxml_xmlSetListDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
xmlNodePtr list;
diff --git a/python/setup.py b/python/setup.py
index 9e3300b..5eab8dc 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -226,7 +226,7 @@ else:
setup (name = "libxml2-python",
# On *nix, the version number is created from setup.py.in
# On windows, it is set by configure.js
- version = "2.6.27",
+ version = "2.6.28",
description = descr,
author = "Daniel Veillard",
author_email = "veillard@redhat.com",
diff --git a/testAutomata.c b/testAutomata.c
index a3969b1..2f575ce 100644
--- a/testAutomata.c
+++ b/testAutomata.c
@@ -6,9 +6,9 @@
* Daniel Veillard <veillard@redhat.com>
*/
-#include <string.h>
#include "libxml.h"
#ifdef LIBXML_AUTOMATA_ENABLED
+#include <string.h>
#include <libxml/tree.h>
#include <libxml/xmlautomata.h>
diff --git a/testRegexp.c b/testRegexp.c
index ff9c0fc..d5228b3 100644
--- a/testRegexp.c
+++ b/testRegexp.c
@@ -6,9 +6,10 @@
* Daniel Veillard <veillard@redhat.com>
*/
-#include <string.h>
#include "libxml.h"
#ifdef LIBXML_REGEXP_ENABLED
+#include <string.h>
+
#include <libxml/tree.h>
#include <libxml/xmlregexp.h>
diff --git a/testThreads.c b/testThreads.c
index 6405a77..b43cbd0 100644
--- a/testThreads.c
+++ b/testThreads.c
@@ -1,6 +1,7 @@
+#include "libxml.h"
+
#include <stdlib.h>
#include <stdio.h>
-#include "libxml.h"
#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_SAX1_ENABLED)
#include <libxml/globals.h>
diff --git a/testThreadsWin32.c b/testThreadsWin32.c
index 24f0006..6ed702e 100644
--- a/testThreadsWin32.c
+++ b/testThreadsWin32.c
@@ -1,6 +1,6 @@
+#include "libxml.h"
#include <stdlib.h>
#include <stdio.h>
-#include "libxml.h"
#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
#include <libxml/globals.h>
diff --git a/testapi.c b/testapi.c
index 01a4184..969fdd3 100644
--- a/testapi.c
+++ b/testapi.c
@@ -32236,6 +32236,67 @@ test_xmlTextReaderSetStructuredErrorHandler(void) {
static int
+test_xmlTextReaderSetup(void) {
+ int test_ret = 0;
+
+#if defined(LIBXML_READER_ENABLED)
+ int mem_base;
+ int ret_val;
+ xmlTextReaderPtr reader; /* an XML reader */
+ int n_reader;
+ xmlParserInputBufferPtr input; /* xmlParserInputBufferPtr used to feed the reader, will be destroyed with it. */
+ int n_input;
+ const char * URL; /* the base URL to use for the document */
+ int n_URL;
+ char * encoding; /* the document encoding, or NULL */
+ int n_encoding;
+ int options; /* a combination of xmlParserOption */
+ int n_options;
+
+ for (n_reader = 0;n_reader < gen_nb_xmlTextReaderPtr;n_reader++) {
+ for (n_input = 0;n_input < gen_nb_xmlParserInputBufferPtr;n_input++) {
+ for (n_URL = 0;n_URL < gen_nb_filepath;n_URL++) {
+ for (n_encoding = 0;n_encoding < gen_nb_const_char_ptr;n_encoding++) {
+ for (n_options = 0;n_options < gen_nb_parseroptions;n_options++) {
+ mem_base = xmlMemBlocks();
+ reader = gen_xmlTextReaderPtr(n_reader, 0);
+ input = gen_xmlParserInputBufferPtr(n_input, 1);
+ URL = gen_filepath(n_URL, 2);
+ encoding = gen_const_char_ptr(n_encoding, 3);
+ options = gen_parseroptions(n_options, 4);
+
+ ret_val = xmlTextReaderSetup(reader, input, URL, (const char *)encoding, options);
+ desret_int(ret_val);
+ call_tests++;
+ des_xmlTextReaderPtr(n_reader, reader, 0);
+ des_filepath(n_URL, URL, 2);
+ des_const_char_ptr(n_encoding, (const char *)encoding, 3);
+ des_parseroptions(n_options, options, 4);
+ xmlResetLastError();
+ if (mem_base != xmlMemBlocks()) {
+ printf("Leak of %d blocks found in xmlTextReaderSetup",
+ xmlMemBlocks() - mem_base);
+ test_ret++;
+ printf(" %d", n_reader);
+ printf(" %d", n_input);
+ printf(" %d", n_URL);
+ printf(" %d", n_encoding);
+ printf(" %d", n_options);
+ printf("\n");
+ }
+ }
+ }
+ }
+ }
+ }
+ function_tests++;
+#endif
+
+ return(test_ret);
+}
+
+
+static int
test_xmlTextReaderStandalone(void) {
int test_ret = 0;
@@ -32340,7 +32401,7 @@ static int
test_xmlreader(void) {
int test_ret = 0;
- if (quiet == 0) printf("Testing xmlreader : 74 of 84 functions ...\n");
+ if (quiet == 0) printf("Testing xmlreader : 75 of 85 functions ...\n");
test_ret += test_xmlNewTextReader();
test_ret += test_xmlNewTextReaderFilename();
test_ret += test_xmlReaderForDoc();
@@ -32414,6 +32475,7 @@ test_xmlreader(void) {
test_ret += test_xmlTextReaderSetParserProp();
test_ret += test_xmlTextReaderSetSchema();
test_ret += test_xmlTextReaderSetStructuredErrorHandler();
+ test_ret += test_xmlTextReaderSetup();
test_ret += test_xmlTextReaderStandalone();
test_ret += test_xmlTextReaderValue();
test_ret += test_xmlTextReaderXmlLang();
diff --git a/threads.c b/threads.c
index 7124bca..87d0d36 100644
--- a/threads.c
+++ b/threads.c
@@ -139,6 +139,7 @@ struct _xmlRMutex {
static pthread_key_t globalkey;
static pthread_t mainthread;
static pthread_once_t once_control = PTHREAD_ONCE_INIT;
+static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER;
#elif defined HAVE_WIN32_THREADS
#if defined(HAVE_COMPILER_TLS)
static __declspec(thread) xmlGlobalState tlstate;
@@ -152,11 +153,14 @@ static struct
DWORD done;
DWORD control;
} run_once = { 0, 0 };
+static volatile LPCRITICAL_SECTION global_init_lock = NULL;
/* endif HAVE_WIN32_THREADS */
#elif defined HAVE_BEOS_THREADS
int32 globalkey = 0;
thread_id mainthread = 0;
int32 run_once_init = 0;
+static int32 global_init_lock = -1;
+static vint32 global_init_count = 0;
#endif
static xmlRMutexPtr xmlLibraryLock = NULL;
@@ -413,6 +417,85 @@ xmlRMutexUnlock(xmlRMutexPtr tok ATTRIBUTE_UNUSED)
#endif
}
+/**
+ * xmlGlobalInitMutexLock
+ *
+ * Makes sure that the global initialization mutex is initialized and
+ * locks it.
+ */
+void
+__xmlGlobalInitMutexLock(void)
+{
+ /* Make sure the global init lock is initialized and then lock it. */
+#ifdef HAVE_PTHREAD_H
+ int err;
+
+ /* The mutex is statically initialized, so we just lock it. */
+ pthread_mutex_lock(&global_init_lock);
+#elif defined HAVE_WIN32_THREADS
+ LPCRITICAL_SECTION cs;
+
+ /* Create a new critical section */
+ if (global_init_lock == NULL) {
+ cs = malloc(sizeof(CRITICAL_SECTION));
+ InitializeCriticalSection(cs);
+
+ /* Swap it into the global_init_lock */
+ InterlockedCompareExchangePointer(&global_init_lock, cs, NULL);
+
+ /* If another thread successfully recorded its critical
+ * section in the global_init_lock then discard the one
+ * allocated by this thread. */
+ if (global_init_lock != cs) {
+ free(cs);
+ }
+ }
+
+ /* Lock the chosen critical section */
+ EnterCriticalSection(global_init_lock);
+#elif defined HAVE_BEOS_THREADS
+ int32 sem;
+
+ /* Allocate a new semaphore */
+ sem = create_sem(1, "xmlGlobalinitMutex");
+
+ while (global_init_lock == -1) {
+ if (atomic_add(&global_init_count, 1) == 0) {
+ global_init_lock = sem;
+ } else {
+ snooze(1);
+ atomic_add(&global_init_count, -1);
+ }
+ }
+
+ /* If another thread successfully recorded its critical
+ * section in the global_init_lock then discard the one
+ * allocated by this thread. */
+ if (global_init_lock != sem)
+ delete_sem(sem);
+
+ /* Acquire the chosen semaphore */
+ if (acquire_sem(global_init_lock) != B_NO_ERROR) {
+#ifdef DEBUG_THREADS
+ xmlGenericError(xmlGenericErrorContext, "xmlGlobalInitMutexLock():BeOS:Couldn't acquire semaphore\n");
+ exit();
+#endif
+ }
+#endif
+}
+
+void
+__xmlGlobalInitMutexUnlock(void)
+{
+#ifdef HAVE_PTHREAD_H
+ pthread_mutex_unlock(&global_init_lock);
+#elif defined HAVE_WIN32_THREADS
+ LeaveCriticalSection(global_init_lock);
+#elif defined HAVE_BEOS_THREADS
+ release_sem(global_init_lock);
+#endif
+}
+
/************************************************************************
* *
* Per thread global state handling *
diff --git a/tree.c b/tree.c
index d5b9fec..ffbcabd 100644
--- a/tree.c
+++ b/tree.c
@@ -5199,6 +5199,9 @@ xmlNodeGetContent(xmlNodePtr cur)
* @content: the new value of the content
*
* Replace the content of a node.
+ * NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity
+ * references, but XML special chars need to be escaped first by using
+ * xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().
*/
void
xmlNodeSetContent(xmlNodePtr cur, const xmlChar *content) {
@@ -5273,6 +5276,9 @@ xmlNodeSetContent(xmlNodePtr cur, const xmlChar *content) {
* @len: the size of @content
*
* Replace the content of a node.
+ * NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity
+ * references, but XML special chars need to be escaped first by using
+ * xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().
*/
void
xmlNodeSetContentLen(xmlNodePtr cur, const xmlChar *content, int len) {
@@ -5344,6 +5350,9 @@ xmlNodeSetContentLen(xmlNodePtr cur, const xmlChar *content, int len) {
* @len: the size of @content
*
* Append the extra substring to the node content.
+ * NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be
+ * raw text, so unescaped XML special chars are allowed, entity
+ * references are not supported.
*/
void
xmlNodeAddContentLen(xmlNodePtr cur, const xmlChar *content, int len) {
@@ -5416,6 +5425,9 @@ xmlNodeAddContentLen(xmlNodePtr cur, const xmlChar *content, int len) {
* @content: extra content
*
* Append the extra substring to the node content.
+ * NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be
+ * raw text, so unescaped XML special chars are allowed, entity
+ * references are not supported.
*/
void
xmlNodeAddContent(xmlNodePtr cur, const xmlChar *content) {
diff --git a/trio.c b/trio.c
index 2dd8478..3fac2e6 100644
--- a/trio.c
+++ b/trio.c
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * $Id: trio.c,v 1.11 2003/04/03 15:28:27 veillard Exp $
+ * $Id: trio.c 3600 2007-04-17 12:44:58Z veillard $
*
* Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
*
@@ -62,7 +62,9 @@
#include <limits.h>
#include <float.h>
-#if defined(__STDC_ISO_10646__) || defined(MB_LEN_MAX) || defined(USE_MULTIBYTE) || TRIO_WIDECHAR
+#if (defined(__STDC_ISO_10646__) || defined(MB_LEN_MAX) \
+ || defined(USE_MULTIBYTE) || TRIO_WIDECHAR) \
+ && !defined(_WIN32_WCE)
# define TRIO_COMPILER_SUPPORTS_MULTIBYTE
# if !defined(MB_LEN_MAX)
# define MB_LEN_MAX 6
@@ -73,6 +75,10 @@
# define TRIO_COMPILER_SUPPORTS_MSVC_INT
#endif
+#if defined(_WIN32_WCE)
+#include <wincecompat.h>
+#endif
+
/*************************************************************************
* Generic definitions
*/
@@ -92,7 +98,10 @@
# include <stdarg.h>
#endif
#include <stddef.h>
+
+#ifdef HAVE_ERRNO_H
#include <errno.h>
+#endif
#ifndef NULL
# define NULL 0
@@ -133,9 +142,13 @@ typedef unsigned long trio_flags_t;
# include <unistd.h>
#endif
#if defined(TRIO_PLATFORM_WIN32)
-# include <io.h>
-# define read _read
-# define write _write
+# if defined(_WIN32_WCE)
+# include <wincecompat.h>
+# else
+# include <io.h>
+# define read _read
+# define write _write
+# endif
#endif /* TRIO_PLATFORM_WIN32 */
#if TRIO_WIDECHAR
@@ -243,8 +256,9 @@ typedef trio_longlong_t trio_int64_t;
# endif
#endif
-#if !(defined(TRIO_COMPILER_SUPPORTS_C99) \
- || defined(TRIO_COMPILER_SUPPORTS_UNIX01))
+#if (!(defined(TRIO_COMPILER_SUPPORTS_C99) \
+ || defined(TRIO_COMPILER_SUPPORTS_UNIX01))) \
+ && !defined(_WIN32_WCE)
# define floorl(x) floor((double)(x))
# define fmodl(x,y) fmod((double)(x),(double)(y))
# define powl(x,y) pow((double)(x),(double)(y))
@@ -719,7 +733,7 @@ typedef struct _trio_userdef_t {
*
*************************************************************************/
-static TRIO_CONST char rcsid[] = "@(#)$Id: trio.c,v 1.11 2003/04/03 15:28:27 veillard Exp $";
+static TRIO_CONST char rcsid[] = "@(#)$Id: trio.c 3600 2007-04-17 12:44:58Z veillard $";
/*
* Need this to workaround a parser bug in HP C/iX compiler that fails
diff --git a/trio.h b/trio.h
index 6a3c21a..d998f35 100644
--- a/trio.h
+++ b/trio.h
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * $Id: trio.h,v 1.6 2003/04/03 15:28:27 veillard Exp $
+ * $Id: trio.h 1886 2003-04-03 15:28:28Z veillard $
*
* Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
*
diff --git a/triodef.h b/triodef.h
index 6c4e151..9ab3af1 100644
--- a/triodef.h
+++ b/triodef.h
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * $Id: triodef.h,v 1.8 2006/05/31 13:35:28 veillard Exp $
+ * $Id: triodef.h 3473 2006-05-31 13:35:28Z veillard $
*
* Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
*
diff --git a/trionan.c b/trionan.c
index 5248eaf..a2482e6 100644
--- a/trionan.c
+++ b/trionan.c
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * $Id: trionan.c,v 1.14 2003/10/15 08:17:58 veillard Exp $
+ * $Id: trionan.c 2219 2003-10-15 08:18:00Z veillard $
*
* Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
*
@@ -112,7 +112,7 @@
* Constants
*/
-static TRIO_CONST char rcsid[] = "@(#)$Id: trionan.c,v 1.14 2003/10/15 08:17:58 veillard Exp $";
+static TRIO_CONST char rcsid[] = "@(#)$Id: trionan.c 2219 2003-10-15 08:18:00Z veillard $";
#if defined(USE_IEEE_754)
diff --git a/trionan.h b/trionan.h
index 4847a00..92de0fd 100644
--- a/trionan.h
+++ b/trionan.h
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * $Id: trionan.h,v 1.6 2003/08/06 04:43:53 wbrack Exp $
+ * $Id: trionan.h 2026 2003-08-06 04:43:55Z wbrack $
*
* Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
*
diff --git a/triop.h b/triop.h
index e984c28..a062c96 100644
--- a/triop.h
+++ b/triop.h
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * $Id: triop.h,v 1.5 2003/04/03 15:28:28 veillard Exp $
+ * $Id: triop.h 1886 2003-04-03 15:28:28Z veillard $
*
* Copyright (C) 2000 Bjorn Reese and Daniel Stenberg.
*
diff --git a/triostr.c b/triostr.c
index 0ecd672..dc5592c 100644
--- a/triostr.c
+++ b/triostr.c
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * $Id: triostr.c,v 1.3 2003/04/03 15:28:28 veillard Exp $
+ * $Id: triostr.c 3600 2007-04-17 12:44:58Z veillard $
*
* Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
*
@@ -73,7 +73,11 @@
# endif
#elif defined(TRIO_PLATFORM_WIN32)
# define USE_STRCASECMP
-# define strcasecmp(x,y) strcmpi(x,y)
+# if defined(_WIN32_WCE)
+# define strcasecmp(x,y) _stricmp(x,y)
+# else
+# define strcasecmp(x,y) strcmpi(x,y)
+# endif
#endif
#if !(defined(TRIO_PLATFORM_SUNOS))
@@ -97,7 +101,7 @@ struct _trio_string_t
*/
#if !defined(TRIO_MINIMAL)
-static TRIO_CONST char rcsid[] = "@(#)$Id: triostr.c,v 1.3 2003/04/03 15:28:28 veillard Exp $";
+static TRIO_CONST char rcsid[] = "@(#)$Id: triostr.c 3600 2007-04-17 12:44:58Z veillard $";
#endif
/*************************************************************************
@@ -574,7 +578,7 @@ TRIO_ARGS1((error_number),
}
-#if !defined(TRIO_MINIMAL)
+#if !defined(TRIO_MINIMAL) && !defined(_WIN32_WCE)
/**
Format the date/time according to @p format.
@@ -1887,7 +1891,7 @@ TRIO_ARGS3((self, max, other),
#endif /* !defined(TRIO_MINIMAL) */
-#if !defined(TRIO_MINIMAL)
+#if !defined(TRIO_MINIMAL) && !defined(_WIN32_WCE)
/*
* trio_string_format_data_max
*/
diff --git a/triostr.h b/triostr.h
index d0e3836..6b8d30f 100644
--- a/triostr.h
+++ b/triostr.h
@@ -1,6 +1,6 @@
/*************************************************************************
*
- * $Id: triostr.h,v 1.3 2003/04/03 15:28:28 veillard Exp $
+ * $Id: triostr.h 3600 2007-04-17 12:44:58Z veillard $
*
* Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
*
@@ -65,7 +65,9 @@ TRIO_STRING_PUBLIC int trio_contains TRIO_PROTO((const char *string, const char
TRIO_STRING_PUBLIC int trio_copy TRIO_PROTO((char *target, const char *source));
TRIO_STRING_PUBLIC char *trio_duplicate_max TRIO_PROTO((const char *source, size_t max));
TRIO_STRING_PUBLIC int trio_equal_case_max TRIO_PROTO((const char *first, size_t max, const char *second));
+#if !defined(_WIN32_WCE)
TRIO_STRING_PUBLIC size_t trio_format_date_max TRIO_PROTO((char *target, size_t max, const char *format, const struct tm *datetime));
+#endif
TRIO_STRING_PUBLIC unsigned long trio_hash TRIO_PROTO((const char *string, int type));
TRIO_STRING_PUBLIC char *trio_index TRIO_PROTO((const char *string, int character));
TRIO_STRING_PUBLIC char *trio_index_last TRIO_PROTO((const char *string, int character));
@@ -114,7 +116,9 @@ TRIO_STRING_PUBLIC int trio_string_equal TRIO_PROTO((trio_string_t *self, trio_s
TRIO_STRING_PUBLIC int trio_string_equal_max TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *second));
TRIO_STRING_PUBLIC int trio_string_equal_case TRIO_PROTO((trio_string_t *self, trio_string_t *other));
TRIO_STRING_PUBLIC int trio_string_equal_case_max TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *other));
+#if !defined(_WIN32_WCE)
TRIO_STRING_PUBLIC size_t trio_string_format_date_max TRIO_PROTO((trio_string_t *self, size_t max, const char *format, const struct tm *datetime));
+#endif
TRIO_STRING_PUBLIC char *trio_string_index TRIO_PROTO((trio_string_t *self, int character));
TRIO_STRING_PUBLIC char *trio_string_index_last TRIO_PROTO((trio_string_t *self, int character));
TRIO_STRING_PUBLIC int trio_string_length TRIO_PROTO((trio_string_t *self));
diff --git a/uri.c b/uri.c
index 1e29223..35cf98a 100644
--- a/uri.c
+++ b/uri.c
@@ -2346,6 +2346,10 @@ done:
xmlChar *
xmlCanonicPath(const xmlChar *path)
{
+/*
+ * For Windows implementations, additional work needs to be done to
+ * replace backslashes in pathnames with "forward slashes"
+ */
#if defined(_WIN32) && !defined(__CYGWIN__)
int len = 0;
int i = 0;
@@ -2362,6 +2366,7 @@ xmlCanonicPath(const xmlChar *path)
return xmlStrdup(path);
}
+ /* Check if this is an "absolute uri" */
absuri = xmlStrstr(path, BAD_CAST "://");
if (absuri != NULL) {
int l, j;
@@ -2370,47 +2375,55 @@ xmlCanonicPath(const xmlChar *path)
/*
* this looks like an URI where some parts have not been
- * escaped leading to a parsing problem check that the first
+ * escaped leading to a parsing problem. Check that the first
* part matches a protocol.
*/
l = absuri - path;
+ /* Bypass if first part (part before the '://') is > 20 chars */
if ((l <= 0) || (l > 20))
goto path_processing;
+ /* Bypass if any non-alpha characters are present in first part */
for (j = 0;j < l;j++) {
c = path[j];
if (!(((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z'))))
goto path_processing;
}
+ /* Escape all except the characters specified in the supplied path */
escURI = xmlURIEscapeStr(path, BAD_CAST ":/?_.#&;=");
if (escURI != NULL) {
+ /* Try parsing the escaped path */
uri = xmlParseURI((const char *) escURI);
+ /* If successful, return the escaped string */
if (uri != NULL) {
xmlFreeURI(uri);
return escURI;
}
- xmlFreeURI(uri);
}
}
path_processing:
+/* For Windows implementations, replace backslashes with 'forward slashes' */
#if defined(_WIN32) && !defined(__CYGWIN__)
/*
- * This really need to be cleaned up by someone with a Windows box
+ * Create a URI structure
*/
uri = xmlCreateURI();
- if (uri == NULL) {
+ if (uri == NULL) { /* Guard against 'out of memory' */
return(NULL);
}
len = xmlStrlen(path);
if ((len > 2) && IS_WINDOWS_PATH(path)) {
+ /* make the scheme 'file' */
uri->scheme = xmlStrdup(BAD_CAST "file");
+ /* allocate space for leading '/' + path + string terminator */
uri->path = xmlMallocAtomic(len + 2);
if (uri->path == NULL) {
- xmlFreeURI(uri);
+ xmlFreeURI(uri); /* Guard agains 'out of memory' */
return(NULL);
}
+ /* Put in leading '/' plus path */
uri->path[0] = '/';
p = uri->path + 1;
strncpy(p, path, len + 1);
@@ -2422,18 +2435,15 @@ path_processing:
}
p = uri->path;
}
+ /* Now change all occurences of '\' to '/' */
while (*p != '\0') {
if (*p == '\\')
*p = '/';
p++;
}
- if (uri->path == NULL) {
- xmlFreeURI(uri);
- return(NULL);
- }
if (uri->scheme == NULL) {
- ret = xmlStrdup((const xmlChar *) path);
+ ret = xmlStrdup((const xmlChar *) uri->path);
} else {
ret = xmlSaveUri(uri);
}
@@ -2473,6 +2483,24 @@ xmlPathToURI(const xmlChar *path)
cal = xmlCanonicPath(path);
if (cal == NULL)
return(NULL);
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ /* xmlCanonicPath can return an URI on Windows (is that the intended behaviour?)
+ If 'cal' is a valid URI allready then we are done here, as continuing would make
+ it invalid. */
+ if ((uri = xmlParseURI((const char *) cal)) != NULL) {
+ xmlFreeURI(uri);
+ return cal;
+ }
+ /* 'cal' can contain a relative path with backslashes. If that is processed
+ by xmlSaveURI, they will be escaped and the external entity loader machinery
+ will fail. So convert them to slashes. Misuse 'ret' for walking. */
+ ret = cal;
+ while (*ret != '\0') {
+ if (*ret == '\\')
+ *ret = '/';
+ ret++;
+ }
+#endif
memset(&temp, 0, sizeof(temp));
temp.path = (char *) cal;
ret = xmlSaveUri(&temp);
diff --git a/win32/Makefile.mingw.orig b/win32/Makefile.mingw.orig
deleted file mode 100644
index 61d15ab..0000000
--- a/win32/Makefile.mingw.orig
+++ /dev/null
@@ -1,336 +0,0 @@
-# Makefile for libxml2, specific for Windows, GCC (mingw) and GNU make.
-#
-# Take a look at the beginning and modify the variables to suit your
-# environment. Having done that, you can do a
-#
-# nmake [all] to build the libxml and the accompanying utilities.
-# nmake clean to remove all compiler output files and return to a
-# clean state.
-# nmake rebuild to rebuild everything from scratch. This basically does
-# a 'nmake clean' and then a 'nmake all'.
-# nmake install to install the library and its header files.
-#
-# November 2002, Igor Zlatkovic <igor@zlatkovic.com>
-
-# There should never be a need to modify anything below this line.
-# ----------------------------------------------------------------
-
-AUTOCONF = .\config.mingw
-include $(AUTOCONF)
-
-# Names of various input and output components.
-XML_NAME = xml2
-XML_BASENAME = lib$(XML_NAME)
-XML_SO = $(XML_BASENAME).dll
-XML_IMP = $(XML_BASENAME).lib
-XML_A = $(XML_BASENAME).a
-
-# Place where we let the compiler put its output.
-BINDIR = bin.mingw
-XML_INTDIR = int.mingw
-XML_INTDIR_A = int.a.mingw
-UTILS_INTDIR = int.utils.mingw
-
-# The preprocessor and its options.
-CPP = gcc.exe -E
-CPPFLAGS += -I$(XML_SRCDIR)/include
-ifeq ($(WITH_THREADS),1)
-CPPFLAGS += -D_REENTRANT
-endif
-
-# The compiler and its options.
-CC = gcc.exe
-CFLAGS += -DWIN32 -D_WINDOWS -D_MBCS
-CFLAGS += -I$(XML_SRCDIR) -I$(XML_SRCDIR)/include -I$(INCPREFIX)
-ifneq ($(WITH_THREADS),no)
-CFLAGS += -D_REENTRANT
-endif
-ifeq ($(WITH_THREADS),yes)
-CFLAGS += -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS
-endif
-ifeq ($(WITH_THREADS),ctls)
-CFLAGS += -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS
-endif
-ifeq ($(WITH_THREADS),native)
-CFLAGS += -DHAVE_WIN32_THREADS
-endif
-ifeq ($(WITH_THREADS),posix)
-CFLAGS += -DHAVE_PTHREAD_H
-endif
-ifeq ($(WITH_ZLIB),1)
-CFLAGS += -DHAVE_ZLIB_H
-endif
-
-# The linker and its options.
-LD = gcc.exe
-LDFLAGS += -Wl,--major-image-version,$(LIBXML_MAJOR_VERSION)
-LDFLAGS += -Wl,--minor-image-version,$(LIBXML_MINOR_VERSION)
-LDFLAGS += -Wl,-L,$(BINDIR) -Wl,-L,$(LIBPREFIX)
-LIBS =
-ifeq ($(WITH_FTP),1)
-CFLAGS += -D_WINSOCKAPI_
-LIBS += -lwsock32
-endif
-ifeq ($(WITH_HTTP),1)
-CFLAGS += -D_WINSOCKAPI_
-LIBS += -lwsock32
-endif
-ifeq ($(WITH_ICONV),1)
-LIBS += -liconv
-endif
-ifeq ($(WITH_ZLIB),1)
-LIBS += -lzdll
-endif
-ifeq ($(WITH_THREADS),posix)
-LIBS += -lpthreadGC
-endif
-ifeq ($(WITH_MODULES),1)
-LIBS += -lkernel32
-endif
-
-# The archiver and its options.
-AR = ar.exe
-ARFLAGS = -r
-
-# Optimisation and debug symbols.
-ifeq ($(DEBUG),1)
-CFLAGS += -D_DEBUG -g
-LDFLAGS +=
-else
-CFLAGS += -DNDEBUG -O2
-LDFLAGS +=
-endif
-
-
-# Libxml object files.
-XML_OBJS = $(XML_INTDIR)/c14n.o\
- $(XML_INTDIR)/catalog.o\
- $(XML_INTDIR)/chvalid.o\
- $(XML_INTDIR)/debugXML.o\
- $(XML_INTDIR)/dict.o\
- $(XML_INTDIR)/DOCBparser.o\
- $(XML_INTDIR)/encoding.o\
- $(XML_INTDIR)/entities.o\
- $(XML_INTDIR)/error.o\
- $(XML_INTDIR)/globals.o\
- $(XML_INTDIR)/hash.o\
- $(XML_INTDIR)/HTMLparser.o\
- $(XML_INTDIR)/HTMLtree.o\
- $(XML_INTDIR)/legacy.o\
- $(XML_INTDIR)/list.o\
- $(XML_INTDIR)/nanoftp.o\
- $(XML_INTDIR)/nanohttp.o\
- $(XML_INTDIR)/parser.o\
- $(XML_INTDIR)/parserInternals.o\
- $(XML_INTDIR)/pattern.o\
- $(XML_INTDIR)/relaxng.o\
- $(XML_INTDIR)/SAX.o\
- $(XML_INTDIR)/SAX2.o\
- $(XML_INTDIR)/threads.o\
- $(XML_INTDIR)/tree.o\
- $(XML_INTDIR)/uri.o\
- $(XML_INTDIR)/valid.o\
- $(XML_INTDIR)/xinclude.o\
- $(XML_INTDIR)/xlink.o\
- $(XML_INTDIR)/xmlIO.o\
- $(XML_INTDIR)/xmlmemory.o\
- $(XML_INTDIR)/xmlreader.o\
- $(XML_INTDIR)/xmlregexp.o\
- $(XML_INTDIR)/xmlmodule.o\
- $(XML_INTDIR)/xmlsave.o\
- $(XML_INTDIR)/xmlschemas.o\
- $(XML_INTDIR)/xmlschemastypes.o\
- $(XML_INTDIR)/xmlunicode.o\
- $(XML_INTDIR)/xmlwriter.o\
- $(XML_INTDIR)/xpath.o\
- $(XML_INTDIR)/xpointer.o\
- $(XML_INTDIR)/xmlstring.o
-
-XML_SRCS = $(subst .o,.c,$(subst $(XML_INTDIR)/,$(XML_SRCDIR)/,$(XML_OBJS)))
-
-# Static libxml object files.
-XML_OBJS_A = $(XML_INTDIR_A)/c14n.o\
- $(XML_INTDIR_A)/catalog.o\
- $(XML_INTDIR_A)/chvalid.o\
- $(XML_INTDIR_A)/debugXML.o\
- $(XML_INTDIR_A)/dict.o\
- $(XML_INTDIR_A)/DOCBparser.o\
- $(XML_INTDIR_A)/encoding.o\
- $(XML_INTDIR_A)/entities.o\
- $(XML_INTDIR_A)/error.o\
- $(XML_INTDIR_A)/globals.o\
- $(XML_INTDIR_A)/hash.o\
- $(XML_INTDIR_A)/HTMLparser.o\
- $(XML_INTDIR_A)/HTMLtree.o\
- $(XML_INTDIR_A)/legacy.o\
- $(XML_INTDIR_A)/list.o\
- $(XML_INTDIR_A)/nanoftp.o\
- $(XML_INTDIR_A)/nanohttp.o\
- $(XML_INTDIR_A)/parser.o\
- $(XML_INTDIR_A)/parserInternals.o\
- $(XML_INTDIR_A)/pattern.o\
- $(XML_INTDIR_A)/relaxng.o\
- $(XML_INTDIR_A)/SAX.o\
- $(XML_INTDIR_A)/SAX2.o\
- $(XML_INTDIR_A)/threads.o\
- $(XML_INTDIR_A)/tree.o\
- $(XML_INTDIR_A)/uri.o\
- $(XML_INTDIR_A)/valid.o\
- $(XML_INTDIR_A)/xinclude.o\
- $(XML_INTDIR_A)/xlink.o\
- $(XML_INTDIR_A)/xmlIO.o\
- $(XML_INTDIR_A)/xmlmemory.o\
- $(XML_INTDIR_A)/xmlreader.o\
- $(XML_INTDIR_A)/xmlregexp.o\
- $(XML_INTDIR_A)/xmlmodule.o\
- $(XML_INTDIR_A)/xmlsave.o\
- $(XML_INTDIR_A)/xmlschemas.o\
- $(XML_INTDIR_A)/xmlschemastypes.o\
- $(XML_INTDIR_A)/xmlunicode.o\
- $(XML_INTDIR_A)/xmlwriter.o\
- $(XML_INTDIR_A)/xpath.o\
- $(XML_INTDIR_A)/xpointer.o\
- $(XML_INTDIR_A)/xmlstring.o
-
-XML_SRCS_A = $(subst .o,.c,$(subst $(XML_INTDIR_A)/,$(XML_SRCDIR)/,$(XML_OBJS_A)))
-
-# Xmllint and friends executables.
-UTILS = $(BINDIR)/xmllint.exe\
- $(BINDIR)/xmlcatalog.exe\
- $(BINDIR)/testAutomata.exe\
- $(BINDIR)/testC14N.exe\
- $(BINDIR)/testDocbook.exe\
- $(BINDIR)/testHTML.exe\
- $(BINDIR)/testReader.exe\
- $(BINDIR)/testRegexp.exe\
- $(BINDIR)/testModule.exe\
- $(BINDIR)/testRelax.exe\
- $(BINDIR)/testSAX.exe\
- $(BINDIR)/testSchemas.exe\
- $(BINDIR)/testURI.exe\
- $(BINDIR)/testXPath.exe\
- $(BINDIR)/runtest.exe\
- $(BINDIR)/runsuite.exe
-ifeq ($(WITH_THREADS),yes)
-UTILS += $(BINDIR)/testThreadsWin32.exe
-endif
-ifeq ($(WITH_THREADS),ctls)
-UTILS += $(BINDIR)/testThreadsWin32.exe
-endif
-ifeq ($(WITH_THREADS),native)
-UTILS += $(BINDIR)/testThreadsWin32.exe
-endif
-ifeq ($(WITH_THREADS),posix)
-UTILS += $(BINDIR)/testThreads.exe
-endif
-
-all : dep libxml libxmla utils
-
-libxml : $(BINDIR)/$(XML_SO)
-
-libxmla : $(BINDIR)/$(XML_A)
-
-utils : $(UTILS)
-
-clean :
- cmd.exe /C if exist $(XML_INTDIR) rmdir /S /Q $(XML_INTDIR)
- cmd.exe /C if exist $(XML_INTDIR_A) rmdir /S /Q $(XML_INTDIR_A)
- cmd.exe /C if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
- cmd.exe /C if exist $(BINDIR) rmdir /S /Q $(BINDIR)
- cmd.exe /C if exist depends.mingw del depends.mingw
-
-distclean : clean
- cmd.exe /C if exist config.* del config.*
- cmd.exe /C if exist Makefile del Makefile
-
-rebuild : clean all
-
-install-libs : all
- cmd.exe /C if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml
- cmd.exe /C if not exist $(BINPREFIX) mkdir $(BINPREFIX)
- cmd.exe /C if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
- cmd.exe /C copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml
- cmd.exe /C copy $(BINDIR)\$(XML_SO) $(SOPREFIX)
- cmd.exe /C copy $(BINDIR)\$(XML_A) $(LIBPREFIX)
- cmd.exe /C copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX)
- cmd.exe /C copy $(BINDIR)\xml*.exe $(BINPREFIX)
-
-install : install-libs
- cmd.exe /C copy $(BINDIR)\*.exe $(BINPREFIX)
-
-install-dist : install-libs
- cmd.exe /C copy $(BINDIR)\xml*.exe $(BINPREFIX)
-
-# This is a target for me, to make a binary distribution. Not for the public use,
-# keep your hands off :-)
-BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION)
-BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32
-bindist : all
- $(MAKE) PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)/bin install-dist
- cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
-
-
-# Creates the dependency file
-dep :
- $(CC) $(CFLAGS) -M $(XML_SRCS) > depends.mingw
-
-
-# Makes the output directory.
-$(BINDIR) :
- cmd.exe /C if not exist $(BINDIR) mkdir $(BINDIR)
-
-
-# Makes the libxml intermediate directory.
-$(XML_INTDIR) :
- cmd.exe /C if not exist $(XML_INTDIR) mkdir $(XML_INTDIR)
-
-# Makes the static libxml intermediate directory.
-$(XML_INTDIR_A) :
- cmd.exe /C if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A)
-
-# An implicit rule for libxml compilation.
-$(XML_INTDIR)/%.o : $(XML_SRCDIR)/%.c
- $(CC) $(CFLAGS) -o $@ -c $<
-
-# An implicit rule for static libxml compilation.
-$(XML_INTDIR_A)/%.o : $(XML_SRCDIR)/%.c
- $(CC) $(CFLAGS) -DLIBXML_STATIC -o $@ -c $<
-
-
-# Compiles libxml source. Uses the implicit rule for commands.
-$(XML_OBJS) : $(XML_INTDIR)
-
-# Compiles static libxml source. Uses the implicit rule for commands.
-$(XML_OBJS_A) : $(XML_INTDIR_A)
-
-# Creates the libxml shared object.
-XMLSO_LDFLAGS = $(LDFLAGS) -shared -Wl,--dll -Wl,--out-implib,$(BINDIR)/$(XML_IMP)
-$(BINDIR)/$(XML_SO) : $(BINDIR) $(XML_OBJS)
- $(LD) $(XMLSO_LDFLAGS) -o $(BINDIR)/$(XML_SO) $(XML_OBJS) $(LIBS)
-
-# Creates the libxml archive.
-$(BINDIR)/$(XML_A) : $(BINDIR) $(XML_OBJS_A)
- $(AR) $(ARFLAGS) $(BINDIR)\$(XML_A) $(XML_OBJS_A)
-
-
-# Makes the utils intermediate directory.
-$(UTILS_INTDIR) :
- cmd.exe /C if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
-
-# An implicit rule for xmllint and friends.
-ifeq ($(STATIC),1)
-$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c
- $(CC) -DLIBXML_STATIC $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $<
- $(LD) $(LDFLAGS) -o $@ $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -l$(XML_BASENAME) $(LIBS)
-else
-$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c
- $(CC) $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $<
- $(LD) $(LDFLAGS) -o $@ $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -l$(XML_BASENAME) $(LIBS)
-endif
-
-# Builds xmllint and friends. Uses the implicit rule for commands.
-$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla
-
-# Source dependencies
-#-include depends.mingw
-
diff --git a/win32/Makefile.mingw.rej b/win32/Makefile.mingw.rej
deleted file mode 100644
index 219818c..0000000
--- a/win32/Makefile.mingw.rej
+++ /dev/null
@@ -1,17 +0,0 @@
-***************
-*** 209,215 ****
- $(BINDIR)/testSchemas.exe\
- $(BINDIR)/testURI.exe\
- $(BINDIR)/testXPath.exe\
-- $(BINDIR)/runtest.exe\
- $(BINDIR)/runsuite.exe
- ifeq ($(WITH_THREADS),yes)
- UTILS += $(BINDIR)/testThreadsWin32.exe
---- 211,217 ----
- $(BINDIR)/testSchemas.exe\
- $(BINDIR)/testURI.exe\
- $(BINDIR)/testXPath.exe\
-+ $(BINDIR)/runtest.exe\
- $(BINDIR)/runsuite.exe
- ifeq ($(WITH_THREADS),yes)
- UTILS += $(BINDIR)/testThreadsWin32.exe
diff --git a/win32/libxml2.def.src b/win32/libxml2.def.src
index 367f248..e37cfe0 100644
--- a/win32/libxml2.def.src
+++ b/win32/libxml2.def.src
@@ -335,6 +335,9 @@ htmlNewDoc
htmlNewDocNoDtD
#endif
#ifdef LIBXML_HTML_ENABLED
+htmlNewParserCtxt
+#endif
+#ifdef LIBXML_HTML_ENABLED
htmlNodeDump
#endif
#ifdef LIBXML_HTML_ENABLED
@@ -1375,6 +1378,7 @@ xmlParserPrintFileInfo
xmlParserValidityError
xmlParserValidityWarning
xmlParserWarning
+xmlPathToURI
xmlPatternFromRoot
xmlPatternGetStreamCtxt
xmlPatternMatch
@@ -1949,6 +1953,7 @@ xmlTextReaderSetErrorHandler
xmlTextReaderSetParserProp
xmlTextReaderSetSchema
xmlTextReaderSetStructuredErrorHandler
+xmlTextReaderSetup
xmlTextReaderStandalone
xmlTextReaderValue
xmlTextReaderXmlLang
@@ -2601,6 +2606,9 @@ xmlXIncludeProcess
xmlXIncludeProcessFlags
#endif
#ifdef LIBXML_XINCLUDE_ENABLED
+xmlXIncludeProcessFlagsData
+#endif
+#ifdef LIBXML_XINCLUDE_ENABLED
xmlXIncludeProcessNode
#endif
#ifdef LIBXML_XINCLUDE_ENABLED
@@ -2676,12 +2684,18 @@ xmlXPathCompile
xmlXPathCompiledEval
#endif
#ifdef LIBXML_XPATH_ENABLED
+xmlXPathCompiledEvalToBoolean
+#endif
+#ifdef LIBXML_XPATH_ENABLED
xmlXPathConcatFunction
#endif
#ifdef LIBXML_XPATH_ENABLED
xmlXPathContainsFunction
#endif
#ifdef LIBXML_XPATH_ENABLED
+xmlXPathContextSetCache
+#endif
+#ifdef LIBXML_XPATH_ENABLED
xmlXPathConvertBoolean
#endif
#ifdef LIBXML_XPATH_ENABLED
diff --git a/win32/wince/wincecompat.c b/win32/wince/wincecompat.c
index bf70fcc..1d8df87 100644
--- a/win32/wince/wincecompat.c
+++ b/win32/wince/wincecompat.c
@@ -47,6 +47,14 @@ int close(int handle)
}
+char *getcwd( char *buffer, unsigned int size)
+{
+ /* Windows CE don't have the concept of a current directory
+ * so we just return NULL to indicate an error
+ */
+ return NULL;
+}
+
char *getenv( const char *varname )
{
return NULL;
diff --git a/win32/wince/wincecompat.h b/win32/wince/wincecompat.h
index 49468a3..aa0f3dc 100644
--- a/win32/wince/wincecompat.h
+++ b/win32/wince/wincecompat.h
@@ -12,6 +12,7 @@
#define __WINCECOMPAT_H__
#include <stdio.h>
+#include <winbase.h>
#define MAX_STRERROR 31
@@ -24,6 +25,8 @@
#define O_TRUNC 0x0200 /* open and truncate */
#define O_EXCL 0x0400 /* open only if file doesn't already exist */
+#define BUFSIZ 4096
+
extern int errno;
/*
Prototypes
@@ -33,6 +36,7 @@ int write(int handle, const char *buffer, unsigned int len);
int open(const char *filename,int oflag, ...);
int close(int handle);
char *getenv( const char *varname );
+char *getcwd( char *buffer, unsigned int size);
char *strerror(int errnum);
/*
diff --git a/xinclude.c b/xinclude.c
index c58bbcf..34a5489 100644
--- a/xinclude.c
+++ b/xinclude.c
@@ -673,6 +673,10 @@ xmlXIncludeRecurseDoc(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc,
newctxt = xmlXIncludeNewContext(doc);
if (newctxt != NULL) {
/*
+ * Copy the private user data
+ */
+ newctxt->_private = ctxt->_private;
+ /*
* Copy the existing document set
*/
newctxt->incMax = ctxt->incMax;
@@ -1885,6 +1889,9 @@ xmlXIncludeLoadTxt(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) {
xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
XML_XINCLUDE_INVALID_CHAR,
"%s contains invalid char\n", URL);
+ xmlFreeParserInputBuffer(buf);
+ xmlFree(URL);
+ return(-1);
} else {
xmlNodeAddContentLen(node, &content[i], l);
}
@@ -1930,6 +1937,7 @@ xmlXIncludeLoadFallback(xmlXIncludeCtxtPtr ctxt, xmlNodePtr fallback, int nr) {
newctxt = xmlXIncludeNewContext(ctxt->doc);
if (newctxt == NULL)
return (-1);
+ newctxt->_private = ctxt->_private;
newctxt->base = xmlStrdup(ctxt->base); /* Inherit the base from the existing context */
xmlXIncludeSetFlags(newctxt, ctxt->parseFlags);
ret = xmlXIncludeDoProcess(newctxt, ctxt->doc, fallback->children);
diff --git a/xmlIO.c b/xmlIO.c
index 90db848..f576d76 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -36,10 +36,14 @@
#include <zlib.h>
#endif
-#ifdef WIN32
+#if defined(WIN32) || defined(_WIN32)
#include <windows.h>
#endif
+#if defined(_WIN32_WCE)
+#include <winnls.h> /* for CP_UTF8 */
+#endif
+
/* Figure a portable way to know if a file is a directory. */
#ifndef HAVE_STAT
# ifdef HAVE__STAT
@@ -883,13 +887,15 @@ xmlFileOpen (const char *filename) {
char *unescaped;
void *retval;
- unescaped = xmlURIUnescapeString(filename, 0, NULL);
- if (unescaped != NULL) {
- retval = xmlFileOpen_real(unescaped);
- xmlFree(unescaped);
- } else {
- retval = xmlFileOpen_real(filename);
+ retval = xmlFileOpen_real(filename);
+ if (retval == NULL) {
+ unescaped = xmlURIUnescapeString(filename, 0, NULL);
+ if (unescaped != NULL) {
+ retval = xmlFileOpen_real(unescaped);
+ xmlFree(unescaped);
+ }
}
+
return retval;
}
diff --git a/xmllint.c b/xmllint.c
index 5e1bfd7..5c27eb2 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -209,6 +209,11 @@ static int sax = 0;
* *
************************************************************************/
#define MAX_PATHS 64
+#ifdef _WIN32
+# define PATH_SEPARATOR ';'
+#else
+# define PATH_SEPARATOR ':'
+#endif
static xmlChar *paths[MAX_PATHS + 1];
static int nbpaths = 0;
static int load_trace = 0;
@@ -225,10 +230,10 @@ void parsePath(const xmlChar *path) {
return;
}
cur = path;
- while ((*cur == ' ') || (*cur == ':'))
+ while ((*cur == ' ') || (*cur == PATH_SEPARATOR))
cur++;
path = cur;
- while ((*cur != 0) && (*cur != ' ') && (*cur != ':'))
+ while ((*cur != 0) && (*cur != ' ') && (*cur != PATH_SEPARATOR))
cur++;
if (cur != path) {
paths[nbpaths] = xmlStrndup(path, cur - path);
diff --git a/xmlreader.c b/xmlreader.c
index c8bcf7b..d7bddec 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -869,13 +869,13 @@ xmlTextReaderPushData(xmlTextReaderPtr reader) {
* parser.
*/
else if (reader->mode == XML_TEXTREADER_MODE_EOF) {
- if (reader->mode != XML_TEXTREADER_DONE) {
+ if (reader->state != XML_TEXTREADER_DONE) {
s = inbuf->use - reader->cur;
val = xmlParseChunk(reader->ctxt,
(const char *) &inbuf->content[reader->cur],
s, 1);
reader->cur = inbuf->use;
- reader->mode = XML_TEXTREADER_DONE;
+ reader->state = XML_TEXTREADER_DONE;
if ((val != 0) || (reader->ctxt->wellFormed == 0))
return(-1);
}
@@ -1169,8 +1169,10 @@ xmlTextReaderDoExpand(xmlTextReaderPtr reader) {
if (reader->mode == XML_TEXTREADER_MODE_EOF)
return(1);
val = xmlTextReaderPushData(reader);
- if (val < 0)
+ if (val < 0){
+ reader->mode = XML_TEXTREADER_MODE_ERROR;
return(-1);
+ }
} while(reader->mode != XML_TEXTREADER_MODE_EOF);
return(1);
}
@@ -1257,17 +1259,23 @@ xmlTextReaderRead(xmlTextReaderPtr reader) {
*/
do {
val = xmlTextReaderPushData(reader);
- if (val < 0)
+ if (val < 0){
+ reader->mode = XML_TEXTREADER_MODE_ERROR;
+ reader->state = XML_TEXTREADER_ERROR;
return(-1);
+ }
} while ((reader->ctxt->node == NULL) &&
((reader->mode != XML_TEXTREADER_MODE_EOF) &&
- (reader->mode != XML_TEXTREADER_DONE)));
+ (reader->state != XML_TEXTREADER_DONE)));
if (reader->ctxt->node == NULL) {
if (reader->ctxt->myDoc != NULL) {
reader->node = reader->ctxt->myDoc->children;
}
- if (reader->node == NULL)
+ if (reader->node == NULL){
+ reader->mode = XML_TEXTREADER_MODE_ERROR;
+ reader->state = XML_TEXTREADER_ERROR;
return(-1);
+ }
reader->state = XML_TEXTREADER_ELEMENT;
} else {
if (reader->ctxt->myDoc != NULL) {
@@ -1287,7 +1295,7 @@ xmlTextReaderRead(xmlTextReaderPtr reader) {
get_next_node:
if (reader->node == NULL) {
- if (reader->mode == XML_TEXTREADER_DONE)
+ if (reader->mode == XML_TEXTREADER_MODE_EOF)
return(0);
else
return(-1);
@@ -1314,8 +1322,11 @@ get_next_node:
(reader->ctxt->node == reader->node->parent)) &&
(reader->ctxt->instate != XML_PARSER_EOF)) {
val = xmlTextReaderPushData(reader);
- if (val < 0)
+ if (val < 0){
+ reader->mode = XML_TEXTREADER_MODE_ERROR;
+ reader->state = XML_TEXTREADER_ERROR;
return(-1);
+ }
if (reader->node == NULL)
goto node_end;
}
@@ -1394,9 +1405,9 @@ get_next_node:
(reader->node->type == XML_DOCB_DOCUMENT_NODE) ||
#endif
(reader->node->type == XML_HTML_DOCUMENT_NODE)) {
- if (reader->mode != XML_TEXTREADER_DONE) {
+ if (reader->mode != XML_TEXTREADER_MODE_EOF) {
val = xmlParseChunk(reader->ctxt, "", 0, 1);
- reader->mode = XML_TEXTREADER_DONE;
+ reader->state = XML_TEXTREADER_DONE;
if (val != 0)
return(-1);
}
@@ -1550,7 +1561,7 @@ node_found:
#endif /* LIBXML_PATTERN_ENABLED */
return(1);
node_end:
- reader->mode = XML_TEXTREADER_DONE;
+ reader->state = XML_TEXTREADER_DONE;
return(0);
}
@@ -4167,9 +4178,9 @@ xmlTextReaderSetSchema(xmlTextReaderPtr reader, xmlSchemaPtr schema) {
*
* Use RelaxNG to validate the document as it is processed.
* Activation is only possible before the first Read().
- * if @rng is NULL, then RelaxNG validation is desactivated.
+ * if @rng is NULL, then RelaxNG validation is deactivated.
*
- * Returns 0 in case the RelaxNG validation could be (des)activated and
+ * Returns 0 in case the RelaxNG validation could be (de)activated and
* -1 in case of error.
*/
int
@@ -4207,8 +4218,8 @@ xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, const char *rng) {
xmlTextReaderValidityWarningRelay,
reader);
}
- if (reader->sErrorFunc != NULL) {
- xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt,
+ if (reader->sErrorFunc != NULL) {
+ xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt,
xmlTextReaderValidityStructuredRelay,
reader);
}
@@ -4846,22 +4857,26 @@ xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
/**
* xmlTextReaderSetup:
* @reader: an XML reader
+ * @input: xmlParserInputBufferPtr used to feed the reader, will
+ * be destroyed with it.
* @URL: the base URL to use for the document
* @encoding: the document encoding, or NULL
* @options: a combination of xmlParserOption
- * @reuse: keep the context for reuse
*
* Setup an XML reader with new options
*
* Returns 0 in case of success and -1 in case of error.
*/
-static int
+int
xmlTextReaderSetup(xmlTextReaderPtr reader,
xmlParserInputBufferPtr input, const char *URL,
const char *encoding, int options)
{
- if (reader == NULL)
+ if (reader == NULL) {
+ if (input != NULL)
+ xmlFreeParserInputBuffer(input);
return (-1);
+ }
/*
* we force the generation of compact text nodes on the reader
diff --git a/xmlregexp.c b/xmlregexp.c
index e7d519e..2a30d66 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -54,6 +54,11 @@
#define CUR_SCHAR(s, l) xmlStringCurrentChar(NULL, s, &l)
#define NEXTL(l) ctxt->cur += l;
#define XML_REG_STRING_SEPARATOR '|'
+/*
+ * Need PREV to check on a '-' within a Character Group. May only be used
+ * when it's guaranteed that cur is not at the beginning of ctxt->string!
+ */
+#define PREV (ctxt->cur[-1])
/**
* TODO:
@@ -145,7 +150,8 @@ typedef enum {
XML_REGEXP_START_STATE = 1,
XML_REGEXP_FINAL_STATE,
XML_REGEXP_TRANS_STATE,
- XML_REGEXP_SINK_STATE
+ XML_REGEXP_SINK_STATE,
+ XML_REGEXP_UNREACH_STATE
} xmlRegStateType;
typedef enum {
@@ -1595,6 +1601,11 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from,
atom->quant = XML_REGEXP_QUANT_ONCE;
xmlRegStateAddTrans(ctxt, to, atom, to, -1, -1);
break;
+ case XML_REGEXP_QUANT_RANGE:
+ if (atom->min == 0) {
+ xmlFAGenerateEpsilonTransition(ctxt, from, to);
+ }
+ break;
default:
break;
}
@@ -1709,6 +1720,8 @@ xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr ctxt) {
continue;
if (state->nbTrans != 1)
continue;
+ if (state->type == XML_REGEXP_UNREACH_STATE)
+ continue;
/* is the only transition out a basic transition */
if ((state->trans[0].atom == NULL) &&
(state->trans[0].to >= 0) &&
@@ -1731,35 +1744,24 @@ xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr ctxt) {
tmp = ctxt->states[state->transTo[i]];
for (j = 0;j < tmp->nbTrans;j++) {
if (tmp->trans[j].to == statenr) {
- tmp->trans[j].to = newto;
-#ifdef DEBUG_REGEXP_GRAPH
- printf("Changed transition %d on %d to go to %d\n",
- j, tmp->no, newto);
-#endif
- xmlRegStateAddTransTo(ctxt, ctxt->states[newto],
- tmp->no);
- }
- }
- }
-#if 0
- for (i = 0;i < ctxt->nbStates;i++) {
- tmp = ctxt->states[i];
- for (j = 0;j < tmp->nbTrans;j++) {
- if (tmp->trans[j].to == statenr) {
- tmp->trans[j].to = newto;
#ifdef DEBUG_REGEXP_GRAPH
printf("Changed transition %d on %d to go to %d\n",
j, tmp->no, newto);
#endif
+ tmp->trans[j].to = -1;
+ xmlRegStateAddTrans(ctxt, tmp, tmp->trans[j].atom,
+ ctxt->states[newto],
+ tmp->trans[j].counter,
+ tmp->trans[j].count);
}
}
}
-#endif
if (state->type == XML_REGEXP_FINAL_STATE)
ctxt->states[newto]->type = XML_REGEXP_FINAL_STATE;
/* eliminate the transition completely */
state->nbTrans = 0;
+ state->type = XML_REGEXP_UNREACH_STATE;
}
@@ -1779,16 +1781,33 @@ xmlFAEliminateEpsilonTransitions(xmlRegParserCtxtPtr ctxt) {
if (ctxt->states == NULL) return;
+ /*
+ * Eliminate simple epsilon transition and the associated unreachable
+ * states.
+ */
xmlFAEliminateSimpleEpsilonTransitions(ctxt);
+ for (statenr = 0;statenr < ctxt->nbStates;statenr++) {
+ state = ctxt->states[statenr];
+ if ((state != NULL) && (state->type == XML_REGEXP_UNREACH_STATE)) {
+#ifdef DEBUG_REGEXP_GRAPH
+ printf("Removed unreachable state %d\n", statenr);
+#endif
+ xmlRegFreeState(state);
+ ctxt->states[statenr] = NULL;
+ }
+ }
has_epsilon = 0;
/*
- * build the completed transitions bypassing the epsilons
+ * Build the completed transitions bypassing the epsilons
* Use a marking algorithm to avoid loops
- * mark sink states too.
+ * Mark sink states too.
+ * Process from the latests states backward to the start when
+ * there is long cascading epsilon chains this minimize the
+ * recursions and transition compares when adding the new ones
*/
- for (statenr = 0;statenr < ctxt->nbStates;statenr++) {
+ for (statenr = ctxt->nbStates - 1;statenr >= 0;statenr--) {
state = ctxt->states[statenr];
if (state == NULL)
continue;
@@ -1812,8 +1831,9 @@ xmlFAEliminateEpsilonTransitions(xmlRegParserCtxtPtr ctxt) {
printf("Found epsilon trans %d from %d to %d\n",
transnr, statenr, newto);
#endif
- state->mark = XML_REGEXP_MARK_START;
has_epsilon = 1;
+ state->trans[transnr].to = -2;
+ state->mark = XML_REGEXP_MARK_START;
xmlFAReduceEpsilonTransitions(ctxt, statenr,
newto, state->trans[transnr].counter);
state->mark = XML_REGEXP_MARK_NORMAL;
@@ -2424,7 +2444,7 @@ xmlFARecurseDeterminism(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr state,
* check transitions conflicting with the one looked at
*/
if (t1->atom == NULL) {
- if (t1->to == -1)
+ if (t1->to < 0)
continue;
res = xmlFARecurseDeterminism(ctxt, ctxt->states[t1->to],
to, atom);
@@ -2875,7 +2895,8 @@ xmlFARegDebugExec(xmlRegExecCtxtPtr exec) {
int i;
printf(": ");
for (i = 0;(i < 3) && (i < exec->inputStackNr);i++)
- printf("%s ", exec->inputStack[exec->inputStackNr - (i + 1)]);
+ printf("%s ", (const char *)
+ exec->inputStack[exec->inputStackNr - (i + 1)].value);
} else {
printf(": %s", &(exec->inputString[exec->index]));
}
@@ -4842,10 +4863,15 @@ xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) {
ERROR("Expecting a char range");
return;
}
- NEXTL(len);
- if (start == '-') {
+ /*
+ * Since we are "inside" a range, we can assume ctxt->cur is past
+ * the start of ctxt->string, and PREV should be safe
+ */
+ if ((start == '-') && (NXT(1) != ']') && (PREV != '[') && (PREV != '^')) {
+ NEXTL(len);
return;
}
+ NEXTL(len);
cur = CUR;
if ((cur != '-') || (NXT(1) == ']')) {
xmlRegAtomAddRange(ctxt, ctxt->atom, ctxt->neg,
diff --git a/xmlsave.c b/xmlsave.c
index 6963e7b..231ee7b 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -623,7 +623,9 @@ xmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
buf = ctxt->buf;
while (cur != NULL) {
if ((ctxt->format) && (xmlIndentTreeOutput) &&
- (cur->type == XML_ELEMENT_NODE))
+ ((cur->type == XML_ELEMENT_NODE) ||
+ (cur->type == XML_COMMENT_NODE) ||
+ (cur->type == XML_PI_NODE)))
xmlOutputBufferWrite(buf, ctxt->indent_size *
(ctxt->level > ctxt->indent_nr ?
ctxt->indent_nr : ctxt->level),
diff --git a/xmlschemas.c b/xmlschemas.c
index 11e3eac..aec901a 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -19139,7 +19139,8 @@ xmlSchemaExpandAttributeGroupRefs(xmlSchemaParserCtxtPtr pctxt,
* Just remove the reference if the referenced group does not
* contain any attribute uses.
*/
- if (gr->attrUses == NULL) {
+ sublist = ((xmlSchemaItemListPtr) gr->attrUses);
+ if ((sublist == NULL) || sublist->nbItems == 0) {
if (xmlSchemaItemListRemove(list, i) == -1)
return(-1);
i--;
@@ -19148,18 +19149,15 @@ xmlSchemaExpandAttributeGroupRefs(xmlSchemaParserCtxtPtr pctxt,
/*
* Add the attribute uses.
*/
- sublist = ((xmlSchemaItemListPtr) gr->attrUses);
- if (sublist->nbItems != 0) {
- list->items[i] = sublist->items[0];
- if (sublist->nbItems != 1) {
- for (j = 1; j < sublist->nbItems; j++) {
- i++;
- if (xmlSchemaItemListInsert(list,
- sublist->items[j], i) == -1)
- return(-1);
- }
+ list->items[i] = sublist->items[0];
+ if (sublist->nbItems != 1) {
+ for (j = 1; j < sublist->nbItems; j++) {
+ i++;
+ if (xmlSchemaItemListInsert(list,
+ sublist->items[j], i) == -1)
+ return(-1);
}
- }
+ }
}
}
diff --git a/xmlwriter.c b/xmlwriter.c
index 74838e6..2e67a4f 100644
--- a/xmlwriter.c
+++ b/xmlwriter.c
@@ -9,9 +9,9 @@
*/
#define IN_LIBXML
+#include "libxml.h"
#include <string.h>
-#include "libxml.h"
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#include <libxml/uri.h>
diff --git a/xpath.c b/xpath.c
index 8964628..8c35e30 100644
--- a/xpath.c
+++ b/xpath.c
@@ -198,6 +198,7 @@ static xmlNs xmlXPathXMLNamespaceStruct = {
XML_NAMESPACE_DECL,
XML_XML_NAMESPACE,
BAD_CAST "xml",
+ NULL,
NULL
};
static xmlNsPtr xmlXPathXMLNamespace = &xmlXPathXMLNamespaceStruct;
@@ -2840,6 +2841,8 @@ xmlXPathCmpNodes(xmlNodePtr node1, xmlNodePtr node2) {
/*
* a couple of optimizations which will avoid computations in most cases
*/
+ if (node1 == node2) /* trivial case */
+ return(0);
if (node1->type == XML_ATTRIBUTE_NODE) {
attr1 = 1;
attrNode1 = node1;
@@ -7668,9 +7671,9 @@ xmlXPathNextDescendantOrSelfElemParent(xmlNodePtr cur,
continue;
}
break;
-#ifdef LIBXML_DOCB_ENABLED
/* Not sure if we need those here. */
case XML_DOCUMENT_NODE:
+#ifdef LIBXML_DOCB_ENABLED
case XML_DOCB_DOCUMENT_NODE:
#endif
case XML_HTML_DOCUMENT_NODE:
@@ -11544,8 +11547,11 @@ xmlXPathCompOpEvalPredicate(xmlXPathParserContextPtr ctxt,
res = xmlXPathCompOpEvalToBoolean(ctxt, exprOp, 1);
- if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1))
- goto evaluation_error;
+ if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) {
+ xmlXPathNodeSetClear(set, hasNsNodes);
+ newContextSize = 0;
+ goto evaluation_exit;
+ }
if (res != 0) {
newContextSize++;
@@ -11573,18 +11579,13 @@ xmlXPathCompOpEvalPredicate(xmlXPathParserContextPtr ctxt,
contextObj = NULL;
}
}
- goto evaluation_exit;
-evaluation_error:
- xmlXPathNodeSetClear(set, hasNsNodes);
- newContextSize = 0;
-
-evaluation_exit:
if (contextObj != NULL) {
if (ctxt->value == contextObj)
valuePop(ctxt);
xmlXPathReleaseObject(xpctxt, contextObj);
}
+evaluation_exit:
if (exprRes != NULL)
xmlXPathReleaseObject(ctxt->context, exprRes);
/*
@@ -12163,6 +12164,7 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt,
#ifdef DEBUG_STEP
xmlGenericError(xmlGenericErrorContext, " %s", cur->name);
#endif
+
switch (test) {
case NODE_TEST_NONE:
total = 0;
@@ -12241,6 +12243,16 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt,
break;
}
case NODE_TEST_NAME:
+ if (axis == AXIS_ATTRIBUTE) {
+ if (cur->type != XML_ATTRIBUTE_NODE)
+ break;
+ } else if (axis == AXIS_NAMESPACE) {
+ if (cur->type != XML_NAMESPACE_DECL)
+ break;
+ } else {
+ if (cur->type != XML_ELEMENT_NODE)
+ break;
+ }
switch (cur->type) {
case XML_ELEMENT_NODE:
if (xmlStrEqual(name, cur->name)) {
@@ -14543,6 +14555,8 @@ xmlXPathCtxtCompile(xmlXPathContextPtr ctxt, const xmlChar *str) {
xmlXPathInit();
pctxt = xmlXPathNewParserContext(str, ctxt);
+ if (pctxt == NULL)
+ return NULL;
xmlXPathCompileExpr(pctxt, 1);
if( pctxt->error != XPATH_EXPRESSION_OK )
@@ -14794,6 +14808,8 @@ xmlXPathEval(const xmlChar *str, xmlXPathContextPtr ctx) {
xmlXPathInit();
ctxt = xmlXPathNewParserContext(str, ctx);
+ if (ctxt == NULL)
+ return NULL;
xmlXPathEvalExpr(ctxt);
if (ctxt->value == NULL) {
@@ -14854,6 +14870,8 @@ xmlXPathEvalExpression(const xmlChar *str, xmlXPathContextPtr ctxt) {
xmlXPathInit();
pctxt = xmlXPathNewParserContext(str, ctxt);
+ if (pctxt == NULL)
+ return NULL;
xmlXPathEvalExpr(pctxt);
if ((*pctxt->cur != 0) || (pctxt->error != XPATH_EXPRESSION_OK)) {