[xml/sgml-commit] r466 - in packages/libxml2/trunk: . debian doc doc/examples doc/html example include include/libxml python python/tests result result/HTML result/regexp result/relaxng result/schemas result/valid test test/HTML test/relaxng test/schemas test/valid test/valid/dtds win32 xstc

Mike Hommey glandium at costa.debian.org
Mon Sep 5 17:43:06 UTC 2005


Author: glandium
Date: 2005-09-05 17:42:20 +0000 (Mon, 05 Sep 2005)
New Revision: 466

Added:
   packages/libxml2/trunk/doc/html/libxml-schematron.html
   packages/libxml2/trunk/include/libxml/schematron.h
   packages/libxml2/trunk/result/HTML/script2.html
   packages/libxml2/trunk/result/HTML/script2.html.err
   packages/libxml2/trunk/result/HTML/script2.html.sax
   packages/libxml2/trunk/result/expr/
   packages/libxml2/trunk/result/regexp/*
   packages/libxml2/trunk/result/relaxng/307377_0
   packages/libxml2/trunk/result/relaxng/307377_0.err
   packages/libxml2/trunk/result/relaxng/307377_1
   packages/libxml2/trunk/result/relaxng/307377_1.err
   packages/libxml2/trunk/result/relaxng/307377_2
   packages/libxml2/trunk/result/relaxng/307377_2.err
   packages/libxml2/trunk/result/relaxng/307377_err
   packages/libxml2/trunk/result/relaxng/307377_valid
   packages/libxml2/trunk/result/schemas/allsg_0_0
   packages/libxml2/trunk/result/schemas/allsg_0_0.err
   packages/libxml2/trunk/result/schemas/allsg_0_1
   packages/libxml2/trunk/result/schemas/allsg_0_1.err
   packages/libxml2/trunk/result/schemas/allsg_0_2
   packages/libxml2/trunk/result/schemas/allsg_0_2.err
   packages/libxml2/trunk/result/schemas/allsg_0_3
   packages/libxml2/trunk/result/schemas/allsg_0_3.err
   packages/libxml2/trunk/result/schemas/allsg_0_4
   packages/libxml2/trunk/result/schemas/allsg_0_4.err
   packages/libxml2/trunk/result/schemas/allsg_0_5
   packages/libxml2/trunk/result/schemas/allsg_0_5.err
   packages/libxml2/trunk/result/schemas/any5_0_0
   packages/libxml2/trunk/result/schemas/any5_0_0.err
   packages/libxml2/trunk/result/schemas/any5_0_1
   packages/libxml2/trunk/result/schemas/any5_0_1.err
   packages/libxml2/trunk/result/schemas/any5_0_2
   packages/libxml2/trunk/result/schemas/any5_0_2.err
   packages/libxml2/trunk/result/schemas/any5_0_3
   packages/libxml2/trunk/result/schemas/any5_0_3.err
   packages/libxml2/trunk/result/schemas/any5_0_4
   packages/libxml2/trunk/result/schemas/any5_0_4.err
   packages/libxml2/trunk/result/schemas/any5_0_5
   packages/libxml2/trunk/result/schemas/any5_0_5.err
   packages/libxml2/trunk/result/schemas/any5_0_6
   packages/libxml2/trunk/result/schemas/any5_0_6.err
   packages/libxml2/trunk/result/schemas/any5_1_0
   packages/libxml2/trunk/result/schemas/any5_1_0.err
   packages/libxml2/trunk/result/schemas/any5_1_1
   packages/libxml2/trunk/result/schemas/any5_1_1.err
   packages/libxml2/trunk/result/schemas/any5_1_2
   packages/libxml2/trunk/result/schemas/any5_1_2.err
   packages/libxml2/trunk/result/schemas/any5_1_3
   packages/libxml2/trunk/result/schemas/any5_1_3.err
   packages/libxml2/trunk/result/schemas/any5_1_4
   packages/libxml2/trunk/result/schemas/any5_1_4.err
   packages/libxml2/trunk/result/schemas/any5_1_5
   packages/libxml2/trunk/result/schemas/any5_1_5.err
   packages/libxml2/trunk/result/schemas/any5_1_6
   packages/libxml2/trunk/result/schemas/any5_1_6.err
   packages/libxml2/trunk/result/schemas/any6_1_0
   packages/libxml2/trunk/result/schemas/any6_1_0.err
   packages/libxml2/trunk/result/schemas/any6_2_0
   packages/libxml2/trunk/result/schemas/any6_2_0.err
   packages/libxml2/trunk/result/schemas/any7_1_0
   packages/libxml2/trunk/result/schemas/any7_1_0.err
   packages/libxml2/trunk/result/schemas/any7_1_1
   packages/libxml2/trunk/result/schemas/any7_1_1.err
   packages/libxml2/trunk/result/schemas/any7_1_2
   packages/libxml2/trunk/result/schemas/any7_1_2.err
   packages/libxml2/trunk/result/schemas/any7_2_0
   packages/libxml2/trunk/result/schemas/any7_2_0.err
   packages/libxml2/trunk/result/schemas/any7_2_1
   packages/libxml2/trunk/result/schemas/any7_2_1.err
   packages/libxml2/trunk/result/schemas/any7_2_2
   packages/libxml2/trunk/result/schemas/any7_2_2.err
   packages/libxml2/trunk/result/schemas/any8_1_0
   packages/libxml2/trunk/result/schemas/any8_1_0.err
   packages/libxml2/trunk/result/schemas/bug310264_0_0
   packages/libxml2/trunk/result/schemas/bug310264_0_0.err
   packages/libxml2/trunk/result/schemas/bug312957_1_0
   packages/libxml2/trunk/result/schemas/bug312957_1_0.err
   packages/libxml2/trunk/result/schemas/bug313982_0_0
   packages/libxml2/trunk/result/schemas/bug313982_0_0.err
   packages/libxml2/trunk/result/schemas/extension2_1_0
   packages/libxml2/trunk/result/schemas/extension2_1_0.err
   packages/libxml2/trunk/result/schematron/
   packages/libxml2/trunk/result/valid/objednavka.xml
   packages/libxml2/trunk/result/valid/objednavka.xml.err
   packages/libxml2/trunk/schematron.c
   packages/libxml2/trunk/test/HTML/script2.html
   packages/libxml2/trunk/test/expr/
   packages/libxml2/trunk/test/relaxng/307377.rng
   packages/libxml2/trunk/test/relaxng/307377_0.xml
   packages/libxml2/trunk/test/relaxng/307377_1.xml
   packages/libxml2/trunk/test/relaxng/307377_2.xml
   packages/libxml2/trunk/test/schemas/allsg_0.xml
   packages/libxml2/trunk/test/schemas/allsg_0.xsd
   packages/libxml2/trunk/test/schemas/allsg_1.xml
   packages/libxml2/trunk/test/schemas/allsg_2.xml
   packages/libxml2/trunk/test/schemas/allsg_3.xml
   packages/libxml2/trunk/test/schemas/allsg_4.xml
   packages/libxml2/trunk/test/schemas/allsg_5.xml
   packages/libxml2/trunk/test/schemas/any5_0.xml
   packages/libxml2/trunk/test/schemas/any5_0.xsd
   packages/libxml2/trunk/test/schemas/any5_1.xml
   packages/libxml2/trunk/test/schemas/any5_1.xsd
   packages/libxml2/trunk/test/schemas/any5_2.xml
   packages/libxml2/trunk/test/schemas/any5_3.xml
   packages/libxml2/trunk/test/schemas/any5_4.xml
   packages/libxml2/trunk/test/schemas/any5_5.xml
   packages/libxml2/trunk/test/schemas/any5_6.xml
   packages/libxml2/trunk/test/schemas/any6_0.xml
   packages/libxml2/trunk/test/schemas/any6_1.xsd
   packages/libxml2/trunk/test/schemas/any6_2.xsd
   packages/libxml2/trunk/test/schemas/any7_0.xml
   packages/libxml2/trunk/test/schemas/any7_1.xml
   packages/libxml2/trunk/test/schemas/any7_1.xsd
   packages/libxml2/trunk/test/schemas/any7_2.xml
   packages/libxml2/trunk/test/schemas/any7_2.xsd
   packages/libxml2/trunk/test/schemas/any8_0.xml
   packages/libxml2/trunk/test/schemas/any8_1.xsd
   packages/libxml2/trunk/test/schemas/bug310264_0.xml
   packages/libxml2/trunk/test/schemas/bug310264_0.xsd
   packages/libxml2/trunk/test/schemas/bug312957_0.xml
   packages/libxml2/trunk/test/schemas/bug312957_1.xsd
   packages/libxml2/trunk/test/schemas/bug313982_0.xml
   packages/libxml2/trunk/test/schemas/bug313982_0.xsd
   packages/libxml2/trunk/test/schemas/extension2_0.xml
   packages/libxml2/trunk/test/schemas/extension2_1.xsd
   packages/libxml2/trunk/test/schematron/
   packages/libxml2/trunk/test/valid/dtds/objednavka.dtd
   packages/libxml2/trunk/test/valid/objednavka.xml
Modified:
   packages/libxml2/trunk/ChangeLog
   packages/libxml2/trunk/HTMLparser.c
   packages/libxml2/trunk/HTMLtree.c
   packages/libxml2/trunk/Makefile.am
   packages/libxml2/trunk/Makefile.in
   packages/libxml2/trunk/NEWS
   packages/libxml2/trunk/SAX2.c
   packages/libxml2/trunk/config.guess
   packages/libxml2/trunk/config.sub
   packages/libxml2/trunk/configure
   packages/libxml2/trunk/configure.in
   packages/libxml2/trunk/debian/changelog
   packages/libxml2/trunk/debugXML.c
   packages/libxml2/trunk/doc/APIchunk0.html
   packages/libxml2/trunk/doc/APIchunk1.html
   packages/libxml2/trunk/doc/APIchunk10.html
   packages/libxml2/trunk/doc/APIchunk11.html
   packages/libxml2/trunk/doc/APIchunk12.html
   packages/libxml2/trunk/doc/APIchunk13.html
   packages/libxml2/trunk/doc/APIchunk14.html
   packages/libxml2/trunk/doc/APIchunk15.html
   packages/libxml2/trunk/doc/APIchunk16.html
   packages/libxml2/trunk/doc/APIchunk17.html
   packages/libxml2/trunk/doc/APIchunk18.html
   packages/libxml2/trunk/doc/APIchunk19.html
   packages/libxml2/trunk/doc/APIchunk2.html
   packages/libxml2/trunk/doc/APIchunk20.html
   packages/libxml2/trunk/doc/APIchunk21.html
   packages/libxml2/trunk/doc/APIchunk22.html
   packages/libxml2/trunk/doc/APIchunk23.html
   packages/libxml2/trunk/doc/APIchunk24.html
   packages/libxml2/trunk/doc/APIchunk25.html
   packages/libxml2/trunk/doc/APIchunk26.html
   packages/libxml2/trunk/doc/APIchunk27.html
   packages/libxml2/trunk/doc/APIchunk28.html
   packages/libxml2/trunk/doc/APIchunk29.html
   packages/libxml2/trunk/doc/APIchunk3.html
   packages/libxml2/trunk/doc/APIchunk4.html
   packages/libxml2/trunk/doc/APIchunk5.html
   packages/libxml2/trunk/doc/APIchunk6.html
   packages/libxml2/trunk/doc/APIchunk7.html
   packages/libxml2/trunk/doc/APIchunk8.html
   packages/libxml2/trunk/doc/APIchunk9.html
   packages/libxml2/trunk/doc/APIconstructors.html
   packages/libxml2/trunk/doc/APIfiles.html
   packages/libxml2/trunk/doc/APIfunctions.html
   packages/libxml2/trunk/doc/APIsymbols.html
   packages/libxml2/trunk/doc/Makefile.in
   packages/libxml2/trunk/doc/XSLT.html
   packages/libxml2/trunk/doc/apibuild.py
   packages/libxml2/trunk/doc/downloads.html
   packages/libxml2/trunk/doc/elfgcchack.xsl
   packages/libxml2/trunk/doc/examples/Makefile.in
   packages/libxml2/trunk/doc/html/book1.html
   packages/libxml2/trunk/doc/html/index.html
   packages/libxml2/trunk/doc/html/libxml-HTMLparser.html
   packages/libxml2/trunk/doc/html/libxml-lib.html
   packages/libxml2/trunk/doc/html/libxml-parser.html
   packages/libxml2/trunk/doc/html/libxml-pattern.html
   packages/libxml2/trunk/doc/html/libxml-relaxng.html
   packages/libxml2/trunk/doc/html/libxml-schemasInternals.html
   packages/libxml2/trunk/doc/html/libxml-threads.html
   packages/libxml2/trunk/doc/html/libxml-tree.html
   packages/libxml2/trunk/doc/html/libxml-uri.html
   packages/libxml2/trunk/doc/html/libxml-xmlautomata.html
   packages/libxml2/trunk/doc/html/libxml-xmlerror.html
   packages/libxml2/trunk/doc/html/libxml-xmlexports.html
   packages/libxml2/trunk/doc/html/libxml-xmlregexp.html
   packages/libxml2/trunk/doc/html/libxml-xmlsave.html
   packages/libxml2/trunk/doc/html/libxml-xmlschemas.html
   packages/libxml2/trunk/doc/html/libxml-xmlversion.html
   packages/libxml2/trunk/doc/html/libxml-xpath.html
   packages/libxml2/trunk/doc/index.html
   packages/libxml2/trunk/doc/libxml2-api.xml
   packages/libxml2/trunk/doc/libxml2.xsa
   packages/libxml2/trunk/doc/news.html
   packages/libxml2/trunk/doc/xml.html
   packages/libxml2/trunk/doc/xmllint.1
   packages/libxml2/trunk/doc/xmllint.xml
   packages/libxml2/trunk/elfgcchack.h
   packages/libxml2/trunk/encoding.c
   packages/libxml2/trunk/error.c
   packages/libxml2/trunk/example/Makefile.in
   packages/libxml2/trunk/globals.c
   packages/libxml2/trunk/include/Makefile.in
   packages/libxml2/trunk/include/libxml/HTMLparser.h
   packages/libxml2/trunk/include/libxml/Makefile.am
   packages/libxml2/trunk/include/libxml/Makefile.in
   packages/libxml2/trunk/include/libxml/SAX2.h
   packages/libxml2/trunk/include/libxml/parser.h
   packages/libxml2/trunk/include/libxml/pattern.h
   packages/libxml2/trunk/include/libxml/relaxng.h
   packages/libxml2/trunk/include/libxml/threads.h
   packages/libxml2/trunk/include/libxml/tree.h
   packages/libxml2/trunk/include/libxml/uri.h
   packages/libxml2/trunk/include/libxml/valid.h
   packages/libxml2/trunk/include/libxml/xmlIO.h
   packages/libxml2/trunk/include/libxml/xmlautomata.h
   packages/libxml2/trunk/include/libxml/xmlerror.h
   packages/libxml2/trunk/include/libxml/xmlexports.h
   packages/libxml2/trunk/include/libxml/xmlregexp.h
   packages/libxml2/trunk/include/libxml/xmlsave.h
   packages/libxml2/trunk/include/libxml/xmlschemas.h
   packages/libxml2/trunk/include/libxml/xmlversion.h
   packages/libxml2/trunk/include/libxml/xmlversion.h.in
   packages/libxml2/trunk/include/libxml/xpath.h
   packages/libxml2/trunk/libxml.spec.in
   packages/libxml2/trunk/libxml2.spec
   packages/libxml2/trunk/nanoftp.c
   packages/libxml2/trunk/nanohttp.c
   packages/libxml2/trunk/parser.c
   packages/libxml2/trunk/parserInternals.c
   packages/libxml2/trunk/pattern.c
   packages/libxml2/trunk/python/Makefile.in
   packages/libxml2/trunk/python/generator.py
   packages/libxml2/trunk/python/libxml.c
   packages/libxml2/trunk/python/libxml2-py.c
   packages/libxml2/trunk/python/setup.py
   packages/libxml2/trunk/python/tests/Makefile.in
   packages/libxml2/trunk/python/tests/tstLastError.py
   packages/libxml2/trunk/relaxng.c
   packages/libxml2/trunk/result/HTML/Down.html
   packages/libxml2/trunk/result/HTML/Down.html.sax
   packages/libxml2/trunk/result/HTML/attrents.html
   packages/libxml2/trunk/result/HTML/attrents.html.sax
   packages/libxml2/trunk/result/HTML/cf_128.html
   packages/libxml2/trunk/result/HTML/cf_128.html.sax
   packages/libxml2/trunk/result/HTML/doc2.htm
   packages/libxml2/trunk/result/HTML/doc2.htm.sax
   packages/libxml2/trunk/result/HTML/doc3.htm
   packages/libxml2/trunk/result/HTML/doc3.htm.sax
   packages/libxml2/trunk/result/HTML/fp40.htm
   packages/libxml2/trunk/result/HTML/fp40.htm.sax
   packages/libxml2/trunk/result/HTML/liclose.html
   packages/libxml2/trunk/result/HTML/liclose.html.sax
   packages/libxml2/trunk/result/HTML/pre.html
   packages/libxml2/trunk/result/HTML/pre.html.sax
   packages/libxml2/trunk/result/HTML/python.html
   packages/libxml2/trunk/result/HTML/python.html.sax
   packages/libxml2/trunk/result/HTML/reg1.html.sax
   packages/libxml2/trunk/result/HTML/reg2.html.sax
   packages/libxml2/trunk/result/HTML/reg3.html.sax
   packages/libxml2/trunk/result/HTML/reg4.html.sax
   packages/libxml2/trunk/result/HTML/script.html.sax
   packages/libxml2/trunk/result/HTML/test2.html
   packages/libxml2/trunk/result/HTML/test2.html.sax
   packages/libxml2/trunk/result/HTML/test3.html
   packages/libxml2/trunk/result/HTML/test3.html.sax
   packages/libxml2/trunk/result/HTML/wired.html
   packages/libxml2/trunk/result/HTML/wired.html.sax
   packages/libxml2/trunk/result/ent2.sax
   packages/libxml2/trunk/result/ent2.sax2
   packages/libxml2/trunk/result/ent7.sax
   packages/libxml2/trunk/result/ent7.sax2
   packages/libxml2/trunk/result/schemas/any3_0_0.err
   packages/libxml2/trunk/result/schemas/bug303566_1_1.err
   packages/libxml2/trunk/result/xml2.sax
   packages/libxml2/trunk/result/xml2.sax2
   packages/libxml2/trunk/runsuite.c
   packages/libxml2/trunk/runtest.c
   packages/libxml2/trunk/test/relaxng/docbook_0.xml
   packages/libxml2/trunk/test/schemas/.memdump
   packages/libxml2/trunk/testC14N.c
   packages/libxml2/trunk/testHTML.c
   packages/libxml2/trunk/testReader.c
   packages/libxml2/trunk/testRegexp.c
   packages/libxml2/trunk/testSAX.c
   packages/libxml2/trunk/testThreads.c
   packages/libxml2/trunk/testXPath.c
   packages/libxml2/trunk/testapi.c
   packages/libxml2/trunk/threads.c
   packages/libxml2/trunk/tree.c
   packages/libxml2/trunk/uri.c
   packages/libxml2/trunk/valid.c
   packages/libxml2/trunk/win32/Makefile.msvc
   packages/libxml2/trunk/win32/configure.js
   packages/libxml2/trunk/win32/libxml2.def.src
   packages/libxml2/trunk/xinclude.c
   packages/libxml2/trunk/xml2-config.in
   packages/libxml2/trunk/xmlIO.c
   packages/libxml2/trunk/xmllint.c
   packages/libxml2/trunk/xmlmodule.c
   packages/libxml2/trunk/xmlreader.c
   packages/libxml2/trunk/xmlregexp.c
   packages/libxml2/trunk/xmlsave.c
   packages/libxml2/trunk/xmlschemas.c
   packages/libxml2/trunk/xmlschemastypes.c
   packages/libxml2/trunk/xmlstring.c
   packages/libxml2/trunk/xmlunicode.c
   packages/libxml2/trunk/xmlwriter.c
   packages/libxml2/trunk/xpath.c
   packages/libxml2/trunk/xpointer.c
   packages/libxml2/trunk/xstc/Makefile.in
Log:
New upstream release

Modified: packages/libxml2/trunk/ChangeLog
===================================================================
--- packages/libxml2/trunk/ChangeLog	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/ChangeLog	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,3 +1,616 @@
+Sun Sep  4 23:36:45 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* NEWS elfgcchack.h testapi.c doc/*: updated the docs and rebuild
+	  releasing 2.6.21
+	* include/libxml/threads.h threads.c: removed xmlIsThreadsEnabled()
+	* threads.c include/libxml/threads.h xmllint.c: added the more
+	  generic xmlHasFeature() as suggested by Bjorn Reese, xmllint uses it.
+
+Sun Sep  4 22:45:49 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in doc/* configure.in: prepare for release
+	* xpath.c: work for #303289, fix a formatting bug for MIN_INT
+
+Sun Sep  4 15:48:57 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* relaxng.c: real fix for #314881 and #314759 is was a bit more complex
+	  than initially expected as ctxt->error == NULL had behaviour side
+	  effects at the compilation level itself.
+
+Sun Sep  4 14:01:00 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* pattern.c xpath.c include/libxml/pattern.h: fixing yet another
+	  pattern induced XPath bug #314282
+	* relaxng.c: reverted back last change it was seriously broken
+
+Sat Sep  3 16:51:55 CEST 2005 Rob Richards <rrichards at ctindustries.net>
+
+	* xmlsave.c: check for NULL to prevent crash with meta elements
+
+Sat Sep  3 16:26:55 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* relaxng.c: structured error reporting problem with Relax-NG
+	  should fix #314881 and #314759
+
+Sat Sep  3 15:42:29 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* pattern.c: fixes a portability problem raised by C370 on Z/OS
+
+Sat Sep  3 15:26:31 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* SAX2.c tree.c valid.c: fixing a number of issues raised by xml:id
+	  but more generally related to attributes and ID handling, fixes
+	  #314358 among other things
+
+Fri Sep  2 14:26:43 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* encoding.c parserInternals.c: avoid passing a char[] as snprintf
+	  first argument.
+	* threads.c include/libxml/threads.h: implemented xmlIsThreadsEnabled()
+	  based on Andrew W. Nosenko idea.
+	* doc/* elfgcchack.h: regenerated the API
+
+Thu Sep  1 14:44:42 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: the use of AM_PATH_PYTHON is not portable enough
+	  reverting back to AM_PATH_PROG
+
+Thu Sep  1 11:42:39 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* HTMLparser.c: Applied the last patch from Gary Coady for #304637
+	  changing the behaviour when text nodes are found in body
+	* result/HTML/*: this changes the output of some tests
+
+Thu Sep  1 11:22:37 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* doc/downloads.html doc/xml.html: adding reference to Bull AIX rpms
+	  c.f. #160598
+
+Wed Aug 31 11:39:02 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xml2-config.in: removed the obsolete --libtool-libs option, c.f.
+	  bug #314853
+
+Fri Aug 26 17:33:26 CEST 2005 Rob Richards <rrichards at ctindustries.net>
+
+	* xmlsave.c: move handling of meta element for http-equiv in XHTML docs 
+	  to serialization and no longer modify internal tree.
+
+Fri Aug 26 00:51:58 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxml.spec.in: the profiling usually don't work, disabled
+	* doc/*: rebuilt
+
+Thu Aug 25 23:47:55 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: trying to fix the first part of #310033 by
+	  detecting gcc <= 3.2
+
+Thu Aug 25 22:13:37 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* error.c: fixed bug #310033, the URI extraction code given a
+	  node is a bit twisted and broke in the last months.
+
+Thu Aug 25 16:18:15 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* debugXML.c result/XPath/xptr/strrange2: uninitialized field and
+	  fix on test.
+
+Thu Aug 25 16:03:05 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* debugXML.c: change verbosity depending on API
+	* result/XPath/tests/* result/XPath/xptr/* result/xmlid/*: get back
+	  to previous outputs
+
+Thu Aug 25 15:14:56 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* HTMLparser.c parser.c SAX2.c debugXML.c tree.c valid.c xmlreader.c
+	  xmllint.c include/libxml/HTMLparser.h include/libxml/parser.h:
+	  added a parser XML_PARSE_COMPACT option to allocate small 
+	  text nodes (less than 8 bytes on 32bits, less than 16bytes on 64bits)
+	  directly within the node, various changes to cope with this.
+	* result/XPath/tests/* result/XPath/xptr/* result/xmlid/*: this 
+	  slightly change the output
+
+Thu Aug 25 12:16:26 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: patch from Andrew W. Nosenko, use se $GCC = 'yes'
+	  instead of $CC = 'gcc' because GCC may have a different name
+
+Thu Aug 25 00:18:20 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: changes the way the python binary is found, should
+	  also fix bug #308004
+
+Wed Aug 24 16:44:41 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* parser.c: found another bug while looking at #309616 on missing
+	  entities.
+	* result/ent2.sax* result/ent7.sax* result/xml2.sax*: this changed the
+	  SAX stream in missing conditions for a few tests
+
+Wed Aug 24 16:19:00 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* encoding.c: applied the patch suggested #309565 which can avoid
+	  looping in error conditions.
+
+Wed Aug 24 16:04:17 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* SAX2.c tree.c: line numbers are now carried by most nodes, fixing
+	  xmlGetLineNo() c.f. bug #309205
+
+Wed Aug 24 14:43:34 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* encoding.c error.c include/libxml/xmlerror.h: finally converted
+	  the encoding module to the common error reporting mechanism
+	* doc/* doc/html/libxml-xmlerror.html: rebuilt
+
+Wed Aug 24 11:35:26 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xpath.c: removed a potentially uninitialized variable error
+	* python/generator.py: fixed a deprecation warning
+	* python/tests/tstLastError.py: silent the damn test when Okay !
+
+Wed Aug 24 00:11:16 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* SAX2.c globals.c runtest.c testC14N.c testapi.c tree.c
+	  include/libxml/SAX2.h include/libxml/xmlregexp.h: fixed compilation
+	  when configured --without-sax1 and other cleanups fixes bug #172683
+	* doc/* elfgcchack.h: regenerated
+
+Tue Aug 23 20:05:05 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* parser.c: fixed bug #170489 reported by Jirka Kosek
+	* test/valid/objednavka.xml test/valid/dtds/objednavka.dtd
+	  result/valid/objednavka*: added the test to the regression suite.
+
+Tue Aug 23 18:04:08 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* HTMLparser.c include/libxml/HTMLparser.h: added a recovery mode
+	  for the HTML parser based on the suggestions of bug #169834 by
+	  Paul Loberg
+
+Tue Aug 23 15:38:46 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* elfgcchack.h testapi.c doc/*: regenerated
+	* schematron.c: fixed a compilation problem
+	* xmlregexp.c include/libxml/xmlregexp.h: some cleanups and one bug fix
+	* result/expr/base: slightly changes the number of Cons.
+
+Mon Aug 22 23:19:50 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* elfgcchack.h testapi.c doc/*: rescanned code and rebuilt
+	* xmlregexp.c: small cleanup
+	* include/libxml/schematron.h include/libxml/xmlexports.h
+	  include/libxml/xmlversion.h.in: cleanup problems from code scanner
+
+Mon Aug 22 18:00:18 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlschemastypes.c: applied patch from Kuba Nowakowski fixing bug
+	  #313982
+	* result/schemas/bug313982* test/schemas/bug313982*: also added
+	  the test case to the regression suite.
+
+Mon Aug 22 17:50:20 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* testRegexp.c: printed the wrong string
+
+Mon Aug 22 16:42:07 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* testRegexp.c xmlregexp.c include/libxml/xmlregexp.h: exported
+	  xmlExpExpDerive(), added it to the testRegexp command line 
+	  tool when providing multiple expressions.
+
+Mon Aug 22 14:57:13 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am result/expr/base test/expr/base: added the first
+	  regression test suite set for the new expression support
+
+Mon Aug 22 13:49:18 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* valid.c: fixed an uninitialized variable
+	* xmlregexp.c include/libxml/xmlregexp.h: extended the API to
+	  add the parser, serializer and some debugging
+	* include/libxml/xmlversion.h.in: made the new support compiled
+	  by default if Schemas is included
+	* testRegexp.c: cleanup and integration of the first part of the
+	  new code with a special switch
+	* xmllint.c: show up Expr in --version if compiled in
+	* include/libxml/tree.h: moved the xmlBuffer definition up
+
+Mon Aug 22 12:11:10 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* xmlschemas.c: Some preparation for the creation of a graph
+	  of imported/included/redefined schemas; this is needed for
+	  at least the redefinitions.
+	  Centralized the creation of the parser context in one function.
+
+Mon Aug 22 02:19:33 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlregexp.c include/libxml/xmlregexp.h: pushing the formal expression
+	  handling code to have it in CVs from now. Not plugged, and misses 
+	  APIs it's not compiled in yet.
+
+Sat Aug 20 23:13:27 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlreader.c: applied another patch from Rob Richards to fix
+	  xmlTextReaderGetAttributeNs and xmlTextReaderMoveToAttributeNs
+
+Wed Aug 17 09:06:33 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlreader.c: applied patch from Rob Richards to fix 
+	  xmlTextReaderGetAttribute behaviour with namespace declarations
+
+Fri Aug 12 14:12:56 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* xmlschemas.c include/libxml/xmlerror.h:
+	  Changed output for keyref-match errors; the target-node will
+	  be now reported rather than the scope-node of the keyref
+	  definition - allowing easier chasing of instance errors.
+	  This was reported by Guy Fabrice to the mailing list.
+	  Some initial parsing code for schema redefinitions.
+	* result/schemas/bug303566_1_1.err
+	  result/schemas/bug312957_1_0.err: Adapted test results due
+	  to the keyref changes.
+
+Fri Aug 12 12:17:52 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* valid.c: applied patch from Derek Poon fixing bug #310692
+
+Wed Aug 10 23:39:02 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlschemas.c: fix for bug #312945 as pointed by Dean Hill, the
+	  context type was not always properly initialized. 
+
+Wed Aug 10 18:21:41 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* relaxng.c: fixed bug #307377 about validation of choices in
+	  list values.
+	* test/relaxng/307377* result/relaxng/307377* Makefile.am runtest.c:
+	  added examples to the regression tests, problem is that streaming
+	  version gives slightly more informations.
+
+Wed Aug 10 15:25:53 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xinclude.c: fixed bug #302302, nasty but the fix is rather simple.
+
+Wed Aug 10 11:59:46 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* result/schemas/any6_1_0*: Added missing test results.
+
+Tue Aug  9 23:37:22 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlregexp.c: fixed a determinism detection problem exposed by
+	  ##other tests commited by Kasimier, also added a small speedup
+	  of determinism detection.
+	* test/results/any6_2_0* any8_1_0* any7_1_2* any7_2_2*: added 
+	  the results to the regression tests now
+
+Tue Aug  9 15:54:09 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* test/schemas/any7_2.xml test/schemas/any6_2.xsd
+	  test/schemas/any8_1.xsd test/schemas/any8_0.xml:
+	  Added some more tests for element wildcards.
+
+Tue Aug  9 14:22:47 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* xmlschemas.c: Fixed #312957 reported by Carol Hunter:
+	  streaming XPath states were not popped in every case,
+	  thus failed to resolve correctly for subsequent input.
+	* test/schemas/bug312957* result/schemas/bug312957*:
+	  Added the test submitted by Carol Hunter.
+
+Tue Aug  9 13:07:27 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlregexp.c xmlschemas.c: trying to nail down the remaining
+	  ##other issues
+	* result/schemas/any7* test/schemas/any7: completed the tests
+	  and added the results
+	* result/schemas/any3_0_0.err result/schemas/any5_0_0.err
+	  result/schemas/any5_1_0.err: this slightly chnages the output
+	  from 3 existing tests
+
+Mon Aug  8 22:33:08 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* nanoftp.c nanohttp.c xmlschemastypes.c: applied patch from 
+	  Marcus Boerger to remove warnings on Windows.
+
+Mon Aug  8 16:43:04 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlsave.c include/libxml/xmlsave.h: fixed #145092 by adding 
+	  an xmlSaveOption to omit XML declaration
+
+Mon Aug  8 15:44:54 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* HTMLtree.c: fixed bug #310333 with a patch close to the provided
+	  patch for HTML UTF-8 serialization
+	* result/HTML/script2.html: this changed the output of that test
+
+Mon Aug  8 15:01:51 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlregexp.c: fixed bug #310264, basically it's about reentrancy
+	  of count based transition, when going though the counter must
+	  be reset to 0
+	* test/schemas/bug310264* result/schemas/bug310264*: added the
+	  regression test.
+
+Mon Aug  8 14:40:52 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* xmlschemas.c: Fixed a memory leak: xmlSchemaFreeAnnot() was
+	  only freeing the first annotation in the list.
+
+Mon Aug  8 09:44:34 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlreader.c: applied patch from Rob Richards fixing
+	  xmlTextReaderGetAttribute
+
+Mon Aug  8 01:41:53 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* HTMLparser.c: fixed an uninitialized memory access spotted by
+	  valgrind
+
+Sun Aug  7 12:39:35 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* test/relaxng/docbook_0.xml: get rid of the dependancy on a locally
+	  installed DTD
+	* uri.c include/libxml/uri.h xmlIO.c nanoftp.c nanohttp.c: try to
+	  cleanup the Path/URI conversion mess, needed fixing in various 
+	  layers and a new API to the uri module which also fixes #306861
+	* runtest.c: integrated a regression test specific to check the
+	  URI conversions done before calling the I/O handlers.
+
+Sat Aug  6 11:06:24 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* doc/XSLT.html doc/xml.html: small doc fix for #312647
+
+Tue Aug  2 13:26:42 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* win32/configure.js: applied patch from Rob Richards to allow
+	  disabling modules in win32, fixes #304071
+
+Mon Aug  1 07:18:53 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxml.c: applied fix from Jakub Piotr Clapa for
+	  xmlAttr.parent(), closing #312181
+
+Sun Jul 31 18:48:55 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* schematron.c: report improvement
+	* test/schematron/zvon* result/schematron/zvon*: more tests
+
+Sun Jul 31 16:02:59 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* win32/Makefile.msvc win32/configure.js: applied patch from Rob
+	  Richards to add schematron to the build on Windows
+	* test/schematron/zvon3* result/schematron/zvon3*: second test
+	* test/schematron/zvon10* result/schematron/zvon10*: this is the
+	  real second test 10 and 2 are swapped.
+
+Sun Jul 31 15:42:31 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* schematron.c: more bug fixes, improve the error reporting.
+	* test/schematron/zvon2* result/schematron/zvon2*: second test
+
+Sun Jul 31 14:15:31 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* schematron.c xmllint.c: fixing the loop bug, fixing schematron
+	  text error rendering
+	* Makefile.am result/schematron/* test/schematron/zvon1*.sct:
+	  started integrating within "make tests"
+
+Sat Jul 30 17:26:58 EDT 2005 Daniel Veillard <daniel at veillard.com>
+
+	* test/schematron/*: a few first tests from Zvon unfortunately
+	  with the old syntax
+
+Sat Jul 30 17:08:07 EDT 2005 Daniel Veillard <daniel at veillard.com>
+
+	* schematron.c xmllint.c include/libxml/schematron.h: commiting
+	  work done on the plane last week-end
+
+Sat Jul 30 15:16:29 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* runtest.c: allows an extra argument to subset the tests
+	* xmlregexp.c: big speedup for validation, basically avoided
+	  transition creation explosion when removing epsilon transition
+	  
+Sat Jul 30 00:00:46 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am globals.c parserInternals.c xmlreader.c xmlunicode.c
+	  xmlwriter.c: more cleanups based on sparse reports, added 
+	  "make sparse"
+
+Fri Jul 29 12:11:25 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxml.c: don't output any message on failed resolver lookups,
+	  better done by the python user provided resolver layer.
+
+Fri Jul 29 01:48:02 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* HTMLparser.c SAX2.c encoding.c globals.c parser.c relaxng.c
+	  runsuite.c runtest.c schematron.c testHTML.c testReader.c
+	  testRegexp.c testSAX.c testThreads.c valid.c xinclude.c xmlIO.c
+	  xmllint.c xmlmodule.c xmlschemas.c xpath.c xpointer.c: a lot of 
+	  small cleanups based on Linus' sparse check output.
+
+Thu Jul 28 21:28:33 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* include/libxml/Makefile.am: added schematron.h, oops ...
+
+Thu Jul 28 02:38:21 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* xmlschemastypes.c: Added creation of the content type of
+	  xs:anyType. This is needed when trying to extend xs:anyType
+	  (although it makes no sense to extend it; IMHO the schema
+	  people should have ruled this out). This was reported
+	  by Yong Chen to the mailing list.
+	* xmlschemas.c: Fixed handling of xs:anyType in
+	  xmlSchemaCheckCOSCTExtends() (reported by Young Chen). Tiny
+	  adjustment to an error report output.
+	* test/schemas/extension2* result/schemas/extension2*:
+	  Added a test case provided by Young Chen.
+
+Mon Jul 25 11:41:18 PDT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* uri.c: enhanced xmlBuildRelativeURI to allow the URI and the
+	  base to be in "relative" form
+
+Sun Jul 24 10:25:41 EDT 2005 Daniel Veillard <daniel at veillard.com>
+
+	* schematron.c xmllint.c: started adding schematron to the xmllint
+	  tool, the report infrastructure is gonna be fun.
+
+Sat Jul 23 23:23:51 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* test/schemas/any6* test/schemas/any7*: Added regression tests
+	  (they fail currently), but did not added results yet.
+
+Sat Jul 23 23:07:05 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* xmlschemas.c: Removed the workaround code in
+	  xmlSchemaValidateElemWildcard() for the <any> wildcard
+	  with namespace == ##other. Support for such wildcards was
+	  implemented by Daniel at the automaton level recently, and
+	  the workaround code iterfered with it.
+
+Sat Jul 23 10:55:50 EDT 2005 Daniel Veillard <daniel at veillard.com>
+
+	* pattern.c include/libxml/pattern.h: changed xmlPatterncompile
+	  signature to pass an int and not an enum since it can generate
+	  ABI compat troubles.
+	* include/libxml/schematron.h schematron.c: adding the new 
+	  schematron code, work in progress lots to be left and needing
+	  testing
+	* include/libxml/xmlversion.h.in include/libxml/xmlwin32version.h.in
+	  Makefile.am configure.in: integration of schematron into the
+	  build
+	* xpath.c include/libxml/xpath.h: adding flags to control compilation
+	  options right now just XML_XPATH_CHECKNS.
+
+Sat Jul 23 16:39:35 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* xmlschemas.c: Removed an "internal error" message from
+	  xmlSchemaBuildAContentModel() when an empty model group
+	  definition is hit.
+
+Sat Jul 23 00:34:07 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* pattern.c: Changed xmlCompileStepPattern() and
+	  xmlCompileAttributeTest() to handle the "xml" prefix without
+	  caring if the XML namespace was supplied by the user.
+
+Fri Jul 22 00:08:43 CEST 2005 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* xmlschemas.c: Fixed xmlSchemaPSimpleTypeErr(), which did not
+	  output the given string arguments correctly.
+
+Thu Jul 21 09:21:00 EDT 2005 Daniel Veillard <daniel at veillard.com>
+
+	* error.c globals.c parser.c runtest.c testHTML.c testSAX.c
+	  threads.c valid.c xmllint.c xmlreader.c xmlschemas.c xmlstring.c
+	  xmlwriter.c include/libxml/parser.h include/libxml/relaxng.h
+	  include/libxml/valid.h include/libxml/xmlIO.h
+	  include/libxml/xmlerror.h include/libxml/xmlexports.h
+	  include/libxml/xmlschemas.h: applied a patch from Marcus Boerger
+	  to fix problems with calling conventions on Windows this should
+	  fix #309757
+
+Wed Jul 20 14:45:39 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* parser.c: an optimization of the char data inner loop,
+	  can gain up to 10% in pure SAX2 parsing speed
+	* xmlschemas.c: applied patch from Kupriyanov Anatolij fixing
+	  a bug in XML Schemas facet comparison #310893
+
+Tue Jul 19 17:27:26 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlregexp.c xmlschemas.c: fixed the error reporting for
+	  not transitions
+	* result/schemas/any5_0_0* result/schemas/any5_0_2*
+	  result/schemas/any5_1_0*: fixed output
+
+Tue Jul 19 15:34:12 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlregexp.c xmlschemas.c include/libxml/xmlautomata.h: fixing
+	  bug #172215 about foreign namespaces by adding support for
+	  negated string transitions. Error messages still need to be
+	  improved.
+	* test/schemas/any5* result/schemas/any5*: adding regression
+	  tests for this.
+
+Tue Jul 19 12:33:31 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tree.c: applied patch from Alexander Pohoyda fixing xmlGetNodePath
+	  on namespaced attributes #310417.
+
+Mon Jul 18 23:01:15 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* doc/xmllint.1 doc/xmllint.html doc/xmllint.xml: --nonet was
+	  ducplicated
+
+Mon Jul 18 20:49:28 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlschemas.c: fixed xsd:all when used in conjunction with
+	  substitution groups
+	* test/schemas/allsg_* result/schemas/allsg_*: adding specific
+	  regression tests, strangely missing from NIST/Sun/Microsoft
+	  testsuites
+
+Sun Jul 17 07:11:27 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlschemas.c: fixed bug #307508, a bad automata was built but
+	  this showed as an indeterminist result
+
+Thu Jul 14 17:53:02 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xmlschemastypes.c: found the last bug raised by NIST tests in
+	  comparing base64 strings, result from runsuite:
+	  ## NIST test suite for Schemas version NIST2004-01-14
+	  Ran 23170 tests (3953 schemata), no errors
+
+Thu Jul 14 14:57:36 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* testRegexp.c: fixed where xmlMemoryDump() should be called.
+	* xmlregexp.c: fixed handling of {0}, \n, \r and \t, two bugs
+	  affecting NIST regression tests
+
+Thu Jul 14 11:30:24 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: applied a patch from Gerrit P. Haase to add
+	  module support on cygwin
+
+Thu Jul 14 10:56:42 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* HTMLparser.c: fixed a potential buffer overrun error introduced
+	  on last commit to htmlParseScript() c.f. #310229
+
+Thu Jul 14 23:48:17 PDT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* xpath.c: Changed the behaviour of xmlXPathEqualNodeSetFloat to
+	  return TRUE if a nodeset with a numeric value of NaN is compared
+	  for inequality with any numeric value (bug 309914).
+	  
+Thu Jul 14 01:03:03 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* error.c relaxng.c xmlreader.c xmlschemas.c include/libxml/relaxng.h
+	  include/libxml/xmlschemas.h: applied patch from Marcus Boerger
+	  to route relaxng and schemas error messages when using the reader
+	  through the structured interface if activated.
+	* elfgcchack.h doc/* testapi.c: rebuilt since this add  new APIs
+	  to test.
+
+Wed Jul 13 18:35:47 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* HTMLparser.c: applied UTF-8 script parsing bug #310229 fix from
+	  Jiri Netolicky 
+	* result/HTML/script2.html* test/HTML/script2.html: added the test
+	  case from the regression suite
+
+Tue Jul 12 17:08:11 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* nanohttp.c: fixed bug #310105 with http_proxy environments with
+	  patch provided by Peter Breitenlohner
+
 Mon Jul 11 00:28:10 CEST 2005 Daniel Veillard <daniel at veillard.com>
 
 	* Makefile.am NEWS configure.in doc/*: preparing release 2.6.20 

Modified: packages/libxml2/trunk/HTMLparser.c
===================================================================
--- packages/libxml2/trunk/HTMLparser.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/HTMLparser.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -192,16 +192,16 @@
     const xmlChar *ret;
 
     if (ctxt->nameNr <= 0)
-        return (0);
+        return (NULL);
     ctxt->nameNr--;
     if (ctxt->nameNr < 0)
-        return (0);
+        return (NULL);
     if (ctxt->nameNr > 0)
         ctxt->name = ctxt->nameTab[ctxt->nameNr - 1];
     else
         ctxt->name = NULL;
     ret = ctxt->nameTab[ctxt->nameNr];
-    ctxt->nameTab[ctxt->nameNr] = 0;
+    ctxt->nameTab[ctxt->nameNr] = NULL;
     return (ret);
 }
 
@@ -964,7 +964,6 @@
 static const char *htmlNoContentElements[] = {
     "html",
     "head",
-    "body",
     NULL
 };
 
@@ -2042,6 +2041,7 @@
     unsigned int i;
     int j;
     xmlNodePtr lastChild;
+    xmlDtdPtr dtd;
 
     for (j = 0;j < len;j++)
         if (!(IS_BLANK_CH(str[j]))) return(0);
@@ -2054,8 +2054,17 @@
 	return(1);
     if (xmlStrEqual(ctxt->name, BAD_CAST"head"))
 	return(1);
-    if (xmlStrEqual(ctxt->name, BAD_CAST"body"))
-	return(1);
+
+    /* Only strip CDATA children of the body tag for strict HTML DTDs */
+    if (xmlStrEqual(ctxt->name, BAD_CAST "body") && ctxt->myDoc != NULL) {
+        dtd = xmlGetIntSubset(ctxt->myDoc);
+        if (dtd != NULL && dtd->ExternalID != NULL) {
+            if (!xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4.01//EN") ||
+                    !xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4//EN"))
+                return(1);
+        }
+    }
+
     if (ctxt->node == NULL) return(0);
     lastChild = xmlGetLastChild(ctxt->node);
     while ((lastChild) && (lastChild->type == XML_COMMENT_NODE))
@@ -2627,12 +2636,12 @@
  */
 static void
 htmlParseScript(htmlParserCtxtPtr ctxt) {
-    xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 1];
+    xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 5];
     int nbchar = 0;
-    xmlChar cur;
+    int cur,l;
 
     SHRINK;
-    cur = CUR;
+    cur = CUR_CHAR(l);
     while (IS_CHAR_CH(cur)) {
 	if ((cur == '<') && (NXT(1) == '!') && (NXT(2) == '-') &&
 	    (NXT(3) == '-')) {
@@ -2648,20 +2657,39 @@
 	    }
 	    nbchar = 0;
 	    htmlParseComment(ctxt);
-	    cur = CUR;
+	    cur = CUR_CHAR(l);
 	    continue;
 	} else if ((cur == '<') && (NXT(1) == '/')) {
-	    /*
-	     * One should break here, the specification is clear:
-	     * Authors should therefore escape "</" within the content.
-	     * Escape mechanisms are specific to each scripting or
-	     * style sheet language.
-	     */
-	    if (((NXT(2) >= 'A') && (NXT(2) <= 'Z')) ||
-	        ((NXT(2) >= 'a') && (NXT(2) <= 'z')))
-		break; /* while */
+            /*
+             * One should break here, the specification is clear:
+             * Authors should therefore escape "</" within the content.
+             * Escape mechanisms are specific to each scripting or
+             * style sheet language.
+             *
+             * In recovery mode, only break if end tag match the
+             * current tag, effectively ignoring all tags inside the
+             * script/style block and treating the entire block as
+             * CDATA.
+             */
+            if (ctxt->recovery) {
+                if (xmlStrncasecmp(ctxt->name, ctxt->input->cur+2, 
+				   xmlStrlen(ctxt->name)) == 0) 
+                {
+                    break; /* while */
+                } else {
+		    htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
+				 "Element %s embbeds close tag\n",
+		                 ctxt->name, NULL);
+		}
+            } else {
+                if (((NXT(2) >= 'A') && (NXT(2) <= 'Z')) ||
+                    ((NXT(2) >= 'a') && (NXT(2) <= 'z'))) 
+                {
+                    break; /* while */
+                }
+            }
 	}
-	buf[nbchar++] = cur;
+	COPY_BUF(l,buf,nbchar,cur);
 	if (nbchar >= HTML_PARSER_BIG_BUFFER_SIZE) {
 	    if (ctxt->sax->cdataBlock!= NULL) {
 		/*
@@ -2673,9 +2701,10 @@
 	    }
 	    nbchar = 0;
 	}
-	NEXT;
-	cur = CUR;
+	NEXTL(l);
+	cur = CUR_CHAR(l);
     }
+
     if (!(IS_CHAR_CH(cur))) {
 	htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
 	                "Invalid char in CDATA 0x%X\n", cur);
@@ -2743,6 +2772,8 @@
 	}
     }
     if (nbchar != 0) {
+        buf[nbchar] = 0;
+
 	/*
 	 * Ok the segment is to be consumed as chars.
 	 */
@@ -3578,6 +3609,15 @@
     if ((!IS_CHAR_CH(CUR)) || (CUR != '>')) {
         htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
 	             "End tag : expected '>'\n", NULL, NULL);
+	if (ctxt->recovery) {
+	    /*
+	     * We're not at the ending > !!
+	     * Error, unless in recover mode where we search forwards
+	     * until we find a >
+	     */
+	    while (CUR != '\0' && CUR != '>') NEXT;
+	    NEXT;
+	}
     } else
         NEXT;
 
@@ -5176,10 +5216,18 @@
         (ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF))  {
 	int base = ctxt->input->base - ctxt->input->buf->buffer->content;
 	int cur = ctxt->input->cur - ctxt->input->base;
+	int res;
 	
-	xmlParserInputBufferPush(ctxt->input->buf, size, chunk);	      
+	res = xmlParserInputBufferPush(ctxt->input->buf, size, chunk);	      
+	if (res < 0) {
+	    ctxt->errNo = XML_PARSER_EOF;
+	    ctxt->disableSAX = 1;
+	    return (XML_PARSER_EOF);
+	}
 	ctxt->input->base = ctxt->input->buf->buffer->content + base;
 	ctxt->input->cur = ctxt->input->base + cur;
+	ctxt->input->end =
+	  &ctxt->input->buf->buffer->content[ctxt->input->buf->buffer->use];
 #ifdef DEBUG_PUSH
 	xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size);
 #endif
@@ -5777,6 +5825,14 @@
 	ctxt->options |= XML_PARSE_NOBLANKS;
     } else
         ctxt->keepBlanks = 1;
+    if (options & HTML_PARSE_RECOVER) {
+        ctxt->recovery = 1;
+    } else
+        ctxt->recovery = 0;
+    if (options & HTML_PARSE_COMPACT) {
+	ctxt->options |= HTML_PARSE_COMPACT;
+        options -= HTML_PARSE_COMPACT;
+    }
     ctxt->dictNames = 0;
     return (options);
 }

Modified: packages/libxml2/trunk/HTMLtree.c
===================================================================
--- packages/libxml2/trunk/HTMLtree.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/HTMLtree.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -552,6 +552,8 @@
 		*size = 0;
 		return;
 	    }
+	} else {
+	    handler = xmlFindCharEncodingHandler(encoding);
 	}
     }
 
@@ -1026,6 +1028,8 @@
 	    handler = xmlFindCharEncodingHandler(encoding);
 	    if (handler == NULL)
 		return(-1);
+	} else {
+	    handler = xmlFindCharEncodingHandler(encoding);
 	}
     }
 

Modified: packages/libxml2/trunk/Makefile.am
===================================================================
--- packages/libxml2/trunk/Makefile.am	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/Makefile.am	2005-09-05 17:42:20 UTC (rev 466)
@@ -27,7 +27,8 @@
 		catalog.c globals.c threads.c c14n.c xmlstring.c \
 		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
 		triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
-		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c
+		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
+		xmlmodule.c schematron.c
 else
 libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c  \
 		parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c  \
@@ -37,7 +38,7 @@
 		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
 		xmlreader.c relaxng.c dict.c SAX2.c \
 		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
-		xmlmodule.c
+		xmlmodule.c schematron.c
 endif
 
 DEPS = $(top_builddir)/libxml2.la
@@ -158,7 +159,7 @@
 
 testall : tests SVGtests SAXtests
 
-tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@  @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@
+tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@  @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_SCHEMATRON@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@
 	@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \
 	    $(MAKE) MAKEFLAGS+=--silent tests ; fi)
 	@(cd doc/examples ; $(MAKE) MAKEFLAGS+=--silent tests)
@@ -821,6 +822,21 @@
 	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
+	@echo "## Formal expresssions regression tests"
+	-@(for i in $(srcdir)/test/expr/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/expr/$$name ] ; then \
+	      echo New test file $$name ; \
+	      $(CHECKER) $(top_builddir)/testRegexp --expr -i $$i > $(srcdir)/result/expr/$$name; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	  else \
+	      log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/expr/$$name result.$$name` ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      rm result.$$name ; \
+	  fi ; fi ; done)
 
 Automatatests: testAutomata$(EXEEXT)
 	@(echo > .memdump)
@@ -997,7 +1013,7 @@
 		    > res.$$name 2> err.$$name;\
 	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
-		  if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" ] ; then \
+		  if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" ] ; then \
 		      diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
 			   err.$$name | grep -v "error detected at";\
 		  fi ; grep Unimplemented err.$$name`; \
@@ -1006,6 +1022,35 @@
 	       fi ; fi ; \
 	  done; done)
 
+Schematrontests: xmllint$(EXEEXT)
+	@(echo > .memdump)
+	@echo "## Schematron regression tests"
+	-@(for i in $(srcdir)/test/schematron/*.sct ; do \
+	  name=`basename $$i | sed 's+\.sct++'`; \
+	  for j in $(srcdir)/test/schematron/"$$name"_*.xml ; do \
+	      if [ -f $$j ] ; then \
+	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+	      if [ ! -f $(srcdir)/result/schematron/"$$name"_"$$xno" ]; \
+	      then \
+		  echo New test file "$$name"_"$$xno" ; \
+		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
+		    > $(srcdir)/result/schematron/"$$name"_"$$xno" \
+		    2> $(srcdir)/result/schematron/"$$name"_"$$xno".err; \
+	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      else \
+	          log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
+		    > res.$$name 2> err.$$name;\
+	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	          diff $(srcdir)/result/schematron/"$$name"_"$$xno" \
+		       res.$$name;\
+	          diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \
+		       err.$$name | grep -v "error detected at";\
+		  grep Unimplemented err.$$name`; \
+		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
+	          rm res.$$name err.$$name ; \
+	       fi ; fi ; \
+	  done; done)
+
 RelaxNGPythonTests:
 	@(if [ -x $(PYTHON) ] ; then \
 	    PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH ; \
@@ -1134,3 +1179,6 @@
 
 tst: tst.c
 	$(CC) $(CFLAGS) -Iinclude -o tst tst.c .libs/libxml2.a -lpthread -lm -lz
+
+sparse: clean
+	$(MAKE) CC=cgcc

Modified: packages/libxml2/trunk/Makefile.in
===================================================================
--- packages/libxml2/trunk/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -78,7 +78,8 @@
 	DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
 	xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
 	xmlreader.c relaxng.c dict.c SAX2.c xmlwriter.c legacy.c \
-	chvalid.c pattern.c xmlsave.c xmlmodule.c triostr.c trio.c
+	chvalid.c pattern.c xmlsave.c xmlmodule.c schematron.c \
+	triostr.c trio.c
 @WITH_TRIO_SOURCES_FALSE at am_libxml2_la_OBJECTS = SAX.lo entities.lo \
 @WITH_TRIO_SOURCES_FALSE@	encoding.lo error.lo \
 @WITH_TRIO_SOURCES_FALSE@	parserInternals.lo parser.lo tree.lo \
@@ -93,7 +94,7 @@
 @WITH_TRIO_SOURCES_FALSE@	xmlunicode.lo xmlreader.lo relaxng.lo \
 @WITH_TRIO_SOURCES_FALSE@	dict.lo SAX2.lo xmlwriter.lo \
 @WITH_TRIO_SOURCES_FALSE@	legacy.lo chvalid.lo pattern.lo \
- at WITH_TRIO_SOURCES_FALSE@	xmlsave.lo xmlmodule.lo
+ at WITH_TRIO_SOURCES_FALSE@	xmlsave.lo xmlmodule.lo schematron.lo
 @WITH_TRIO_SOURCES_TRUE at am_libxml2_la_OBJECTS = SAX.lo entities.lo \
 @WITH_TRIO_SOURCES_TRUE@	encoding.lo error.lo \
 @WITH_TRIO_SOURCES_TRUE@	parserInternals.lo parser.lo tree.lo \
@@ -109,7 +110,7 @@
 @WITH_TRIO_SOURCES_TRUE@	xmlreader.lo relaxng.lo dict.lo \
 @WITH_TRIO_SOURCES_TRUE@	SAX2.lo xmlwriter.lo legacy.lo \
 @WITH_TRIO_SOURCES_TRUE@	chvalid.lo pattern.lo xmlsave.lo \
- at WITH_TRIO_SOURCES_TRUE@	xmlmodule.lo
+ at WITH_TRIO_SOURCES_TRUE@	xmlmodule.lo schematron.lo
 libxml2_la_OBJECTS = $(am_libxml2_la_OBJECTS)
 testdso_la_LIBADD =
 am_testdso_la_OBJECTS = testdso.lo
@@ -170,6 +171,7 @@
 @AMDEP_TRUE@	./$(DEPDIR)/parserInternals.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/pattern.Plo ./$(DEPDIR)/relaxng.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/runsuite.Po ./$(DEPDIR)/runtest.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/schematron.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/testAutomata.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/testC14N.Po ./$(DEPDIR)/testHTML.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/testModule.Po \
@@ -350,6 +352,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -385,6 +388,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@
@@ -467,7 +471,7 @@
 @WITH_TRIO_SOURCES_FALSE@		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
 @WITH_TRIO_SOURCES_FALSE@		xmlreader.c relaxng.c dict.c SAX2.c \
 @WITH_TRIO_SOURCES_FALSE@		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
- at WITH_TRIO_SOURCES_FALSE@		xmlmodule.c
+ at WITH_TRIO_SOURCES_FALSE@		xmlmodule.c schematron.c
 
 @WITH_TRIO_SOURCES_TRUE at libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c  \
 @WITH_TRIO_SOURCES_TRUE@		parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c  \
@@ -476,7 +480,8 @@
 @WITH_TRIO_SOURCES_TRUE@		catalog.c globals.c threads.c c14n.c xmlstring.c \
 @WITH_TRIO_SOURCES_TRUE@		xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
 @WITH_TRIO_SOURCES_TRUE@		triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
- at WITH_TRIO_SOURCES_TRUE@		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c
+ at WITH_TRIO_SOURCES_TRUE@		xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
+ at WITH_TRIO_SOURCES_TRUE@		xmlmodule.c schematron.c
 
 DEPS = $(top_builddir)/libxml2.la
 LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@
@@ -820,6 +825,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/relaxng.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/runsuite.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/runtest.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/schematron.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/testAutomata.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/testC14N.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/testHTML.Po at am__quote@
@@ -1442,7 +1448,7 @@
 
 testall : tests SVGtests SAXtests
 
-tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@  @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@
+tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@  @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_SCHEMATRON@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@
 	@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \
 	    $(MAKE) MAKEFLAGS+=--silent tests ; fi)
 	@(cd doc/examples ; $(MAKE) MAKEFLAGS+=--silent tests)
@@ -2105,6 +2111,21 @@
 	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
+	@echo "## Formal expresssions regression tests"
+	-@(for i in $(srcdir)/test/expr/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/expr/$$name ] ; then \
+	      echo New test file $$name ; \
+	      $(CHECKER) $(top_builddir)/testRegexp --expr -i $$i > $(srcdir)/result/expr/$$name; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	  else \
+	      log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/expr/$$name result.$$name` ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      rm result.$$name ; \
+	  fi ; fi ; done)
 
 Automatatests: testAutomata$(EXEEXT)
 	@(echo > .memdump)
@@ -2281,7 +2302,7 @@
 		    > res.$$name 2> err.$$name;\
 	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
-		  if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" ] ; then \
+		  if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" ] ; then \
 		      diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
 			   err.$$name | grep -v "error detected at";\
 		  fi ; grep Unimplemented err.$$name`; \
@@ -2290,6 +2311,35 @@
 	       fi ; fi ; \
 	  done; done)
 
+Schematrontests: xmllint$(EXEEXT)
+	@(echo > .memdump)
+	@echo "## Schematron regression tests"
+	-@(for i in $(srcdir)/test/schematron/*.sct ; do \
+	  name=`basename $$i | sed 's+\.sct++'`; \
+	  for j in $(srcdir)/test/schematron/"$$name"_*.xml ; do \
+	      if [ -f $$j ] ; then \
+	      xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
+	      if [ ! -f $(srcdir)/result/schematron/"$$name"_"$$xno" ]; \
+	      then \
+		  echo New test file "$$name"_"$$xno" ; \
+		  $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
+		    > $(srcdir)/result/schematron/"$$name"_"$$xno" \
+		    2> $(srcdir)/result/schematron/"$$name"_"$$xno".err; \
+	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      else \
+	          log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
+		    > res.$$name 2> err.$$name;\
+	          grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	          diff $(srcdir)/result/schematron/"$$name"_"$$xno" \
+		       res.$$name;\
+	          diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \
+		       err.$$name | grep -v "error detected at";\
+		  grep Unimplemented err.$$name`; \
+		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
+	          rm res.$$name err.$$name ; \
+	       fi ; fi ; \
+	  done; done)
+
 RelaxNGPythonTests:
 	@(if [ -x $(PYTHON) ] ; then \
 	    PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH ; \
@@ -2383,6 +2433,9 @@
 
 tst: tst.c
 	$(CC) $(CFLAGS) -Iinclude -o tst tst.c .libs/libxml2.a -lpthread -lm -lz
+
+sparse: clean
+	$(MAKE) CC=cgcc
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:

Modified: packages/libxml2/trunk/NEWS
===================================================================
--- packages/libxml2/trunk/NEWS	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/NEWS	2005-09-05 17:42:20 UTC (rev 466)
@@ -15,6 +15,45 @@
 to the CVS at 
 http://cvs.gnome.org/viewcvs/libxml2/
  code base.There is the list of public releases:
+2.6.21: Sep 4 2005:
+   - build fixes: Cygwin portability fixes (Gerrit P. Haase), calling
+      convention problems on Windows (Marcus Boerger), cleanups based on
+      Linus' sparse tool, update of win32/configure.js (Rob Richards),
+      remove warnings on Windows(Marcus Boerger), compilation without SAX1,
+      detection of the Python binary, use $GCC inestad of $CC = 'gcc' (Andrew
+      W. Nosenko), compilation/link with threads and old gcc, compile
+      problem by C370 on Z/OS, 
+   - bug fixes: http_proxy environments (Peter Breitenlohner), HTML UTF-8
+      bug (Jiri Netolicky), XPath NaN compare bug (William Brack), 
+      htmlParseScript potential bug, Schemas regexp handling of spaces,
+      Base64 Schemas comparisons NIST passes, automata build error xsd:all,
+      xmlGetNodePath for namespaced attributes (Alexander Pohoyda),
+      xmlSchemas foreign namespaces handling, XML Schemas facet comparison
+      (Kupriyanov Anatolij), xmlSchemaPSimpleTypeErr error report (Kasimier
+      Buchcik), xml: namespace ahndling in Schemas (Kasimier), empty model
+      group in Schemas (Kasimier), wilcard in Schemas (Kasimier), URI 
+      composition (William), xs:anyType in Schemas (Kasimier), Python resolver
+      emmitting error messages directly, Python xmlAttr.parent (Jakub Piotr
+      Clapa), trying to fix the file path/URI conversion, 
+      xmlTextReaderGetAttribute fix (Rob Richards), xmlSchemaFreeAnnot memleak
+      (Kasimier), HTML UTF-8 serialization, streaming XPath, Schemas determinism
+      detection problem, XInclude bug, Schemas context type (Dean Hill),
+      validation fix (Derek Poon), xmlTextReaderGetAttribute[Ns] namespaces
+      (Rob Richards), Schemas type fix (Kuba Nowakowski), UTF-8 parser bug,
+      error in encoding handling, xmlGetLineNo fixes, bug on entities handling,
+      entity name extraction in error handling with XInclude, text nodes
+      in HTML body tags (Gary Coady), xml:id and IDness at the treee level
+      fixes, XPath streaming patterns bugs.
+   - improvements: structured interfaces for schemas and RNG error reports
+      (Marcus Boerger), optimization of the char data inner loop parsing
+      (thanks to Behdad Esfahbod for the idea), schematron validation
+      though not finished yet, xmlSaveOption to omit XML declaration,
+      keyref match error reports (Kasimier), formal expression handling
+      code not plugged yet, more lax mode for the HTML parser, 
+      parser XML_PARSE_COMPACT option for text nodes allocation.
+   - documentation: xmllint man page had --nonet duplicated
+
+
 2.6.20: Jul 10 2005:
    -  build fixes: Windows build (Rob Richards), Mingw compilation (Igor
        Zlatkovic), Windows Makefile (Igor), gcc warnings (Kasimier and

Modified: packages/libxml2/trunk/SAX2.c
===================================================================
--- packages/libxml2/trunk/SAX2.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/SAX2.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -227,7 +227,7 @@
 xmlSAX2GetSystemId(void *ctx)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
-    if ((ctx == NULL) || (ctxt->input == NULL)) return(0);
+    if ((ctx == NULL) || (ctxt->input == NULL)) return(NULL);
     return((const xmlChar *) ctxt->input->filename); 
 }
 
@@ -1022,7 +1022,7 @@
     }
 }
 
-#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
 /**
  * xmlSAX2AttributeInternal:
  * @ctx: the user data (XML parser context)
@@ -1316,11 +1316,7 @@
 	 * when validating, the ID registration is done at the attribute
 	 * validation level. Otherwise we have to do specific handling here.
 	 */
-	if (xmlIsID(ctxt->myDoc, ctxt->node, ret))
-	    xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret);
-	else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret))
-	    xmlAddRef(&ctxt->vctxt, ctxt->myDoc, value, ret);
-	else if (xmlStrEqual(fullname, BAD_CAST "xml:id")) {
+	if (xmlStrEqual(fullname, BAD_CAST "xml:id")) {
 	    /*
 	     * Add the xml:id value
 	     *
@@ -1332,7 +1328,10 @@
 			    (const char *) value, NULL);
 	    }
 	    xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret);
-	}
+	} else if (xmlIsID(ctxt->myDoc, ctxt->node, ret))
+	    xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret);
+	else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret))
+	    xmlAddRef(&ctxt->vctxt, ctxt->myDoc, value, ret);
     }
 
 error:
@@ -1777,6 +1776,7 @@
         xmlErrMemory(ctxt, "xmlSAX2Characters");
 	return(NULL);
     }
+    memset(ret, 0, sizeof(xmlNode));
     /*
      * intern the formatting blanks found between tags, or the
      * very short strings
@@ -1784,7 +1784,14 @@
     if (ctxt->dictNames) {
         xmlChar cur = str[len];
 
-	if ((len <= 3) && ((cur == '"') || (cur == '\'') ||
+	if ((len < (int) (2 * sizeof(void *))) &&
+	    (ctxt->options & XML_PARSE_COMPACT)) {
+	    /* store the string in the node overrithing properties and nsDef */
+	    xmlChar *tmp = (xmlChar *) &(ret->properties);
+	    memcpy(tmp, str, len);
+	    tmp[len] = 0;
+	    intern = tmp;
+	} else if ((len <= 3) && ((cur == '"') || (cur == '\'') ||
 	    ((cur == '<') && (str[len + 1] != '!')))) {
 	    intern = xmlDictLookup(ctxt->dict, str, len);
 	} else if (IS_BLANK_CH(*str) && (len < 60) && (cur == '<') &&
@@ -1798,7 +1805,6 @@
 	}
     }
 skip:
-    memset(ret, 0, sizeof(xmlNode));
     ret->type = XML_TEXT_NODE;
 
     ret->name = xmlStringText;
@@ -2040,16 +2046,7 @@
 	 * when validating, the ID registration is done at the attribute
 	 * validation level. Otherwise we have to do specific handling here.
 	 */
-	if (xmlIsID(ctxt->myDoc, ctxt->node, ret)) {
-	    /* might be worth duplicate entry points and not copy */
-	    if (dup == NULL)
-	        dup = xmlStrndup(value, valueend - value);
-	    xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret);
-	} else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret)) {
-	    if (dup == NULL)
-	        dup = xmlStrndup(value, valueend - value);
-	    xmlAddRef(&ctxt->vctxt, ctxt->myDoc, dup, ret);
-        } else if ((prefix == ctxt->str_xml) &&
+        if ((prefix == ctxt->str_xml) &&
 	           (localname[0] == 'i') && (localname[1] == 'd') &&
 		   (localname[2] == 0)) {
 	    /*
@@ -2067,6 +2064,15 @@
 	    }
 #endif
 	    xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret);
+	} else if (xmlIsID(ctxt->myDoc, ctxt->node, ret)) {
+	    /* might be worth duplicate entry points and not copy */
+	    if (dup == NULL)
+	        dup = xmlStrndup(value, valueend - value);
+	    xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret);
+	} else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret)) {
+	    if (dup == NULL)
+	        dup = xmlStrndup(value, valueend - value);
+	    xmlAddRef(&ctxt->vctxt, ctxt->myDoc, dup, ret);
 	}
     }
     if (dup != NULL)
@@ -2407,9 +2413,12 @@
 	     * We try to minimaze realloc() uses and avoid copying
 	     * and recomputing length over and over.
 	     */
-	    if ((ctxt->nodemem == ctxt->nodelen + 1) &&
-	        (xmlDictOwns(ctxt->dict, lastChild->content))) {
+	    if (lastChild->content == (xmlChar *)&(lastChild->properties)) {
 		lastChild->content = xmlStrdup(lastChild->content);
+		lastChild->properties = NULL;
+	    } else if ((ctxt->nodemem == ctxt->nodelen + 1) &&
+	               (xmlDictOwns(ctxt->dict, lastChild->content))) {
+		lastChild->content = xmlStrdup(lastChild->content);
 	    }
 	    if (ctxt->nodelen + len >= ctxt->nodemem) {
 		xmlChar *newbuf;
@@ -2496,6 +2505,14 @@
     if (ret == NULL) return;
     parent = ctxt->node;
 
+    if (ctxt->linenumbers) {
+	if (ctxt->input != NULL) {
+	    if (ctxt->input->line < 65535)
+		ret->line = (short) ctxt->input->line;
+	    else
+	        ret->line = 65535;
+	}
+    }
     if (ctxt->inSubset == 1) {
 	xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset, ret);
 	return;
@@ -2548,6 +2565,14 @@
 #endif
     ret = xmlNewDocComment(ctxt->myDoc, value);
     if (ret == NULL) return;
+    if (ctxt->linenumbers) {
+	if (ctxt->input != NULL) {
+	    if (ctxt->input->line < 65535)
+		ret->line = (short) ctxt->input->line;
+	    else
+	        ret->line = 65535;
+	}
+    }
 
     if (ctxt->inSubset == 1) {
 	xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset, ret);

Modified: packages/libxml2/trunk/config.guess
===================================================================
--- packages/libxml2/trunk/config.guess	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/config.guess	2005-09-05 17:42:20 UTC (rev 466)
@@ -3,7 +3,7 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 #   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-timestamp='2005-04-22'
+timestamp='2005-08-03'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -17,13 +17,15 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+
 # Originally written by Per Bothner <per at bothner.com>.
 # Please send patches to <config-patches at gnu.org>.  Submit a context
 # diff and a properly formatted ChangeLog entry.
@@ -66,11 +68,11 @@
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit 0 ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )	# Use stdin as input.
@@ -123,7 +125,7 @@
 	;;
  ,,*)   CC_FOR_BUILD=$CC ;;
  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi at noc.rutgers.edu 1994-08-24)
@@ -196,55 +198,20 @@
 	# contains redundant information, the shorter form:
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amd64:OpenBSD:*:*)
-	echo x86_64-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    cats:OpenBSD:*:*)
-	echo arm-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    luna88k:OpenBSD:*:*)
-    	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mips64-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
     *:ekkoBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     macppc:MirBSD:*:*)
 	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:MirBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     alpha:OSF1:*:*)
 	case $UNAME_RELEASE in
 	*4.0)
@@ -297,40 +264,43 @@
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
+	exit ;;
     Alpha\ *:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# Should we change UNAME_MACHINE based on the output of uname instead
 	# of the specific Alpha model?
 	echo alpha-pc-interix
-	exit 0 ;;
+	exit ;;
     21064:Windows_NT:50:3)
 	echo alpha-dec-winnt3.5
-	exit 0 ;;
+	exit ;;
     Amiga*:UNIX_System_V:4.0:*)
 	echo m68k-unknown-sysv4
-	exit 0;;
+	exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
 	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
+	exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
 	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
+	exit ;;
     *:OS/390:*:*)
 	echo i370-ibm-openedition
-	exit 0 ;;
+	exit ;;
     *:z/VM:*:*)
 	echo s390-ibm-zvmoe
-	exit 0 ;;
+	exit ;;
     *:OS400:*:*)
         echo powerpc-ibm-os400
-	exit 0 ;;
+	exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
 	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
+	exit ;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
 	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
 	if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -338,32 +308,32 @@
 	else
 		echo pyramid-pyramid-bsd
 	fi
-	exit 0 ;;
+	exit ;;
     NILE*:*:*:dcosx)
 	echo pyramid-pyramid-svr4
-	exit 0 ;;
+	exit ;;
     DRS?6000:unix:4.0:6*)
 	echo sparc-icl-nx6
-	exit 0 ;;
+	exit ;;
     DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
 	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
+	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     i86pc:SunOS:5.*:*)
 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
 	# it's likely to be more like Solaris than SunOS4.
 	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:*:*)
 	case "`/usr/bin/arch -k`" in
 	    Series*|S4*)
@@ -372,10 +342,10 @@
 	esac
 	# Japanese Language versions have a version number like `4.1.3-JL'.
 	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit 0 ;;
+	exit ;;
     sun3*:SunOS:*:*)
 	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     sun*:*:4.2BSD:*)
 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
 	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -387,10 +357,10 @@
 		echo sparc-sun-sunos${UNAME_RELEASE}
 		;;
 	esac
-	exit 0 ;;
+	exit ;;
     aushp:SunOS:*:*)
 	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -401,40 +371,40 @@
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
 	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
         echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
         echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
         echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     m68k:machten:*:*)
 	echo m68k-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     powerpc:machten:*:*)
 	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     RISC*:Mach:*:*)
 	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
+	exit ;;
     RISC*:ULTRIX:*:*)
 	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     VAX*:ULTRIX*:*:*)
 	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
 	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -458,32 +428,33 @@
 	  exit (-1);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
 	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     Motorola:PowerMAX_OS:*:*)
 	echo powerpc-motorola-powermax
-	exit 0 ;;
+	exit ;;
     Motorola:*:4.3:PL8-*)
 	echo powerpc-harris-powermax
-	exit 0 ;;
+	exit ;;
     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
 	echo powerpc-harris-powermax
-	exit 0 ;;
+	exit ;;
     Night_Hawk:Power_UNIX:*:*)
 	echo powerpc-harris-powerunix
-	exit 0 ;;
+	exit ;;
     m88k:CX/UX:7*:*)
 	echo m88k-harris-cxux7
-	exit 0 ;;
+	exit ;;
     m88k:*:4*:R4*)
 	echo m88k-motorola-sysv4
-	exit 0 ;;
+	exit ;;
     m88k:*:3*:R3*)
 	echo m88k-motorola-sysv3
-	exit 0 ;;
+	exit ;;
     AViiON:dgux:*:*)
         # DG/UX returns AViiON for all architectures
         UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -499,29 +470,29 @@
 	else
 	    echo i586-dg-dgux${UNAME_RELEASE}
 	fi
- 	exit 0 ;;
+ 	exit ;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
 	echo m88k-dolphin-sysv3
-	exit 0 ;;
+	exit ;;
     M88*:*:R3*:*)
 	# Delta 88k system running SVR3
 	echo m88k-motorola-sysv3
-	exit 0 ;;
+	exit ;;
     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
 	echo m88k-tektronix-sysv3
-	exit 0 ;;
+	exit ;;
     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
 	echo m68k-tektronix-bsd
-	exit 0 ;;
+	exit ;;
     *:IRIX*:*:*)
 	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
+	exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
     i*86:AIX:*:*)
 	echo i386-ibm-aix
-	exit 0 ;;
+	exit ;;
     ia64:AIX:*:*)
 	if [ -x /usr/bin/oslevel ] ; then
 		IBM_REV=`/usr/bin/oslevel`
@@ -529,7 +500,7 @@
 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
 	fi
 	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit 0 ;;
+	exit ;;
     *:AIX:2:3)
 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
 		eval $set_cc_for_build
@@ -544,14 +515,18 @@
 			exit(0);
 			}
 EOF
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
 	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
 		echo rs6000-ibm-aix3.2.4
 	else
 		echo rs6000-ibm-aix3.2
 	fi
-	exit 0 ;;
+	exit ;;
     *:AIX:*:[45])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
@@ -565,28 +540,28 @@
 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
 	fi
 	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit 0 ;;
+	exit ;;
     *:AIX:*:*)
 	echo rs6000-ibm-aix
-	exit 0 ;;
+	exit ;;
     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
 	echo romp-ibm-bsd4.4
-	exit 0 ;;
+	exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
 	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
+	exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
 	echo rs6000-bull-bosx
-	exit 0 ;;
+	exit ;;
     DPX/2?00:B.O.S.:*:*)
 	echo m68k-bull-sysv3
-	exit 0 ;;
+	exit ;;
     9000/[34]??:4.3bsd:1.*:*)
 	echo m68k-hp-bsd
-	exit 0 ;;
+	exit ;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
 	echo m68k-hp-bsd4.4
-	exit 0 ;;
+	exit ;;
     9000/[34678]??:HP-UX:*:*)
 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 	case "${UNAME_MACHINE}" in
@@ -648,9 +623,19 @@
 	esac
 	if [ ${HP_ARCH} = "hppa2.0w" ]
 	then
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep __LP64__ >/dev/null
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -658,11 +643,11 @@
 	    fi
 	fi
 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
+	exit ;;
     ia64:HP-UX:*:*)
 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
+	exit ;;
     3050*:HI-UX:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -690,161 +675,166 @@
 	  exit (0);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
 	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
+	exit ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
 	echo hppa1.1-hp-bsd
-	exit 0 ;;
+	exit ;;
     9000/8??:4.3bsd:*:*)
 	echo hppa1.0-hp-bsd
-	exit 0 ;;
+	exit ;;
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
 	echo hppa1.0-hp-mpeix
-	exit 0 ;;
+	exit ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
 	echo hppa1.1-hp-osf
-	exit 0 ;;
+	exit ;;
     hp8??:OSF1:*:*)
 	echo hppa1.0-hp-osf
-	exit 0 ;;
+	exit ;;
     i*86:OSF1:*:*)
 	if [ -x /usr/sbin/sysversion ] ; then
 	    echo ${UNAME_MACHINE}-unknown-osf1mk
 	else
 	    echo ${UNAME_MACHINE}-unknown-osf1
 	fi
-	exit 0 ;;
+	exit ;;
     parisc*:Lites*:*:*)
 	echo hppa1.1-hp-lites
-	exit 0 ;;
+	exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 	echo c1-convex-bsd
-        exit 0 ;;
+        exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-        exit 0 ;;
+        exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 	echo c34-convex-bsd
-        exit 0 ;;
+        exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 	echo c38-convex-bsd
-        exit 0 ;;
+        exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 	echo c4-convex-bsd
-        exit 0 ;;
+        exit ;;
     CRAY*Y-MP:*:*:*)
 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*[A-Z]90:*:*:*)
 	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
 	      -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*TS:*:*:*)
 	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*T3E:*:*:*)
 	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*SV1:*:*:*)
 	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     *:UNICOS/mp:*:*)
 	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
+        exit ;;
     5000:UNIX_System_V:4.*:*)
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
         echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit 0 ;;
+	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     sparc*:BSD/OS:*:*)
 	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:BSD/OS:*:*)
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:FreeBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
+	exit ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
+	exit ;;
     i*:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
+	exit ;;
     x86:Interix*:[34]*)
 	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-	exit 0 ;;
+	exit ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
+	exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
 	# UNAME_MACHINE based on the output of uname instead of i386?
 	echo i586-pc-interix
-	exit 0 ;;
+	exit ;;
     i*:UWIN*:*)
 	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    amd64:CYGWIN*:*:*)
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
 	echo x86_64-unknown-cygwin
-	exit 0 ;;
+	exit ;;
     p*:CYGWIN*:*)
 	echo powerpcle-unknown-cygwin
-	exit 0 ;;
+	exit ;;
     prep*:SunOS:5.*:*)
 	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     *:GNU:*:*)
 	# the GNU system
 	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
+	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
 	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-	exit 0 ;;
+	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
+	exit ;;
     arm*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     cris:Linux:*:*)
 	echo cris-axis-linux-gnu
-	exit 0 ;;
+	exit ;;
     crisv32:Linux:*:*)
 	echo crisv32-axis-linux-gnu
-	exit 0 ;;
+	exit ;;
     frv:Linux:*:*)
     	echo frv-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     m32r*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     mips:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -862,7 +852,7 @@
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -881,14 +871,17 @@
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
     ppc:Linux:*:*)
 	echo powerpc-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     ppc64:Linux:*:*)
 	echo powerpc64-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
 	  EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -902,7 +895,7 @@
 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -910,25 +903,25 @@
 	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
 	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
-	exit 0 ;;
+	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
 	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
-	exit 0 ;;
+	exit ;;
     sh64*:Linux:*:*)
     	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     sh*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
 	# first see if it will tell us. cd to the root directory to prevent
@@ -946,15 +939,15 @@
 		;;
 	  a.out-i386-linux)
 		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
+		exit ;;
 	  coff-i386)
 		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
+		exit ;;
 	  "")
 		# Either a pre-BFD a.out linker (linux-gnuoldld) or
 		# one that does not give us useful --help.
 		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
+		exit ;;
 	esac
 	# Determine whether the default compiler is a.out or elf
 	eval $set_cc_for_build
@@ -982,15 +975,18 @@
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
 	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
 	# sysname and nodename.
 	echo i386-sequent-sysv4
-	exit 0 ;;
+	exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
         # Unixware is an offshoot of SVR4, but it has its own version
         # number series starting with 2...
@@ -998,27 +994,27 @@
 	# I just have to hope.  -- rms.
         # Use sysv4.2uw... so that sysv4* matches it.
 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit 0 ;;
+	exit ;;
     i*86:OS/2:*:*)
 	# If we were able to find `uname', then EMX Unix compatibility
 	# is probably installed.
 	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit 0 ;;
+	exit ;;
     i*86:XTS-300:*:STOP)
 	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
+	exit ;;
     i*86:atheos:*:*)
 	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
-	i*86:syllable:*:*)
+	exit ;;
+    i*86:syllable:*:*)
 	echo ${UNAME_MACHINE}-pc-syllable
-	exit 0 ;;
+	exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     i*86:*DOS:*:*)
 	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
+	exit ;;
     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
 	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -1026,15 +1022,16 @@
 	else
 		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
 	fi
-	exit 0 ;;
-    i*86:*:5:[78]*)
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
 	case `/bin/uname -X | grep "^Machine"` in
 	    *486*)	     UNAME_MACHINE=i486 ;;
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
 	esac
 	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit 0 ;;
+	exit ;;
     i*86:*:3.2:*)
 	if test -f /usr/options/cb.name; then
 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1052,73 +1049,73 @@
 	else
 		echo ${UNAME_MACHINE}-pc-sysv32
 	fi
-	exit 0 ;;
+	exit ;;
     pc:*:*:*)
 	# Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
         # the processor, so we play safe by assuming i386.
 	echo i386-pc-msdosdjgpp
-        exit 0 ;;
+        exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
-	exit 0 ;;
+	exit ;;
     paragon:*:*:*)
 	echo i860-intel-osf1
-	exit 0 ;;
+	exit ;;
     i860:*:4.*:*) # i860-SVR4
 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
 	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
 	else # Add other i860-SVR4 vendors below as they are discovered.
 	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
 	fi
-	exit 0 ;;
+	exit ;;
     mini*:CTIX:SYS*5:*)
 	# "miniframe"
 	echo m68010-convergent-sysv
-	exit 0 ;;
+	exit ;;
     mc68k:UNIX:SYSTEM5:3.51m)
 	echo m68k-convergent-sysv
-	exit 0 ;;
+	exit ;;
     M680?0:D-NIX:5.3:*)
 	echo m68k-diab-dnix
-	exit 0 ;;
+	exit ;;
     M68*:*:R3V[5678]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
 	OS_REL=''
 	test -r /etc/.relid \
 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
+          && { echo i486-ncr-sysv4; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     mc68030:UNIX_System_V:4.*:*)
 	echo m68k-atari-sysv4
-	exit 0 ;;
+	exit ;;
     TSUNAMI:LynxOS:2.*:*)
 	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SM[BE]S:UNIX_SV:*:*)
 	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     RM*:ReliantUNIX-*:*:*)
 	echo mips-sni-sysv4
-	exit 0 ;;
+	exit ;;
     RM*:SINIX-*:*:*)
 	echo mips-sni-sysv4
-	exit 0 ;;
+	exit ;;
     *:SINIX-*:*:*)
 	if uname -p 2>/dev/null >/dev/null ; then
 		UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1126,65 +1123,65 @@
 	else
 		echo ns32k-sni-sysv
 	fi
-	exit 0 ;;
+	exit ;;
     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
                       # says <Richard.M.Bartel at ccMail.Census.GOV>
         echo i586-unisys-sysv4
-        exit 0 ;;
+        exit ;;
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes at openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
 	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
+	exit ;;
     *:*:*:FTX*)
 	# From seanf at swdc.stratus.com.
 	echo i860-stratus-sysv4
-	exit 0 ;;
+	exit ;;
     i*86:VOS:*:*)
 	# From Paul.Green at stratus.com.
 	echo ${UNAME_MACHINE}-stratus-vos
-	exit 0 ;;
+	exit ;;
     *:VOS:*:*)
 	# From Paul.Green at stratus.com.
 	echo hppa1.1-stratus-vos
-	exit 0 ;;
+	exit ;;
     mc68*:A/UX:*:*)
 	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     news*:NEWS-OS:6*:*)
 	echo mips-sony-newsos6
-	exit 0 ;;
+	exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
 	if [ -d /usr/nec ]; then
 	        echo mips-nec-sysv${UNAME_RELEASE}
 	else
 	        echo mips-unknown-sysv${UNAME_RELEASE}
 	fi
-        exit 0 ;;
+        exit ;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
 	echo powerpc-be-beos
-	exit 0 ;;
+	exit ;;
     BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
 	echo powerpc-apple-beos
-	exit 0 ;;
+	exit ;;
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
-	exit 0 ;;
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SX-5:SUPER-UX:*:*)
 	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SX-6:SUPER-UX:*:*)
 	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Rhapsody:*:*)
 	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
@@ -1192,7 +1189,7 @@
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
 	UNAME_PROCESSOR=`uname -p`
 	if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1200,25 +1197,25 @@
 		UNAME_MACHINE=pc
 	fi
 	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:QNX:*:4*)
 	echo i386-pc-qnx
-	exit 0 ;;
+	exit ;;
     NSE-?:NONSTOP_KERNEL:*:*)
 	echo nse-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
 	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:NonStop-UX:*:*)
 	echo mips-compaq-nonstopux
-	exit 0 ;;
+	exit ;;
     BS2000:POSIX*:*:*)
 	echo bs2000-siemens-sysv
-	exit 0 ;;
+	exit ;;
     DS/*:UNIX_System_V:*:*)
 	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Plan9:*:*)
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
@@ -1229,41 +1226,44 @@
 	    UNAME_MACHINE="$cputype"
 	fi
 	echo ${UNAME_MACHINE}-unknown-plan9
-	exit 0 ;;
+	exit ;;
     *:TOPS-10:*:*)
 	echo pdp10-unknown-tops10
-	exit 0 ;;
+	exit ;;
     *:TENEX:*:*)
 	echo pdp10-unknown-tenex
-	exit 0 ;;
+	exit ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
 	echo pdp10-dec-tops20
-	exit 0 ;;
+	exit ;;
     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
 	echo pdp10-xkl-tops20
-	exit 0 ;;
+	exit ;;
     *:TOPS-20:*:*)
 	echo pdp10-unknown-tops20
-	exit 0 ;;
+	exit ;;
     *:ITS:*:*)
 	echo pdp10-unknown-its
-	exit 0 ;;
+	exit ;;
     SEI:*:*:SEIUX)
         echo mips-sei-seiux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:DragonFly:*:*)
 	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
+	exit ;;
     *:*VMS:*:*)
     	UNAME_MACHINE=`(uname -p) 2>/dev/null`
 	case "${UNAME_MACHINE}" in
-	    A*) echo alpha-dec-vms && exit 0 ;;
-	    I*) echo ia64-dec-vms && exit 0 ;;
-	    V*) echo vax-dec-vms && exit 0 ;;
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
 	esac ;;
     *:XENIX:*:SysV)
 	echo i386-pc-xenix
-	exit 0 ;;
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1295,7 +1295,7 @@
 #endif
 
 #if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
+  printf ("arm-acorn-riscix\n"); exit (0);
 #endif
 
 #if defined (hp300) && !defined (hpux)
@@ -1384,11 +1384,12 @@
 }
 EOF
 
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
 
 # Apollos put the system type in the environment.
 
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
 
 # Convex versions that predate uname can use getsysinfo(1)
 
@@ -1397,22 +1398,22 @@
     case `getsysinfo -f cpu_type` in
     c1*)
 	echo c1-convex-bsd
-	exit 0 ;;
+	exit ;;
     c2*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-	exit 0 ;;
+	exit ;;
     c34*)
 	echo c34-convex-bsd
-	exit 0 ;;
+	exit ;;
     c38*)
 	echo c38-convex-bsd
-	exit 0 ;;
+	exit ;;
     c4*)
 	echo c4-convex-bsd
-	exit 0 ;;
+	exit ;;
     esac
 fi
 

Modified: packages/libxml2/trunk/config.sub
===================================================================
--- packages/libxml2/trunk/config.sub	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/config.sub	2005-09-05 17:42:20 UTC (rev 466)
@@ -3,7 +3,7 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 #   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-timestamp='2005-04-22'
+timestamp='2005-07-08'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -21,14 +21,15 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+
 # Please send patches to <config-patches at gnu.org>.  Submit a context
 # diff and a properly formatted ChangeLog entry.
 #
@@ -83,11 +84,11 @@
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit 0 ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )	# Use stdin as input.
@@ -99,7 +100,7 @@
     *local*)
        # First pass through any local machine types.
        echo $1
-       exit 0;;
+       exit ;;
 
     * )
        break ;;
@@ -247,6 +248,7 @@
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
 	| mipsisa32 | mipsisa32el \
 	| mipsisa32r2 | mipsisa32r2el \
 	| mipsisa64 | mipsisa64el \
@@ -255,13 +257,14 @@
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| ms1 \
 	| msp430 \
 	| ns16k | ns32k \
-	| openrisc | or32 \
+	| or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b \
@@ -273,6 +276,9 @@
 	| z8k)
 		basic_machine=$basic_machine-unknown
 		;;
+	m32c)
+		basic_machine=$basic_machine-unknown
+		;;
 	m6811 | m68hc11 | m6812 | m68hc12)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
@@ -321,6 +327,7 @@
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
 	| mipsisa32-* | mipsisa32el-* \
 	| mipsisa32r2-* | mipsisa32r2el-* \
 	| mipsisa64-* | mipsisa64el-* \
@@ -329,6 +336,7 @@
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
+	| ms1-* \
 	| msp430-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| orion-* \
@@ -336,7 +344,7 @@
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
@@ -351,6 +359,8 @@
 	| ymp-* \
 	| z8k-*)
 		;;
+	m32c-*)
+		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -761,9 +771,8 @@
 		basic_machine=hppa1.1-oki
 		os=-proelf
 		;;
-	or32 | or32-*)
+	openrisc | openrisc-*)
 		basic_machine=or32-unknown
-		os=-coff
 		;;
 	os400)
 		basic_machine=powerpc-ibm
@@ -1089,12 +1098,9 @@
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b)
 		basic_machine=sparc-sun
 		;;
@@ -1181,7 +1187,8 @@
 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1199,7 +1206,7 @@
 		os=`echo $os | sed -e 's|nto|nto-qnx|'`
 		;;
 	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
 	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
 		;;
 	-mac*)
@@ -1388,6 +1395,9 @@
 	*-be)
 		os=-beos
 		;;
+	*-haiku)
+		os=-haiku
+		;;
 	*-ibm)
 		os=-aix
 		;;
@@ -1559,7 +1569,7 @@
 esac
 
 echo $basic_machine$os
-exit 0
+exit
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)

Modified: packages/libxml2/trunk/configure
===================================================================
--- packages/libxml2/trunk/configure	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/configure	2005-09-05 17:42:20 UTC (rev 466)
@@ -463,7 +463,7 @@
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBXML_MAJOR_VERSION LIBXML_MINOR_VERSION LIBXML_MICRO_VERSION LIBXML_VERSION LIBXML_VERSION_INFO LIBXML_VERSION_NUMBER LIBXML_VERSION_EXTRA INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP RM MV TAR PERL XMLLINT XSLTPROC EGREP U ANSI2KNR LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT HTML_DIR Z_CFLAGS Z_LIBS PYTHON WITH_PYTHON_TRUE WITH_PYTHON_FALSE pythondir PYTHON_SUBDIR WITH_MODULES MODULE_PLATFORM_LIBS MODULE_EXTENSION TEST_MODULES STATIC_BINARIES WITH_TRIO_SOURCES_TRUE WITH_TRIO_SOURCES_FALSE WITH_TRIO THREAD_LIBS BASE_THREAD_LIBS WITH_THREADS THREAD_CFLAGS TEST_THREADS THREADS_W32 WITH_TREE WITH_FTP FTP_OBJ WITH_HTTP HTTP_OBJ WITH_LEGACY WITH_READER READER_TEST WITH_WRITER WITH_PATTERN TEST_PATTERN WITH_SAX1 TEST_SAX WITH_PUSH TEST_PUSH WITH_HTML HTML_OBJ TEST_HTML TEST_PHTML WITH_VALID TEST_VALID TEST_VTIME WITH_CATALOG CATALOG_OBJ TEST_CATALOG WITH_DOCB DOCB_OBJ WITH_XPTR XPTR_OBJ TEST_XPTR WITH_C14N C14N_OBJ TEST_C14N WITH_XINCLUDE XINCLUDE_OBJ TEST_XINCLUDE WITH_XPATH XPATH_OBJ TEST_XPATH WITH_OUTPUT WITH_ICONV WITH_ISO8859X WITH_SCHEMAS TEST_SCHEMAS WITH_REGEXPS TEST_REGEXPS WITH_DEBUG DEBUG_OBJ TEST_DEBUG WITH_MEM_DEBUG WITH_RUN_DEBUG WIN32_EXTRA_LIBADD WIN32_EXTRA_LDFLAGS CYGWIN_EXTRA_LDFLAGS CYGWIN_EXTRA_PYTHON_LIBADD XML_CFLAGS XML_LIBDIR XML_LIBS XML_LIBTOOLLIBS ICONV_LIBS XML_INCLUDEDIR HAVE_ISNAN HAVE_ISINF PYTHON_VERSION PYTHON_INCLUDES PYTHON_SITE_PACKAGES M_LIBS RDL_LIBS RELDATE PYTHON_TESTS LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBXML_MAJOR_VERSION LIBXML_MINOR_VERSION LIBXML_MICRO_VERSION LIBXML_VERSION LIBXML_VERSION_INFO LIBXML_VERSION_NUMBER LIBXML_VERSION_EXTRA INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP RM MV TAR PERL XMLLINT XSLTPROC EGREP U ANSI2KNR LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT HTML_DIR Z_CFLAGS Z_LIBS PYTHON WITH_PYTHON_TRUE WITH_PYTHON_FALSE pythondir PYTHON_SUBDIR WITH_MODULES MODULE_PLATFORM_LIBS MODULE_EXTENSION TEST_MODULES STATIC_BINARIES WITH_TRIO_SOURCES_TRUE WITH_TRIO_SOURCES_FALSE WITH_TRIO THREAD_LIBS BASE_THREAD_LIBS WITH_THREADS THREAD_CFLAGS TEST_THREADS THREADS_W32 WITH_TREE WITH_FTP FTP_OBJ WITH_HTTP HTTP_OBJ WITH_LEGACY WITH_READER READER_TEST WITH_WRITER WITH_PATTERN TEST_PATTERN WITH_SAX1 TEST_SAX WITH_PUSH TEST_PUSH WITH_HTML HTML_OBJ TEST_HTML TEST_PHTML WITH_VALID TEST_VALID TEST_VTIME WITH_CATALOG CATALOG_OBJ TEST_CATALOG WITH_DOCB DOCB_OBJ WITH_XPTR XPTR_OBJ TEST_XPTR WITH_C14N C14N_OBJ TEST_C14N WITH_XINCLUDE XINCLUDE_OBJ TEST_XINCLUDE WITH_XPATH XPATH_OBJ TEST_XPATH WITH_OUTPUT WITH_ICONV WITH_ISO8859X WITH_SCHEMATRON TEST_SCHEMATRON WITH_SCHEMAS TEST_SCHEMAS WITH_REGEXPS TEST_REGEXPS WITH_DEBUG DEBUG_OBJ TEST_DEBUG WITH_MEM_DEBUG WITH_RUN_DEBUG WIN32_EXTRA_LIBADD WIN32_EXTRA_LDFLAGS CYGWIN_EXTRA_LDFLAGS CYGWIN_EXTRA_PYTHON_LIBADD XML_CFLAGS XML_LIBDIR XML_LIBS XML_LIBTOOLLIBS ICONV_LIBS XML_INCLUDEDIR HAVE_ISNAN HAVE_ISINF PYTHON_VERSION PYTHON_INCLUDES PYTHON_SITE_PACKAGES M_LIBS RDL_LIBS RELDATE PYTHON_TESTS LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -1072,6 +1072,7 @@
   --with-run-debug        add the runtime debugging module (off)
   --with-sax1             add the older SAX1 interface (on)
   --with-schemas          add Relax-NG and Schemas support (on)
+  --with-schematron       add Schematron support (on)
   --with-threads          add multithread support(on)
   --with-thread-alloc     add per-thread memory(off)
   --with-tree             add the DOM like tree manipulation APIs (on)
@@ -1619,7 +1620,7 @@
 
 LIBXML_MAJOR_VERSION=2
 LIBXML_MINOR_VERSION=6
-LIBXML_MICRO_VERSION=20
+LIBXML_MICRO_VERSION=21
 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
@@ -4663,7 +4664,7 @@
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 4666 "configure"' > conftest.$ac_ext
+  echo '#line 4667 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -5998,7 +5999,7 @@
 
 
 # Provide some information about the compiler.
-echo "$as_me:6001:" \
+echo "$as_me:6002:" \
      "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
@@ -7030,11 +7031,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7033: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7034: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7037: \$? = $ac_status" >&5
+   echo "$as_me:7038: \$? = $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
@@ -7263,11 +7264,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7266: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7267: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7270: \$? = $ac_status" >&5
+   echo "$as_me:7271: \$? = $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
@@ -7323,11 +7324,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7326: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7327: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7330: \$? = $ac_status" >&5
+   echo "$as_me:7331: \$? = $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
@@ -9511,7 +9512,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9514 "configure"
+#line 9515 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9609,7 +9610,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9612 "configure"
+#line 9613 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11786,11 +11787,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11789: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11790: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:11793: \$? = $ac_status" >&5
+   echo "$as_me:11794: \$? = $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
@@ -11846,11 +11847,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11849: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11850: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:11853: \$? = $ac_status" >&5
+   echo "$as_me:11854: \$? = $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
@@ -13215,7 +13216,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 13218 "configure"
+#line 13219 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13313,7 +13314,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 13316 "configure"
+#line 13317 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14140,11 +14141,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14143: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14144: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14147: \$? = $ac_status" >&5
+   echo "$as_me:14148: \$? = $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
@@ -14200,11 +14201,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14203: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14204: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14207: \$? = $ac_status" >&5
+   echo "$as_me:14208: \$? = $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
@@ -16245,11 +16246,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16248: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16249: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16252: \$? = $ac_status" >&5
+   echo "$as_me:16253: \$? = $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
@@ -16478,11 +16479,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16481: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16482: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16485: \$? = $ac_status" >&5
+   echo "$as_me:16486: \$? = $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
@@ -16538,11 +16539,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16541: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16542: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16545: \$? = $ac_status" >&5
+   echo "$as_me:16546: \$? = $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
@@ -18726,7 +18727,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 18729 "configure"
+#line 18730 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18824,7 +18825,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 18827 "configure"
+#line 18828 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -20037,6 +20038,12 @@
 
 fi;
 
+# Check whether --with-schematron or --without-schematron was given.
+if test "${with_schematron+set}" = set; then
+  withval="$with_schematron"
+
+fi;
+
 # Check whether --with-threads or --without-threads was given.
 if test "${with_threads+set}" = set; then
   withval="$with_threads"
@@ -20108,6 +20115,11 @@
     with_pattern=yes
     with_regexp=yes
 fi
+if test "$with_schematron" = "yes"
+then
+    with_pattern=yes
+    with_xpath=yes
+fi
 if test "$with_reader" = "yes"
 then
     with_push=yes
@@ -20212,6 +20224,10 @@
     then
       with_schemas=no
     fi
+    if test "$with_schematron" = ""
+    then
+      with_schematron=no
+    fi
     if test "$with_threads" = ""
     then
       with_threads=no
@@ -26566,7 +26582,7 @@
 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 26569 "configure"
+#line 26585 "configure"
 #include "confdefs.h"
 
 #include <stddef.h>
@@ -26577,7 +26593,7 @@
 (void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL)
 ; return 0; }
 EOF
-if { (eval echo configure:26580: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+if { (eval echo configure:26596: \"$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
@@ -26589,7 +26605,7 @@
   rm -rf conftest*
 
   cat > conftest.$ac_ext <<EOF
-#line 26592 "configure"
+#line 26608 "configure"
 #include "confdefs.h"
 
 #include <stddef.h>
@@ -26600,7 +26616,7 @@
 (void)getsockopt (1, 1, 1, NULL, (size_t *)NULL)
 ; return 0; }
 EOF
-if { (eval echo configure:26603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+if { (eval echo configure:26619: \"$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
@@ -26612,7 +26628,7 @@
   rm -rf conftest*
 
     cat > conftest.$ac_ext <<EOF
-#line 26615 "configure"
+#line 26631 "configure"
 #include "confdefs.h"
 
 #include <stddef.h>
@@ -26623,7 +26639,7 @@
 (void)getsockopt (1, 1, 1, NULL, (int *)NULL)
 ; return 0; }
 EOF
-if { (eval echo configure:26626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then
+if { (eval echo configure:26642: \"$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
@@ -27419,7 +27435,6 @@
 
 
 
-PYTHON=
 PYTHON_VERSION=
 PYTHON_INCLUDES=
 PYTHON_SITE_PACKAGES=
@@ -27436,8 +27451,12 @@
 	    echo Found python in $with_python
 	    PYTHON="$with_python"
 	else
-	    # Extract the first word of "python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args.
-set dummy python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
+	    if test -x "$PYTHON"
+	    then
+	        echo Found python in environment PYTHON=$PYTHON
+	    else
+		# Extract the first word of "python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args.
+set dummy python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_PYTHON+set}" = set; then
@@ -27475,6 +27494,7 @@
 echo "${ECHO_T}no" >&6
 fi
 
+	    fi
 	fi
     fi
     if test "$PYTHON" != ""
@@ -27515,6 +27535,8 @@
     else
         pythondir='$(libdir)/python${PYTHON_VERSION}/site-packages'
     fi
+else
+    PYTHON=
 fi
 
 
@@ -27536,11 +27558,91 @@
 
 
 WITH_MODULES=0
-MODULE_EXTENSION=".so"
 TEST_MODULES=
 
 if test "$with_modules" != "no" ; then
-echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+ case "$host" in
+  *-*-cygwin*)
+  MODULE_EXTENSION=".dll"
+  echo "$as_me:$LINENO: checking for dlopen in -lcygwin" >&5
+echo $ECHO_N "checking for dlopen in -lcygwin... $ECHO_C" >&6
+if test "${ac_cv_lib_cygwin_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcygwin  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_cygwin_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_cygwin_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_cygwin_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_cygwin_dlopen" >&6
+if test $ac_cv_lib_cygwin_dlopen = yes; then
+
+    WITH_MODULES=1
+    MODULE_PLATFORM_LIBS=
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_DLOPEN
+_ACEOF
+
+
+fi
+
+  ;;
+  *)
+  MODULE_EXTENSION=".so"
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
 if test "${ac_cv_lib_dld_shl_load+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -27605,8 +27707,8 @@
 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
 if test $ac_cv_lib_dld_shl_load = yes; then
 
-  WITH_MODULES=1
-  MODULE_PLATFORM_LIBS="-ldld"
+    WITH_MODULES=1
+    MODULE_PLATFORM_LIBS="-ldld"
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_SHLLOAD
@@ -27616,7 +27718,7 @@
 fi
 
 
-echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -27681,8 +27783,8 @@
 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
 if test $ac_cv_lib_dl_dlopen = yes; then
 
-  WITH_MODULES=1
-  MODULE_PLATFORM_LIBS="-ldl"
+    WITH_MODULES=1
+    MODULE_PLATFORM_LIBS="-ldl"
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_DLOPEN
@@ -27691,6 +27793,8 @@
 
 fi
 
+ ;;
+ esac
 fi
 
 if test "${WITH_MODULES}" = "1"; then
@@ -27711,6 +27815,7 @@
     if test "$with_minimum" != "yes"
     then
 	if test "${with_mem_debug}" = "" ; then
+	    echo Activating memory debugging
 	    with_mem_debug="yes"
 	    with_run_debug="yes"
 	fi
@@ -27718,7 +27823,7 @@
 	    with_docbook="yes"
 	fi
     fi
-    if test "${CC}" = "gcc" ; then
+    if test "${GCC}" = "yes" ; then
     CFLAGS="-g -O -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
     fi
     STATIC_BINARIES="-static"
@@ -27990,9 +28095,25 @@
 	   THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
        ;;
        *linux*)
-           if test "${CC}" = "gcc" -a "${THREAD_LIBS}" = "-lpthread" ; then
-	       THREAD_LIBS=""
-	       BASE_THREAD_LIBS="-lpthread"
+           if test "${GCC}" = "yes" ; then
+	       GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
+	       GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
+	       GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[0-9]*\.++' | sed 's+\..*++'`
+	       if test "${THREAD_LIBS}" = "-lpthread" ; then
+	           if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
+		   then
+		       THREAD_LIBS=""
+		       BASE_THREAD_LIBS="-lpthread"
+		   else
+		   if expr ${GCC_MAJOR} \> 3 > /dev/null
+		   then
+		       THREAD_LIBS=""
+		       BASE_THREAD_LIBS="-lpthread"
+		   else
+		       echo old GCC disabling weak symbols for pthread
+		   fi
+		   fi
+	       fi
 	   fi
        ;;
     esac
@@ -29055,6 +29176,20 @@
 fi
 
 
+if test "$with_schematron" = "no" ; then
+    echo "Disabling Schematron support"
+    WITH_SCHEMATRON=0
+    TEST_SCHEMATRON=
+else
+    echo "Enabled Schematron support"
+    WITH_SCHEMATRON=1
+    TEST_SCHEMATRON="Schematrontests"
+    with_xpath=yes
+    with_pattern=yes
+fi
+
+
+
 if test "$with_schemas" = "no" ; then
     echo "Disabling Schemas/Relax-NG support"
     WITH_SCHEMAS=0
@@ -30014,6 +30149,8 @@
 s, at WITH_OUTPUT@,$WITH_OUTPUT,;t t
 s, at WITH_ICONV@,$WITH_ICONV,;t t
 s, at WITH_ISO8859X@,$WITH_ISO8859X,;t t
+s, at WITH_SCHEMATRON@,$WITH_SCHEMATRON,;t t
+s, at TEST_SCHEMATRON@,$TEST_SCHEMATRON,;t t
 s, at WITH_SCHEMAS@,$WITH_SCHEMAS,;t t
 s, at TEST_SCHEMAS@,$TEST_SCHEMAS,;t t
 s, at WITH_REGEXPS@,$WITH_REGEXPS,;t t

Modified: packages/libxml2/trunk/configure.in
===================================================================
--- packages/libxml2/trunk/configure.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/configure.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -5,7 +5,7 @@
 
 LIBXML_MAJOR_VERSION=2
 LIBXML_MINOR_VERSION=6
-LIBXML_MICRO_VERSION=20
+LIBXML_MICRO_VERSION=21
 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
@@ -128,6 +128,8 @@
 [  --with-sax1             add the older SAX1 interface (on)])
 AC_ARG_WITH(schemas,
 [  --with-schemas          add Relax-NG and Schemas support (on)])
+AC_ARG_WITH(schematron,
+[  --with-schematron       add Schematron support (on)])
 AC_ARG_WITH(threads,
 [  --with-threads          add multithread support(on)])
 AC_ARG_WITH(thread-alloc,
@@ -163,6 +165,11 @@
     with_pattern=yes
     with_regexp=yes
 fi
+if test "$with_schematron" = "yes"
+then
+    with_pattern=yes
+    with_xpath=yes
+fi
 if test "$with_reader" = "yes"
 then
     with_push=yes
@@ -270,6 +277,10 @@
     then
       with_schemas=no
     fi
+    if test "$with_schematron" = ""
+    then
+      with_schematron=no
+    fi
     if test "$with_threads" = ""
     then
       with_threads=no
@@ -602,7 +613,6 @@
 dnl check for python
 dnl
 
-PYTHON=
 PYTHON_VERSION=
 PYTHON_INCLUDES=
 PYTHON_SITE_PACKAGES=
@@ -619,7 +629,12 @@
 	    echo Found python in $with_python
 	    PYTHON="$with_python"
 	else
-	    AC_PATH_PROG(PYTHON, python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
+	    if test -x "$PYTHON"
+	    then
+	        echo Found python in environment PYTHON=$PYTHON
+	    else
+		AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
+	    fi
 	fi
     fi
     if test "$PYTHON" != ""
@@ -660,6 +675,8 @@
     else
         pythondir='$(libdir)/python${PYTHON_VERSION}/site-packages'
     fi
+else
+    PYTHON=
 fi
 AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
 if test "$PYTHON_INCLUDES" != ""
@@ -673,21 +690,33 @@
 
 dnl check for dso support
 WITH_MODULES=0
-MODULE_EXTENSION=".so"
 TEST_MODULES=
 
 if test "$with_modules" != "no" ; then
-AC_CHECK_LIB(dld, shl_load, [
-  WITH_MODULES=1
-  MODULE_PLATFORM_LIBS="-ldld"
-  AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso])
-])
-
-AC_CHECK_LIB(dl, dlopen, [
-  WITH_MODULES=1
-  MODULE_PLATFORM_LIBS="-ldl"
-  AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
-])
+ case "$host" in
+  *-*-cygwin*)
+  MODULE_EXTENSION=".dll"
+  AC_CHECK_LIB(cygwin, dlopen, [
+    WITH_MODULES=1
+    MODULE_PLATFORM_LIBS=
+    AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
+  ])
+  ;;
+  *)
+  MODULE_EXTENSION=".so"
+  AC_CHECK_LIB(dld, shl_load, [
+    WITH_MODULES=1
+    MODULE_PLATFORM_LIBS="-ldld"
+    AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso])
+  ])
+ 
+  AC_CHECK_LIB(dl, dlopen, [
+    WITH_MODULES=1
+    MODULE_PLATFORM_LIBS="-ldl"
+    AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso])
+  ])
+ ;;
+ esac
 fi
 
 if test "${WITH_MODULES}" = "1"; then
@@ -715,6 +744,7 @@
     if test "$with_minimum" != "yes"
     then
 	if test "${with_mem_debug}" = "" ; then
+	    echo Activating memory debugging
 	    with_mem_debug="yes"
 	    with_run_debug="yes"
 	fi
@@ -722,7 +752,7 @@
 	    with_docbook="yes"
 	fi
     fi
-    if test "${CC}" = "gcc" ; then
+    if test "${GCC}" = "yes" ; then
     CFLAGS="-g -O -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
     fi
     STATIC_BINARIES="-static"
@@ -782,9 +812,25 @@
 	   THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
        ;;
        *linux*)
-           if test "${CC}" = "gcc" -a "${THREAD_LIBS}" = "-lpthread" ; then
-	       THREAD_LIBS=""
-	       BASE_THREAD_LIBS="-lpthread"
+           if test "${GCC}" = "yes" ; then
+	       GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
+	       GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
+	       GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[[0-9]]*\.++' | sed 's+\..*++'`
+	       if test "${THREAD_LIBS}" = "-lpthread" ; then
+	           if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
+		   then
+		       THREAD_LIBS=""
+		       BASE_THREAD_LIBS="-lpthread"
+		   else
+		   if expr ${GCC_MAJOR} \> 3 > /dev/null 
+		   then
+		       THREAD_LIBS=""
+		       BASE_THREAD_LIBS="-lpthread"
+		   else
+		       echo old GCC disabling weak symbols for pthread
+		   fi
+		   fi
+	       fi
 	   fi
        ;;
     esac
@@ -1140,6 +1186,20 @@
 fi
 AC_SUBST(WITH_ISO8859X)
 
+if test "$with_schematron" = "no" ; then
+    echo "Disabling Schematron support"
+    WITH_SCHEMATRON=0
+    TEST_SCHEMATRON=
+else    
+    echo "Enabled Schematron support"
+    WITH_SCHEMATRON=1
+    TEST_SCHEMATRON="Schematrontests"
+    with_xpath=yes
+    with_pattern=yes
+fi
+AC_SUBST(WITH_SCHEMATRON)
+AC_SUBST(TEST_SCHEMATRON)
+
 if test "$with_schemas" = "no" ; then
     echo "Disabling Schemas/Relax-NG support"
     WITH_SCHEMAS=0

Modified: packages/libxml2/trunk/debian/changelog
===================================================================
--- packages/libxml2/trunk/debian/changelog	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/debian/changelog	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,8 +1,9 @@
-libxml2 (2.6.20-2) unstable; urgency=low
+libxml2 (2.6.21-1) UNRELEASED; urgency=low
 
+  * (NOT RELEASED YET) New upstream release
   * debian/control, debian/rules: Removed dummy package. Closes: #322052.
 
- -- Mike Hommey <glandium at debian.org>  Tue,  9 Aug 2005 20:51:59 +0200
+ -- Mike Hommey <glandium at debian.org>  Mon,  5 Sep 2005 19:41:10 +0200
 
 libxml2 (2.6.20-1) unstable; urgency=low
 

Modified: packages/libxml2/trunk/debugXML.c
===================================================================
--- packages/libxml2/trunk/debugXML.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/debugXML.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -34,6 +34,8 @@
 #include <libxml/relaxng.h>
 #endif
 
+#define DUMP_TEXT_TYPE 1
+
 typedef struct _xmlDebugCtxt xmlDebugCtxt;
 typedef xmlDebugCtxt *xmlDebugCtxtPtr;
 struct _xmlDebugCtxt {
@@ -46,6 +48,7 @@
     int check;                  /* do just checkings */
     int errors;                 /* number of errors found */
     int nodict;			/* if the document has no dictionnary */
+    int options;		/* options */
 };
 
 static void xmlCtxtDumpNodeList(xmlDebugCtxtPtr ctxt, xmlNodePtr node);
@@ -63,6 +66,7 @@
     ctxt->node = NULL;
     ctxt->dict = NULL;
     ctxt->nodict = 0;
+    ctxt->options = 0;
     for (i = 0; i < 100; i++)
         ctxt->shift[i] = ' ';
     ctxt->shift[100] = 0;
@@ -902,9 +906,18 @@
             if (!ctxt->check) {
                 xmlCtxtDumpSpaces(ctxt);
                 if (node->name == (const xmlChar *) xmlStringTextNoenc)
-                    fprintf(ctxt->output, "TEXT no enc\n");
+                    fprintf(ctxt->output, "TEXT no enc");
                 else
-                    fprintf(ctxt->output, "TEXT\n");
+                    fprintf(ctxt->output, "TEXT");
+		if (ctxt->options & DUMP_TEXT_TYPE) {
+		    if (node->content == (xmlChar *) &(node->properties))
+			fprintf(ctxt->output, " compact\n");
+		    else if (xmlDictOwns(ctxt->dict, node->content) == 1)
+			fprintf(ctxt->output, " interned\n");
+		    else
+			fprintf(ctxt->output, "\n");
+		} else
+		    fprintf(ctxt->output, "\n");
             }
             break;
         case XML_CDATA_SECTION_NODE:
@@ -1005,9 +1018,9 @@
         fprintf(ctxt->output, "PBM: doc == NULL !!!\n");
     }
     ctxt->depth++;
-    if (node->nsDef != NULL)
+    if ((node->type == XML_ELEMENT_NODE) && (node->nsDef != NULL))
         xmlCtxtDumpNamespaceList(ctxt, node->nsDef);
-    if (node->properties != NULL)
+    if ((node->type == XML_ELEMENT_NODE) && (node->properties != NULL))
         xmlCtxtDumpAttrList(ctxt, node->properties);
     if (node->type != XML_ENTITY_REF_NODE) {
         if ((node->type != XML_ELEMENT_NODE) && (node->content != NULL)) {
@@ -1489,6 +1502,7 @@
     if (output == NULL)
 	output = stdout;
     xmlCtxtDumpInitCtxt(&ctxt);
+    ctxt.options |= DUMP_TEXT_TYPE;
     ctxt.output = output;
     xmlCtxtDumpDocumentHead(&ctxt, doc);
     xmlCtxtDumpCleanCtxt(&ctxt);
@@ -1509,6 +1523,7 @@
     if (output == NULL)
 	output = stdout;
     xmlCtxtDumpInitCtxt(&ctxt);
+    ctxt.options |= DUMP_TEXT_TYPE;
     ctxt.output = output;
     xmlCtxtDumpDocument(&ctxt, doc);
     xmlCtxtDumpCleanCtxt(&ctxt);
@@ -1529,6 +1544,7 @@
     if (output == NULL)
 	output = stdout;
     xmlCtxtDumpInitCtxt(&ctxt);
+    ctxt.options |= DUMP_TEXT_TYPE;
     ctxt.output = output;
     xmlCtxtDumpDTD(&ctxt, dtd);
     xmlCtxtDumpCleanCtxt(&ctxt);

Modified: packages/libxml2/trunk/doc/APIchunk0.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk0.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk0.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -207,7 +207,8 @@
 </dd><dt>BaseChar</dt><dd><a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
 <a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
 <a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
-</dd><dt>Based</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
+</dd><dt>Based</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
 <a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>BasicLatin</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a><br />
 </dd><dt>Basically</dt><dd><a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
@@ -231,6 +232,8 @@
 <a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
 </dd><dt>BoxDrawing</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBoxDrawing">xmlUCSIsBoxDrawing</a><br />
 </dd><dt>BraillePatterns</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBraillePatterns">xmlUCSIsBraillePatterns</a><br />
+</dd><dt>Brzozowski</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
 </dd><dt>Buffer</dt><dd><a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
 </dd><dt>Bugs:</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
 </dd><dt>Buhid</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBuhid">xmlUCSIsBuhid</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk1.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk1.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk1.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -305,6 +305,7 @@
 </dd><dt>Creates</dt><dd><a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
 <a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
 <a href="html/libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
 <a href="html/libxml-tree.html#xmlNewDoc">xmlNewDoc</a><br />
 <a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
 </dd><dt>Creation</dt><dd><a href="html/libxml-tree.html#xmlNewCDataBlock">xmlNewCDataBlock</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk10.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk10.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk10.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -61,10 +61,12 @@
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
 </dd><dt>absoluteURI</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
 </dd><dt>abstract</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a><br />
-</dd><dt>accept</dt><dd><a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+</dd><dt>accept</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
 <a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
 </dd><dt>acceptable</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
@@ -72,10 +74,13 @@
 <a href="html/libxml-catalog.html#xmlCatalogGetDefaults">xmlCatalogGetDefaults</a><br />
 <a href="html/libxml-catalog.html#xmlCatalogSetDefaultPrefer">xmlCatalogSetDefaultPrefer</a><br />
 <a href="html/libxml-catalog.html#xmlCatalogSetDefaults">xmlCatalogSetDefaults</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
 </dd><dt>accepting</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
+</dd><dt>accepts</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
 </dd><dt>access</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
 <a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
@@ -86,6 +91,7 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
 </dd><dt>accesses</dt><dd><a href="html/libxml-parserInternals.html#xmlCreateURLParserCtxt">xmlCreateURLParserCtxt</a><br />
 <a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
+</dd><dt>accexpted</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
 </dd><dt>accommodate</dt><dd><a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
 </dd><dt>according</dt><dd><a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
 <a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
@@ -105,6 +111,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
@@ -197,6 +204,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
@@ -240,10 +248,12 @@
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
 <a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
 <a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
 </dd><dt>aggregate</dt><dd><a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
 <a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
+</dd><dt>algebraic</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
 </dd><dt>alias</dt><dd><a href="html/libxml-encoding.html#xmlAddEncodingAlias">xmlAddEncodingAlias</a><br />
 <a href="html/libxml-encoding.html#xmlDelEncodingAlias">xmlDelEncodingAlias</a><br />
 <a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
@@ -323,6 +333,7 @@
 <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-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 />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a><br />
@@ -378,6 +389,7 @@
 </dd><dt>analysis</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
 </dd><dt>analyze</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
 </dd><dt>analyzed</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
 </dd><dt>ancestor</dt><dd><a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
@@ -423,7 +435,8 @@
 <a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
 </dd><dt>appearing</dt><dd><a href="html/libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a><br />
 <a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
-</dd><dt>appears</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
+</dd><dt>appears</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
@@ -504,6 +517,10 @@
 </dd><dt>assuming</dt><dd><a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 </dd><dt>assure</dt><dd><a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+</dd><dt>atom</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 </dd><dt>atomic</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
 </dd><dt>attached</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk11.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk11.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk11.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -62,6 +62,7 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
 <a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
 <a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
@@ -186,6 +187,7 @@
 <a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>bound</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
 </dd><dt>boundaries</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
 </dd><dt>boundary</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
@@ -251,6 +253,7 @@
 <a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
 <a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a><br />
 <a href="html/libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a><br />
 <a href="html/libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a><br />
@@ -259,6 +262,7 @@
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValueWhtsp">xmlSchemaGetCanonValueWhtsp</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderNextSibling">xmlTextReaderNextSibling</a><br />
 </dd><dt>built-in</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInListSimpleTypeItemType">xmlSchemaGetBuiltInListSimpleTypeItemType</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk12.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk12.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk12.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -77,6 +77,7 @@
 <a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
 </dd><dt>capable</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
 </dd><dt>caracters</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
+</dd><dt>cardinality</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>carried</dt><dd><a href="html/libxml-tree.html#xmlNewDocProp">xmlNewDocProp</a><br />
 <a href="html/libxml-tree.html#xmlNewNsProp">xmlNewNsProp</a><br />
 <a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
@@ -198,9 +199,11 @@
 </dd><dt>checking</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
 <a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
 <a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 <a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
-</dd><dt>checkings</dt><dd><a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+</dd><dt>checkings</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
 </dd><dt>checks</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a><br />
 <a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
@@ -234,7 +237,9 @@
 </dd><dt>childs</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
 <a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
 <a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
-</dd><dt>choice</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
+</dd><dt>choice</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
 </dd><dt>choices</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
 </dd><dt>choices:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
 </dd><dt>chunk</dt><dd><a href="html/libxml-DOCBparser.html#docbParseChunk">docbParseChunk</a><br />
@@ -380,6 +385,8 @@
 </dd><dt>compatible</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
 <a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
 </dd><dt>compilation</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a><br />
+<a href="html/libxml-xpath.html#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 <a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />
 <a href="html/libxml-xpath.html#xmlXPathCtxtCompile">xmlXPathCtxtCompile</a><br />
@@ -400,15 +407,20 @@
 <a href="html/libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a><br />
 <a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
 </dd><dt>compiled</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
 <a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
 <a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
@@ -578,7 +590,8 @@
 <a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
 </dd><dt>construct</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
 </dd><dt>construction</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
-</dd><dt>constructs</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
+</dd><dt>constructs</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
 </dd><dt>consumed</dt><dd><a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
 <a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
 <a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
@@ -588,12 +601,16 @@
 <a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
 <a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
 <a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 <a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
 <a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
-</dd><dt>consuming</dt><dd><a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+</dd><dt>consuming</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
 </dd><dt>contain</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
@@ -607,6 +624,8 @@
 <a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathLeadingSorted">xmlXPathLeadingSorted</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />
@@ -676,7 +695,8 @@
 </dd><dt>continuing</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</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>control</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</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 />
 <a href="html/libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a><br />
 <a href="html/libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a><br />
@@ -765,9 +785,11 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
 <a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
 </dd><dt>count</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
 <a href="html/libxml-debugXML.html#xmlLsCountNode">xmlLsCountNode</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderAttributeCount">xmlTextReaderAttributeCount</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathCountFunction">xmlXPathCountFunction</a><br />
 </dd><dt>counter</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
@@ -793,6 +815,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
@@ -810,6 +833,9 @@
 </dd><dt>cshema</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a><br />
 </dd><dt>ctrio</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
 <a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
+</dd><dt>ctxt</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 </dd><dt>ctxt-</dt><dd><a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
 <a href="html/libxml-HTMLparser.html#htmlFreeParserCtxt">htmlFreeParserCtxt</a><br />
 <a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk13.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk13.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk13.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -239,10 +239,13 @@
 </dd><dt>depth</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderDepth">xmlTextReaderDepth</a><br />
 </dd><dt>deregistration</dt><dd><a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
 </dd><dt>derivation</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
+<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#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
@@ -303,7 +306,6 @@
 <a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
 </dd><dt>designed</dt><dd><a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
-<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
 </dd><dt>desired</dt><dd><a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
 <a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
@@ -387,6 +389,7 @@
 <a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
 <a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
 <a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
 </dd><dt>did</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
@@ -405,6 +408,7 @@
 </dd><dt>direct</dt><dd><a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
 <a href="html/libxml-HTMLparser.html#htmlElementAllowedHereDesc">htmlElementAllowedHereDesc</a><br />
 <a href="html/libxml-HTMLparser.html#htmlElementStatusHere">htmlElementStatusHere</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
 <a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
 </dd><dt>direction</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
@@ -445,6 +449,7 @@
 </dd><dt>disable</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
 </dd><dt>disabled</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
 <a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 </dd><dt>disabling</dt><dd><a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
 </dd><dt>disallowed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a><br />
@@ -491,36 +496,6 @@
 <a href="html/libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a><br />
 <a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
 <a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
-</dd><dt>does</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
-<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
-<a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
-<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
-<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
-<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
-<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
-<a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
-<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
-<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
-<a href="html/libxml-xmlerror.html#xmlResetLastError">xmlResetLastError</a><br />
-<a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
-<a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />
-<a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
-<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
-<a href="html/libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a><br />
-<a href="html/libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a><br />
-<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
-<a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
-<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
-<a href="html/libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a><br />
-<a href="html/libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a><br />
-<a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
-<a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
-<a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
-<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathSubstringBeforeFunction">xmlXPathSubstringBeforeFunction</a><br />
 </dd><dt>doesn</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
 <a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
 <a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
@@ -614,6 +589,8 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+</dd><dt>dynamic</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
 </dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
 <a href="APIchunk1.html">C-C</a>
 <a href="APIchunk2.html">D-E</a>

Modified: packages/libxml2/trunk/doc/APIchunk14.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk14.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk14.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -167,7 +167,9 @@
 </dd><dt>engine</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
 <a href="html/libxml-xpath.html#xmlXPathFuncLookupFunc">xmlXPathFuncLookupFunc</a><br />
 <a href="html/libxml-xpath.html#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a><br />
-</dd><dt>englobing</dt><dd><a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
+</dd><dt>englobing</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+<a href="html/libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a><br />
 <a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
 </dd><dt>enhancements</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
 </dd><dt>enough</dt><dd><a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
@@ -254,34 +256,6 @@
 <a href="html/libxml-xpath.html#xmlXPathConvertBoolean">xmlXPathConvertBoolean</a><br />
 <a href="html/libxml-xpath.html#xmlXPathConvertNumber">xmlXPathConvertNumber</a><br />
 <a href="html/libxml-xpath.html#xmlXPathConvertString">xmlXPathConvertString</a><br />
-</dd><dt>errors</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
-<a href="html/libxml-parser.html#_xmlSAXHandler">_xmlSAXHandler</a><br />
-<a href="html/libxml-parser.html#_xmlSAXHandlerV1">_xmlSAXHandlerV1</a><br />
-<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
-<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
-<a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
-<a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
-<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
-<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
-<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
-<a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
-<a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
-<a href="html/libxml-debugXML.html#xmlDebugCheckDocument">xmlDebugCheckDocument</a><br />
-<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
-<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
-<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
-<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
-<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</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-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaIsValid">xmlSchemaIsValid</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueAppend">xmlSchemaValueAppend</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetAsString">xmlSchemaValueGetAsString</a><br />
-<a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
-<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
 </dd><dt>errror</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapNewCtxt">xmlDOMWrapNewCtxt</a><br />
 </dd><dt>escape</dt><dd><a href="html/libxml-DOCBparser.html#docbEncodeEntities">docbEncodeEntities</a><br />
 <a href="html/libxml-HTMLparser.html#htmlEncodeEntities">htmlEncodeEntities</a><br />
@@ -301,6 +275,7 @@
 </dd><dt>escaping</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
+</dd><dt>especially</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>established</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
 </dd><dt>etc</dt><dd><a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
 <a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
@@ -327,6 +302,9 @@
 <a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
 </dd><dt>evaulation</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
 </dd><dt>even</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 <a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
 <a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
@@ -336,10 +314,12 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
 </dd><dt>events</dt><dd><a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+</dd><dt>ever</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
 </dd><dt>everywhere</dt><dd><a href="html/libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a><br />
 <a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
 </dd><dt>exact</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
 <a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
+</dd><dt>examined</dt><dd><a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 </dd><dt>example</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
 <a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
@@ -348,7 +328,8 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathTranslateFunction">xmlXPathTranslateFunction</a><br />
 </dd><dt>examples</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
-</dd><dt>except</dt><dd><a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
+</dd><dt>except</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
 <a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
@@ -369,7 +350,8 @@
 <a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
-</dd><dt>exist</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+</dd><dt>exist</dt><dd><a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
 </dd><dt>existent</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
 </dd><dt>exists</dt><dd><a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
@@ -389,6 +371,8 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
 </dd><dt>experimental</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
@@ -397,7 +381,12 @@
 </dd><dt>explicitly</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
 </dd><dt>explored</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
 </dd><dt>exposing</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
-</dd><dt>expressions</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
+</dd><dt>expressions</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
 </dd><dt>exslSetsDistinctSorted</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDistinct">xmlXPathDistinct</a><br />
 </dd><dt>exslSetsLeadingSorted</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
 </dd><dt>exslSetsNodeLeadingSorted</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeLeading">xmlXPathNodeLeading</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk15.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk15.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk15.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -56,6 +56,8 @@
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
+</dd><dt>facility</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
 </dd><dt>fail</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
 <a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
 <a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
@@ -86,36 +88,6 @@
 <a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
 <a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
 <a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
-</dd><dt>failure</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_TYPE0">CHECK_TYPE0</a><br />
-<a href="html/libxml-HTMLtree.html#htmlDocDump">htmlDocDump</a><br />
-<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
-<a href="html/libxml-HTMLtree.html#htmlSaveFile">htmlSaveFile</a><br />
-<a href="html/libxml-HTMLtree.html#htmlSaveFileEnc">htmlSaveFileEnc</a><br />
-<a href="html/libxml-HTMLtree.html#htmlSaveFileFormat">htmlSaveFileFormat</a><br />
-<a href="html/libxml-tree.html#xmlBufferShrink">xmlBufferShrink</a><br />
-<a href="html/libxml-tree.html#xmlDocDump">xmlDocDump</a><br />
-<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
-<a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
-<a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
-<a href="html/libxml-list.html#xmlListAppend">xmlListAppend</a><br />
-<a href="html/libxml-list.html#xmlListInsert">xmlListInsert</a><br />
-<a href="html/libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a><br />
-<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
-<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
-<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
-<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
-<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
-<a href="html/libxml-xmlautomata.html#xmlNewAutomata">xmlNewAutomata</a><br />
-<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
-<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
-<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
-<a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
-<a href="html/libxml-tree.html#xmlSaveFileEnc">xmlSaveFileEnc</a><br />
-<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
-<a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
-<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaGetParserErrors">xmlSchemaGetParserErrors</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
 </dd><dt>fallback</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a><br />
 <a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
 <a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
@@ -140,6 +112,7 @@
 </dd><dt>favor</dt><dd><a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
 </dd><dt>feature</dt><dd><a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
 <a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
 </dd><dt>features</dt><dd><a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
 </dd><dt>fed</dt><dd><a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
@@ -207,6 +180,7 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
 </dd><dt>finishing</dt><dd><a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+</dd><dt>finite</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>firs</dt><dd><a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
 </dd><dt>fist</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
 </dd><dt>fit</dt><dd><a href="html/libxml-encoding.html#xmlCharEncFirstLine">xmlCharEncFirstLine</a><br />
@@ -227,7 +201,8 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderIsValid">xmlTextReaderIsValid</a><br />
 </dd><dt>flagged</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
 <a href="html/libxml-HTMLtree.html#htmlGetMetaEncoding">htmlGetMetaEncoding</a><br />
-</dd><dt>flags</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+</dd><dt>flags</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+<a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 <a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />
@@ -251,7 +226,8 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
 </dd><dt>flushes</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferFlush">xmlOutputBufferFlush</a><br />
-</dd><dt>follow</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
+</dd><dt>follow</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailing">xmlXPathNodeTrailing</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathNodeTrailingSorted">xmlXPathNodeTrailingSorted</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
@@ -265,6 +241,7 @@
 </dd><dt>fonctionnalities</dt><dd><a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
 </dd><dt>for:</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
+</dd><dt>forbid</dt><dd><a href="html/libxml-xpath.html#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a><br />
 </dd><dt>force</dt><dd><a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
 <a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
 </dd><dt>forced</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
@@ -281,6 +258,7 @@
 <a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
+</dd><dt>formal</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
 </dd><dt>formatted</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatCDATA">xmlTextWriterWriteFormatCDATA</a><br />
@@ -333,8 +311,10 @@
 </dd><dt>fragment</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
 <a href="html/libxml-tree.html#xmlNewDocFragment">xmlNewDocFragment</a><br />
 <a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
 <a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
+</dd><dt>fragments</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 </dd><dt>freeing</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
 <a href="html/libxml-parser.html#xmlParserInputDeallocate">xmlParserInputDeallocate</a><br />
 </dd><dt>frees</dt><dd><a href="html/libxml-tree.html#xmlBufferFree">xmlBufferFree</a><br />
@@ -399,9 +379,11 @@
 <a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaGetValidErrors">xmlSchemaGetValidErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
 <a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
 <a href="html/libxml-parserInternals.html#xmlSwitchEncoding">xmlSwitchEncoding</a><br />
 <a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk16.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk16.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk16.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -101,10 +101,10 @@
 </dd><dt>generates</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegexpExec">xmlRegexpExec</a><br />
 </dd><dt>generating</dt><dd><a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
 <a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
 <a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
 </dd><dt>generic</dt><dd><a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
-<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
 <a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
 <a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
 </dd><dt>get</dt><dd><a href="html/libxml-parser.html#_xmlSAXHandler">_xmlSAXHandler</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk17.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk17.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk17.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -246,6 +246,9 @@
 </dd><dt>indirectly</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
 <a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
 <a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>infinite</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>infinity</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
@@ -384,12 +387,14 @@
 </dd><dt>insertion</dt><dd><a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
 <a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
 </dd><dt>inspect</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
+</dd><dt>instace</dt><dd><a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
 </dd><dt>installed</dt><dd><a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
 <a href="html/libxml-hash.html#xmlHashSize">xmlHashSize</a><br />
 </dd><dt>instances</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
 </dd><dt>instead</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a><br />
 <a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
 <a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
@@ -417,6 +422,7 @@
 <a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a><br />
 </dd><dt>insufficient</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
+</dd><dt>intact</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 </dd><dt>integer</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
@@ -441,16 +447,19 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
 </dd><dt>interfaces</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a><br />
 <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 />
 </dd><dt>intern</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
 </dd><dt>internally</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
 <a href="html/libxml-valid.html#xmlRemoveID">xmlRemoveID</a><br />
 <a href="html/libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk18.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk18.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk18.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -54,7 +54,11 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
-</dd></dl><h2>Letter k:</h2><dl><dt>keep</dt><dd><a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
+</dd></dl><h2>Letter k:</h2><dl><dt>keep</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
 <a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
@@ -106,6 +110,9 @@
 </dd><dt>language</dt><dd><a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
 <a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
+</dd><dt>languages</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
 </dd><dt>large</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
 </dd><dt>largest</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
@@ -143,12 +150,15 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
 </dd><dt>least</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
-</dd><dt>left</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>left</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
 </dd><dt>legacy</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
 </dd><dt>len</dt><dd><a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
 <a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
 <a href="html/libxml-xmlstring.html#xmlCharStrndup">xmlCharStrndup</a><br />
 <a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
 <a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
 <a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
 <a href="html/libxml-tree.html#xmlNewDocTextLen">xmlNewDocTextLen</a><br />
@@ -159,11 +169,15 @@
 <a href="html/libxml-xmlstring.html#xmlStrndup">xmlStrndup</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strndup">xmlUTF8Strndup</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
-</dd><dt>lenght</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
+</dd><dt>lenght</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
 <a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
 <a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
 </dd><dt>length-1</dt><dd><a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
-</dd><dt>less</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
+</dd><dt>less</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
@@ -200,12 +214,14 @@
 <a href="html/libxml-tree.html#xmlValidateQName">xmlValidateQName</a><br />
 </dd><dt>lib</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
 </dd><dt>libc</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
-</dd><dt>libraries</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGInitTypes">xmlRelaxNGInitTypes</a><br />
+</dd><dt>libraries</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGInitTypes">xmlRelaxNGInitTypes</a><br />
 </dd><dt>library</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
 <a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
 <a href="html/libxml-xmlmemory.html#xmlCleanupMemory">xmlCleanupMemory</a><br />
 <a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
 <a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
 <a href="html/libxml-globals.html#xmlInitializeGlobalState">xmlInitializeGlobalState</a><br />
 <a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
@@ -245,6 +261,7 @@
 <a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
 <a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
 </dd><dt>lifetime</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
 </dd><dt>like</dt><dd><a href="html/libxml-parserInternals.html#IS_CHAR_CH">IS_CHAR_CH</a><br />
 <a href="html/libxml-parserInternals.html#IS_DIGIT_CH">IS_DIGIT_CH</a><br />
 <a href="html/libxml-parserInternals.html#IS_EXTENDER_CH">IS_EXTENDER_CH</a><br />
@@ -266,6 +283,7 @@
 </dd><dt>limited</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
 </dd><dt>linear</dt><dd><a href="html/libxml-HTMLparser.html#htmlEntityLookup">htmlEntityLookup</a><br />
 <a href="html/libxml-HTMLparser.html#htmlEntityValueLookup">htmlEntityValueLookup</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
 </dd><dt>linked</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaAttributeLink">_xmlSchemaAttributeLink</a><br />
 <a href="html/libxml-schemasInternals.html#_xmlSchemaFacetLink">_xmlSchemaFacetLink</a><br />
 <a href="html/libxml-schemasInternals.html#_xmlSchemaTypeLink">_xmlSchemaTypeLink</a><br />
@@ -318,6 +336,7 @@
 <a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGNewParserCtxt">xmlRelaxNGNewParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
 <a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
@@ -372,6 +391,7 @@
 </dd><dt>lossless</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+</dd><dt>lower</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
 </dd><dt>lowercase</dt><dd><a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
 <a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
 </dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>

Modified: packages/libxml2/trunk/doc/APIchunk19.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk19.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk19.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -43,6 +43,7 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
 </dd><dt>made</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a><br />
 <a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 <a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
 <a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
 <a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
@@ -74,7 +75,8 @@
 </dd><dt>manages</dt><dd><a href="html/libxml-tree.html#xmlBufferWriteCHAR">xmlBufferWriteCHAR</a><br />
 </dd><dt>mandatory</dt><dd><a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
 </dd><dt>manipulated</dt><dd><a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
-</dd><dt>manipulating</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
+</dd><dt>manipulating</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
 </dd><dt>manipulation</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
 </dd><dt>many</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
@@ -128,6 +130,7 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
 </dd><dt>max</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
 <a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 <a href="html/libxml-tree.html#xmlGetCompressMode">xmlGetCompressMode</a><br />
 <a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
@@ -143,8 +146,12 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
-</dd><dt>means</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</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-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 />
 <a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
@@ -214,9 +221,11 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
 </dd><dt>might</dt><dd><a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
 </dd><dt>migrate</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
+</dd><dt>min</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>minLength</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
 </dd><dt>minimal</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>minimum</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
@@ -224,6 +233,7 @@
 <a href="html/libxml-tree.html#xmlBufferGrow">xmlBufferGrow</a><br />
 <a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
 <a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
 </dd><dt>minus</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
 </dd><dt>minute</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
 </dd><dt>misleading</dt><dd><a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
@@ -256,6 +266,7 @@
 <a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
 <a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
 </dd><dt>modifies</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
 </dd><dt>modify</dt><dd><a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
 </dd><dt>module</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a><br />
@@ -267,11 +278,13 @@
 <a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
 <a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+</dd><dt>modules</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
 </dd><dt>moment</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
 </dd><dt>month</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
 </dd><dt>more</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
-<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk2.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk2.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk2.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -108,8 +108,11 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaFree">xmlSchemaFree</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaFreeFacet">xmlSchemaFreeFacet</a><br />
 <a href="html/libxml-schemasInternals.html#xmlSchemaFreeType">xmlSchemaFreeType</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
 </dd><dt>Deallocates</dt><dd><a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a><br />
 </dd><dt>Debugging</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
 </dd><dt>Declaration</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
@@ -140,6 +143,7 @@
 <a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
 </dd><dt>Depth</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
+</dd><dt>Dereference</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
 </dd><dt>DeregisterNodeFunc</dt><dd><a href="html/libxml-globals.html#xmlDeregisterNodeDefault">xmlDeregisterNodeDefault</a><br />
 </dd><dt>Deseret</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsDeseret">xmlUCSIsDeseret</a><br />
 </dd><dt>Determine</dt><dd><a href="html/libxml-HTMLtree.html#htmlIsBooleanAttr">htmlIsBooleanAttr</a><br />
@@ -358,11 +362,13 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
-</dd><dt>Evaluates</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
+</dd><dt>Evaluates</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlschemastypes.html#xmlSchemaIsBuiltInTypeFacet">xmlSchemaIsBuiltInTypeFacet</a><br />
 </dd><dt>Everything</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
 <a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2SetDocumentLocator">xmlSAX2SetDocumentLocator</a><br />
+</dd><dt>Examines</dt><dd><a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 </dd><dt>Exclusive</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
 <a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
 <a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
@@ -394,7 +400,6 @@
 <a href="html/libxml-catalog.html#xmlCatalogLocalResolve">xmlCatalogLocalResolve</a><br />
 <a href="html/libxml-catalog.html#xmlCatalogResolve">xmlCatalogResolve</a><br />
 <a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
-<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
 <a href="html/libxml-parser.html#xmlParseDTD">xmlParseDTD</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk20.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk20.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk20.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -54,7 +54,8 @@
 <a href="html/libxml-xinclude.html#XINCLUDE_OLD_NS">XINCLUDE_OLD_NS</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
-</dd><dt>namespaces</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+</dd><dt>namespaces</dt><dd><a href="html/libxml-xpath.html#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a><br />
+<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
 <a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
 <a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
@@ -172,6 +173,7 @@
 <a href="html/libxml-xmlreader.html#xmlReaderNewFile">xmlReaderNewFile</a><br />
 </dd><dt>nice</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
 </dd><dt>nillable</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
 </dd><dt>nod</dt><dd><a href="html/libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a><br />
 </dd><dt>node-</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapRemoveNode">xmlDOMWrapRemoveNode</a><br />
 <a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
@@ -209,6 +211,7 @@
 </dd><dt>non-validating</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
 </dd><dt>non-zero</dt><dd><a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2InitDefaultSAXHandler">xmlSAX2InitDefaultSAXHandler</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathBooleanFunction">xmlXPathBooleanFunction</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk21.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk21.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk21.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -190,6 +190,9 @@
 <a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
 </dd><dt>operation</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
 <a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
@@ -206,8 +209,10 @@
 </dd><dt>operations</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleClose">xmlModuleClose</a><br />
 <a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
 <a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
-</dd><dt>operator</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
-</dd><dt>operators</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
+</dd><dt>operator</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
+</dd><dt>operators</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathDivValues">xmlXPathDivValues</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathModValues">xmlXPathModValues</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
@@ -224,6 +229,7 @@
 <a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
 <a href="html/libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
 <a href="html/libxml-list.html#xmlListCreate">xmlListCreate</a><br />
 <a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
 <a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
@@ -277,6 +283,7 @@
 <a href="html/libxml-encoding.html#xmlGetEncodingAlias">xmlGetEncodingAlias</a><br />
 <a href="html/libxml-list.html#xmlListMerge">xmlListMerge</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseEntityValue">xmlParseEntityValue</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
 <a href="html/libxml-debugXML.html#xmlShellSave">xmlShellSave</a><br />
@@ -288,6 +295,7 @@
 <a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
 <a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
 <a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
 <a href="html/libxml-catalog.html#xmlLoadACatalog">xmlLoadACatalog</a><br />
@@ -328,6 +336,7 @@
 <a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
 <a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
 </dd><dt>outside</dt><dd><a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
+</dd><dt>over</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
 </dd><dt>overflow</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
 </dd><dt>override</dt><dd><a href="html/libxml-SAX.html#resolveEntity">resolveEntity</a><br />
 <a href="html/libxml-parser.html#resolveEntitySAXFunc">resolveEntitySAXFunc</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk22.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk22.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk22.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -89,6 +89,7 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
 </dd><dt>passed</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ARITY">CHECK_ARITY</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition2">xmlAutomataNewTransition2</a><br />
 <a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
@@ -132,6 +133,7 @@
 <a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
 <a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
@@ -157,6 +159,7 @@
 </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 />
+</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 />
 <a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
@@ -242,10 +245,12 @@
 <a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
 <a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
@@ -287,6 +292,7 @@
 <a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
 </dd><dt>prepend</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
 </dd><dt>present</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
 <a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
@@ -379,6 +385,7 @@
 <a href="html/libxml-parserInternals.html#xmlParseEntityRef">xmlParseEntityRef</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGNewDocParserCtxt">xmlRelaxNGNewDocParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
 <a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
 <a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
 <a href="html/libxml-parserInternals.html#xmlStringLenDecodeEntities">xmlStringLenDecodeEntities</a><br />
@@ -483,6 +490,8 @@
 </dd><dt>provides</dt><dd><a href="html/libxml-parser.html#endElementNsSAX2Func">endElementNsSAX2Func</a><br />
 <a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
 <a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2EndElementNs">xmlSAX2EndElementNs</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk23.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk23.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk23.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -73,6 +73,7 @@
 <a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
 <a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
 <a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
 <a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
@@ -109,6 +110,7 @@
 <a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
 <a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
 </dd><dt>reachable</dt><dd><a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
 </dd><dt>reached</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecPushString">xmlRegExecPushString</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
 </dd><dt>read-only</dt><dd><a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
@@ -138,6 +140,7 @@
 <a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
 <a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
 </dd><dt>reasonable</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
+</dd><dt>receive</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
 </dd><dt>received</dt><dd><a href="html/libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a><br />
 <a href="html/libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a><br />
 </dd><dt>receives</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
@@ -273,6 +276,7 @@
 <a href="html/libxml-xmlregexp.html#xmlRegFreeRegexp">xmlRegFreeRegexp</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
+</dd><dt>regexps</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>register</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableLookup">xmlXPathRegisterVariableLookup</a><br />
 </dd><dt>registered</dt><dd><a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
 <a href="html/libxml-xmlerror.html#xmlCtxtResetLastError">xmlCtxtResetLastError</a><br />
@@ -321,10 +325,14 @@
 <a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
 </dd><dt>relativeURI</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
 </dd><dt>release</dt><dd><a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
 <a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
 <a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 <a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
 </dd><dt>releases</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
 </dd><dt>reliable</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
@@ -376,6 +384,8 @@
 </dd><dt>removing</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
 </dd><dt>rename</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
 </dd><dt>repeat</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>repeated</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+</dd><dt>repetition</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
 </dd><dt>replace</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a><br />
 <a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
@@ -430,6 +440,7 @@
 <a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
 <a href="html/libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a><br />
 </dd><dt>requested</dt><dd><a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-valid.html#xmlIsID">xmlIsID</a><br />
 <a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
 <a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
@@ -495,8 +506,11 @@
 <a href="html/libxml-relaxng.html#xmlRelaxNGFreeValidCtxt">xmlRelaxNGFreeValidCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaFreeParserCtxt">xmlSchemaFreeParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaFreeValidCtxt">xmlSchemaFreeValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a><br />
+<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>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 />
 <a href="html/libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a><br />
@@ -558,6 +572,8 @@
 </dd><dt>rewrite</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
 </dd><dt>right</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
 <a href="html/libxml-tree.html#xmlSetListDoc">xmlSetListDoc</a><br />
 <a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk24.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk24.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk24.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -129,7 +129,9 @@
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+</dd><dt>schematron</dt><dd><a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
 </dd><dt>scheme</dt><dd><a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
 <a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
 <a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
@@ -173,7 +175,8 @@
 </dd><dt>selection</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
 </dd><dt>selects</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
 </dd><dt>self</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
-</dd><dt>semantic</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
+</dd><dt>semantic</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
 </dd><dt>sense</dt><dd><a href="html/libxml-entities.html#xmlCreateEntitiesTable">xmlCreateEntitiesTable</a><br />
 </dd><dt>separated</dt><dd><a href="html/libxml-catalog.html#xmlLoadCatalogs">xmlLoadCatalogs</a><br />
 </dd><dt>separately</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
@@ -189,6 +192,8 @@
 <a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
 <a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
 <a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 <a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
 <a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
@@ -202,10 +207,12 @@
 <a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
 </dd><dt>sequences</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
 <a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
 <a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
+</dd><dt>sequqnce</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
 </dd><dt>serialization</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveToFd">xmlSaveToFd</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
@@ -256,7 +263,8 @@
 </dd><dt>shadowed</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
 </dd><dt>shall</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
-</dd><dt>shared</dt><dd><a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
+</dd><dt>shared</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
 <a href="html/libxml-xmlmodule.html#xmlModuleFree">xmlModuleFree</a><br />
 <a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
 </dd><dt>shares</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathHasSameNodes">xmlXPathHasSameNodes</a><br />
@@ -398,6 +406,7 @@
 <a href="html/libxml-xinclude.html#xmlXIncludeProcessNode">xmlXIncludeProcessNode</a><br />
 <a href="html/libxml-xinclude.html#xmlXIncludeProcessTree">xmlXIncludeProcessTree</a><br />
 <a href="html/libxml-xinclude.html#xmlXIncludeProcessTreeFlags">xmlXIncludeProcessTreeFlags</a><br />
+</dd><dt>sometimes</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
 </dd><dt>somewhat</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
 </dd><dt>sorted</dt><dd><a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
 <a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
@@ -517,10 +526,12 @@
 <a href="html/libxml-parser.html#startElementNsSAX2Func">startElementNsSAX2Func</a><br />
 <a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushElement">xmlRelaxNGValidatePushElement</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2StartDocument">xmlSAX2StartDocument</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2StartElementNs">xmlSAX2StartElementNs</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
 <a href="html/libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrNewLocationSetNodes">xmlXPtrNewLocationSetNodes</a><br />
@@ -534,6 +545,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
@@ -574,7 +586,8 @@
 <a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
 <a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
-</dd><dt>step</dt><dd><a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
+</dd><dt>step</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
 <a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
 <a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
 <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
@@ -598,6 +611,8 @@
 <a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
 <a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
 <a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
 <a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
 <a href="html/libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
@@ -645,6 +660,9 @@
 </dd><dt>stringi</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringAfterFunction">xmlXPathSubstringAfterFunction</a><br />
 </dd><dt>strings</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 <a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
@@ -670,7 +688,9 @@
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaNewQNameValue">xmlSchemaNewQNameValue</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaNewStringValue">xmlSchemaNewStringValue</a><br />
-</dd><dt>structured</dt><dd><a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</dd><dt>structured</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
 </dd><dt>structures</dt><dd><a href="html/libxml-tree.html#xmlFreeDoc">xmlFreeDoc</a><br />
 <a href="html/libxml-tree.html#xmlFreeNs">xmlFreeNs</a><br />
 <a href="html/libxml-tree.html#xmlFreeNsList">xmlFreeNsList</a><br />
@@ -679,15 +699,20 @@
 <a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
 </dd><dt>struture</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
 </dd><dt>stuff</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
 </dd><dt>style</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
+</dd><dt>sub</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
 </dd><dt>sub-elements</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
 </dd><dt>subelement</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
 <a href="html/libxml-HTMLparser.html#htmlDefaultSubelement">htmlDefaultSubelement</a><br />
 <a href="html/libxml-valid.html#xmlNewDocElementContent">xmlNewDocElementContent</a><br />
 <a href="html/libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a><br />
 </dd><dt>subelements</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
+</dd><dt>subexpression</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+</dd><dt>subexpressions</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>subject</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
@@ -799,6 +824,7 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathNodeSetFreeNs">xmlXPathNodeSetFreeNs</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
+</dd><dt>suffix</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
 </dd><dt>suggested</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
 </dd><dt>suitable</dt><dd><a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk25.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk25.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk25.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -61,6 +61,7 @@
 <a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
 </dd><dt>take</dt><dd><a href="html/libxml-threads.html#xmlLockLibrary">xmlLockLibrary</a><br />
 </dd><dt>takes</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
+</dd><dt>tatkes</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
 </dd><dt>tell</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
 <a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
 <a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
@@ -72,6 +73,7 @@
 <a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
 </dd><dt>terminal</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
+</dd><dt>terminals</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>terminated</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadDoc">htmlCtxtReadDoc</a><br />
 <a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
 <a href="html/libxml-SAX.html#startElement">startElement</a><br />
@@ -80,6 +82,7 @@
 <a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
 <a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
 <a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 <a href="html/libxml-tree.html#xmlGetNsList">xmlGetNsList</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
@@ -101,6 +104,9 @@
 </dd><dt>text-node</dt><dd><a href="html/libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a><br />
 </dd><dt>textDecl?</dt><dd><a href="html/libxml-parserInternals.html#xmlParseExternalSubset">xmlParseExternalSubset</a><br />
 </dd><dt>than</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
 <a href="html/libxml-tree.html#xmlNewNs">xmlNewNs</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
@@ -131,7 +137,11 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathMultValues">xmlXPathMultValues</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathSubValues">xmlXPathSubValues</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
-</dd><dt>them</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
+</dd><dt>them</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
 <a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
@@ -185,7 +195,8 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathNextAncestor">xmlXPathNextAncestor</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathNextAncestorOrSelf">xmlXPathNextAncestorOrSelf</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathNextDescendantOrSelf">xmlXPathNextDescendantOrSelf</a><br />
-</dd><dt>time</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>time</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
 </dd><dt>title</dt><dd><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
 </dd><dt>titles</dt><dd><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
 <a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
@@ -203,7 +214,9 @@
 </dd><dt>token_r</dt><dd><a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
 <a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
 <a href="html/libxml-threads.html#xmlRMutexUnlock">xmlRMutexUnlock</a><br />
-</dd><dt>tokens</dt><dd><a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
+</dd><dt>tokens</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-parserInternals.html#xmlParseEnumerationType">xmlParseEnumerationType</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
 </dd><dt>too</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
 <a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk26.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk26.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk26.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -47,7 +47,6 @@
 <a href="html/libxml-tree.html#xmlGetDocCompressMode">xmlGetDocCompressMode</a><br />
 <a href="html/libxml-tree.html#xmlSetCompressMode">xmlSetCompressMode</a><br />
 <a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
-</dd><dt>undefined</dt><dd><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 </dd><dt>under</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
 <a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
 <a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
@@ -56,9 +55,11 @@
 <a href="html/libxml-valid.html#xmlValidateElement">xmlValidateElement</a><br />
 </dd><dt>underlying</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderCurrentNode">xmlTextReaderCurrentNode</a><br />
+</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-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 />
 <a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
 </dd><dt>unimplemented</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
@@ -70,6 +71,8 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
 </dd><dt>unique</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
 <a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
 </dd><dt>uniquely</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttributeType">xmlParseAttributeType</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
@@ -82,10 +85,14 @@
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a><br />
 <a href="html/libxml-HTMLparser.html#htmlCtxtUseOptions">htmlCtxtUseOptions</a><br />
 <a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-xmlunicode.html#xmlUCSIsBlock">xmlUCSIsBlock</a><br />
 <a href="html/libxml-xmlunicode.html#xmlUCSIsCat">xmlUCSIsCat</a><br />
 </dd><dt>unless</dt><dd><a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
 <a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 <a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
 <a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
 <a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
@@ -169,7 +176,8 @@
 <a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
 </dd><dt>upon</dt><dd><a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
 <a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
-</dd><dt>upper</dt><dd><a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+</dd><dt>upper</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
 </dd><dt>uri</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
 </dd><dt>usage</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
 <a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
@@ -185,7 +193,10 @@
 <a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
 </dd><dt>users</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
 </dd><dt>uses</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
-</dd><dt>usually</dt><dd><a href="">c</a><br />
+</dd><dt>usual</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>usually</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
+<a href="">c</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
 <a href="html/libxml-encoding.html#xmlInitCharEncodingHandlers">xmlInitCharEncodingHandlers</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
@@ -237,7 +248,8 @@
 </dd><dt>varags</dt><dd><a href="html/libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a><br />
 </dd><dt>vararg</dt><dd><a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
 <a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
-</dd><dt>variables</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
+</dd><dt>variables</dt><dd><a href="html/libxml-xpath.html#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a><br />
+<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
 <a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathRegisteredNsCleanup">xmlXPathRegisteredNsCleanup</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathRegisteredVariablesCleanup">xmlXPathRegisteredVariablesCleanup</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk27.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk27.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk27.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -132,6 +132,8 @@
 <a href="html/libxml-tree.html#xmlCopyPropList">xmlCopyPropList</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
 <a href="html/libxml-xmlIO.html#xmlFileRead">xmlFileRead</a><br />
 <a href="html/libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a><br />
 <a href="html/libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a><br />
@@ -228,9 +230,11 @@
 <a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2EntityDecl">xmlSAX2EntityDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlScanName">xmlScanName</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
 <a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
 <a href="html/libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a><br />
 </dd><dt>won</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
 <a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk28.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk28.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk28.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -172,6 +172,12 @@
 <a href="html/libxml-SAX2.html#xmlSAX2GetParameterEntity">xmlSAX2GetParameterEntity</a><br />
 </dd><dt>xmlEnumerationPtr</dt><dd><a href="html/libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a><br />
 <a href="html/libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a><br />
+</dd><dt>xmlExpFree</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+</dd><dt>xmlExpRef</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 </dd><dt>xmlExternalEntityLoader</dt><dd><a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
 </dd><dt>xmlFileOpen_real</dt><dd><a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
 </dd><dt>xmlFree</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
@@ -329,6 +335,7 @@
 </dd><dt>xmlParserProperties</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
 </dd><dt>xmlPattern</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
+</dd><dt>xmlPatternFlags</dt><dd><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 </dd><dt>xmlPatternGetStreamCtxt</dt><dd><a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
 </dd><dt>xmlPatterncompile</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
@@ -386,6 +393,7 @@
 </dd><dt>xmlSchemaSAXPlug</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
 </dd><dt>xmlSchemaValType</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
 </dd><dt>xmlSchemaValidOption</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+</dd><dt>xmlSchematronValidOptions</dt><dd><a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
 </dd><dt>xmlSetExternalEntityLoader</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-SAX2.html#xmlSAX2ResolveEntity">xmlSAX2ResolveEntity</a><br />
@@ -421,6 +429,7 @@
 </dd><dt>xmlURIEscapeStr</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
 </dd><dt>xmlURIFromPath</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
 </dd><dt>xmlURIPtr</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 </dd><dt>xmlUnlinkNode</dt><dd><a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
 </dd><dt>xmlUnlockLibrary</dt><dd><a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
 </dd><dt>xmlValidCtxtPtr</dt><dd><a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk29.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk29.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk29.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -50,7 +50,6 @@
 <a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterStartDocument">xmlTextWriterStartDocument</a><br />
 </dd><dt>yet</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
-<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveDoc">xmlSaveDoc</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveTree">xmlSaveTree</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
@@ -72,6 +71,7 @@
 <a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
 <a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
 <a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
 <a href="html/libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk3.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk3.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk3.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -58,7 +58,9 @@
 </dd><dt>Fetch</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
 </dd><dt>File</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
 </dd><dt>Fills</dt><dd><a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
-</dd><dt>Find</dt><dd><a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
+</dd><dt>Find</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-valid.html#xmlGetRefs">xmlGetRefs</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
@@ -70,6 +72,7 @@
 <a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
 <a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
 <a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+</dd><dt>Finds</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
 </dd><dt>First</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
 </dd><dt>Fixed</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
 <a href="html/libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a><br />
@@ -255,7 +258,9 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathTrailing">xmlXPathTrailing</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathTrailingSorted">xmlXPathTrailingSorted</a><br />
 </dd><dt>Included</dt><dd><a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+</dd><dt>Increase</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
 </dd><dt>Increment</dt><dd><a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
+</dd><dt>Indicate</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
 </dd><dt>Indicates</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaWildcard">_xmlSchemaWildcard</a><br />
 </dd><dt>Infinity</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
 </dd><dt>Initial</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataGetInitState">xmlAutomataGetInitState</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk4.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk4.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk4.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -142,6 +142,7 @@
 <a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
 </dd><dt>Method</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
 </dd><dt>Mime-Type</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a><br />
+</dd><dt>Minimal</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>Misc</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
 <a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
@@ -289,6 +290,7 @@
 </dd><dt>Note</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
 <a href="html/libxml-HTMLparser.html#htmlElementAllowedHere">htmlElementAllowedHere</a><br />
 <a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapReconcileNamespaces">xmlDOMWrapReconcileNamespaces</a><br />
@@ -296,6 +298,9 @@
 <a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
 <a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
 <a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
 <a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
 <a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
 <a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk5.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk5.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk5.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -126,6 +126,7 @@
 <a href="html/libxml-parser.html#xmlParseInNodeContext">xmlParseInNodeContext</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseQuotedString">xmlParseQuotedString</a><br />
 <a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
 <a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
 <a href="html/libxml-tree.html#xmlStringLenGetNodeList">xmlStringLenGetNodeList</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk6.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk6.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk6.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -165,6 +165,7 @@
 <a href="html/libxml-relaxng.html#xmlRelaxNGParse">xmlRelaxNGParse</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
 </dd><dt>RelaxNG</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGCleanupTypes">xmlRelaxNGCleanupTypes</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGDump">xmlRelaxNGDump</a><br />
@@ -224,6 +225,7 @@
 <a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
 <a href="html/libxml-entities.html#xmlGetDtdEntity">xmlGetDtdEntity</a><br />
 <a href="html/libxml-entities.html#xmlGetParameterEntity">xmlGetParameterEntity</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-list.html#xmlLinkGetData">xmlLinkGetData</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathCheckError">xmlXPathCheckError</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathGetContextNode">xmlXPathGetContextNode</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk7.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk7.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk7.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -119,6 +119,13 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+</dd><dt>Schematron</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+</dd><dt>Schematrons</dt><dd><a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
 </dd><dt>Script</dt><dd><a href="html/libxml-HTMLparser.html#htmlIsScriptAttribute">htmlIsScriptAttribute</a><br />
 </dd><dt>Search</dt><dd><a href="html/libxml-encoding.html#xmlFindCharEncodingHandler">xmlFindCharEncodingHandler</a><br />
 <a href="html/libxml-encoding.html#xmlGetCharEncodingHandler">xmlGetCharEncodingHandler</a><br />
@@ -158,36 +165,7 @@
 </dd><dt>Semi</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxParserSetFlag">xmlRelaxParserSetFlag</a><br />
 </dd><dt>Send</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a><br />
 </dd><dt>Serialize</dt><dd><a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
-</dd><dt>Set</dt><dd><a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
-<a href="html/libxml-xmlerror.html#initGenericErrorDefaultFunc">initGenericErrorDefaultFunc</a><br />
-<a href="html/libxml-SAX.html#setNamespace">setNamespace</a><br />
-<a href="html/libxml-xlink.html#xlinkSetDefaultDetect">xlinkSetDefaultDetect</a><br />
-<a href="html/libxml-xlink.html#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a><br />
-<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
-<a href="html/libxml-entities.html#xmlInitializePredefinedEntities">xmlInitializePredefinedEntities</a><br />
-<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
-<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
-<a href="html/libxml-tree.html#xmlNodeSetBase">xmlNodeSetBase</a><br />
-<a href="html/libxml-tree.html#xmlNodeSetLang">xmlNodeSetLang</a><br />
-<a href="html/libxml-tree.html#xmlNodeSetName">xmlNodeSetName</a><br />
-<a href="html/libxml-tree.html#xmlNodeSetSpacePreserve">xmlNodeSetSpacePreserve</a><br />
-<a href="html/libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
-<a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
-<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
-<a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
-<a href="html/libxml-xmlsave.html#xmlSaveSetAttrEscape">xmlSaveSetAttrEscape</a><br />
-<a href="html/libxml-xmlsave.html#xmlSaveSetEscape">xmlSaveSetEscape</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
-<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
-<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
-<a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
-<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
-<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
-<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndent">xmlTextWriterSetIndent</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterSetIndentString">xmlTextWriterSetIndentString</a><br />
-<a href="html/libxml-xinclude.html#xmlXIncludeSetFlags">xmlXIncludeSetFlags</a><br />
-<a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
 </dd><dt>Sets</dt><dd><a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
 <a href="html/libxml-tree.html#xmlBufferSetAllocationScheme">xmlBufferSetAllocationScheme</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
@@ -215,6 +193,7 @@
 </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 />
 <a href="html/libxml-xmlschemas.html#xmlSchemaParse">xmlSchemaParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
 </dd><dt>Should</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
 <a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk8.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk8.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk8.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -56,7 +56,6 @@
 <a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
 <a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
 <a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
-<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
 <a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
 <a href="html/libxml-parserInternals.html#xmlNamespaceParseNCName">xmlNamespaceParseNCName</a><br />
 <a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
@@ -112,6 +111,7 @@
 <a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
 </dd><dt>Then</dt><dd><a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
+</dd><dt>There</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>Those</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 </dd><dt>Thus:</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
 </dd><dt>Tibetan</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsTibetan">xmlUCSIsTibetan</a><br />
@@ -183,6 +183,7 @@
 <a href="html/libxml-parser.html#ignorableWhitespaceSAXFunc">ignorableWhitespaceSAXFunc</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a><br />
 </dd><dt>URI-reference</dt><dd><a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
 </dd><dt>URN</dt><dd><a href="html/libxml-SAX.html#globalNamespace">globalNamespace</a><br />
 <a href="html/libxml-SAX.html#namespaceDecl">namespaceDecl</a><br />

Modified: packages/libxml2/trunk/doc/APIchunk9.html
===================================================================
--- packages/libxml2/trunk/doc/APIchunk9.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIchunk9.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -44,6 +44,7 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateOneElement">xmlSchemaValidateOneElement</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
 <a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
 <a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
 <a href="html/libxml-valid.html#xmlValidateNameValue">xmlValidateNameValue</a><br />
@@ -206,7 +207,8 @@
 <a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
-</dd><dt>XSD</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
+</dd><dt>XSD</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderSchemaValidate">xmlTextReaderSchemaValidate</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetSchema">xmlTextReaderSetSchema</a><br />
 </dd><dt>XSLT</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
 <a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />

Modified: packages/libxml2/trunk/doc/APIconstructors.html
===================================================================
--- packages/libxml2/trunk/doc/APIconstructors.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIconstructors.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -148,6 +148,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
@@ -324,6 +325,14 @@
 <a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
 </p><h2>Type xmlErrorPtr:</h2><p><a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
 <a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
+</p><h2>Type xmlExpCtxtPtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+</p><h2>Type xmlExpNodePtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
 </p><h2>Type xmlExternalEntityLoader:</h2><p><a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
 </p><h2>Type xmlGlobalStatePtr:</h2><p><a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
 </p><h2>Type xmlHashTablePtr:</h2><p><a href="html/libxml-hash.html#xmlHashCopy">xmlHashCopy</a><br />
@@ -491,6 +500,11 @@
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValueGetNext">xmlSchemaValueGetNext</a><br />
 </p><h2>Type xmlSchemaValType:</h2><p><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetValType">xmlSchemaGetValType</a><br />
 </p><h2>Type xmlSchemaValidCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
+</p><h2>Type xmlSchematronParserCtxtPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+</p><h2>Type xmlSchematronPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+</p><h2>Type xmlSchematronValidCtxtPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
 </p><h2>Type xmlStreamCtxtPtr:</h2><p><a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
 </p><h2>Type xmlTextReaderPtr:</h2><p><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
 <a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
@@ -508,6 +522,7 @@
 <a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
 </p><h2>Type xmlURIPtr:</h2><p><a href="html/libxml-uri.html#xmlCreateURI">xmlCreateURI</a><br />
 <a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 </p><h2>Type xmlValidCtxtPtr:</h2><p><a href="html/libxml-valid.html#xmlNewValidCtxt">xmlNewValidCtxt</a><br />
 </p><h2>Type xmlXIncludeCtxtPtr:</h2><p><a href="html/libxml-xinclude.html#xmlXIncludeNewContext">xmlXIncludeNewContext</a><br />
 </p><h2>Type xmlXPathCompExprPtr:</h2><p><a href="html/libxml-xpath.html#xmlXPathCompile">xmlXPathCompile</a><br />

Modified: packages/libxml2/trunk/doc/APIfiles.html
===================================================================
--- packages/libxml2/trunk/doc/APIfiles.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIfiles.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -27,11 +27,13 @@
 </p><h2><a name="HTMLparser" id="HTMLparser">Module HTMLparser</a>:</h2><p><a href="html/libxml-HTMLparser.html#HTML_DEPRECATED">HTML_DEPRECATED</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_INVALID">HTML_INVALID</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_NA">HTML_NA</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_COMPACT">HTML_PARSE_COMPACT</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_NOBLANKS">HTML_PARSE_NOBLANKS</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_NOERROR">HTML_PARSE_NOERROR</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_NONET">HTML_PARSE_NONET</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_NOWARNING">HTML_PARSE_NOWARNING</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_PEDANTIC">HTML_PARSE_PEDANTIC</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_RECOVER">HTML_PARSE_RECOVER</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_REQUIRED">HTML_REQUIRED</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_VALID">HTML_VALID</a><br />
 <a href="html/libxml-HTMLparser.html#UTF8ToHtml">UTF8ToHtml</a><br />
@@ -574,6 +576,37 @@
 </p><h2><a name="parser" id="parser">Module parser</a>:</h2><p><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
 <a href="html/libxml-parser.html#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a><br />
 <a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_AUTOMATA">XML_FEATURE_AUTOMATA</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_C14N">XML_FEATURE_C14N</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_CATALOG">XML_FEATURE_CATALOG</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_DEBUG">XML_FEATURE_DEBUG</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_DEBUG_MEM">XML_FEATURE_DEBUG_MEM</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_DEBUG_RUN">XML_FEATURE_DEBUG_RUN</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_EXPR">XML_FEATURE_EXPR</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_FTP">XML_FEATURE_FTP</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_HTML">XML_FEATURE_HTML</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_HTTP">XML_FEATURE_HTTP</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_ICONV">XML_FEATURE_ICONV</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_ISO8859X">XML_FEATURE_ISO8859X</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_LEGACY">XML_FEATURE_LEGACY</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_MODULES">XML_FEATURE_MODULES</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_NONE">XML_FEATURE_NONE</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_OUTPUT">XML_FEATURE_OUTPUT</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_PATTERN">XML_FEATURE_PATTERN</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_PUSH">XML_FEATURE_PUSH</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_READER">XML_FEATURE_READER</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_REGEXP">XML_FEATURE_REGEXP</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_SAX1">XML_FEATURE_SAX1</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_SCHEMAS">XML_FEATURE_SCHEMAS</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_SCHEMATRON">XML_FEATURE_SCHEMATRON</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_THREAD">XML_FEATURE_THREAD</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_TREE">XML_FEATURE_TREE</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_UNICODE">XML_FEATURE_UNICODE</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_VALID">XML_FEATURE_VALID</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_WRITER">XML_FEATURE_WRITER</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_XINCLUDE">XML_FEATURE_XINCLUDE</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_XPATH">XML_FEATURE_XPATH</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_XPTR">XML_FEATURE_XPTR</a><br />
 <a href="html/libxml-parser.html#XML_PARSER_ATTRIBUTE_VALUE">XML_PARSER_ATTRIBUTE_VALUE</a><br />
 <a href="html/libxml-parser.html#XML_PARSER_CDATA_SECTION">XML_PARSER_CDATA_SECTION</a><br />
 <a href="html/libxml-parser.html#XML_PARSER_COMMENT">XML_PARSER_COMMENT</a><br />
@@ -592,6 +625,7 @@
 <a href="html/libxml-parser.html#XML_PARSER_START">XML_PARSER_START</a><br />
 <a href="html/libxml-parser.html#XML_PARSER_START_TAG">XML_PARSER_START_TAG</a><br />
 <a href="html/libxml-parser.html#XML_PARSER_SYSTEM_LITERAL">XML_PARSER_SYSTEM_LITERAL</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_COMPACT">XML_PARSE_COMPACT</a><br />
 <a href="html/libxml-parser.html#XML_PARSE_DOM">XML_PARSE_DOM</a><br />
 <a href="html/libxml-parser.html#XML_PARSE_DTDATTR">XML_PARSE_DTDATTR</a><br />
 <a href="html/libxml-parser.html#XML_PARSE_DTDLOAD">XML_PARSE_DTDLOAD</a><br />
@@ -669,10 +703,12 @@
 <a href="html/libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a><br />
 <a href="html/libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a><br />
 <a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlFeature">xmlFeature</a><br />
 <a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />
 <a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
 <a href="html/libxml-parser.html#xmlGetFeature">xmlGetFeature</a><br />
 <a href="html/libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />
 <a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
 <a href="html/libxml-parser.html#xmlInitParser">xmlInitParser</a><br />
@@ -869,6 +905,7 @@
 <a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
 <a href="html/libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a><br />
 <a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
@@ -941,6 +978,7 @@
 <a href="html/libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidErr">xmlRelaxNGValidErr</a><br />
@@ -1167,6 +1205,30 @@
 <a href="html/libxml-schemasInternals.html#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a><br />
 <a href="html/libxml-schemasInternals.html#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a><br />
 <a href="html/libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a><br />
+</p><h2><a name="schematron" id="schematron">Module schematron</a>:</h2><p><a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_BUFFER">XML_SCHEMATRON_OUT_BUFFER</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_FILE">XML_SCHEMATRON_OUT_FILE</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_IO">XML_SCHEMATRON_OUT_IO</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_QUIET">XML_SCHEMATRON_OUT_QUIET</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_TEXT">XML_SCHEMATRON_OUT_TEXT</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_XML">XML_SCHEMATRON_OUT_XML</a><br />
+<a href="html/libxml-schematron.html#xmlSchematron">xmlSchematron</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidOptions">xmlSchematronValidOptions</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
 </p><h2><a name="threads" id="threads">Module threads</a>:</h2><p><a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
 <a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
 <a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
@@ -1468,6 +1530,7 @@
 <a href="html/libxml-uri.html#xmlFreeURI">xmlFreeURI</a><br />
 <a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
 <a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
 <a href="html/libxml-uri.html#xmlPrintURI">xmlPrintURI</a><br />
 <a href="html/libxml-uri.html#xmlSaveUri">xmlSaveUri</a><br />
@@ -1682,6 +1745,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
@@ -1896,6 +1960,7 @@
 <a href="html/libxml-xmlerror.html#XML_FROM_FTP">XML_FROM_FTP</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_HTML">XML_FROM_HTML</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_HTTP">XML_FROM_HTTP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_I18N">XML_FROM_I18N</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_IO">XML_FROM_IO</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_MEMORY">XML_FROM_MEMORY</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_MODULE">XML_FROM_MODULE</a><br />
@@ -1924,6 +1989,11 @@
 <a href="html/libxml-xmlerror.html#XML_HTTP_UNKNOWN_HOST">XML_HTTP_UNKNOWN_HOST</a><br />
 <a href="html/libxml-xmlerror.html#XML_HTTP_URL_SYNTAX">XML_HTTP_URL_SYNTAX</a><br />
 <a href="html/libxml-xmlerror.html#XML_HTTP_USE_IP">XML_HTTP_USE_IP</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_CONV_FAILED">XML_I18N_CONV_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_EXCESS_HANDLER">XML_I18N_EXCESS_HANDLER</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_HANDLER">XML_I18N_NO_HANDLER</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_NAME">XML_I18N_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_OUTPUT">XML_I18N_NO_OUTPUT</a><br />
 <a href="html/libxml-xmlerror.html#XML_IO_BUFFER_FULL">XML_IO_BUFFER_FULL</a><br />
 <a href="html/libxml-xmlerror.html#XML_IO_EACCES">XML_IO_EACCES</a><br />
 <a href="html/libxml-xmlerror.html#XML_IO_EADDRINUSE">XML_IO_EADDRINUSE</a><br />
@@ -2255,6 +2325,7 @@
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_3_2">XML_SCHEMAP_SRC_IMPORT_3_2</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_INCLUDE">XML_SCHEMAP_SRC_INCLUDE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_REDEFINE">XML_SCHEMAP_SRC_REDEFINE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_RESOLVE">XML_SCHEMAP_SRC_RESOLVE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_1">XML_SCHEMAP_SRC_SIMPLE_TYPE_1</a><br />
@@ -2458,6 +2529,7 @@
 <a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
 </p><h2><a name="xmlexports" id="xmlexports">Module xmlexports</a>:</h2><p><a href="html/libxml-xmlexports.html#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a><br />
 <a href="html/libxml-xmlexports.html#XMLCALL">XMLCALL</a><br />
+<a href="html/libxml-xmlexports.html#XMLCDECL">XMLCDECL</a><br />
 <a href="html/libxml-xmlexports.html#XMLPUBFUN">XMLPUBFUN</a><br />
 <a href="html/libxml-xmlexports.html#XMLPUBVAR">XMLPUBVAR</a><br />
 <a href="html/libxml-xmlexports.html#_REENTRANT">_REENTRANT</a><br />
@@ -2621,7 +2693,39 @@
 <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 />
-</p><h2><a name="xmlregexp" id="xmlregexp">Module xmlregexp</a>:</h2><p><a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
+</p><h2><a name="xmlregexp" id="xmlregexp">Module xmlregexp</a>:</h2><p><a href="html/libxml-xmlregexp.html#XML_EXP_ATOM">XML_EXP_ATOM</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_COUNT">XML_EXP_COUNT</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_EMPTY">XML_EXP_EMPTY</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_FORBID">XML_EXP_FORBID</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_OR">XML_EXP_OR</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_SEQ">XML_EXP_SEQ</a><br />
+<a href="html/libxml-xmlregexp.html#emptyExp">emptyExp</a><br />
+<a href="html/libxml-xmlregexp.html#forbiddenExp">forbiddenExp</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxt">xmlExpCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFreeCtxt">xmlExpFreeCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNode">xmlExpNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNodeType">xmlExpNodeType</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+<a href="html/libxml-xmlregexp.html#xmlRegExecCallbacks">xmlRegExecCallbacks</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecCtxt">xmlRegExecCtxt</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
@@ -2638,6 +2742,7 @@
 <a href="html/libxml-xmlregexp.html#xmlRegexpPrint">xmlRegexpPrint</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a><br />
 </p><h2><a name="xmlsave" id="xmlsave">Module xmlsave</a>:</h2><p><a href="html/libxml-xmlsave.html#XML_SAVE_FORMAT">XML_SAVE_FORMAT</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_NO_DECL">XML_SAVE_NO_DECL</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveClose">xmlSaveClose</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveCtxt">xmlSaveCtxt</a><br />
 <a href="html/libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a><br />
@@ -2700,6 +2805,7 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxt">xmlSchemaValidCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a><br />
@@ -2957,6 +3063,7 @@
 <a href="html/libxml-xmlversion.html#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a><br />
@@ -2972,6 +3079,7 @@
 <a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
@@ -3070,7 +3178,9 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatPI">xmlTextWriterWriteVFormatPI</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a><br />
-</p><h2><a name="xpath" id="xpath">Module xpath</a>:</h2><p><a href="html/libxml-xpath.html#XPATH_BOOLEAN">XPATH_BOOLEAN</a><br />
+</p><h2><a name="xpath" id="xpath">Module xpath</a>:</h2><p><a href="html/libxml-xpath.html#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a><br />
+<a href="html/libxml-xpath.html#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a><br />
+<a href="html/libxml-xpath.html#XPATH_BOOLEAN">XPATH_BOOLEAN</a><br />
 <a href="html/libxml-xpath.html#XPATH_ENCODING_ERROR">XPATH_ENCODING_ERROR</a><br />
 <a href="html/libxml-xpath.html#XPATH_EXPRESSION_OK">XPATH_EXPRESSION_OK</a><br />
 <a href="html/libxml-xpath.html#XPATH_EXPR_ERROR">XPATH_EXPR_ERROR</a><br />

Modified: packages/libxml2/trunk/doc/APIfunctions.html
===================================================================
--- packages/libxml2/trunk/doc/APIfunctions.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIfunctions.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -19,6 +19,8 @@
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttribute">xmlTextWriterWriteFormatAttribute</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatAttributeNS">xmlTextWriterWriteFormatAttributeNS</a><br />
@@ -180,6 +182,7 @@
 <a href="html/libxml-tree.html#xmlAttrSerializeTxtContent">xmlAttrSerializeTxtContent</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
@@ -218,6 +221,8 @@
 <a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
 <a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
 <a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
 <a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
 <a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
 <a href="html/libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a><br />
@@ -491,6 +496,8 @@
 <a href="html/libxml-parser.html#startElementSAXFunc">startElementSAXFunc</a><br />
 <a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
 <a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2StartElement">xmlSAX2StartElement</a><br />
@@ -694,6 +701,7 @@
 <a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
@@ -792,6 +800,7 @@
 <a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a><br />
 <a href="html/libxml-SAX2.html#xmlSAX2AttributeDecl">xmlSAX2AttributeDecl</a><br />
@@ -831,9 +840,12 @@
 <a href="html/libxml-xmlsave.html#xmlSaveToIO">xmlSaveToIO</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
 <a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
 <a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
 <a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
@@ -894,6 +906,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
@@ -907,6 +920,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewTransition">xmlAutomataNewTransition</a><br />
@@ -942,6 +956,7 @@
 <a href="html/libxml-entities.html#xmlDumpEntityDecl">xmlDumpEntityDecl</a><br />
 <a href="html/libxml-valid.html#xmlDumpNotationDecl">xmlDumpNotationDecl</a><br />
 <a href="html/libxml-valid.html#xmlDumpNotationTable">xmlDumpNotationTable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
 <a href="html/libxml-xmlwriter.html#xmlNewTextWriterMemory">xmlNewTextWriterMemory</a><br />
 <a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
 <a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
@@ -1055,6 +1070,7 @@
 <a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
 <a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
 <a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
 <a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
 </p><h2>Type xmlDocPtr:</h2><p><a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
 <a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
@@ -1157,6 +1173,8 @@
 <a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaNewDocParserCtxt">xmlSchemaNewDocParserCtxt</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
 <a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
 <a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
 <a href="html/libxml-tree.html#xmlSetDocCompressMode">xmlSetDocCompressMode</a><br />
@@ -1241,7 +1259,35 @@
 </p><h2>Type xmlErrorPtr:</h2><p><a href="html/libxml-xmlerror.html#xmlCopyError">xmlCopyError</a><br />
 <a href="html/libxml-xmlerror.html#xmlResetError">xmlResetError</a><br />
 <a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
+</p><h2>Type xmlExpCtxtPtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFreeCtxt">xmlExpFreeCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
+</p><h2>Type xmlExpNodePtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
 </p><h2>Type xmlExternalEntityLoader:</h2><p><a href="html/libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a><br />
+</p><h2>Type xmlFeature:</h2><p><a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 </p><h2>Type xmlFreeFunc:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
 <a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
 </p><h2>Type xmlFreeFunc *:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
@@ -1716,13 +1762,13 @@
 </p><h2>Type xmlParserNodeInfoSeqPtr:</h2><p><a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
 <a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
 </p><h2>Type xmlParserSeverities:</h2><p><a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
-</p><h2>Type xmlPatternFlags:</h2><p><a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
 </p><h2>Type xmlPatternPtr:</h2><p><a href="html/libxml-pattern.html#xmlFreePattern">xmlFreePattern</a><br />
 <a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
 <a href="html/libxml-pattern.html#xmlPatternFromRoot">xmlPatternFromRoot</a><br />
 <a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
 <a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
 </p><h2>Type xmlRMutexPtr:</h2><p><a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
 <a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
@@ -1759,6 +1805,7 @@
 </p><h2>Type xmlRelaxNGValidCtxtPtr:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGFreeValidCtxt">xmlRelaxNGFreeValidCtxt</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGGetValidErrors">xmlRelaxNGGetValidErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a><br />
@@ -1860,6 +1907,7 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateFile">xmlSchemaValidateFile</a><br />
@@ -1878,6 +1926,12 @@
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacetWhtsp">xmlSchemaValidateFacetWhtsp</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacetWhtsp">xmlSchemaValidateLengthFacetWhtsp</a><br />
 </p><h2>Type xmlSchemaWildcardPtr:</h2><p><a href="html/libxml-schemasInternals.html#xmlSchemaFreeWildcard">xmlSchemaFreeWildcard</a><br />
+</p><h2>Type xmlSchematronParserCtxtPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+</p><h2>Type xmlSchematronPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+</p><h2>Type xmlSchematronValidCtxtPtr:</h2><p><a href="html/libxml-schematron.html#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
 </p><h2>Type xmlShellCtxtPtr:</h2><p><a href="html/libxml-debugXML.html#xmlShellBase">xmlShellBase</a><br />
 <a href="html/libxml-debugXML.html#xmlShellCat">xmlShellCat</a><br />
 <a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
@@ -1898,7 +1952,9 @@
 <a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
-</p><h2>Type xmlStructuredErrorFunc:</h2><p><a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
+</p><h2>Type xmlStructuredErrorFunc:</h2><p><a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
 <a href="html/libxml-globals.html#xmlThrDefSetStructuredErrorFunc">xmlThrDefSetStructuredErrorFunc</a><br />
 </p><h2>Type xmlTextReaderErrorFunc:</h2><p><a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />

Modified: packages/libxml2/trunk/doc/APIsymbols.html
===================================================================
--- packages/libxml2/trunk/doc/APIsymbols.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/APIsymbols.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -25,11 +25,13 @@
 <a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_INVALID">HTML_INVALID</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_NA">HTML_NA</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_COMPACT">HTML_PARSE_COMPACT</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_NOBLANKS">HTML_PARSE_NOBLANKS</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_NOERROR">HTML_PARSE_NOERROR</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_NONET">HTML_PARSE_NONET</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_NOWARNING">HTML_PARSE_NOWARNING</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_PARSE_PEDANTIC">HTML_PARSE_PEDANTIC</a><br />
+<a href="html/libxml-HTMLparser.html#HTML_PARSE_RECOVER">HTML_PARSE_RECOVER</a><br />
 <a href="html/libxml-HTMLtree.html#HTML_PI_NODE">HTML_PI_NODE</a><br />
 <a href="html/libxml-HTMLtree.html#HTML_PRESERVE_NODE">HTML_PRESERVE_NODE</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_REQUIRED">HTML_REQUIRED</a><br />
@@ -63,6 +65,7 @@
 <a href="html/libxml-xmlexports.html#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a><br />
@@ -78,6 +81,7 @@
 <a href="html/libxml-xmlversion.html#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a><br />
+<a href="html/libxml-xmlversion.html#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a><br />
 <a href="html/libxml-xmlversion.html#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a><br />
@@ -119,6 +123,7 @@
 <a href="html/libxml-xlink.html#XLINK_TYPE_NONE">XLINK_TYPE_NONE</a><br />
 <a href="html/libxml-xlink.html#XLINK_TYPE_SIMPLE">XLINK_TYPE_SIMPLE</a><br />
 <a href="html/libxml-xmlexports.html#XMLCALL">XMLCALL</a><br />
+<a href="html/libxml-xmlexports.html#XMLCDECL">XMLCDECL</a><br />
 <a href="html/libxml-xmlexports.html#XMLPUBFUN">XMLPUBFUN</a><br />
 <a href="html/libxml-xmlexports.html#XMLPUBVAR">XMLPUBVAR</a><br />
 <a href="html/libxml-tree.html#XML_ATTRIBUTE_CDATA">XML_ATTRIBUTE_CDATA</a><br />
@@ -399,9 +404,46 @@
 <a href="html/libxml-xmlerror.html#XML_ERR_WARNING">XML_ERR_WARNING</a><br />
 <a href="html/libxml-xmlerror.html#XML_ERR_XMLDECL_NOT_FINISHED">XML_ERR_XMLDECL_NOT_FINISHED</a><br />
 <a href="html/libxml-xmlerror.html#XML_ERR_XMLDECL_NOT_STARTED">XML_ERR_XMLDECL_NOT_STARTED</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_ATOM">XML_EXP_ATOM</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_COUNT">XML_EXP_COUNT</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_EMPTY">XML_EXP_EMPTY</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_FORBID">XML_EXP_FORBID</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_OR">XML_EXP_OR</a><br />
+<a href="html/libxml-xmlregexp.html#XML_EXP_SEQ">XML_EXP_SEQ</a><br />
 <a href="html/libxml-entities.html#XML_EXTERNAL_GENERAL_PARSED_ENTITY">XML_EXTERNAL_GENERAL_PARSED_ENTITY</a><br />
 <a href="html/libxml-entities.html#XML_EXTERNAL_GENERAL_UNPARSED_ENTITY">XML_EXTERNAL_GENERAL_UNPARSED_ENTITY</a><br />
 <a href="html/libxml-entities.html#XML_EXTERNAL_PARAMETER_ENTITY">XML_EXTERNAL_PARAMETER_ENTITY</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_AUTOMATA">XML_FEATURE_AUTOMATA</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_C14N">XML_FEATURE_C14N</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_CATALOG">XML_FEATURE_CATALOG</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_DEBUG">XML_FEATURE_DEBUG</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_DEBUG_MEM">XML_FEATURE_DEBUG_MEM</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_DEBUG_RUN">XML_FEATURE_DEBUG_RUN</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_EXPR">XML_FEATURE_EXPR</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_FTP">XML_FEATURE_FTP</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_HTML">XML_FEATURE_HTML</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_HTTP">XML_FEATURE_HTTP</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_ICONV">XML_FEATURE_ICONV</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_ISO8859X">XML_FEATURE_ISO8859X</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_LEGACY">XML_FEATURE_LEGACY</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_MODULES">XML_FEATURE_MODULES</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_NONE">XML_FEATURE_NONE</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_OUTPUT">XML_FEATURE_OUTPUT</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_PATTERN">XML_FEATURE_PATTERN</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_PUSH">XML_FEATURE_PUSH</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_READER">XML_FEATURE_READER</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_REGEXP">XML_FEATURE_REGEXP</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_SAX1">XML_FEATURE_SAX1</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_SCHEMAS">XML_FEATURE_SCHEMAS</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_SCHEMATRON">XML_FEATURE_SCHEMATRON</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_THREAD">XML_FEATURE_THREAD</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_TREE">XML_FEATURE_TREE</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_UNICODE">XML_FEATURE_UNICODE</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_VALID">XML_FEATURE_VALID</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_WRITER">XML_FEATURE_WRITER</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_XINCLUDE">XML_FEATURE_XINCLUDE</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_XPATH">XML_FEATURE_XPATH</a><br />
+<a href="html/libxml-parser.html#XML_FEATURE_XPTR">XML_FEATURE_XPTR</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_C14N">XML_FROM_C14N</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_CATALOG">XML_FROM_CATALOG</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_CHECK">XML_FROM_CHECK</a><br />
@@ -410,6 +452,7 @@
 <a href="html/libxml-xmlerror.html#XML_FROM_FTP">XML_FROM_FTP</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_HTML">XML_FROM_HTML</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_HTTP">XML_FROM_HTTP</a><br />
+<a href="html/libxml-xmlerror.html#XML_FROM_I18N">XML_FROM_I18N</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_IO">XML_FROM_IO</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_MEMORY">XML_FROM_MEMORY</a><br />
 <a href="html/libxml-xmlerror.html#XML_FROM_MODULE">XML_FROM_MODULE</a><br />
@@ -441,6 +484,11 @@
 <a href="html/libxml-xmlerror.html#XML_HTTP_UNKNOWN_HOST">XML_HTTP_UNKNOWN_HOST</a><br />
 <a href="html/libxml-xmlerror.html#XML_HTTP_URL_SYNTAX">XML_HTTP_URL_SYNTAX</a><br />
 <a href="html/libxml-xmlerror.html#XML_HTTP_USE_IP">XML_HTTP_USE_IP</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_CONV_FAILED">XML_I18N_CONV_FAILED</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_EXCESS_HANDLER">XML_I18N_EXCESS_HANDLER</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_HANDLER">XML_I18N_NO_HANDLER</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_NAME">XML_I18N_NO_NAME</a><br />
+<a href="html/libxml-xmlerror.html#XML_I18N_NO_OUTPUT">XML_I18N_NO_OUTPUT</a><br />
 <a href="html/libxml-entities.html#XML_INTERNAL_GENERAL_ENTITY">XML_INTERNAL_GENERAL_ENTITY</a><br />
 <a href="html/libxml-entities.html#XML_INTERNAL_PARAMETER_ENTITY">XML_INTERNAL_PARAMETER_ENTITY</a><br />
 <a href="html/libxml-entities.html#XML_INTERNAL_PREDEFINED_ENTITY">XML_INTERNAL_PREDEFINED_ENTITY</a><br />
@@ -540,6 +588,7 @@
 <a href="html/libxml-xmlreader.html#XML_PARSER_SUBST_ENTITIES">XML_PARSER_SUBST_ENTITIES</a><br />
 <a href="html/libxml-parser.html#XML_PARSER_SYSTEM_LITERAL">XML_PARSER_SYSTEM_LITERAL</a><br />
 <a href="html/libxml-xmlreader.html#XML_PARSER_VALIDATE">XML_PARSER_VALIDATE</a><br />
+<a href="html/libxml-parser.html#XML_PARSE_COMPACT">XML_PARSE_COMPACT</a><br />
 <a href="html/libxml-parser.html#XML_PARSE_DOM">XML_PARSE_DOM</a><br />
 <a href="html/libxml-parser.html#XML_PARSE_DTDATTR">XML_PARSE_DTDATTR</a><br />
 <a href="html/libxml-parser.html#XML_PARSE_DTDLOAD">XML_PARSE_DTDLOAD</a><br />
@@ -755,6 +804,7 @@
 <a href="html/libxml-xmlerror.html#XML_SAVE_CHAR_INVALID">XML_SAVE_CHAR_INVALID</a><br />
 <a href="html/libxml-xmlsave.html#XML_SAVE_FORMAT">XML_SAVE_FORMAT</a><br />
 <a href="html/libxml-xmlerror.html#XML_SAVE_NOT_UTF8">XML_SAVE_NOT_UTF8</a><br />
+<a href="html/libxml-xmlsave.html#XML_SAVE_NO_DECL">XML_SAVE_NO_DECL</a><br />
 <a href="html/libxml-xmlerror.html#XML_SAVE_NO_DOCTYPE">XML_SAVE_NO_DOCTYPE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SAVE_UNKNOWN_ENCODING">XML_SAVE_UNKNOWN_ENCODING</a><br />
 <a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
@@ -897,6 +947,7 @@
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_IMPORT_3_2">XML_SCHEMAP_SRC_IMPORT_3_2</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_INCLUDE">XML_SCHEMAP_SRC_INCLUDE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</a><br />
+<a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_REDEFINE">XML_SCHEMAP_SRC_REDEFINE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_RESOLVE">XML_SCHEMAP_SRC_RESOLVE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE">XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAP_SRC_SIMPLE_TYPE_1">XML_SCHEMAP_SRC_SIMPLE_TYPE_1</a><br />
@@ -1091,6 +1142,12 @@
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_UNKNOWN">XML_SCHEMAS_UNKNOWN</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_USHORT">XML_SCHEMAS_USHORT</a><br />
 <a href="html/libxml-schemasInternals.html#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_BUFFER">XML_SCHEMATRON_OUT_BUFFER</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_FILE">XML_SCHEMATRON_OUT_FILE</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_IO">XML_SCHEMATRON_OUT_IO</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_QUIET">XML_SCHEMATRON_OUT_QUIET</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_TEXT">XML_SCHEMATRON_OUT_TEXT</a><br />
+<a href="html/libxml-schematron.html#XML_SCHEMATRON_OUT_XML">XML_SCHEMATRON_OUT_XML</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAV_ATTRINVALID">XML_SCHEMAV_ATTRINVALID</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAV_ATTRUNKNOWN">XML_SCHEMAV_ATTRUNKNOWN</a><br />
 <a href="html/libxml-xmlerror.html#XML_SCHEMAV_CONSTRUCT">XML_SCHEMAV_CONSTRUCT</a><br />
@@ -1267,6 +1324,7 @@
 <a href="html/libxml-xmlerror.html#XML_XINCLUDE_XPTR_RESULT">XML_XINCLUDE_XPTR_RESULT</a><br />
 <a href="html/libxml-tree.html#XML_XML_ID">XML_XML_ID</a><br />
 <a href="html/libxml-tree.html#XML_XML_NAMESPACE">XML_XML_NAMESPACE</a><br />
+<a href="html/libxml-xpath.html#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a><br />
 <a href="html/libxml-xmlerror.html#XML_XPATH_ENCODING_ERROR">XML_XPATH_ENCODING_ERROR</a><br />
 <a href="html/libxml-xmlerror.html#XML_XPATH_EXPRESSION_OK">XML_XPATH_EXPRESSION_OK</a><br />
 <a href="html/libxml-xmlerror.html#XML_XPATH_EXPR_ERROR">XML_XPATH_EXPR_ERROR</a><br />
@@ -1278,6 +1336,7 @@
 <a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_PREDICATE_ERROR">XML_XPATH_INVALID_PREDICATE_ERROR</a><br />
 <a href="html/libxml-xmlerror.html#XML_XPATH_INVALID_TYPE">XML_XPATH_INVALID_TYPE</a><br />
 <a href="html/libxml-xmlerror.html#XML_XPATH_MEMORY_ERROR">XML_XPATH_MEMORY_ERROR</a><br />
+<a href="html/libxml-xpath.html#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a><br />
 <a href="html/libxml-xmlerror.html#XML_XPATH_NUMBER_ERROR">XML_XPATH_NUMBER_ERROR</a><br />
 <a href="html/libxml-xmlerror.html#XML_XPATH_START_LITERAL_ERROR">XML_XPATH_START_LITERAL_ERROR</a><br />
 <a href="html/libxml-xmlerror.html#XML_XPATH_UNCLOSED_ERROR">XML_XPATH_UNCLOSED_ERROR</a><br />
@@ -1419,6 +1478,7 @@
 <a href="html/libxml-DOCBparser.html#docbSAXParseFile">docbSAXParseFile</a><br />
 </p><h2>Letter e:</h2><p><a href="html/libxml-SAX.html#elementDecl">elementDecl</a><br />
 <a href="html/libxml-parser.html#elementDeclSAXFunc">elementDeclSAXFunc</a><br />
+<a href="html/libxml-xmlregexp.html#emptyExp">emptyExp</a><br />
 <a href="html/libxml-SAX.html#endDocument">endDocument</a><br />
 <a href="html/libxml-parser.html#endDocumentSAXFunc">endDocumentSAXFunc</a><br />
 <a href="html/libxml-SAX.html#endElement">endElement</a><br />
@@ -1430,6 +1490,7 @@
 <a href="html/libxml-SAX.html#externalSubset">externalSubset</a><br />
 <a href="html/libxml-parser.html#externalSubsetSAXFunc">externalSubsetSAXFunc</a><br />
 </p><h2>Letter f:</h2><p><a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
+<a href="html/libxml-xmlregexp.html#forbiddenExp">forbiddenExp</a><br />
 <a href="html/libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a><br />
 <a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
 </p><h2>Letter g:</h2><p><a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
@@ -1620,6 +1681,7 @@
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounter">xmlAutomataNewCounter</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewState">xmlAutomataNewState</a><br />
@@ -1854,7 +1916,32 @@
 <a href="html/libxml-xmlerror.html#xmlErrorDomain">xmlErrorDomain</a><br />
 <a href="html/libxml-xmlerror.html#xmlErrorLevel">xmlErrorLevel</a><br />
 <a href="html/libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxt">xmlExpCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpDump">xmlExpDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFree">xmlExpFree</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpFreeCtxt">xmlExpFreeCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNode">xmlExpNode</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNodeType">xmlExpNodeType</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
 <a href="html/libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a><br />
+<a href="html/libxml-parser.html#xmlFeature">xmlFeature</a><br />
 <a href="html/libxml-xmlIO.html#xmlFileClose">xmlFileClose</a><br />
 <a href="html/libxml-xmlIO.html#xmlFileMatch">xmlFileMatch</a><br />
 <a href="html/libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a><br />
@@ -1934,6 +2021,7 @@
 <a href="html/libxml-globals.html#xmlGlobalState">xmlGlobalState</a><br />
 <a href="html/libxml-globals.html#xmlGlobalStatePtr">xmlGlobalStatePtr</a><br />
 <a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
+<a href="html/libxml-parser.html#xmlHasFeature">xmlHasFeature</a><br />
 <a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
 <a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
 <a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
@@ -2310,6 +2398,7 @@
 <a href="html/libxml-parserInternals.html#xmlParseSystemLiteral">xmlParseSystemLiteral</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseTextDecl">xmlParseTextDecl</a><br />
 <a href="html/libxml-uri.html#xmlParseURI">xmlParseURI</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
 <a href="html/libxml-uri.html#xmlParseURIReference">xmlParseURIReference</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseVersionInfo">xmlParseVersionInfo</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseVersionNum">xmlParseVersionNum</a><br />
@@ -2367,6 +2456,7 @@
 <a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
+<a href="html/libxml-pattern.html#xmlPatternMinDepth">xmlPatternMinDepth</a><br />
 <a href="html/libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a><br />
 <a href="html/libxml-pattern.html#xmlPatternStreamable">xmlPatternStreamable</a><br />
 <a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
@@ -2455,6 +2545,7 @@
 <a href="html/libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a><br />
+<a href="html/libxml-relaxng.html#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidCtxt">xmlRelaxNGValidCtxt</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a><br />
 <a href="html/libxml-relaxng.html#xmlRelaxNGValidErr">xmlRelaxNGValidErr</a><br />
@@ -2607,6 +2698,7 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a><br />
+<a href="html/libxml-xmlschemas.html#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a><br />
 <a href="html/libxml-schemasInternals.html#xmlSchemaType">xmlSchemaType</a><br />
 <a href="html/libxml-schemasInternals.html#xmlSchemaTypeLink">xmlSchemaTypeLink</a><br />
 <a href="html/libxml-schemasInternals.html#xmlSchemaTypeLinkPtr">xmlSchemaTypeLinkPtr</a><br />
@@ -2644,6 +2736,24 @@
 <a href="html/libxml-schemasInternals.html#xmlSchemaWildcardNs">xmlSchemaWildcardNs</a><br />
 <a href="html/libxml-schemasInternals.html#xmlSchemaWildcardNsPtr">xmlSchemaWildcardNsPtr</a><br />
 <a href="html/libxml-schemasInternals.html#xmlSchemaWildcardPtr">xmlSchemaWildcardPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematron">xmlSchematron</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFree">xmlSchematronFree</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeParserCtxt">xmlSchematronFreeParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronFreeValidCtxt">xmlSchematronFreeValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewDocParserCtxt">xmlSchematronNewDocParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewMemParserCtxt">xmlSchematronNewMemParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewParserCtxt">xmlSchematronNewParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronNewValidCtxt">xmlSchematronNewValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParse">xmlSchematronParse</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParserCtxt">xmlSchematronParserCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronParserCtxtPtr">xmlSchematronParserCtxtPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronPtr">xmlSchematronPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidCtxt">xmlSchematronValidCtxt</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidCtxtPtr">xmlSchematronValidCtxtPtr</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidOptions">xmlSchematronValidOptions</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidateDoc">xmlSchematronValidateDoc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityErrorFunc">xmlSchematronValidityErrorFunc</a><br />
+<a href="html/libxml-schematron.html#xmlSchematronValidityWarningFunc">xmlSchematronValidityWarningFunc</a><br />
 <a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
 <a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
 <a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />

Modified: packages/libxml2/trunk/doc/Makefile.in
===================================================================
--- packages/libxml2/trunk/doc/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -167,6 +167,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -202,6 +203,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@

Modified: packages/libxml2/trunk/doc/XSLT.html
===================================================================
--- packages/libxml2/trunk/doc/XSLT.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/XSLT.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,5 +10,4 @@
 </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="http://xmlsoft.org/wiki">Wiki</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://rubyforge.org/projects/xml-tools/">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 <a href="http://cvs.gnome.org/lxr/source/libxslt/FEATURES">features</a>
-supported and the progresses on the <a href="http://cvs.gnome.org/lxr/source/libxslt/ChangeLog" name="Changelog" id="Changelog">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 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>

Modified: packages/libxml2/trunk/doc/apibuild.py
===================================================================
--- packages/libxml2/trunk/doc/apibuild.py	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/apibuild.py	2005-09-05 17:42:20 UTC (rev 466)
@@ -63,6 +63,7 @@
   "EXSLTPUBFUN": (0, "Special macro for extern funcs for win32"),
   "XMLCALL": (0, "Special macro for win32 calls"),
   "XSLTCALL": (0, "Special macro for win32 calls"),
+  "XMLCDECL": (0, "Special macro for win32 calls"),
   "EXSLTCALL": (0, "Special macro for win32 calls"),
   "__declspec": (3, "Windows keyword"),
   "__stdcall": (0, "Windows keyword"),

Modified: packages/libxml2/trunk/doc/downloads.html
===================================================================
--- packages/libxml2/trunk/doc/downloads.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/downloads.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -22,6 +22,7 @@
   <li><a href="mailto:Steve.Ball at explain.com.au">Steve Ball</a> provides <a href="http://www.explain.com.au/oss/libxml2xslt.html">Mac Os X
     binaries</a>.</li>
   <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-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/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

Modified: packages/libxml2/trunk/doc/elfgcchack.xsl
===================================================================
--- packages/libxml2/trunk/doc/elfgcchack.xsl	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/elfgcchack.xsl	2005-09-05 17:42:20 UTC (rev 466)
@@ -43,6 +43,7 @@
 #include "libxml/SAX2.h"
 #include "libxml/SAX.h"
 #include "libxml/schemasInternals.h"
+#include "libxml/schematron.h"
 #include "libxml/threads.h"
 #include "libxml/tree.h"
 #include "libxml/uri.h"

Modified: packages/libxml2/trunk/doc/examples/Makefile.in
===================================================================
--- packages/libxml2/trunk/doc/examples/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/examples/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -224,6 +224,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -259,6 +260,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@

Modified: packages/libxml2/trunk/doc/html/book1.html
===================================================================
--- packages/libxml2/trunk/doc/html/book1.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/book1.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,4 +10,4 @@
 </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://rubyforge.org/projects/xml-tools/">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-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>
+    </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://rubyforge.org/projects/xml-tools/">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>

Modified: packages/libxml2/trunk/doc/html/index.html
===================================================================
--- packages/libxml2/trunk/doc/html/index.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/index.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,4 +10,4 @@
 </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://rubyforge.org/projects/xml-tools/">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-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>
+    </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://rubyforge.org/projects/xml-tools/">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>

Modified: packages/libxml2/trunk/doc/html/libxml-HTMLparser.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-HTMLparser.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-HTMLparser.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -86,11 +86,13 @@
     const char *	name	: The entity name
     const char *	desc	: the description
 }</pre><h3>Enum <a name="htmlParserOption" id="htmlParserOption">htmlParserOption</a></h3><pre class="programlisting">Enum htmlParserOption {
+    <a name="HTML_PARSE_RECOVER" id="HTML_PARSE_RECOVER">HTML_PARSE_RECOVER</a> = 1 : Relaxed parsing
     <a name="HTML_PARSE_NOERROR" id="HTML_PARSE_NOERROR">HTML_PARSE_NOERROR</a> = 32 : suppress error reports
     <a name="HTML_PARSE_NOWARNING" id="HTML_PARSE_NOWARNING">HTML_PARSE_NOWARNING</a> = 64 : suppress warning reports
     <a name="HTML_PARSE_PEDANTIC" id="HTML_PARSE_PEDANTIC">HTML_PARSE_PEDANTIC</a> = 128 : pedantic error reporting
     <a name="HTML_PARSE_NOBLANKS" id="HTML_PARSE_NOBLANKS">HTML_PARSE_NOBLANKS</a> = 256 : remove blank nodes
     <a name="HTML_PARSE_NONET" id="HTML_PARSE_NONET">HTML_PARSE_NONET</a> = 2048 : Forbid network access
+    <a name="HTML_PARSE_COMPACT" id="HTML_PARSE_COMPACT">HTML_PARSE_COMPACT</a> = 65536 : compact small text nodes
 }
 </pre><h3>Enum <a name="htmlStatus" id="htmlStatus">htmlStatus</a></h3><pre class="programlisting">Enum htmlStatus {
     <a name="HTML_NA" id="HTML_NA">HTML_NA</a> = 0 : something we don't check at all

Modified: packages/libxml2/trunk/doc/html/libxml-lib.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-lib.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-lib.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,4 +10,4 @@
 </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://rubyforge.org/projects/xml-tools/">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-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>
+    </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://rubyforge.org/projects/xml-tools/">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>

Modified: packages/libxml2/trunk/doc/html/libxml-parser.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-parser.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-parser.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,7 +10,8 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module parser from 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>Module parser from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-nanohttp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-nanohttp.html">nanohttp</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-parserInternals.html">parserInternals</a></th><td><a accesskey="n" href="libxml-parserInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Interfaces, constants and types related to the XML parser </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a></pre><pre class="programlisting">#define <a href="#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a></pre><pre class="programlisting">#define <a href="#XML_DETECT_IDS">XML_DETECT_IDS</a></pre><pre class="programlisting">#define <a href="#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a></pre><pre class="programlisting">#define <a href="#XML_SKIP_IDS">XML_SKIP_IDS</a></pre><pre class="programlisting">Enum <a href="#xmlParserInputState">xmlParserInputState</a>
+    </style><title>Module parser from 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>Module parser from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-nanohttp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-nanohttp.html">nanohttp</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-parserInternals.html">parserInternals</a></th><td><a accesskey="n" href="libxml-parserInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Interfaces, constants and types related to the XML parser </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a></pre><pre class="programlisting">#define <a href="#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a></pre><pre class="programlisting">#define <a href="#XML_DETECT_IDS">XML_DETECT_IDS</a></pre><pre class="programlisting">#define <a href="#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a></pre><pre class="programlisting">#define <a href="#XML_SKIP_IDS">XML_SKIP_IDS</a></pre><pre class="programlisting">Enum <a href="#xmlFeature">xmlFeature</a>
+</pre><pre class="programlisting">Enum <a href="#xmlParserInputState">xmlParserInputState</a>
 </pre><pre class="programlisting">Enum <a href="#xmlParserMode">xmlParserMode</a>
 </pre><pre class="programlisting">Structure <a href="#xmlParserNodeInfo">xmlParserNodeInfo</a><br />struct _xmlParserNodeInfo
 </pre><pre class="programlisting">Typedef <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a> * <a name="xmlParserNodeInfoPtr" id="xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a>
@@ -131,6 +132,7 @@
 <pre class="programlisting"><a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a>	<a href="#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a>	(void)</pre>
 <pre class="programlisting">int	<a href="#xmlGetFeature">xmlGetFeature</a>			(<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br />					 const char * name, <br />					 void * result)</pre>
 <pre class="programlisting">int	<a href="#xmlGetFeaturesList">xmlGetFeaturesList</a>		(int * len, <br />					 const char ** result)</pre>
+<pre class="programlisting">int	<a href="#xmlHasFeature">xmlHasFeature</a>			(<a href="libxml-parser.html#xmlFeature">xmlFeature</a> feature)</pre>
 <pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a>	<a href="#xmlIOParseDTD">xmlIOParseDTD</a>		(<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br />					 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br />					 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)</pre>
 <pre class="programlisting">void	<a href="#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a>		(<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq)</pre>
 <pre class="programlisting">void	<a href="#xmlInitParser">xmlInitParser</a>			(void)</pre>
@@ -190,7 +192,40 @@
 <h3><a name="XML_DETECT_IDS" id="XML_DETECT_IDS"></a>Macro: XML_DETECT_IDS</h3><pre>#define XML_DETECT_IDS</pre><p>Bit in the loadsubset context field to tell to do ID/REFs lookups. Use it to initialize xmlLoadExtDtdDefaultValue.</p>
 <h3><a name="XML_SAX2_MAGIC" id="XML_SAX2_MAGIC"></a>Macro: XML_SAX2_MAGIC</h3><pre>#define XML_SAX2_MAGIC</pre><p>Special constant found in SAX2 blocks initialized fields</p>
 <h3><a name="XML_SKIP_IDS" id="XML_SKIP_IDS"></a>Macro: XML_SKIP_IDS</h3><pre>#define XML_SKIP_IDS</pre><p>Bit in the loadsubset context field to tell to not do ID/REFs registration. Used to initialize <a href="libxml-globals.html#xmlLoadExtDtdDefaultValue">xmlLoadExtDtdDefaultValue</a> in some special cases.</p>
-<h3>Enum <a name="xmlParserInputState" id="xmlParserInputState">xmlParserInputState</a></h3><pre class="programlisting">Enum xmlParserInputState {
+<h3>Enum <a name="xmlFeature" id="xmlFeature">xmlFeature</a></h3><pre class="programlisting">Enum xmlFeature {
+    <a name="XML_FEATURE_THREAD" id="XML_FEATURE_THREAD">XML_FEATURE_THREAD</a> = 1
+    <a name="XML_FEATURE_TREE" id="XML_FEATURE_TREE">XML_FEATURE_TREE</a> = 2
+    <a name="XML_FEATURE_OUTPUT" id="XML_FEATURE_OUTPUT">XML_FEATURE_OUTPUT</a> = 3
+    <a name="XML_FEATURE_PUSH" id="XML_FEATURE_PUSH">XML_FEATURE_PUSH</a> = 4
+    <a name="XML_FEATURE_READER" id="XML_FEATURE_READER">XML_FEATURE_READER</a> = 5
+    <a name="XML_FEATURE_PATTERN" id="XML_FEATURE_PATTERN">XML_FEATURE_PATTERN</a> = 6
+    <a name="XML_FEATURE_WRITER" id="XML_FEATURE_WRITER">XML_FEATURE_WRITER</a> = 7
+    <a name="XML_FEATURE_SAX1" id="XML_FEATURE_SAX1">XML_FEATURE_SAX1</a> = 8
+    <a name="XML_FEATURE_FTP" id="XML_FEATURE_FTP">XML_FEATURE_FTP</a> = 9
+    <a name="XML_FEATURE_HTTP" id="XML_FEATURE_HTTP">XML_FEATURE_HTTP</a> = 10
+    <a name="XML_FEATURE_VALID" id="XML_FEATURE_VALID">XML_FEATURE_VALID</a> = 11
+    <a name="XML_FEATURE_HTML" id="XML_FEATURE_HTML">XML_FEATURE_HTML</a> = 12
+    <a name="XML_FEATURE_LEGACY" id="XML_FEATURE_LEGACY">XML_FEATURE_LEGACY</a> = 13
+    <a name="XML_FEATURE_C14N" id="XML_FEATURE_C14N">XML_FEATURE_C14N</a> = 14
+    <a name="XML_FEATURE_CATALOG" id="XML_FEATURE_CATALOG">XML_FEATURE_CATALOG</a> = 15
+    <a name="XML_FEATURE_XPATH" id="XML_FEATURE_XPATH">XML_FEATURE_XPATH</a> = 16
+    <a name="XML_FEATURE_XPTR" id="XML_FEATURE_XPTR">XML_FEATURE_XPTR</a> = 17
+    <a name="XML_FEATURE_XINCLUDE" id="XML_FEATURE_XINCLUDE">XML_FEATURE_XINCLUDE</a> = 18
+    <a name="XML_FEATURE_ICONV" id="XML_FEATURE_ICONV">XML_FEATURE_ICONV</a> = 19
+    <a name="XML_FEATURE_ISO8859X" id="XML_FEATURE_ISO8859X">XML_FEATURE_ISO8859X</a> = 20
+    <a name="XML_FEATURE_UNICODE" id="XML_FEATURE_UNICODE">XML_FEATURE_UNICODE</a> = 21
+    <a name="XML_FEATURE_REGEXP" id="XML_FEATURE_REGEXP">XML_FEATURE_REGEXP</a> = 22
+    <a name="XML_FEATURE_AUTOMATA" id="XML_FEATURE_AUTOMATA">XML_FEATURE_AUTOMATA</a> = 23
+    <a name="XML_FEATURE_EXPR" id="XML_FEATURE_EXPR">XML_FEATURE_EXPR</a> = 24
+    <a name="XML_FEATURE_SCHEMAS" id="XML_FEATURE_SCHEMAS">XML_FEATURE_SCHEMAS</a> = 25
+    <a name="XML_FEATURE_SCHEMATRON" id="XML_FEATURE_SCHEMATRON">XML_FEATURE_SCHEMATRON</a> = 26
+    <a name="XML_FEATURE_MODULES" id="XML_FEATURE_MODULES">XML_FEATURE_MODULES</a> = 27
+    <a name="XML_FEATURE_DEBUG" id="XML_FEATURE_DEBUG">XML_FEATURE_DEBUG</a> = 28
+    <a name="XML_FEATURE_DEBUG_MEM" id="XML_FEATURE_DEBUG_MEM">XML_FEATURE_DEBUG_MEM</a> = 29
+    <a name="XML_FEATURE_DEBUG_RUN" id="XML_FEATURE_DEBUG_RUN">XML_FEATURE_DEBUG_RUN</a> = 30
+    <a name="XML_FEATURE_NONE" id="XML_FEATURE_NONE">XML_FEATURE_NONE</a> = 99999 : just to be sure of allocation size
+}
+</pre><h3>Enum <a name="xmlParserInputState" id="xmlParserInputState">xmlParserInputState</a></h3><pre class="programlisting">Enum xmlParserInputState {
     <a name="XML_PARSER_EOF" id="XML_PARSER_EOF">XML_PARSER_EOF</a> = -1 : nothing is to be parsed
     <a name="XML_PARSER_START" id="XML_PARSER_START">XML_PARSER_START</a> = 0 : nothing has been parsed
     <a name="XML_PARSER_MISC" id="XML_PARSER_MISC">XML_PARSER_MISC</a> = 1 : Misc* before int subset
@@ -245,6 +280,7 @@
     <a name="XML_PARSE_NSCLEAN" id="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 : remove redundant namespaces declarations
     <a name="XML_PARSE_NOCDATA" id="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 : merge CDATA as text nodes
     <a name="XML_PARSE_NOXINCNODE" id="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 : do not generate XINCLUDE START/END nodes
+    <a name="XML_PARSE_COMPACT" id="XML_PARSE_COMPACT">XML_PARSE_COMPACT</a> = 65536 : compact small text nodes
 }
 </pre><h3><a name="xmlSAXHandlerV1" id="xmlSAXHandlerV1">Structure xmlSAXHandlerV1</a></h3><pre class="programlisting">Structure xmlSAXHandlerV1<br />struct _xmlSAXHandlerV1 {
     <a href="libxml-parser.html#internalSubsetSAXFunc">internalSubsetSAXFunc</a>	internalSubset
@@ -406,7 +442,9 @@
 </pre><p>Read the current value of one feature of this parser instance</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/HTML parser context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the feature name</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>location to store the result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlGetFeaturesList" id="xmlGetFeaturesList"></a>Function: xmlGetFeaturesList</h3><pre class="programlisting">int	xmlGetFeaturesList		(int * len, <br />					 const char ** result)<br />
 </pre><p>Copy at most *@len feature names into the @result array</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the features name array (input/output)</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>an array of string to be filled with the features name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated</td></tr></tbody></table></div><h3><a name="xmlIOParseDTD" id="xmlIOParseDTD"></a>Function: xmlIOParseDTD</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a>	xmlIOParseDTD		(<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br />					 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br />					 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the features name array (input/output)</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>an array of string to be filled with the features name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated</td></tr></tbody></table></div><h3><a name="xmlHasFeature" id="xmlHasFeature"></a>Function: xmlHasFeature</h3><pre class="programlisting">int	xmlHasFeature			(<a href="libxml-parser.html#xmlFeature">xmlFeature</a> feature)<br />
+</pre><p>Examines if the library has been compiled with a given feature.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>feature</tt></i>:</span></td><td>the feature to be examined</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-zero value if the feature exist, otherwise zero. Returns zero (0) if the feature does not exist or an unknown unknown feature is requested, non-zero otherwise.</td></tr></tbody></table></div><h3><a name="xmlIOParseDTD" id="xmlIOParseDTD"></a>Function: xmlIOParseDTD</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a>	xmlIOParseDTD		(<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax, <br />					 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br />					 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
 </pre><p>Load and parse a DTD</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block or NULL</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an Input Buffer</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> or NULL in case of error. @input will be freed at parsing end.</td></tr></tbody></table></div><h3><a name="xmlInitNodeInfoSeq" id="xmlInitNodeInfoSeq"></a>Function: xmlInitNodeInfoSeq</h3><pre class="programlisting">void	xmlInitNodeInfoSeq		(<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq)<br />
 </pre><p>-- Initialize (set to initial state) node info sequence</p>
@@ -419,7 +457,7 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div><h3><a name="xmlLineNumbersDefault" id="xmlLineNumbersDefault"></a>Function: xmlLineNumbersDefault</h3><pre class="programlisting">int	xmlLineNumbersDefault		(int val)<br />
 </pre><p>Set and return the previous value for enabling line numbers in elements contents. This may break on old application and is turned off by default.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>int 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the last value for 0 for no substitution, 1 for substitution.</td></tr></tbody></table></div><h3><a name="xmlLoadExternalEntity" id="xmlLoadExternalEntity"></a>Function: xmlLoadExternalEntity</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a>	xmlLoadExternalEntity	(const char * URL, <br />						 const char * ID, <br />						 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
-</pre><p>Load an external entity, note that the use of this function for unparsed entities may generate problems TODO: a more generic External entity API must be designed</p>
+</pre><p>Load an external entity, note that the use of this function for unparsed entities may generate problems</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the URL for the entity to load</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td>the Public ID for the entity to load</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context in which the entity is called or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> or NULL</td></tr></tbody></table></div><h3><a name="xmlNewIOInputStream" id="xmlNewIOInputStream"></a>Function: xmlNewIOInputStream</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a>	xmlNewIOInputStream	(<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br />						 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input, <br />						 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc)<br />
 </pre><p>Create a new input stream structure encapsulating the @input into a stream suitable for the parser.</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>input</tt></i>:</span></td><td>an I/O Input</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td>the charset encoding if known</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new input stream or NULL</td></tr></tbody></table></div><h3><a name="xmlNewParserCtxt" id="xmlNewParserCtxt"></a>Function: xmlNewParserCtxt</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a>	xmlNewParserCtxt	(void)<br />

Modified: packages/libxml2/trunk/doc/html/libxml-pattern.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-pattern.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-pattern.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -24,8 +24,9 @@
 <pre class="programlisting"><a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a>	<a href="#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a>	(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
 <pre class="programlisting">int	<a href="#xmlPatternMatch">xmlPatternMatch</a>			(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp, <br />					 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
 <pre class="programlisting">int	<a href="#xmlPatternMaxDepth">xmlPatternMaxDepth</a>		(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
+<pre class="programlisting">int	<a href="#xmlPatternMinDepth">xmlPatternMinDepth</a>		(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
 <pre class="programlisting">int	<a href="#xmlPatternStreamable">xmlPatternStreamable</a>		(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)</pre>
-<pre class="programlisting"><a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a>	<a href="#xmlPatterncompile">xmlPatterncompile</a>	(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br />					 <a href="libxml-dict.html#xmlDict">xmlDict</a> * dict, <br />					 <a href="libxml-pattern.html#xmlPatternFlags">xmlPatternFlags</a> flags, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)</pre>
+<pre class="programlisting"><a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a>	<a href="#xmlPatterncompile">xmlPatterncompile</a>	(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br />					 <a href="libxml-dict.html#xmlDict">xmlDict</a> * dict, <br />					 int flags, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)</pre>
 <pre class="programlisting">int	<a href="#xmlStreamPop">xmlStreamPop</a>			(<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)</pre>
 <pre class="programlisting">int	<a href="#xmlStreamPush">xmlStreamPush</a>			(<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)</pre>
 <pre class="programlisting">int	<a href="#xmlStreamPushAttr">xmlStreamPushAttr</a>		(<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)</pre>
@@ -54,11 +55,13 @@
 </pre><p>Test whether the node matches the pattern</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it matches, 0 if it doesn't and -1 in case of failure</td></tr></tbody></table></div><h3><a name="xmlPatternMaxDepth" id="xmlPatternMaxDepth"></a>Function: xmlPatternMaxDepth</h3><pre class="programlisting">int	xmlPatternMaxDepth		(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
 </pre><p>Check the maximum depth reachable by a pattern</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-2 if no limit (using //), otherwise the depth, and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlPatternStreamable" id="xmlPatternStreamable"></a>Function: xmlPatternStreamable</h3><pre class="programlisting">int	xmlPatternStreamable		(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-2 if no limit (using //), otherwise the depth, and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlPatternMinDepth" id="xmlPatternMinDepth"></a>Function: xmlPatternMinDepth</h3><pre class="programlisting">int	xmlPatternMinDepth		(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
+</pre><p>Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error otherwise the depth,</td></tr></tbody></table></div><h3><a name="xmlPatternStreamable" id="xmlPatternStreamable"></a>Function: xmlPatternStreamable</h3><pre class="programlisting">int	xmlPatternStreamable		(<a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a> comp)<br />
 </pre><p>Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if streamable, 0 if not and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlPatterncompile" id="xmlPatterncompile"></a>Function: xmlPatterncompile</h3><pre class="programlisting"><a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a>	xmlPatterncompile	(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br />					 <a href="libxml-dict.html#xmlDict">xmlDict</a> * dict, <br />					 <a href="libxml-pattern.html#xmlPatternFlags">xmlPatternFlags</a> flags, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if streamable, 0 if not and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlPatterncompile" id="xmlPatterncompile"></a>Function: xmlPatterncompile</h3><pre class="programlisting"><a href="libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a>	xmlPatterncompile	(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br />					 <a href="libxml-dict.html#xmlDict">xmlDict</a> * dict, <br />					 int flags, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br />
 </pre><p>Compile a pattern.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>the pattern to compile</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>an optional dictionary for interned strings</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>compilation flags, undefined yet</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the compiled form of the pattern or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlStreamPop" id="xmlStreamPop"></a>Function: xmlStreamPop</h3><pre class="programlisting">int	xmlStreamPop			(<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>the pattern to compile</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>an optional dictionary for interned strings</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>compilation flags, see <a href="libxml-pattern.html#xmlPatternFlags">xmlPatternFlags</a></td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the compiled form of the pattern or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlStreamPop" id="xmlStreamPop"></a>Function: xmlStreamPop</h3><pre class="programlisting">int	xmlStreamPop			(<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream)<br />
 </pre><p>push one level from the stream.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>stream</tt></i>:</span></td><td>the stream context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise.</td></tr></tbody></table></div><h3><a name="xmlStreamPush" id="xmlStreamPush"></a>Function: xmlStreamPush</h3><pre class="programlisting">int	xmlStreamPush			(<a href="libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a> stream, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns)<br />
 </pre><p>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset.</p>

Modified: packages/libxml2/trunk/doc/html/libxml-relaxng.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-relaxng.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-relaxng.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -37,6 +37,7 @@
 <pre class="programlisting"><a href="libxml-relaxng.html#xmlRelaxNGPtr">xmlRelaxNGPtr</a>	<a href="#xmlRelaxNGParse">xmlRelaxNGParse</a>		(<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt)</pre>
 <pre class="programlisting">void	<a href="#xmlRelaxNGSetParserErrors">xmlRelaxNGSetParserErrors</a>	(<a href="libxml-relaxng.html#xmlRelaxNGParserCtxtPtr">xmlRelaxNGParserCtxtPtr</a> ctxt, <br />					 <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br />					 <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br />					 void * ctx)</pre>
 <pre class="programlisting">void	<a href="#xmlRelaxNGSetValidErrors">xmlRelaxNGSetValidErrors</a>	(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br />					 <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br />					 void * ctx)</pre>
+<pre class="programlisting">void	<a href="#xmlRelaxNGSetValidStructuredErrors">xmlRelaxNGSetValidStructuredErrors</a>	(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />						 <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br />						 void * ctx)</pre>
 <pre class="programlisting">int	<a href="#xmlRelaxNGValidateDoc">xmlRelaxNGValidateDoc</a>		(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
 <pre class="programlisting">int	<a href="#xmlRelaxNGValidateFullElement">xmlRelaxNGValidateFullElement</a>	(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
 <pre class="programlisting">int	<a href="#xmlRelaxNGValidatePopElement">xmlRelaxNGValidatePopElement</a>	(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)</pre>
@@ -135,7 +136,9 @@
 </pre><p>Set the callback functions used to handle errors for a validation context</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error callback</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning callback</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>contextual data for the callbacks</td></tr></tbody></table></div><h3><a name="xmlRelaxNGSetValidErrors" id="xmlRelaxNGSetValidErrors"></a>Function: xmlRelaxNGSetValidErrors</h3><pre class="programlisting">void	xmlRelaxNGSetValidErrors	(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-relaxng.html#xmlRelaxNGValidityErrorFunc">xmlRelaxNGValidityErrorFunc</a> err, <br />					 <a href="libxml-relaxng.html#xmlRelaxNGValidityWarningFunc">xmlRelaxNGValidityWarningFunc</a> warn, <br />					 void * ctx)<br />
 </pre><p>Set the error and warning callback informations</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidateDoc" id="xmlRelaxNGValidateDoc"></a>Function: xmlRelaxNGValidateDoc</h3><pre class="programlisting">int	xmlRelaxNGValidateDoc		(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlRelaxNGSetValidStructuredErrors" id="xmlRelaxNGSetValidStructuredErrors"></a>Function: xmlRelaxNGSetValidStructuredErrors</h3><pre class="programlisting">void	xmlRelaxNGSetValidStructuredErrors	(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />						 <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br />						 void * ctx)<br />
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidateDoc" id="xmlRelaxNGValidateDoc"></a>Function: xmlRelaxNGValidateDoc</h3><pre class="programlisting">int	xmlRelaxNGValidateDoc		(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
 </pre><p>Validate a document tree in memory.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a Relax-NG validation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed document tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.</td></tr></tbody></table></div><h3><a name="xmlRelaxNGValidateFullElement" id="xmlRelaxNGValidateFullElement"></a>Function: xmlRelaxNGValidateFullElement</h3><pre class="programlisting">int	xmlRelaxNGValidateFullElement	(<a href="libxml-relaxng.html#xmlRelaxNGValidCtxtPtr">xmlRelaxNGValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem)<br />
 </pre><p>Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.</p>

Modified: packages/libxml2/trunk/doc/html/libxml-schemasInternals.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-schemasInternals.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-schemasInternals.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,7 +10,7 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module schemasInternals from 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>Module schemasInternals from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-relaxng.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-relaxng.html">relaxng</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-threads.html">threads</a></th><td><a accesskey="n" href="libxml-threads.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>internal interfaces for the XML Schemas handling and schema validity checking </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a></pre><pre class="programlisting">Structure <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a><br />struct _xmlSchemaAnnot
+    </style><title>Module schemasInternals from 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>Module schemasInternals from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-relaxng.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-relaxng.html">relaxng</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-schematron.html">schematron</a></th><td><a accesskey="n" href="libxml-schematron.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>internal interfaces for the XML Schemas handling and schema validity checking </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a></pre><pre class="programlisting">Structure <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a><br />struct _xmlSchemaAnnot
 </pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaAnnot">xmlSchemaAnnot</a> * <a name="xmlSchemaAnnotPtr" id="xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a>
 </pre><pre class="programlisting">Structure <a href="#xmlSchemaAttribute">xmlSchemaAttribute</a><br />struct _xmlSchemaAttribute
 </pre><pre class="programlisting">Structure <a href="#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a><br />struct _xmlSchemaAttributeGroup

Copied: packages/libxml2/trunk/doc/html/libxml-schematron.html (from rev 465, packages/libxml2/branches/upstream/current/doc/html/libxml-schematron.html)

Modified: packages/libxml2/trunk/doc/html/libxml-threads.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-threads.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-threads.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,7 +10,7 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module threads from 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>Module threads from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-schemasInternals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-schemasInternals.html">schemasInternals</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-tree.html">tree</a></th><td><a accesskey="n" href="libxml-tree.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>set of generic threading related routines should work with pthreads, Windows native or TLS threads </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlMutex">xmlMutex</a><br />struct _xmlMutex
+    </style><title>Module threads from 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>Module threads from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-schematron.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-schematron.html">schematron</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-tree.html">tree</a></th><td><a accesskey="n" href="libxml-tree.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>set of generic threading related routines should work with pthreads, Windows native or TLS threads </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlMutex">xmlMutex</a><br />struct _xmlMutex
 The content of this structure is not made public by the API.
 </pre><pre class="programlisting">Typedef <a href="libxml-threads.html#xmlMutex">xmlMutex</a> * <a name="xmlMutexPtr" id="xmlMutexPtr">xmlMutexPtr</a>
 </pre><pre class="programlisting">Structure <a href="#xmlRMutex">xmlRMutex</a><br />struct _xmlRMutex

Modified: packages/libxml2/trunk/doc/html/libxml-tree.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-tree.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-tree.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -883,7 +883,7 @@
 </pre><p>parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div><h3><a name="xmlSplitQName3" id="xmlSplitQName3"></a>Function: xmlSplitQName3</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlSplitQName3		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int * len)<br />
 </pre><p>parse an XML qualified name string,i</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an int *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if it is not a Qualified Name, otherwise, update len with the lenght in byte of the prefix and return a pointer</td></tr></tbody></table></div><h3><a name="xmlStringGetNodeList" id="xmlStringGetNodeList"></a>Function: xmlStringGetNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlStringGetNodeList	(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an int *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if it is not a Qualified Name, otherwise, update len with the lenght in byte of the prefix and return a pointer to the start of the name without the prefix</td></tr></tbody></table></div><h3><a name="xmlStringGetNodeList" id="xmlStringGetNodeList"></a>Function: xmlStringGetNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlStringGetNodeList	(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
 </pre><p>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</p>
 <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>value</tt></i>:</span></td><td>the value of the <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the first child</td></tr></tbody></table></div><h3><a name="xmlStringLenGetNodeList" id="xmlStringLenGetNodeList"></a>Function: xmlStringLenGetNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlStringLenGetNodeList	(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value, <br />					 int len)<br />
 </pre><p>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</p>

Modified: packages/libxml2/trunk/doc/html/libxml-uri.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-uri.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-uri.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -19,6 +19,7 @@
 <pre class="programlisting">void	<a href="#xmlFreeURI">xmlFreeURI</a>			(<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)</pre>
 <pre class="programlisting">int	<a href="#xmlNormalizeURIPath">xmlNormalizeURIPath</a>		(char * path)</pre>
 <pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a>	<a href="#xmlParseURI">xmlParseURI</a>		(const char * str)</pre>
+<pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a>	<a href="#xmlParseURIRaw">xmlParseURIRaw</a>		(const char * str, <br />					 int raw)</pre>
 <pre class="programlisting">int	<a href="#xmlParseURIReference">xmlParseURIReference</a>		(<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br />					 const char * str)</pre>
 <pre class="programlisting">void	<a href="#xmlPrintURI">xmlPrintURI</a>			(FILE * stream, <br />					 <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)</pre>
 <pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlSaveUri">xmlSaveUri</a>		(<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)</pre>
@@ -51,7 +52,9 @@
 </pre><p>Applies the 5 normalization steps to a path string--that is, RFC 2396 Section 5.2, steps 6.c through 6.g. Normalization occurs directly on the string, no new allocation is done</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>path</tt></i>:</span></td><td>pointer to the path string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or an error code</td></tr></tbody></table></div><h3><a name="xmlParseURI" id="xmlParseURI"></a>Function: xmlParseURI</h3><pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a>	xmlParseURI		(const char * str)<br />
 </pre><p>Parse an URI URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the URI string to analyze</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly built <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlParseURIReference" id="xmlParseURIReference"></a>Function: xmlParseURIReference</h3><pre class="programlisting">int	xmlParseURIReference		(<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br />					 const char * str)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the URI string to analyze</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly built <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlParseURIRaw" id="xmlParseURIRaw"></a>Function: xmlParseURIRaw</h3><pre class="programlisting"><a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a>	xmlParseURIRaw		(const char * str, <br />					 int raw)<br />
+</pre><p>Parse an URI but allows to keep intact the original fragments. URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the URI string to analyze</td></tr><tr><td><span class="term"><i><tt>raw</tt></i>:</span></td><td>if 1 unescaping of URI pieces are disabled</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a newly built <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlParseURIReference" id="xmlParseURIReference"></a>Function: xmlParseURIReference</h3><pre class="programlisting">int	xmlParseURIReference		(<a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br />					 const char * str)<br />
 </pre><p>Parse an URI <a href="libxml-SAX.html#reference">reference</a> string and fills in the appropriate fields of the @uri structure URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>uri</tt></i>:</span></td><td>pointer to an URI structure</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string to analyze</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 or the error code</td></tr></tbody></table></div><h3><a name="xmlPrintURI" id="xmlPrintURI"></a>Function: xmlPrintURI</h3><pre class="programlisting">void	xmlPrintURI			(FILE * stream, <br />					 <a href="libxml-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br />
 </pre><p>Prints the URI in the stream @stream.</p>

Modified: packages/libxml2/trunk/doc/html/libxml-xmlautomata.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-xmlautomata.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-xmlautomata.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -26,6 +26,7 @@
 <pre class="programlisting">int	<a href="#xmlAutomataNewCounter">xmlAutomataNewCounter</a>		(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />					 int min, <br />					 int max)</pre>
 <pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	<a href="#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a>	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />							 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />							 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br />							 int counter)</pre>
 <pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	<a href="#xmlAutomataNewEpsilon">xmlAutomataNewEpsilon</a>	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to)</pre>
+<pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	<a href="#xmlAutomataNewNegTrans">xmlAutomataNewNegTrans</a>	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br />						 void * data)</pre>
 <pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	<a href="#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a>	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />						 int min, <br />						 int max, <br />						 void * data)</pre>
 <pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	<a href="#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a>	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />							 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />							 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br />							 int min, <br />							 int max, <br />							 void * data)</pre>
 <pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	<a href="#xmlAutomataNewState">xmlAutomataNewState</a>	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am)</pre>
@@ -59,7 +60,9 @@
 </pre><p>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>counter</tt></i>:</span></td><td>the counter associated to that transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewEpsilon" id="xmlAutomataNewEpsilon"></a>Function: xmlAutomataNewEpsilon</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	xmlAutomataNewEpsilon	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to)<br />
 </pre><p>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewOnceTrans" id="xmlAutomataNewOnceTrans"></a>Function: xmlAutomataNewOnceTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	xmlAutomataNewOnceTrans	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />						 int min, <br />						 int max, <br />						 void * data)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewNegTrans" id="xmlAutomataNewNegTrans"></a>Function: xmlAutomataNewNegTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	xmlAutomataNewNegTrans	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br />						 void * data)<br />
+</pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by any value except (@token, at token2) Note that if @token2 is not NULL, then (X, NULL) won't match to follow # the semantic of XSD ##other</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the first input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>token2</tt></i>:</span></td><td>the second input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data passed to the callback function if the transition is activated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewOnceTrans" id="xmlAutomataNewOnceTrans"></a>Function: xmlAutomataNewOnceTrans</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	xmlAutomataNewOnceTrans	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />						 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />						 int min, <br />						 int max, <br />						 void * data)<br />
 </pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>am</tt></i>:</span></td><td>an automata</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>the starting point of the transition</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>the target point of the transition or NULL</td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td>the input string associated to that transition</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the minimum successive occurences of token</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the maximum successive occurences of token</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>data associated to the transition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the target state or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlAutomataNewOnceTrans2" id="xmlAutomataNewOnceTrans2"></a>Function: xmlAutomataNewOnceTrans2</h3><pre class="programlisting"><a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a>	xmlAutomataNewOnceTrans2	(<a href="libxml-xmlautomata.html#xmlAutomataPtr">xmlAutomataPtr</a> am, <br />							 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> from, <br />							 <a href="libxml-xmlautomata.html#xmlAutomataStatePtr">xmlAutomataStatePtr</a> to, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token2, <br />							 int min, <br />							 int max, <br />							 void * data)<br />
 </pre><p>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.</p>

Modified: packages/libxml2/trunk/doc/html/libxml-xmlerror.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-xmlerror.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-xmlerror.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -79,6 +79,7 @@
     <a name="XML_FROM_CHECK" id="XML_FROM_CHECK">XML_FROM_CHECK</a> = 24 : The error checking module
     <a name="XML_FROM_WRITER" id="XML_FROM_WRITER">XML_FROM_WRITER</a> = 25 : The xmlwriter module
     <a name="XML_FROM_MODULE" id="XML_FROM_MODULE">XML_FROM_MODULE</a> = 26 : The dynamically loaded module modul
+    <a name="XML_FROM_I18N" id="XML_FROM_I18N">XML_FROM_I18N</a> = 27 : The module handling character conversion
 }
 </pre><h3>Enum <a name="xmlErrorLevel" id="xmlErrorLevel">xmlErrorLevel</a></h3><pre class="programlisting">Enum xmlErrorLevel {
     <a name="XML_ERR_NONE" id="XML_ERR_NONE">XML_ERR_NONE</a> = 0
@@ -754,6 +755,7 @@
     <a name="XML_SCHEMAP_AU_PROPS_CORRECT_2" id="XML_SCHEMAP_AU_PROPS_CORRECT_2">XML_SCHEMAP_AU_PROPS_CORRECT_2</a> = 3078 : 3078
     <a name="XML_SCHEMAP_A_PROPS_CORRECT_2" id="XML_SCHEMAP_A_PROPS_CORRECT_2">XML_SCHEMAP_A_PROPS_CORRECT_2</a> = 3079 : 3079
     <a name="XML_SCHEMAP_C_PROPS_CORRECT" id="XML_SCHEMAP_C_PROPS_CORRECT">XML_SCHEMAP_C_PROPS_CORRECT</a> = 3080 : 3080
+    <a name="XML_SCHEMAP_SRC_REDEFINE" id="XML_SCHEMAP_SRC_REDEFINE">XML_SCHEMAP_SRC_REDEFINE</a> = 3081 : 3081
     <a name="XML_MODULE_OPEN" id="XML_MODULE_OPEN">XML_MODULE_OPEN</a> = 4900 : 4900
     <a name="XML_MODULE_CLOSE" id="XML_MODULE_CLOSE">XML_MODULE_CLOSE</a> = 4901 : 4901
     <a name="XML_CHECK_FOUND_ELEMENT" id="XML_CHECK_FOUND_ELEMENT">XML_CHECK_FOUND_ELEMENT</a> = 5000
@@ -794,8 +796,13 @@
     <a name="XML_CHECK_OUTSIDE_DICT" id="XML_CHECK_OUTSIDE_DICT">XML_CHECK_OUTSIDE_DICT</a> = 5035 : 5035
     <a name="XML_CHECK_WRONG_NAME" id="XML_CHECK_WRONG_NAME">XML_CHECK_WRONG_NAME</a> = 5036 : 5036
     <a name="XML_CHECK_NAME_NOT_NULL" id="XML_CHECK_NAME_NOT_NULL">XML_CHECK_NAME_NOT_NULL</a> = 5037 : 5037
-    <a name="XML_CHECK_" id="XML_CHECK_">XML_CHECK_</a> = 5038 : 5033
-    <a name="XML_CHECK_X" id="XML_CHECK_X">XML_CHECK_X</a> = 5039 : 503
+    <a name="XML_I18N_NO_NAME" id="XML_I18N_NO_NAME">XML_I18N_NO_NAME</a> = 6000
+    <a name="XML_I18N_NO_HANDLER" id="XML_I18N_NO_HANDLER">XML_I18N_NO_HANDLER</a> = 6001 : 6001
+    <a name="XML_I18N_EXCESS_HANDLER" id="XML_I18N_EXCESS_HANDLER">XML_I18N_EXCESS_HANDLER</a> = 6002 : 6002
+    <a name="XML_I18N_CONV_FAILED" id="XML_I18N_CONV_FAILED">XML_I18N_CONV_FAILED</a> = 6003 : 6003
+    <a name="XML_I18N_NO_OUTPUT" id="XML_I18N_NO_OUTPUT">XML_I18N_NO_OUTPUT</a> = 6004 : 6004
+    <a name="XML_CHECK_" id="XML_CHECK_">XML_CHECK_</a> = 6005 : 5033
+    <a name="XML_CHECK_X" id="XML_CHECK_X">XML_CHECK_X</a> = 6006 : 503
 }
 </pre><h3><a name="initGenericErrorDefaultFunc" id="initGenericErrorDefaultFunc"></a>Function: initGenericErrorDefaultFunc</h3><pre class="programlisting">void	initGenericErrorDefaultFunc	(<a href="libxml-xmlerror.html#xmlGenericErrorFunc">xmlGenericErrorFunc</a> * handler)<br />
 </pre><p>Set or reset (if NULL) the default handler for generic errors to the builtin error function.</p>

Modified: packages/libxml2/trunk/doc/html/libxml-xmlexports.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-xmlexports.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-xmlexports.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,9 +10,10 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module xmlexports from 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>Module xmlexports from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlerror.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlerror.html">xmlerror</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlmemory.html">xmlmemory</a></th><td><a accesskey="n" href="libxml-xmlmemory.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>macros for marking symbols as exportable/importable. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a></pre><pre class="programlisting">#define <a href="#XMLCALL">XMLCALL</a></pre><pre class="programlisting">#define <a href="#XMLPUBFUN">XMLPUBFUN</a></pre><pre class="programlisting">#define <a href="#XMLPUBVAR">XMLPUBVAR</a></pre><pre class="programlisting">#define <a href="#_REENTRANT">_REENTRANT</a></pre><h2>Description</h2>
+    </style><title>Module xmlexports from 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>Module xmlexports from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlerror.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlerror.html">xmlerror</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlmemory.html">xmlmemory</a></th><td><a accesskey="n" href="libxml-xmlmemory.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>macros for marking symbols as exportable/importable. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#LIBXML_DLL_IMPORT">LIBXML_DLL_IMPORT</a></pre><pre class="programlisting">#define <a href="#XMLCALL">XMLCALL</a></pre><pre class="programlisting">#define <a href="#XMLCDECL">XMLCDECL</a></pre><pre class="programlisting">#define <a href="#XMLPUBFUN">XMLPUBFUN</a></pre><pre class="programlisting">#define <a href="#XMLPUBVAR">XMLPUBVAR</a></pre><pre class="programlisting">#define <a href="#_REENTRANT">_REENTRANT</a></pre><h2>Description</h2>
 <h3><a name="LIBXML_DLL_IMPORT" id="LIBXML_DLL_IMPORT"></a>Macro: LIBXML_DLL_IMPORT</h3><pre>#define LIBXML_DLL_IMPORT</pre><p></p>
 <h3><a name="XMLCALL" id="XMLCALL"></a>Macro: XMLCALL</h3><pre>#define XMLCALL</pre><p></p>
+<h3><a name="XMLCDECL" id="XMLCDECL"></a>Macro: XMLCDECL</h3><pre>#define XMLCDECL</pre><p></p>
 <h3><a name="XMLPUBFUN" id="XMLPUBFUN"></a>Macro: XMLPUBFUN</h3><pre>#define XMLPUBFUN</pre><p></p>
 <h3><a name="XMLPUBVAR" id="XMLPUBVAR"></a>Macro: XMLPUBVAR</h3><pre>#define XMLPUBVAR</pre><p></p>
 <h3><a name="_REENTRANT" id="_REENTRANT"></a>Macro: _REENTRANT</h3><pre>#define _REENTRANT</pre><p></p>

Modified: packages/libxml2/trunk/doc/html/libxml-xmlregexp.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-xmlregexp.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-xmlregexp.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,13 +10,39 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module xmlregexp from 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>Module xmlregexp from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlreader.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlreader.html">xmlreader</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlsave.html">xmlsave</a></th><td><a accesskey="n" href="libxml-xmlsave.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>basic API for libxml regular expressions handling used for XML Schemas and validation. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlRegExecCtxt">xmlRegExecCtxt</a><br />struct _xmlRegExecCtxt
+    </style><title>Module xmlregexp from 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>Module xmlregexp from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlreader.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlreader.html">xmlreader</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlsave.html">xmlsave</a></th><td><a accesskey="n" href="libxml-xmlsave.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>basic API for libxml regular expressions handling used for XML Schemas and validation. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xmlExpCtxt">xmlExpCtxt</a><br />struct _xmlExpCtxt
 The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlregexp.html#xmlExpCtxt">xmlExpCtxt</a> * <a name="xmlExpCtxtPtr" id="xmlExpCtxtPtr">xmlExpCtxtPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xmlExpNode">xmlExpNode</a><br />struct _xmlExpNode
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxml-xmlregexp.html#xmlExpNode">xmlExpNode</a> * <a name="xmlExpNodePtr" id="xmlExpNodePtr">xmlExpNodePtr</a>
+</pre><pre class="programlisting">Enum <a href="#xmlExpNodeType">xmlExpNodeType</a>
+</pre><pre class="programlisting">Structure <a href="#xmlRegExecCtxt">xmlRegExecCtxt</a><br />struct _xmlRegExecCtxt
+The content of this structure is not made public by the API.
 </pre><pre class="programlisting">Typedef <a href="libxml-xmlregexp.html#xmlRegExecCtxt">xmlRegExecCtxt</a> * <a name="xmlRegExecCtxtPtr" id="xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a>
 </pre><pre class="programlisting">Structure <a href="#xmlRegexp">xmlRegexp</a><br />struct _xmlRegexp
 The content of this structure is not made public by the API.
 </pre><pre class="programlisting">Typedef <a href="libxml-xmlregexp.html#xmlRegexp">xmlRegexp</a> * <a name="xmlRegexpPtr" id="xmlRegexpPtr">xmlRegexpPtr</a>
-</pre><pre class="programlisting">Function type: <a href="#xmlRegExecCallbacks">xmlRegExecCallbacks</a>
+</pre><pre class="programlisting">int	<a href="#xmlExpCtxtNbCons">xmlExpCtxtNbCons</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int	<a href="#xmlExpCtxtNbNodes">xmlExpCtxtNbNodes</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xmlExpDump">xmlExpDump</a>			(<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	<a href="#xmlExpExpDerive">xmlExpExpDerive</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)</pre>
+<pre class="programlisting">void	<a href="#xmlExpFree">xmlExpFree</a>			(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)</pre>
+<pre class="programlisting">void	<a href="#xmlExpFreeCtxt">xmlExpFreeCtxt</a>			(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)</pre>
+<pre class="programlisting">int	<a href="#xmlExpGetLanguage">xmlExpGetLanguage</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** list, <br />					 int len)</pre>
+<pre class="programlisting">int	<a href="#xmlExpGetStart">xmlExpGetStart</a>			(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** list, <br />					 int len)</pre>
+<pre class="programlisting">int	<a href="#xmlExpIsNillable">xmlExpIsNillable</a>		(<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)</pre>
+<pre class="programlisting">int	<a href="#xmlExpMaxToken">xmlExpMaxToken</a>			(<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	<a href="#xmlExpNewAtom">xmlExpNewAtom</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int len)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a>	<a href="#xmlExpNewCtxt">xmlExpNewCtxt</a>		(int maxNodes, <br />					 <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	<a href="#xmlExpNewOr">xmlExpNewOr</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	<a href="#xmlExpNewRange">xmlExpNewRange</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br />					 int min, <br />					 int max)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	<a href="#xmlExpNewSeq">xmlExpNewSeq</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	<a href="#xmlExpParse">xmlExpParse</a>		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 const char * expr)</pre>
+<pre class="programlisting">void	<a href="#xmlExpRef">xmlExpRef</a>			(<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	<a href="#xmlExpStringDerive">xmlExpStringDerive</a>	(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />					 int len)</pre>
+<pre class="programlisting">int	<a href="#xmlExpSubsume">xmlExpSubsume</a>			(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)</pre>
+<pre class="programlisting">Function type: <a href="#xmlRegExecCallbacks">xmlRegExecCallbacks</a>
 void	<a href="#xmlRegExecCallbacks">xmlRegExecCallbacks</a>		(<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />					 void * transdata, <br />					 void * inputdata)
 </pre>
 <pre class="programlisting">int	<a href="#xmlRegExecErrInfo">xmlRegExecErrInfo</a>		(<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** string, <br />					 int * nbval, <br />					 int * nbneg, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** values, <br />					 int * terminal)</pre>
@@ -31,11 +57,61 @@
 <pre class="programlisting">int	<a href="#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a>		(<a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> comp)</pre>
 <pre class="programlisting">void	<a href="#xmlRegexpPrint">xmlRegexpPrint</a>			(FILE * output, <br />					 <a href="libxml-xmlregexp.html#xmlRegexpPtr">xmlRegexpPtr</a> regexp)</pre>
 <h2>Description</h2>
-<h3><a name="xmlRegExecCtxt" id="xmlRegExecCtxt">Structure xmlRegExecCtxt</a></h3><pre class="programlisting">Structure xmlRegExecCtxt<br />struct _xmlRegExecCtxt {
+<h3><a name="xmlExpCtxt" id="xmlExpCtxt">Structure xmlExpCtxt</a></h3><pre class="programlisting">Structure xmlExpCtxt<br />struct _xmlExpCtxt {
 The content of this structure is not made public by the API.
+}</pre><h3><a name="xmlExpNode" id="xmlExpNode">Structure xmlExpNode</a></h3><pre class="programlisting">Structure xmlExpNode<br />struct _xmlExpNode {
+The content of this structure is not made public by the API.
+}</pre><h3>Enum <a name="xmlExpNodeType" id="xmlExpNodeType">xmlExpNodeType</a></h3><pre class="programlisting">Enum xmlExpNodeType {
+    <a name="XML_EXP_EMPTY" id="XML_EXP_EMPTY">XML_EXP_EMPTY</a> = 0
+    <a name="XML_EXP_FORBID" id="XML_EXP_FORBID">XML_EXP_FORBID</a> = 1
+    <a name="XML_EXP_ATOM" id="XML_EXP_ATOM">XML_EXP_ATOM</a> = 2
+    <a name="XML_EXP_SEQ" id="XML_EXP_SEQ">XML_EXP_SEQ</a> = 3
+    <a name="XML_EXP_OR" id="XML_EXP_OR">XML_EXP_OR</a> = 4
+    <a name="XML_EXP_COUNT" id="XML_EXP_COUNT">XML_EXP_COUNT</a> = 5
+}
+</pre><h3><a name="xmlRegExecCtxt" id="xmlRegExecCtxt">Structure xmlRegExecCtxt</a></h3><pre class="programlisting">Structure xmlRegExecCtxt<br />struct _xmlRegExecCtxt {
+The content of this structure is not made public by the API.
 }</pre><h3><a name="xmlRegexp" id="xmlRegexp">Structure xmlRegexp</a></h3><pre class="programlisting">Structure xmlRegexp<br />struct _xmlRegexp {
 The content of this structure is not made public by the API.
-}</pre><h3><a name="xmlRegExecCallbacks" id="xmlRegExecCallbacks"></a>Function type: xmlRegExecCallbacks</h3><pre class="programlisting">Function type: xmlRegExecCallbacks
+}</pre><h3><a name="xmlExpCtxtNbCons" id="xmlExpCtxtNbCons"></a>Function: xmlExpCtxtNbCons</h3><pre class="programlisting">int	xmlExpCtxtNbCons		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br />
+</pre><p>Debugging facility provides the number of allocated nodes over lifetime</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 expression context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of nodes ever allocated or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpCtxtNbNodes" id="xmlExpCtxtNbNodes"></a>Function: xmlExpCtxtNbNodes</h3><pre class="programlisting">int	xmlExpCtxtNbNodes		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br />
+</pre><p>Debugging facility provides the number of allocated nodes at a that point</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 expression context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of nodes in use or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpDump" id="xmlExpDump"></a>Function: xmlExpDump</h3><pre class="programlisting">void	xmlExpDump			(<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)<br />
+</pre><p>Serialize the expression as compiled to the buffer</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>a buffer to receive the output</td></tr><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>the compiled expression</td></tr></tbody></table></div><h3><a name="xmlExpExpDerive" id="xmlExpExpDerive"></a>Function: xmlExpExpDerive</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpExpDerive		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)<br />
+</pre><p>Evaluates the expression resulting from @exp consuming a sub expression @sub Based on algebraic derivation and sometimes direct Brzozowski derivation it usually tatkes less than linear time and can handle expressions generating infinite languages.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the englobing expression</td></tr><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>the subexpression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting expression or NULL in case of internal error, the result must be freed</td></tr></tbody></table></div><h3><a name="xmlExpFree" id="xmlExpFree"></a>Function: xmlExpFree</h3><pre class="programlisting">void	xmlExpFree			(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br />
+</pre><p>Dereference the expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr></tbody></table></div><h3><a name="xmlExpFreeCtxt" id="xmlExpFreeCtxt"></a>Function: xmlExpFreeCtxt</h3><pre class="programlisting">void	xmlExpFreeCtxt			(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt)<br />
+</pre><p>Free an expression context</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 expression context</td></tr></tbody></table></div><h3><a name="xmlExpGetLanguage" id="xmlExpGetLanguage"></a>Function: xmlExpGetLanguage</h3><pre class="programlisting">int	xmlExpGetLanguage		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** list, <br />					 int len)<br />
+</pre><p>Find all the strings used in @exp and store them in @list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>where to store the tokens</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the allocated lenght of @list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings</td></tr></tbody></table></div><h3><a name="xmlExpGetStart" id="xmlExpGetStart"></a>Function: xmlExpGetStart</h3><pre class="programlisting">int	xmlExpGetStart			(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** list, <br />					 int len)<br />
+</pre><p>Find all the strings that appears at the start of the languages accepted by @exp and store them in @list. E.g. for (a, b) | c it will return the list [a, c]</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>where to store the tokens</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the allocated lenght of @list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings</td></tr></tbody></table></div><h3><a name="xmlExpIsNillable" id="xmlExpIsNillable"></a>Function: xmlExpIsNillable</h3><pre class="programlisting">int	xmlExpIsNillable		(<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br />
+</pre><p>Finds if the expression is nillable, i.e. if it accepts the empty sequqnce</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if nillable, 0 if not and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpMaxToken" id="xmlExpMaxToken"></a>Function: xmlExpMaxToken</h3><pre class="programlisting">int	xmlExpMaxToken			(<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)<br />
+</pre><p>Indicate the maximum number of input a expression can accept</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>a compiled expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the maximum length or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewAtom" id="xmlExpNewAtom"></a>Function: xmlExpNewAtom</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpNewAtom		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int len)<br />
+</pre><p>Get the atom associated to this name from that context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the atom name</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the atom name lenght in byte (or -1);</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewCtxt" id="xmlExpNewCtxt"></a>Function: xmlExpNewCtxt</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a>	xmlExpNewCtxt		(int maxNodes, <br />					 <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+</pre><p>Creates a new context for manipulating expressions</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpNewOr		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+</pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewRange" id="xmlExpNewRange"></a>Function: xmlExpNewRange</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpNewRange		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br />					 int min, <br />					 int max)<br />
+</pre><p>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>subset</tt></i>:</span></td><td>the expression to be repeated</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the lower bound for the repetition</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the upper bound for the repetition, -1 means infinite</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewSeq" id="xmlExpNewSeq"></a>Function: xmlExpNewSeq</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpNewSeq		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+</pre><p>Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpParse" id="xmlExpParse"></a>Function: xmlExpParse</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpParse		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 const char * expr)<br />
+</pre><p>Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>the 0 terminated string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new expression or NULL in case of failure</td></tr></tbody></table></div><h3><a name="xmlExpRef" id="xmlExpRef"></a>Function: xmlExpRef</h3><pre class="programlisting">void	xmlExpRef			(<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br />
+</pre><p>Increase the <a href="libxml-SAX.html#reference">reference</a> count of the expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr></tbody></table></div><h3><a name="xmlExpStringDerive" id="xmlExpStringDerive"></a>Function: xmlExpStringDerive</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpStringDerive	(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />					 int len)<br />
+</pre><p>Do one step of Brzozowski derivation of the expression @exp with respect to the input string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the string len in bytes if available</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting expression or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlExpSubsume" id="xmlExpSubsume"></a>Function: xmlExpSubsume</h3><pre class="programlisting">int	xmlExpSubsume			(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> sub)<br />
+</pre><p>Check whether @exp accepts all the languages accexpted by @sub the input being a subexpression.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the englobing expression</td></tr><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>the subexpression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true 0 if false and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlRegExecCallbacks" id="xmlRegExecCallbacks"></a>Function type: xmlRegExecCallbacks</h3><pre class="programlisting">Function type: xmlRegExecCallbacks
 void	xmlRegExecCallbacks		(<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * token, <br />					 void * transdata, <br />					 void * inputdata)
 </pre><p></p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exec</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>token</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>transdata</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>inputdata</tt></i>:</span></td><td></td></tr></tbody></table></div><br />
 <h3><a name="xmlRegExecErrInfo" id="xmlRegExecErrInfo"></a>Function: xmlRegExecErrInfo</h3><pre class="programlisting">int	xmlRegExecErrInfo		(<a href="libxml-xmlregexp.html#xmlRegExecCtxtPtr">xmlRegExecCtxtPtr</a> exec, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** string, <br />					 int * nbval, <br />					 int * nbneg, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** values, <br />					 int * terminal)<br />

Modified: packages/libxml2/trunk/doc/html/libxml-xmlsave.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-xmlsave.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-xmlsave.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -28,6 +28,7 @@
 The content of this structure is not made public by the API.
 }</pre><h3>Enum <a name="xmlSaveOption" id="xmlSaveOption">xmlSaveOption</a></h3><pre class="programlisting">Enum xmlSaveOption {
     <a name="XML_SAVE_FORMAT" id="XML_SAVE_FORMAT">XML_SAVE_FORMAT</a> = 1 : format save output
+    <a name="XML_SAVE_NO_DECL" id="XML_SAVE_NO_DECL">XML_SAVE_NO_DECL</a> = 2 : drop the xml declaration
 }
 </pre><h3><a name="xmlSaveClose" id="xmlSaveClose"></a>Function: xmlSaveClose</h3><pre class="programlisting">int	xmlSaveClose			(<a href="libxml-xmlsave.html#xmlSaveCtxtPtr">xmlSaveCtxtPtr</a> ctxt)<br />
 </pre><p>Close a document saving context, i.e. make sure that all bytes have been output and free the associated data.</p>

Modified: packages/libxml2/trunk/doc/html/libxml-xmlschemas.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-xmlschemas.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-xmlschemas.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -40,6 +40,7 @@
 <pre class="programlisting">void	<a href="#xmlSchemaSetParserErrors">xmlSchemaSetParserErrors</a>	(<a href="libxml-xmlschemas.html#xmlSchemaParserCtxtPtr">xmlSchemaParserCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br />					 <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br />					 void * ctx)</pre>
 <pre class="programlisting">void	<a href="#xmlSchemaSetValidErrors">xmlSchemaSetValidErrors</a>		(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlschemas.html#xmlSchemaValidityErrorFunc">xmlSchemaValidityErrorFunc</a> err, <br />					 <a href="libxml-xmlschemas.html#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> warn, <br />					 void * ctx)</pre>
 <pre class="programlisting">int	<a href="#xmlSchemaSetValidOptions">xmlSchemaSetValidOptions</a>	(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br />					 int options)</pre>
+<pre class="programlisting">void	<a href="#xmlSchemaSetValidStructuredErrors">xmlSchemaSetValidStructuredErrors</a>	(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br />						 <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br />						 void * ctx)</pre>
 <pre class="programlisting">int	<a href="#xmlSchemaValidCtxtGetOptions">xmlSchemaValidCtxtGetOptions</a>	(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)</pre>
 <pre class="programlisting">int	<a href="#xmlSchemaValidateDoc">xmlSchemaValidateDoc</a>		(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)</pre>
 <pre class="programlisting">int	<a href="#xmlSchemaValidateFile">xmlSchemaValidateFile</a>		(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br />					 const char * filename, <br />					 int options)</pre>
@@ -145,7 +146,9 @@
 </pre><p>Set the error and warning callback informations</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>the error function</td></tr><tr><td><span class="term"><i><tt>warn</tt></i>:</span></td><td>the warning function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlSchemaSetValidOptions" id="xmlSchemaSetValidOptions"></a>Function: xmlSchemaSetValidOptions</h3><pre class="programlisting">int	xmlSchemaSetValidOptions	(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br />					 int options)<br />
 </pre><p>Sets the options to be used during the validation.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-xmlschemas.html#xmlSchemaValidOption">xmlSchemaValidOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of an API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidCtxtGetOptions" id="xmlSchemaValidCtxtGetOptions"></a>Function: xmlSchemaValidCtxtGetOptions</h3><pre class="programlisting">int	xmlSchemaValidCtxtGetOptions	(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</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>a schema validation context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of <a href="libxml-xmlschemas.html#xmlSchemaValidOption">xmlSchemaValidOption</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of an API error.</td></tr></tbody></table></div><h3><a name="xmlSchemaSetValidStructuredErrors" id="xmlSchemaSetValidStructuredErrors"></a>Function: xmlSchemaSetValidStructuredErrors</h3><pre class="programlisting">void	xmlSchemaSetValidStructuredErrors	(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br />						 <a href="libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> serror, <br />						 void * ctx)<br />
+</pre><p>Set the structured error callback</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>serror</tt></i>:</span></td><td>the structured error function</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the functions context</td></tr></tbody></table></div><h3><a name="xmlSchemaValidCtxtGetOptions" id="xmlSchemaValidCtxtGetOptions"></a>Function: xmlSchemaValidCtxtGetOptions</h3><pre class="programlisting">int	xmlSchemaValidCtxtGetOptions	(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt)<br />
 </pre><p>Get the validation context options.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a schema validation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the option combination or -1 on error.</td></tr></tbody></table></div><h3><a name="xmlSchemaValidateDoc" id="xmlSchemaValidateDoc"></a>Function: xmlSchemaValidateDoc</h3><pre class="programlisting">int	xmlSchemaValidateDoc		(<a href="libxml-xmlschemas.html#xmlSchemaValidCtxtPtr">xmlSchemaValidCtxtPtr</a> ctxt, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
 </pre><p>Validate a document tree in memory.</p>

Modified: packages/libxml2/trunk/doc/html/libxml-xmlversion.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-xmlversion.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-xmlversion.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,7 +10,7 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module xmlversion from 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>Module xmlversion from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlunicode.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlunicode.html">xmlunicode</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlwriter.html">xmlwriter</a></th><td><a accesskey="n" href="libxml-xmlwriter.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>compile-time version informations for the XML library </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a></pre><pre class="programlisting">#define <a href="#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a></pre><pre class="programlisting">#define <a href="#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a></pre><pre class="programlisting">#define <a href="#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_ICONV_ENABLED">LIBXML_ICONV_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_VALID_ENABLED">LIBXML_VALID_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION">LIBXML_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION_STRING">LIBXML_VERSION_STRING</a></pre><pre class="programlisting">#define <a href="#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XPATH_ENABLED">LIBXML_XPATH_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a></pre><pre class="programlisting">#define <a href="#WITHOUT_TRIO">WITHOUT_TRIO</a></pre><pre class="programlisting">#define <a href="#WITH_TRIO">WITH_TRIO</a></pre><pre class="programlisting">void	<a href="#xmlCheckVersion">xmlCheckVersion</a>			(int version)</pre>
+    </style><title>Module xmlversion from 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>Module xmlversion from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlunicode.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlunicode.html">xmlunicode</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xmlwriter.html">xmlwriter</a></th><td><a accesskey="n" href="libxml-xmlwriter.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>compile-time version informations for the XML library </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#ATTRIBUTE_UNUSED">ATTRIBUTE_UNUSED</a></pre><pre class="programlisting">#define <a href="#DEBUG_MEMORY_LOCATION">DEBUG_MEMORY_LOCATION</a></pre><pre class="programlisting">#define <a href="#LIBXML_AUTOMATA_ENABLED">LIBXML_AUTOMATA_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_C14N_ENABLED">LIBXML_C14N_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_CATALOG_ENABLED">LIBXML_CATALOG_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DEBUG_ENABLED">LIBXML_DEBUG_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DEBUG_RUNTIME">LIBXML_DEBUG_RUNTIME</a></pre><pre class="programlisting">#define <a href="#LIBXML_DOCB_ENABLED">LIBXML_DOCB_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_DOTTED_VERSION">LIBXML_DOTTED_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_EXPR_ENABLED">LIBXML_EXPR_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_FTP_ENABLED">LIBXML_FTP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_HTML_ENABLED">LIBXML_HTML_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_HTTP_ENABLED">LIBXML_HTTP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_ICONV_ENABLED">LIBXML_ICONV_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_LEGACY_ENABLED">LIBXML_LEGACY_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_MODULES_ENABLED">LIBXML_MODULES_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_OUTPUT_ENABLED">LIBXML_OUTPUT_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_PUSH_ENABLED">LIBXML_PUSH_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_READER_ENABLED">LIBXML_READER_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_REGEXP_ENABLED">LIBXML_REGEXP_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_SAX1_ENABLED">LIBXML_SAX1_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_SCHEMAS_ENABLED">LIBXML_SCHEMAS_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_SCHEMATRON_ENABLED">LIBXML_SCHEMATRON_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_TEST_VERSION">LIBXML_TEST_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_THREAD_ENABLED">LIBXML_THREAD_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_TREE_ENABLED">LIBXML_TREE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_UNICODE_ENABLED">LIBXML_UNICODE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_VALID_ENABLED">LIBXML_VALID_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION">LIBXML_VERSION</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION_EXTRA">LIBXML_VERSION_EXTRA</a></pre><pre class="programlisting">#define <a href="#LIBXML_VERSION_STRING">LIBXML_VERSION_STRING</a></pre><pre class="programlisting">#define <a href="#LIBXML_WRITER_ENABLED">LIBXML_WRITER_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XINCLUDE_ENABLED">LIBXML_XINCLUDE_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XPATH_ENABLED">LIBXML_XPATH_ENABLED</a></pre><pre class="programlisting">#define <a href="#LIBXML_XPTR_ENABLED">LIBXML_XPTR_ENABLED</a></pre><pre class="programlisting">#define <a href="#WITHOUT_TRIO">WITHOUT_TRIO</a></pre><pre class="programlisting">#define <a href="#WITH_TRIO">WITH_TRIO</a></pre><pre class="programlisting">void	<a href="#xmlCheckVersion">xmlCheckVersion</a>			(int version)</pre>
 <h2>Description</h2>
 <h3><a name="ATTRIBUTE_UNUSED" id="ATTRIBUTE_UNUSED"></a>Macro: ATTRIBUTE_UNUSED</h3><pre>#define ATTRIBUTE_UNUSED</pre><p>Macro used to signal to GCC unused function parameters</p>
 <h3><a name="DEBUG_MEMORY_LOCATION" id="DEBUG_MEMORY_LOCATION"></a>Macro: DEBUG_MEMORY_LOCATION</h3><pre>#define DEBUG_MEMORY_LOCATION</pre><p>Whether the memory debugging is configured in</p>
@@ -21,6 +21,7 @@
 <h3><a name="LIBXML_DEBUG_RUNTIME" id="LIBXML_DEBUG_RUNTIME"></a>Macro: LIBXML_DEBUG_RUNTIME</h3><pre>#define LIBXML_DEBUG_RUNTIME</pre><p>Whether the runtime debugging is configured in</p>
 <h3><a name="LIBXML_DOCB_ENABLED" id="LIBXML_DOCB_ENABLED"></a>Macro: LIBXML_DOCB_ENABLED</h3><pre>#define LIBXML_DOCB_ENABLED</pre><p>Whether the SGML Docbook support is configured in</p>
 <h3><a name="LIBXML_DOTTED_VERSION" id="LIBXML_DOTTED_VERSION"></a>Macro: LIBXML_DOTTED_VERSION</h3><pre>#define LIBXML_DOTTED_VERSION</pre><p>the version string like "1.2.3"</p>
+<h3><a name="LIBXML_EXPR_ENABLED" id="LIBXML_EXPR_ENABLED"></a>Macro: LIBXML_EXPR_ENABLED</h3><pre>#define LIBXML_EXPR_ENABLED</pre><p>Whether the formal expressions interfaces are compiled in</p>
 <h3><a name="LIBXML_FTP_ENABLED" id="LIBXML_FTP_ENABLED"></a>Macro: LIBXML_FTP_ENABLED</h3><pre>#define LIBXML_FTP_ENABLED</pre><p>Whether the FTP support is configured in</p>
 <h3><a name="LIBXML_HTML_ENABLED" id="LIBXML_HTML_ENABLED"></a>Macro: LIBXML_HTML_ENABLED</h3><pre>#define LIBXML_HTML_ENABLED</pre><p>Whether the HTML support is configured in</p>
 <h3><a name="LIBXML_HTTP_ENABLED" id="LIBXML_HTTP_ENABLED"></a>Macro: LIBXML_HTTP_ENABLED</h3><pre>#define LIBXML_HTTP_ENABLED</pre><p>Whether the HTTP support is configured in</p>
@@ -28,7 +29,7 @@
 <h3><a name="LIBXML_ISO8859X_ENABLED" id="LIBXML_ISO8859X_ENABLED"></a>Macro: LIBXML_ISO8859X_ENABLED</h3><pre>#define LIBXML_ISO8859X_ENABLED</pre><p>Whether ISO-8859-* support is made available in case iconv is not</p>
 <h3><a name="LIBXML_LEGACY_ENABLED" id="LIBXML_LEGACY_ENABLED"></a>Macro: LIBXML_LEGACY_ENABLED</h3><pre>#define LIBXML_LEGACY_ENABLED</pre><p>Whether the deprecated APIs are compiled in for compatibility</p>
 <h3><a name="LIBXML_MODULES_ENABLED" id="LIBXML_MODULES_ENABLED"></a>Macro: LIBXML_MODULES_ENABLED</h3><pre>#define LIBXML_MODULES_ENABLED</pre><p>Whether the module interfaces are compiled in</p>
-<h3><a name="LIBXML_MODULE_EXTENSION" id="LIBXML_MODULE_EXTENSION"></a>Macro: LIBXML_MODULE_EXTENSION</h3><pre>#define LIBXML_MODULE_EXTENSION</pre><p></p>
+<h3><a name="LIBXML_MODULE_EXTENSION" id="LIBXML_MODULE_EXTENSION"></a>Macro: LIBXML_MODULE_EXTENSION</h3><pre>#define LIBXML_MODULE_EXTENSION</pre><p>the string suffix used by dynamic modules (usually shared libraries)</p>
 <h3><a name="LIBXML_OUTPUT_ENABLED" id="LIBXML_OUTPUT_ENABLED"></a>Macro: LIBXML_OUTPUT_ENABLED</h3><pre>#define LIBXML_OUTPUT_ENABLED</pre><p>Whether the serialization/saving support is configured in</p>
 <h3><a name="LIBXML_PATTERN_ENABLED" id="LIBXML_PATTERN_ENABLED"></a>Macro: LIBXML_PATTERN_ENABLED</h3><pre>#define LIBXML_PATTERN_ENABLED</pre><p>Whether the <a href="libxml-pattern.html#xmlPattern">xmlPattern</a> node selection interface is configured in</p>
 <h3><a name="LIBXML_PUSH_ENABLED" id="LIBXML_PUSH_ENABLED"></a>Macro: LIBXML_PUSH_ENABLED</h3><pre>#define LIBXML_PUSH_ENABLED</pre><p>Whether the push parsing interfaces are configured in</p>
@@ -36,6 +37,7 @@
 <h3><a name="LIBXML_REGEXP_ENABLED" id="LIBXML_REGEXP_ENABLED"></a>Macro: LIBXML_REGEXP_ENABLED</h3><pre>#define LIBXML_REGEXP_ENABLED</pre><p>Whether the regular expressions interfaces are compiled in</p>
 <h3><a name="LIBXML_SAX1_ENABLED" id="LIBXML_SAX1_ENABLED"></a>Macro: LIBXML_SAX1_ENABLED</h3><pre>#define LIBXML_SAX1_ENABLED</pre><p>Whether the older SAX1 interface is configured in</p>
 <h3><a name="LIBXML_SCHEMAS_ENABLED" id="LIBXML_SCHEMAS_ENABLED"></a>Macro: LIBXML_SCHEMAS_ENABLED</h3><pre>#define LIBXML_SCHEMAS_ENABLED</pre><p>Whether the Schemas validation interfaces are compiled in</p>
+<h3><a name="LIBXML_SCHEMATRON_ENABLED" id="LIBXML_SCHEMATRON_ENABLED"></a>Macro: LIBXML_SCHEMATRON_ENABLED</h3><pre>#define LIBXML_SCHEMATRON_ENABLED</pre><p>Whether the Schematron validation interfaces are compiled in</p>
 <h3><a name="LIBXML_TEST_VERSION" id="LIBXML_TEST_VERSION"></a>Macro: LIBXML_TEST_VERSION</h3><pre>#define LIBXML_TEST_VERSION</pre><p>Macro to check that the libxml version in use is compatible with the version the software has been compiled against</p>
 <h3><a name="LIBXML_THREAD_ENABLED" id="LIBXML_THREAD_ENABLED"></a>Macro: LIBXML_THREAD_ENABLED</h3><pre>#define LIBXML_THREAD_ENABLED</pre><p>Whether the thread support is configured in</p>
 <h3><a name="LIBXML_TREE_ENABLED" id="LIBXML_TREE_ENABLED"></a>Macro: LIBXML_TREE_ENABLED</h3><pre>#define LIBXML_TREE_ENABLED</pre><p>Whether the DOM like tree manipulation API support is configured in</p>

Modified: packages/libxml2/trunk/doc/html/libxml-xpath.html
===================================================================
--- packages/libxml2/trunk/doc/html/libxml-xpath.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/html/libxml-xpath.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -10,7 +10,7 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module xpath from 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>Module xpath from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlwriter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlwriter.html">xmlwriter</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xpathInternals.html">xpathInternals</a></th><td><a accesskey="n" href="libxml-xpathInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>API for the XML Path Language implementation  XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer</p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a></pre><pre class="programlisting">#define <a href="#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a></pre><pre class="programlisting">#define <a href="#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a></pre><pre class="programlisting">Structure <a href="#xmlNodeSet">xmlNodeSet</a><br />struct _xmlNodeSet
+    </style><title>Module xpath from 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>Module xpath from 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://rubyforge.org/projects/xml-tools/">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"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlwriter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlwriter.html">xmlwriter</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xpathInternals.html">xpathInternals</a></th><td><a accesskey="n" href="libxml-xpathInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>API for the XML Path Language implementation  XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer</p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_XPATH_CHECKNS">XML_XPATH_CHECKNS</a></pre><pre class="programlisting">#define <a href="#XML_XPATH_NOVAR">XML_XPATH_NOVAR</a></pre><pre class="programlisting">#define <a href="#xmlXPathNodeSetGetLength">xmlXPathNodeSetGetLength</a></pre><pre class="programlisting">#define <a href="#xmlXPathNodeSetIsEmpty">xmlXPathNodeSetIsEmpty</a></pre><pre class="programlisting">#define <a href="#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a></pre><pre class="programlisting">Structure <a href="#xmlNodeSet">xmlNodeSet</a><br />struct _xmlNodeSet
 </pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlNodeSet">xmlNodeSet</a> * <a name="xmlNodeSetPtr" id="xmlNodeSetPtr">xmlNodeSetPtr</a>
 </pre><pre class="programlisting">Structure <a href="#xmlXPathAxis">xmlXPathAxis</a><br />struct _xmlXPathAxis
 </pre><pre class="programlisting">Typedef <a href="libxml-xpath.html#xmlXPathAxis">xmlXPathAxis</a> * <a name="xmlXPathAxisPtr" id="xmlXPathAxisPtr">xmlXPathAxisPtr</a>
@@ -86,6 +86,8 @@
 <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a>	<a href="#xmlXPathVariableLookupFunc">xmlXPathVariableLookupFunc</a>	(void * ctxt, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ns_uri)
 </pre>
 <h2>Description</h2>
+<h3><a name="XML_XPATH_CHECKNS" id="XML_XPATH_CHECKNS"></a>Macro: XML_XPATH_CHECKNS</h3><pre>#define XML_XPATH_CHECKNS</pre><p>check namespaces at compilation</p>
+<h3><a name="XML_XPATH_NOVAR" id="XML_XPATH_NOVAR"></a>Macro: XML_XPATH_NOVAR</h3><pre>#define XML_XPATH_NOVAR</pre><p>forbid variables in expression</p>
 <h3><a name="xmlXPathNodeSetGetLength" id="xmlXPathNodeSetGetLength"></a>Macro: xmlXPathNodeSetGetLength</h3><pre>#define xmlXPathNodeSetGetLength</pre><p>Implement a functionality similar to the DOM NodeList.length. Returns the number of nodes in the node-set.</p>
 <h3><a name="xmlXPathNodeSetIsEmpty" id="xmlXPathNodeSetIsEmpty"></a>Macro: xmlXPathNodeSetIsEmpty</h3><pre>#define xmlXPathNodeSetIsEmpty</pre><p>Checks whether @ns is empty or not. Returns %TRUE if @ns is an empty node-set.</p>
 <h3><a name="xmlXPathNodeSetItem" id="xmlXPathNodeSetItem"></a>Macro: xmlXPathNodeSetItem</h3><pre>#define xmlXPathNodeSetItem</pre><p>Implements a functionality similar to the DOM NodeList.item(). Returns the <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> at the given @index in @ns or NULL if @index is out of range (0 to length-1)</p>
@@ -136,6 +138,7 @@
     <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
+    int	flags	: flags to control compilation
 }</pre><h3>Enum <a name="xmlXPathError" id="xmlXPathError">xmlXPathError</a></h3><pre class="programlisting">Enum xmlXPathError {
     <a name="XPATH_EXPRESSION_OK" id="XPATH_EXPRESSION_OK">XPATH_EXPRESSION_OK</a> = 0
     <a name="XPATH_NUMBER_ERROR" id="XPATH_NUMBER_ERROR">XPATH_NUMBER_ERROR</a> = 1

Modified: packages/libxml2/trunk/doc/index.html
===================================================================
--- packages/libxml2/trunk/doc/index.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/index.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,8 +1,7 @@
 <?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" />
+  <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}

Modified: packages/libxml2/trunk/doc/libxml2-api.xml
===================================================================
--- packages/libxml2/trunk/doc/libxml2-api.xml	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/libxml2-api.xml	2005-09-05 17:42:20 UTC (rev 466)
@@ -35,11 +35,13 @@
      <exports symbol='HTML_INVALID' type='enum'/>
      <exports symbol='HTML_PARSE_NONET' type='enum'/>
      <exports symbol='HTML_NA' type='enum'/>
+     <exports symbol='HTML_PARSE_COMPACT' type='enum'/>
      <exports symbol='HTML_VALID' type='enum'/>
+     <exports symbol='HTML_PARSE_NOERROR' type='enum'/>
      <exports symbol='HTML_PARSE_NOBLANKS' type='enum'/>
-     <exports symbol='HTML_PARSE_NOERROR' type='enum'/>
      <exports symbol='HTML_DEPRECATED' type='enum'/>
      <exports symbol='HTML_PARSE_PEDANTIC' type='enum'/>
+     <exports symbol='HTML_PARSE_RECOVER' type='enum'/>
      <exports symbol='HTML_PARSE_NOWARNING' type='enum'/>
      <exports symbol='htmlParserNodeInfo' type='typedef'/>
      <exports symbol='htmlParserInput' type='typedef'/>
@@ -661,51 +663,84 @@
      <exports symbol='XML_SAX2_MAGIC' type='macro'/>
      <exports symbol='XML_DETECT_IDS' type='macro'/>
      <exports symbol='XML_DEFAULT_VERSION' type='macro'/>
-     <exports symbol='XML_PARSER_ENTITY_DECL' type='enum'/>
+     <exports symbol='XML_FEATURE_SCHEMAS' type='enum'/>
+     <exports symbol='XML_FEATURE_TREE' type='enum'/>
      <exports symbol='XML_PARSER_CONTENT' type='enum'/>
+     <exports symbol='XML_FEATURE_XINCLUDE' type='enum'/>
      <exports symbol='XML_PARSE_NOBLANKS' type='enum'/>
-     <exports symbol='XML_PARSE_NODICT' type='enum'/>
-     <exports symbol='XML_PARSER_SYSTEM_LITERAL' type='enum'/>
+     <exports symbol='XML_FEATURE_OUTPUT' type='enum'/>
+     <exports symbol='XML_FEATURE_PUSH' type='enum'/>
+     <exports symbol='XML_FEATURE_FTP' type='enum'/>
      <exports symbol='XML_PARSER_PI' type='enum'/>
-     <exports symbol='XML_PARSE_PUSH_DOM' type='enum'/>
+     <exports symbol='XML_FEATURE_EXPR' type='enum'/>
+     <exports symbol='XML_FEATURE_UNICODE' type='enum'/>
+     <exports symbol='XML_FEATURE_WRITER' type='enum'/>
+     <exports symbol='XML_PARSER_ENTITY_DECL' type='enum'/>
      <exports symbol='XML_PARSER_PROLOG' type='enum'/>
-     <exports symbol='XML_PARSE_NONET' type='enum'/>
-     <exports symbol='XML_PARSER_EPILOG' type='enum'/>
+     <exports symbol='XML_PARSER_MISC' type='enum'/>
+     <exports symbol='XML_FEATURE_C14N' type='enum'/>
      <exports symbol='XML_PARSER_END_TAG' type='enum'/>
      <exports symbol='XML_PARSE_DTDVALID' type='enum'/>
-     <exports symbol='XML_PARSE_DOM' type='enum'/>
-     <exports symbol='XML_PARSER_ATTRIBUTE_VALUE' type='enum'/>
+     <exports symbol='XML_FEATURE_DEBUG_MEM' type='enum'/>
+     <exports symbol='XML_PARSE_READER' type='enum'/>
+     <exports symbol='XML_FEATURE_THREAD' type='enum'/>
+     <exports symbol='XML_FEATURE_SAX1' type='enum'/>
      <exports symbol='XML_PARSE_PUSH_SAX' type='enum'/>
      <exports symbol='XML_PARSE_RECOVER' type='enum'/>
+     <exports symbol='XML_FEATURE_ICONV' type='enum'/>
+     <exports symbol='XML_FEATURE_READER' type='enum'/>
+     <exports symbol='XML_PARSE_NONET' type='enum'/>
      <exports symbol='XML_PARSE_PEDANTIC' type='enum'/>
+     <exports symbol='XML_FEATURE_AUTOMATA' type='enum'/>
      <exports symbol='XML_PARSER_EOF' type='enum'/>
+     <exports symbol='XML_FEATURE_LEGACY' type='enum'/>
      <exports symbol='XML_PARSER_CDATA_SECTION' type='enum'/>
+     <exports symbol='XML_FEATURE_REGEXP' type='enum'/>
+     <exports symbol='XML_PARSE_NOENT' type='enum'/>
      <exports symbol='XML_PARSE_XINCLUDE' type='enum'/>
-     <exports symbol='XML_PARSE_NOXINCNODE' type='enum'/>
-     <exports symbol='XML_PARSE_READER' type='enum'/>
+     <exports symbol='XML_PARSE_NOCDATA' type='enum'/>
+     <exports symbol='XML_PARSER_ATTRIBUTE_VALUE' type='enum'/>
+     <exports symbol='XML_PARSE_NODICT' type='enum'/>
+     <exports symbol='XML_FEATURE_DEBUG' type='enum'/>
      <exports symbol='XML_PARSE_SAX' type='enum'/>
-     <exports symbol='XML_PARSE_NOENT' type='enum'/>
+     <exports symbol='XML_FEATURE_PATTERN' type='enum'/>
      <exports symbol='XML_PARSER_ENTITY_VALUE' type='enum'/>
      <exports symbol='XML_PARSE_DTDLOAD' type='enum'/>
+     <exports symbol='XML_FEATURE_HTML' type='enum'/>
      <exports symbol='XML_PARSE_DTDATTR' type='enum'/>
      <exports symbol='XML_PARSE_NOWARNING' type='enum'/>
+     <exports symbol='XML_PARSER_EPILOG' type='enum'/>
      <exports symbol='XML_PARSE_NOERROR' type='enum'/>
+     <exports symbol='XML_PARSE_DOM' type='enum'/>
+     <exports symbol='XML_PARSE_PUSH_DOM' type='enum'/>
+     <exports symbol='XML_FEATURE_CATALOG' type='enum'/>
+     <exports symbol='XML_FEATURE_MODULES' type='enum'/>
+     <exports symbol='XML_FEATURE_NONE' type='enum'/>
      <exports symbol='XML_PARSE_NSCLEAN' type='enum'/>
-     <exports symbol='XML_PARSE_NOCDATA' type='enum'/>
+     <exports symbol='XML_FEATURE_XPATH' type='enum'/>
+     <exports symbol='XML_PARSE_COMPACT' type='enum'/>
      <exports symbol='XML_PARSE_SAX1' type='enum'/>
+     <exports symbol='XML_PARSE_NOXINCNODE' type='enum'/>
      <exports symbol='XML_PARSER_DTD' type='enum'/>
-     <exports symbol='XML_PARSER_MISC' type='enum'/>
+     <exports symbol='XML_FEATURE_SCHEMATRON' type='enum'/>
      <exports symbol='XML_PARSER_START' type='enum'/>
+     <exports symbol='XML_PARSER_SYSTEM_LITERAL' type='enum'/>
      <exports symbol='XML_PARSE_UNKNOWN' type='enum'/>
      <exports symbol='XML_PARSER_START_TAG' type='enum'/>
+     <exports symbol='XML_FEATURE_ISO8859X' type='enum'/>
      <exports symbol='XML_PARSER_IGNORE' type='enum'/>
      <exports symbol='XML_PARSER_COMMENT' type='enum'/>
      <exports symbol='XML_PARSER_PUBLIC_LITERAL' type='enum'/>
+     <exports symbol='XML_FEATURE_DEBUG_RUN' type='enum'/>
+     <exports symbol='XML_FEATURE_HTTP' type='enum'/>
+     <exports symbol='XML_FEATURE_XPTR' type='enum'/>
+     <exports symbol='XML_FEATURE_VALID' type='enum'/>
      <exports symbol='xmlParserNodeInfoSeqPtr' type='typedef'/>
      <exports symbol='xmlSAXHandlerV1' type='typedef'/>
      <exports symbol='xmlParserInputState' type='typedef'/>
      <exports symbol='xmlParserNodeInfoPtr' type='typedef'/>
      <exports symbol='xmlParserNodeInfoSeq' type='typedef'/>
+     <exports symbol='xmlFeature' type='typedef'/>
      <exports symbol='xmlParserMode' type='typedef'/>
      <exports symbol='xmlParserOption' type='typedef'/>
      <exports symbol='xmlSAXHandlerV1Ptr' type='typedef'/>
@@ -794,6 +829,7 @@
      <exports symbol='xmlParserInputRead' type='function'/>
      <exports symbol='xmlReadFile' type='function'/>
      <exports symbol='xmlGetFeaturesList' type='function'/>
+     <exports symbol='xmlHasFeature' type='function'/>
      <exports symbol='unparsedEntityDeclSAXFunc' type='function'/>
      <exports symbol='xmlSAXUserParseFile' type='function'/>
      <exports symbol='fatalErrorSAXFunc' type='function'/>
@@ -960,6 +996,7 @@
      <exports symbol='xmlStreamCtxt' type='typedef'/>
      <exports symbol='xmlPattern' type='typedef'/>
      <exports symbol='xmlPatternPtr' type='typedef'/>
+     <exports symbol='xmlPatternMinDepth' type='function'/>
      <exports symbol='xmlPatternGetStreamCtxt' type='function'/>
      <exports symbol='xmlPatternFromRoot' type='function'/>
      <exports symbol='xmlFreePatternList' type='function'/>
@@ -1033,17 +1070,18 @@
      <exports symbol='xmlRelaxNGSetValidErrors' type='function'/>
      <exports symbol='xmlRelaxNGNewParserCtxt' type='function'/>
      <exports symbol='xmlRelaxNGGetParserErrors' type='function'/>
-     <exports symbol='xmlRelaxNGSetParserErrors' type='function'/>
+     <exports symbol='xmlRelaxNGValidatePopElement' type='function'/>
      <exports symbol='xmlRelaxNGNewValidCtxt' type='function'/>
      <exports symbol='xmlRelaxNGNewMemParserCtxt' type='function'/>
      <exports symbol='xmlRelaxNGDump' type='function'/>
+     <exports symbol='xmlRelaxNGSetParserErrors' type='function'/>
+     <exports symbol='xmlRelaxNGParse' type='function'/>
+     <exports symbol='xmlRelaxNGValidateFullElement' type='function'/>
      <exports symbol='xmlRelaxNGValidityErrorFunc' type='function'/>
-     <exports symbol='xmlRelaxNGParse' type='function'/>
      <exports symbol='xmlRelaxNGValidatePushElement' type='function'/>
-     <exports symbol='xmlRelaxNGValidateFullElement' type='function'/>
-     <exports symbol='xmlRelaxNGValidatePopElement' type='function'/>
      <exports symbol='xmlRelaxNGFree' type='function'/>
      <exports symbol='xmlRelaxNGValidateDoc' type='function'/>
+     <exports symbol='xmlRelaxNGSetValidStructuredErrors' type='function'/>
      <exports symbol='xmlRelaxNGFreeParserCtxt' type='function'/>
      <exports symbol='xmlRelaxNGGetValidErrors' type='function'/>
      <exports symbol='xmlRelaxNGInitTypes' type='function'/>
@@ -1273,6 +1311,35 @@
      <exports symbol='xmlSchemaFreeType' type='function'/>
      <exports symbol='xmlSchemaFreeWildcard' type='function'/>
     </file>
+    <file name='schematron'>
+     <summary>XML Schemastron implementation</summary>
+     <description>interface to the XML Schematron validity checking. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='XML_SCHEMATRON_OUT_IO' type='enum'/>
+     <exports symbol='XML_SCHEMATRON_OUT_BUFFER' type='enum'/>
+     <exports symbol='XML_SCHEMATRON_OUT_FILE' type='enum'/>
+     <exports symbol='XML_SCHEMATRON_OUT_XML' type='enum'/>
+     <exports symbol='XML_SCHEMATRON_OUT_TEXT' type='enum'/>
+     <exports symbol='XML_SCHEMATRON_OUT_QUIET' type='enum'/>
+     <exports symbol='xmlSchematronValidCtxt' type='typedef'/>
+     <exports symbol='xmlSchematronValidOptions' type='typedef'/>
+     <exports symbol='xmlSchematronPtr' type='typedef'/>
+     <exports symbol='xmlSchematronParserCtxt' type='typedef'/>
+     <exports symbol='xmlSchematron' type='typedef'/>
+     <exports symbol='xmlSchematronValidCtxtPtr' type='typedef'/>
+     <exports symbol='xmlSchematronParserCtxtPtr' type='typedef'/>
+     <exports symbol='xmlSchematronValidateDoc' type='function'/>
+     <exports symbol='xmlSchematronFreeParserCtxt' type='function'/>
+     <exports symbol='xmlSchematronNewMemParserCtxt' type='function'/>
+     <exports symbol='xmlSchematronValidityErrorFunc' type='function'/>
+     <exports symbol='xmlSchematronNewParserCtxt' type='function'/>
+     <exports symbol='xmlSchematronValidityWarningFunc' type='function'/>
+     <exports symbol='xmlSchematronFree' type='function'/>
+     <exports symbol='xmlSchematronFreeValidCtxt' type='function'/>
+     <exports symbol='xmlSchematronParse' type='function'/>
+     <exports symbol='xmlSchematronNewDocParserCtxt' type='function'/>
+     <exports symbol='xmlSchematronNewValidCtxt' type='function'/>
+    </file>
     <file name='threads'>
      <summary>interfaces for thread handling</summary>
      <description>set of generic threading related routines should work with pthreads, Windows native or TLS threads </description>
@@ -1585,6 +1652,7 @@
      <exports symbol='_xmlURI' type='struct'/>
      <exports symbol='xmlNormalizeURIPath' type='function'/>
      <exports symbol='xmlPrintURI' type='function'/>
+     <exports symbol='xmlParseURIRaw' type='function'/>
      <exports symbol='xmlURIUnescapeString' type='function'/>
      <exports symbol='xmlParseURI' type='function'/>
      <exports symbol='xmlCreateURI' type='function'/>
@@ -1831,9 +1899,10 @@
      <exports symbol='xmlAutomataNewCountedTrans' type='function'/>
      <exports symbol='xmlAutomataNewCounterTrans' type='function'/>
      <exports symbol='xmlAutomataCompile' type='function'/>
-     <exports symbol='xmlNewAutomata' type='function'/>
+     <exports symbol='xmlAutomataNewNegTrans' type='function'/>
      <exports symbol='xmlAutomataNewEpsilon' type='function'/>
      <exports symbol='xmlAutomataNewCountTrans2' type='function'/>
+     <exports symbol='xmlNewAutomata' type='function'/>
      <exports symbol='xmlAutomataSetFinalState' type='function'/>
      <exports symbol='xmlAutomataNewOnceTrans' type='function'/>
      <exports symbol='xmlAutomataNewTransition' type='function'/>
@@ -1912,6 +1981,7 @@
      <exports symbol='XML_SCHEMAP_SRC_RESOLVE' type='enum'/>
      <exports symbol='XML_SCHEMAV_CVC_FACET_VALID' type='enum'/>
      <exports symbol='XML_SCHEMAP_RESTRICTION_NONAME_NOREF' type='enum'/>
+     <exports symbol='XML_I18N_NO_OUTPUT' type='enum'/>
      <exports symbol='XML_CHECK_FOUND_ATTRIBUTE' type='enum'/>
      <exports symbol='XML_ERR_STANDALONE_VALUE' type='enum'/>
      <exports symbol='XML_SCHEMAP_REDEFINED_ATTR' type='enum'/>
@@ -2032,7 +2102,7 @@
      <exports symbol='XML_SCHEMAV_CVC_ELT_4_3' type='enum'/>
      <exports symbol='XML_FTP_ACCNT' type='enum'/>
      <exports symbol='XML_SCHEMAV_CVC_ELT_4_1' type='enum'/>
-     <exports symbol='XML_SCHEMAP_EXTENSION_NO_BASE' type='enum'/>
+     <exports symbol='XML_RNGP_PAT_START_DATA' type='enum'/>
      <exports symbol='XML_IO_ENOENT' type='enum'/>
      <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3' type='enum'/>
      <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2' type='enum'/>
@@ -2074,6 +2144,7 @@
      <exports symbol='XML_DTD_MULTIPLE_ID' type='enum'/>
      <exports symbol='XML_FROM_XPATH' type='enum'/>
      <exports symbol='XML_TREE_INVALID_DEC' type='enum'/>
+     <exports symbol='XML_SCHEMAP_EXTENSION_NO_BASE' type='enum'/>
      <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_5' type='enum'/>
      <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_4' type='enum'/>
      <exports symbol='XML_CHECK_FOUND_DOCTYPE' type='enum'/>
@@ -2112,7 +2183,7 @@
      <exports symbol='XML_SCHEMAP_SRC_ELEMENT_3' type='enum'/>
      <exports symbol='XML_SCHEMAP_UNKNOWN_REF' type='enum'/>
      <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_EMPTY' type='enum'/>
-     <exports symbol='XML_RNGP_PAT_START_DATA' type='enum'/>
+     <exports symbol='XML_FROM_I18N' type='enum'/>
      <exports symbol='XML_DTD_MISSING_ATTRIBUTE' type='enum'/>
      <exports symbol='XML_IO_EMFILE' type='enum'/>
      <exports symbol='XML_RNGP_EMPTY_NOT_EMPTY' type='enum'/>
@@ -2151,6 +2222,7 @@
      <exports symbol='XML_DTD_NOTATION_VALUE' type='enum'/>
      <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_2' type='enum'/>
      <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_3' type='enum'/>
+     <exports symbol='XML_I18N_NO_NAME' type='enum'/>
      <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_1' type='enum'/>
      <exports symbol='XML_RNGP_EXCEPT_MISSING' type='enum'/>
      <exports symbol='XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID' type='enum'/>
@@ -2158,6 +2230,7 @@
      <exports symbol='XML_DTD_MIXED_CORRUPT' type='enum'/>
      <exports symbol='XML_ERR_ENTITY_BOUNDARY' type='enum'/>
      <exports symbol='XML_SCHEMAP_ELEMFORMDEFAULT_VALUE' type='enum'/>
+     <exports symbol='XML_I18N_EXCESS_HANDLER' type='enum'/>
      <exports symbol='XML_RNGP_DATA_CONTENT' type='enum'/>
      <exports symbol='XML_ERR_STRING_NOT_STARTED' type='enum'/>
      <exports symbol='XML_RNGP_EXCEPT_MULTIPLE' type='enum'/>
@@ -2319,7 +2392,7 @@
      <exports symbol='XML_XPATH_INVALID_ARITY' type='enum'/>
      <exports symbol='XML_RNGP_ERROR_TYPE_LIB' type='enum'/>
      <exports symbol='XML_XPTR_EVAL_FAILED' type='enum'/>
-     <exports symbol='XML_RNGP_INCLUDE_RECURSE' type='enum'/>
+     <exports symbol='XML_DTD_NO_ROOT' type='enum'/>
      <exports symbol='XML_SCHEMAP_IMPORT_REDEFINE_NSNAME' type='enum'/>
      <exports symbol='XML_SCHEMAP_UNKNOWN_ATTR_CHILD' type='enum'/>
      <exports symbol='XML_ERR_UNKNOWN_ENCODING' type='enum'/>
@@ -2346,6 +2419,7 @@
      <exports symbol='XML_ERR_CHARREF_IN_DTD' type='enum'/>
      <exports symbol='XML_IO_ENFILE' type='enum'/>
      <exports symbol='XML_ERR_ENTITY_IS_PARAMETER' type='enum'/>
+     <exports symbol='XML_I18N_CONV_FAILED' type='enum'/>
      <exports symbol='XML_CHECK_WRONG_PARENT' type='enum'/>
      <exports symbol='XML_RNGP_PARENTREF_NO_NAME' type='enum'/>
      <exports symbol='XML_IO_EPERM' type='enum'/>
@@ -2398,6 +2472,7 @@
      <exports symbol='XML_SCHEMAP_UNKNOWN_CHOICE_CHILD' type='enum'/>
      <exports symbol='XML_RNGP_ELEM_CONTENT_ERROR' type='enum'/>
      <exports symbol='XML_SCHEMAV_HAVEDEFAULT' type='enum'/>
+     <exports symbol='XML_I18N_NO_HANDLER' type='enum'/>
      <exports symbol='XML_RNGP_MISSING_HREF' type='enum'/>
      <exports symbol='XML_ERR_PI_NOT_FINISHED' type='enum'/>
      <exports symbol='XML_FROM_RELAXNGP' type='enum'/>
@@ -2476,6 +2551,7 @@
      <exports symbol='XML_XPATH_ENCODING_ERROR' type='enum'/>
      <exports symbol='XML_SCHEMAP_SRC_INCLUDE' type='enum'/>
      <exports symbol='XML_RNGP_NSNAME_ATTR_ANCESTOR' type='enum'/>
+     <exports symbol='XML_SCHEMAP_SRC_REDEFINE' type='enum'/>
      <exports symbol='XML_RNGP_REF_CYCLE' type='enum'/>
      <exports symbol='XML_RNGP_PAT_ATTR_ATTR' type='enum'/>
      <exports symbol='XML_XPTR_UNKNOWN_SCHEME' type='enum'/>
@@ -2517,7 +2593,7 @@
      <exports symbol='XML_ERR_ELEMCONTENT_NOT_FINISHED' type='enum'/>
      <exports symbol='XML_FROM_NAMESPACE' type='enum'/>
      <exports symbol='XML_IO_EBUSY' type='enum'/>
-     <exports symbol='XML_DTD_NO_ROOT' type='enum'/>
+     <exports symbol='XML_RNGP_INCLUDE_RECURSE' type='enum'/>
      <exports symbol='XML_ERR_INVALID_URI' type='enum'/>
      <exports symbol='XML_IO_ESRCH' type='enum'/>
      <exports symbol='XML_FROM_XPOINTER' type='enum'/>
@@ -2611,11 +2687,12 @@
      <summary>macros for marking symbols as exportable/importable.</summary>
      <description>macros for marking symbols as exportable/importable. </description>
      <author>Igor Zlatovic &lt;igor at zlatkovic.com&gt; </author>
-     <exports symbol='XMLCALL' type='macro'/>
      <exports symbol='_REENTRANT' type='macro'/>
-     <exports symbol='XMLPUBFUN' type='macro'/>
+     <exports symbol='XMLCDECL' type='macro'/>
      <exports symbol='XMLPUBVAR' type='macro'/>
      <exports symbol='LIBXML_DLL_IMPORT' type='macro'/>
+     <exports symbol='XMLCALL' type='macro'/>
+     <exports symbol='XMLPUBFUN' type='macro'/>
     </file>
     <file name='xmlmemory'>
      <summary>interface for the memory allocator</summary>
@@ -2796,27 +2873,60 @@
      <summary>regular expressions handling</summary>
      <description>basic API for libxml regular expressions handling used for XML Schemas and validation. </description>
      <author>Daniel Veillard </author>
+     <exports symbol='XML_EXP_COUNT' type='enum'/>
+     <exports symbol='XML_EXP_EMPTY' type='enum'/>
+     <exports symbol='XML_EXP_SEQ' type='enum'/>
+     <exports symbol='XML_EXP_ATOM' type='enum'/>
+     <exports symbol='XML_EXP_OR' type='enum'/>
+     <exports symbol='XML_EXP_FORBID' type='enum'/>
      <exports symbol='xmlRegExecCtxtPtr' type='typedef'/>
+     <exports symbol='xmlExpCtxt' type='typedef'/>
+     <exports symbol='xmlExpNodePtr' type='typedef'/>
+     <exports symbol='xmlExpCtxtPtr' type='typedef'/>
+     <exports symbol='xmlExpNodeType' type='typedef'/>
+     <exports symbol='xmlRegExecCtxt' type='typedef'/>
+     <exports symbol='xmlExpNode' type='typedef'/>
      <exports symbol='xmlRegexp' type='typedef'/>
      <exports symbol='xmlRegexpPtr' type='typedef'/>
-     <exports symbol='xmlRegExecCtxt' type='typedef'/>
+     <exports symbol='forbiddenExp' type='variable'/>
+     <exports symbol='emptyExp' type='variable'/>
+     <exports symbol='xmlRegExecCallbacks' type='function'/>
+     <exports symbol='xmlRegNewExecCtxt' type='function'/>
+     <exports symbol='xmlExpNewOr' type='function'/>
+     <exports symbol='xmlRegFreeRegexp' type='function'/>
+     <exports symbol='xmlExpRef' type='function'/>
+     <exports symbol='xmlRegexpIsDeterminist' type='function'/>
      <exports symbol='xmlRegExecErrInfo' type='function'/>
      <exports symbol='xmlRegFreeExecCtxt' type='function'/>
-     <exports symbol='xmlRegexpExec' type='function'/>
-     <exports symbol='xmlRegExecCallbacks' type='function'/>
-     <exports symbol='xmlRegNewExecCtxt' type='function'/>
+     <exports symbol='xmlExpCtxtNbCons' type='function'/>
+     <exports symbol='xmlExpSubsume' type='function'/>
      <exports symbol='xmlRegExecPushString2' type='function'/>
-     <exports symbol='xmlRegFreeRegexp' type='function'/>
      <exports symbol='xmlRegExecNextValues' type='function'/>
+     <exports symbol='xmlExpExpDerive' type='function'/>
+     <exports symbol='xmlExpIsNillable' type='function'/>
+     <exports symbol='xmlExpFreeCtxt' type='function'/>
+     <exports symbol='xmlExpDump' type='function'/>
+     <exports symbol='xmlExpNewSeq' type='function'/>
+     <exports symbol='xmlExpFree' type='function'/>
+     <exports symbol='xmlExpNewRange' type='function'/>
      <exports symbol='xmlRegexpCompile' type='function'/>
-     <exports symbol='xmlRegexpIsDeterminist' type='function'/>
+     <exports symbol='xmlExpNewAtom' type='function'/>
+     <exports symbol='xmlRegexpExec' type='function'/>
      <exports symbol='xmlRegExecPushString' type='function'/>
+     <exports symbol='xmlExpGetStart' type='function'/>
+     <exports symbol='xmlExpParse' type='function'/>
+     <exports symbol='xmlExpNewCtxt' type='function'/>
+     <exports symbol='xmlExpGetLanguage' type='function'/>
+     <exports symbol='xmlExpStringDerive' type='function'/>
+     <exports symbol='xmlExpCtxtNbNodes' type='function'/>
+     <exports symbol='xmlExpMaxToken' type='function'/>
      <exports symbol='xmlRegexpPrint' type='function'/>
     </file>
     <file name='xmlsave'>
      <summary>the XML document serializer</summary>
      <description>API to save document or subtree of document </description>
      <author>Daniel Veillard </author>
+     <exports symbol='XML_SAVE_NO_DECL' type='enum'/>
      <exports symbol='XML_SAVE_FORMAT' type='enum'/>
      <exports symbol='xmlSaveOption' type='typedef'/>
      <exports symbol='xmlSaveCtxt' type='typedef'/>
@@ -2883,7 +2993,7 @@
      <exports symbol='xmlSchemaValidateStream' type='function'/>
      <exports symbol='xmlSchemaGetParserErrors' type='function'/>
      <exports symbol='xmlSchemaValidateOneElement' type='function'/>
-     <exports symbol='xmlSchemaDump' type='function'/>
+     <exports symbol='xmlSchemaSetValidStructuredErrors' type='function'/>
      <exports symbol='xmlSchemaSetValidErrors' type='function'/>
      <exports symbol='xmlSchemaValidCtxtGetOptions' type='function'/>
      <exports symbol='xmlSchemaValidateFile' type='function'/>
@@ -2894,6 +3004,7 @@
      <exports symbol='xmlSchemaSetValidOptions' type='function'/>
      <exports symbol='xmlSchemaSetParserErrors' type='function'/>
      <exports symbol='xmlSchemaValidityWarningFunc' type='function'/>
+     <exports symbol='xmlSchemaDump' type='function'/>
      <exports symbol='xmlSchemaFreeValidCtxt' type='function'/>
      <exports symbol='xmlSchemaNewValidCtxt' type='function'/>
     </file>
@@ -3167,6 +3278,7 @@
      <exports symbol='LIBXML_PUSH_ENABLED' type='macro'/>
      <exports symbol='LIBXML_SAX1_ENABLED' type='macro'/>
      <exports symbol='WITHOUT_TRIO' type='macro'/>
+     <exports symbol='LIBXML_SCHEMATRON_ENABLED' type='macro'/>
      <exports symbol='LIBXML_HTTP_ENABLED' type='macro'/>
      <exports symbol='LIBXML_OUTPUT_ENABLED' type='macro'/>
      <exports symbol='WITH_TRIO' type='macro'/>
@@ -3188,6 +3300,7 @@
      <exports symbol='DEBUG_MEMORY_LOCATION' type='macro'/>
      <exports symbol='LIBXML_TEST_VERSION' type='macro'/>
      <exports symbol='LIBXML_XPATH_ENABLED' type='macro'/>
+     <exports symbol='LIBXML_EXPR_ENABLED' type='macro'/>
      <exports symbol='LIBXML_VALID_ENABLED' type='macro'/>
      <exports symbol='LIBXML_TREE_ENABLED' type='macro'/>
      <exports symbol='LIBXML_PATTERN_ENABLED' type='macro'/>
@@ -3286,8 +3399,10 @@
      <description>API for the XML Path Language implementation  XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer</description>
      <author>Daniel Veillard </author>
      <exports symbol='xmlXPathNodeSetGetLength' type='macro'/>
+     <exports symbol='XML_XPATH_CHECKNS' type='macro'/>
+     <exports symbol='XML_XPATH_NOVAR' type='macro'/>
+     <exports symbol='xmlXPathNodeSetItem' type='macro'/>
      <exports symbol='xmlXPathNodeSetIsEmpty' type='macro'/>
-     <exports symbol='xmlXPathNodeSetItem' type='macro'/>
      <exports symbol='XPATH_NUMBER_ERROR' type='enum'/>
      <exports symbol='XPATH_BOOLEAN' type='enum'/>
      <exports symbol='XPATH_START_LITERAL_ERROR' type='enum'/>
@@ -3736,6 +3851,9 @@
     <macro name='LIBXML_DOTTED_VERSION' file='xmlversion'>
       <info>the version string like &quot;1.2.3&quot;</info>
     </macro>
+    <macro name='LIBXML_EXPR_ENABLED' file='xmlversion'>
+      <info>Whether the formal expressions interfaces are compiled in</info>
+    </macro>
     <macro name='LIBXML_FTP_ENABLED' file='xmlversion'>
       <info>Whether the FTP support is configured in</info>
     </macro>
@@ -3758,6 +3876,7 @@
       <info>Whether the module interfaces are compiled in</info>
     </macro>
     <macro name='LIBXML_MODULE_EXTENSION' file='xmlversion'>
+      <info>the string suffix used by dynamic modules (usually shared libraries)</info>
     </macro>
     <macro name='LIBXML_OUTPUT_ENABLED' file='xmlversion'>
       <info>Whether the serialization/saving support is configured in</info>
@@ -3780,6 +3899,9 @@
     <macro name='LIBXML_SCHEMAS_ENABLED' file='xmlversion'>
       <info>Whether the Schemas validation interfaces are compiled in</info>
     </macro>
+    <macro name='LIBXML_SCHEMATRON_ENABLED' file='xmlversion'>
+      <info>Whether the Schematron validation interfaces are compiled in</info>
+    </macro>
     <macro name='LIBXML_TEST_VERSION' file='xmlversion'>
       <info>Macro to check that the libxml version in use is compatible with the version the software has been compiled against</info>
     </macro>
@@ -3866,6 +3988,8 @@
     </macro>
     <macro name='XMLCALL' file='xmlexports'>
     </macro>
+    <macro name='XMLCDECL' file='xmlexports'>
+    </macro>
     <macro name='XMLPUBFUN' file='xmlexports'>
     </macro>
     <macro name='XMLPUBVAR' file='xmlexports'>
@@ -4165,6 +4289,12 @@
     <macro name='XML_XML_NAMESPACE' file='tree'>
       <info>This is the namespace for the special xml: prefix predefined in the XML Namespace specification.</info>
     </macro>
+    <macro name='XML_XPATH_CHECKNS' file='xpath'>
+      <info>check namespaces at compilation</info>
+    </macro>
+    <macro name='XML_XPATH_NOVAR' file='xpath'>
+      <info>forbid variables in expression</info>
+    </macro>
     <macro name='XP_ERROR' file='xpathInternals'>
       <info>Macro to raise an XPath error and return.</info>
       <arg name='X' info='the error code'/>
@@ -4354,11 +4484,13 @@
     <enum name='HTML_DEPRECATED' file='HTMLparser' value='2' type='htmlStatus'/>
     <enum name='HTML_INVALID' file='HTMLparser' value='1' type='htmlStatus'/>
     <enum name='HTML_NA' file='HTMLparser' value='0' type='htmlStatus' info='something we don&apos;t check at all'/>
+    <enum name='HTML_PARSE_COMPACT' file='HTMLparser' value='65536' type='htmlParserOption' info=' compact small text nodes'/>
     <enum name='HTML_PARSE_NOBLANKS' file='HTMLparser' value='256' type='htmlParserOption' info='remove blank nodes'/>
     <enum name='HTML_PARSE_NOERROR' file='HTMLparser' value='32' type='htmlParserOption' info='suppress error reports'/>
-    <enum name='HTML_PARSE_NONET' file='HTMLparser' value='2048' type='htmlParserOption' info=' Forbid network access'/>
+    <enum name='HTML_PARSE_NONET' file='HTMLparser' value='2048' type='htmlParserOption' info='Forbid network access'/>
     <enum name='HTML_PARSE_NOWARNING' file='HTMLparser' value='64' type='htmlParserOption' info='suppress warning reports'/>
     <enum name='HTML_PARSE_PEDANTIC' file='HTMLparser' value='128' type='htmlParserOption' info='pedantic error reporting'/>
+    <enum name='HTML_PARSE_RECOVER' file='HTMLparser' value='1' type='htmlParserOption' info='Relaxed parsing'/>
     <enum name='HTML_REQUIRED' file='HTMLparser' value='12' type='htmlStatus' info=' VALID bit set so ( &amp; HTML_VALID ) is TRUE'/>
     <enum name='HTML_VALID' file='HTMLparser' value='4' type='htmlStatus'/>
     <enum name='XLINK_ACTUATE_AUTO' file='xlink' value='1' type='xlinkActuate'/>
@@ -4434,7 +4566,7 @@
     <enum name='XML_CHAR_ENCODING_UTF16BE' file='encoding' value='3' type='xmlCharEncoding' info='UTF-16 big endian'/>
     <enum name='XML_CHAR_ENCODING_UTF16LE' file='encoding' value='2' type='xmlCharEncoding' info='UTF-16 little endian'/>
     <enum name='XML_CHAR_ENCODING_UTF8' file='encoding' value='1' type='xmlCharEncoding' info='UTF-8'/>
-    <enum name='XML_CHECK_' file='xmlerror' value='5038' type='xmlParserErrors' info='5033'/>
+    <enum name='XML_CHECK_' file='xmlerror' value='6005' type='xmlParserErrors' info='5033'/>
     <enum name='XML_CHECK_ENTITY_TYPE' file='xmlerror' value='5012' type='xmlParserErrors' info='5012'/>
     <enum name='XML_CHECK_FOUND_ATTRIBUTE' file='xmlerror' value='5001' type='xmlParserErrors' info='5001'/>
     <enum name='XML_CHECK_FOUND_CDATA' file='xmlerror' value='5003' type='xmlParserErrors' info='5003'/>
@@ -4473,7 +4605,7 @@
     <enum name='XML_CHECK_WRONG_NEXT' file='xmlerror' value='5021' type='xmlParserErrors' info='5021'/>
     <enum name='XML_CHECK_WRONG_PARENT' file='xmlerror' value='5029' type='xmlParserErrors' info='5029'/>
     <enum name='XML_CHECK_WRONG_PREV' file='xmlerror' value='5019' type='xmlParserErrors' info='5019'/>
-    <enum name='XML_CHECK_X' file='xmlerror' value='5039' type='xmlParserErrors' info=' 503'/>
+    <enum name='XML_CHECK_X' file='xmlerror' value='6006' type='xmlParserErrors' info=' 503'/>
     <enum name='XML_COMMENT_NODE' file='tree' value='8' type='xmlElementType'/>
     <enum name='XML_DOCB_DOCUMENT_NODE' file='tree' value='21' type='xmlElementType'/>
     <enum name='XML_DOCUMENT_FRAG_NODE' file='tree' value='11' type='xmlElementType'/>
@@ -4642,9 +4774,46 @@
     <enum name='XML_ERR_WARNING' file='xmlerror' value='1' type='xmlErrorLevel' info='A simple warning'/>
     <enum name='XML_ERR_XMLDECL_NOT_FINISHED' file='xmlerror' value='57' type='xmlParserErrors' info='57'/>
     <enum name='XML_ERR_XMLDECL_NOT_STARTED' file='xmlerror' value='56' type='xmlParserErrors' info='56'/>
+    <enum name='XML_EXP_ATOM' file='xmlregexp' value='2' type='xmlExpNodeType'/>
+    <enum name='XML_EXP_COUNT' file='xmlregexp' value='5' type='xmlExpNodeType'/>
+    <enum name='XML_EXP_EMPTY' file='xmlregexp' value='0' type='xmlExpNodeType'/>
+    <enum name='XML_EXP_FORBID' file='xmlregexp' value='1' type='xmlExpNodeType'/>
+    <enum name='XML_EXP_OR' file='xmlregexp' value='4' type='xmlExpNodeType'/>
+    <enum name='XML_EXP_SEQ' file='xmlregexp' value='3' type='xmlExpNodeType'/>
     <enum name='XML_EXTERNAL_GENERAL_PARSED_ENTITY' file='entities' value='2' type='xmlEntityType'/>
     <enum name='XML_EXTERNAL_GENERAL_UNPARSED_ENTITY' file='entities' value='3' type='xmlEntityType'/>
     <enum name='XML_EXTERNAL_PARAMETER_ENTITY' file='entities' value='5' type='xmlEntityType'/>
+    <enum name='XML_FEATURE_AUTOMATA' file='parser' value='23' type='xmlFeature'/>
+    <enum name='XML_FEATURE_C14N' file='parser' value='14' type='xmlFeature'/>
+    <enum name='XML_FEATURE_CATALOG' file='parser' value='15' type='xmlFeature'/>
+    <enum name='XML_FEATURE_DEBUG' file='parser' value='28' type='xmlFeature'/>
+    <enum name='XML_FEATURE_DEBUG_MEM' file='parser' value='29' type='xmlFeature'/>
+    <enum name='XML_FEATURE_DEBUG_RUN' file='parser' value='30' type='xmlFeature'/>
+    <enum name='XML_FEATURE_EXPR' file='parser' value='24' type='xmlFeature'/>
+    <enum name='XML_FEATURE_FTP' file='parser' value='9' type='xmlFeature'/>
+    <enum name='XML_FEATURE_HTML' file='parser' value='12' type='xmlFeature'/>
+    <enum name='XML_FEATURE_HTTP' file='parser' value='10' type='xmlFeature'/>
+    <enum name='XML_FEATURE_ICONV' file='parser' value='19' type='xmlFeature'/>
+    <enum name='XML_FEATURE_ISO8859X' file='parser' value='20' type='xmlFeature'/>
+    <enum name='XML_FEATURE_LEGACY' file='parser' value='13' type='xmlFeature'/>
+    <enum name='XML_FEATURE_MODULES' file='parser' value='27' type='xmlFeature'/>
+    <enum name='XML_FEATURE_NONE' file='parser' value='99999' type='xmlFeature' info=' just to be sure of allocation size'/>
+    <enum name='XML_FEATURE_OUTPUT' file='parser' value='3' type='xmlFeature'/>
+    <enum name='XML_FEATURE_PATTERN' file='parser' value='6' type='xmlFeature'/>
+    <enum name='XML_FEATURE_PUSH' file='parser' value='4' type='xmlFeature'/>
+    <enum name='XML_FEATURE_READER' file='parser' value='5' type='xmlFeature'/>
+    <enum name='XML_FEATURE_REGEXP' file='parser' value='22' type='xmlFeature'/>
+    <enum name='XML_FEATURE_SAX1' file='parser' value='8' type='xmlFeature'/>
+    <enum name='XML_FEATURE_SCHEMAS' file='parser' value='25' type='xmlFeature'/>
+    <enum name='XML_FEATURE_SCHEMATRON' file='parser' value='26' type='xmlFeature'/>
+    <enum name='XML_FEATURE_THREAD' file='parser' value='1' type='xmlFeature'/>
+    <enum name='XML_FEATURE_TREE' file='parser' value='2' type='xmlFeature'/>
+    <enum name='XML_FEATURE_UNICODE' file='parser' value='21' type='xmlFeature'/>
+    <enum name='XML_FEATURE_VALID' file='parser' value='11' type='xmlFeature'/>
+    <enum name='XML_FEATURE_WRITER' file='parser' value='7' type='xmlFeature'/>
+    <enum name='XML_FEATURE_XINCLUDE' file='parser' value='18' type='xmlFeature'/>
+    <enum name='XML_FEATURE_XPATH' file='parser' value='16' type='xmlFeature'/>
+    <enum name='XML_FEATURE_XPTR' file='parser' value='17' type='xmlFeature'/>
     <enum name='XML_FROM_C14N' file='xmlerror' value='21' type='xmlErrorDomain' info='The Canonicalization module'/>
     <enum name='XML_FROM_CATALOG' file='xmlerror' value='20' type='xmlErrorDomain' info='The Catalog module'/>
     <enum name='XML_FROM_CHECK' file='xmlerror' value='24' type='xmlErrorDomain' info='The error checking module'/>
@@ -4653,9 +4822,10 @@
     <enum name='XML_FROM_FTP' file='xmlerror' value='9' type='xmlErrorDomain' info='The FTP module'/>
     <enum name='XML_FROM_HTML' file='xmlerror' value='5' type='xmlErrorDomain' info='The HTML parser'/>
     <enum name='XML_FROM_HTTP' file='xmlerror' value='10' type='xmlErrorDomain' info='The HTTP module'/>
+    <enum name='XML_FROM_I18N' file='xmlerror' value='27' type='xmlErrorDomain' info=' The module handling character conversion'/>
     <enum name='XML_FROM_IO' file='xmlerror' value='8' type='xmlErrorDomain' info='The Input/Output stack'/>
     <enum name='XML_FROM_MEMORY' file='xmlerror' value='6' type='xmlErrorDomain' info='The memory allocator'/>
-    <enum name='XML_FROM_MODULE' file='xmlerror' value='26' type='xmlErrorDomain' info=' The dynamically loaded module modul'/>
+    <enum name='XML_FROM_MODULE' file='xmlerror' value='26' type='xmlErrorDomain' info='The dynamically loaded module modul'/>
     <enum name='XML_FROM_NAMESPACE' file='xmlerror' value='3' type='xmlErrorDomain' info='The XML Namespace module'/>
     <enum name='XML_FROM_NONE' file='xmlerror' value='0' type='xmlErrorDomain'/>
     <enum name='XML_FROM_OUTPUT' file='xmlerror' value='7' type='xmlErrorDomain' info='The serialization code'/>
@@ -4682,6 +4852,11 @@
     <enum name='XML_HTTP_UNKNOWN_HOST' file='xmlerror' value='2022' type='xmlParserErrors' info='2022'/>
     <enum name='XML_HTTP_URL_SYNTAX' file='xmlerror' value='2020' type='xmlParserErrors'/>
     <enum name='XML_HTTP_USE_IP' file='xmlerror' value='2021' type='xmlParserErrors' info='2021'/>
+    <enum name='XML_I18N_CONV_FAILED' file='xmlerror' value='6003' type='xmlParserErrors' info='6003'/>
+    <enum name='XML_I18N_EXCESS_HANDLER' file='xmlerror' value='6002' type='xmlParserErrors' info='6002'/>
+    <enum name='XML_I18N_NO_HANDLER' file='xmlerror' value='6001' type='xmlParserErrors' info='6001'/>
+    <enum name='XML_I18N_NO_NAME' file='xmlerror' value='6000' type='xmlParserErrors'/>
+    <enum name='XML_I18N_NO_OUTPUT' file='xmlerror' value='6004' type='xmlParserErrors' info='6004'/>
     <enum name='XML_INTERNAL_GENERAL_ENTITY' file='entities' value='1' type='xmlEntityType'/>
     <enum name='XML_INTERNAL_PARAMETER_ENTITY' file='entities' value='4' type='xmlEntityType'/>
     <enum name='XML_INTERNAL_PREDEFINED_ENTITY' file='entities' value='6' type='xmlEntityType'/>
@@ -4779,6 +4954,7 @@
     <enum name='XML_PARSER_SUBST_ENTITIES' file='xmlreader' value='4' type='xmlParserProperties'/>
     <enum name='XML_PARSER_SYSTEM_LITERAL' file='parser' value='13' type='xmlParserInputState' info='within a SYSTEM value'/>
     <enum name='XML_PARSER_VALIDATE' file='xmlreader' value='3' type='xmlParserProperties'/>
+    <enum name='XML_PARSE_COMPACT' file='parser' value='65536' type='xmlParserOption' info=' compact small text nodes'/>
     <enum name='XML_PARSE_DOM' file='parser' value='1' type='xmlParserMode'/>
     <enum name='XML_PARSE_DTDATTR' file='parser' value='8' type='xmlParserOption' info='default DTD attributes'/>
     <enum name='XML_PARSE_DTDLOAD' file='parser' value='4' type='xmlParserOption' info='load the external subset'/>
@@ -4790,7 +4966,7 @@
     <enum name='XML_PARSE_NOERROR' file='parser' value='32' type='xmlParserOption' info='suppress error reports'/>
     <enum name='XML_PARSE_NONET' file='parser' value='2048' type='xmlParserOption' info='Forbid network access'/>
     <enum name='XML_PARSE_NOWARNING' file='parser' value='64' type='xmlParserOption' info='suppress warning reports'/>
-    <enum name='XML_PARSE_NOXINCNODE' file='parser' value='32768' type='xmlParserOption' info=' do not generate XINCLUDE START/END nodes'/>
+    <enum name='XML_PARSE_NOXINCNODE' file='parser' value='32768' type='xmlParserOption' info='do not generate XINCLUDE START/END nodes'/>
     <enum name='XML_PARSE_NSCLEAN' file='parser' value='8192' type='xmlParserOption' info='remove redundant namespaces declarations'/>
     <enum name='XML_PARSE_PEDANTIC' file='parser' value='128' type='xmlParserOption' info='pedantic error reporting'/>
     <enum name='XML_PARSE_PUSH_DOM' file='parser' value='3' type='xmlParserMode'/>
@@ -4992,8 +5168,9 @@
     <enum name='XML_RNGP_XMLNS_NAME' file='xmlerror' value='1121' type='xmlParserErrors' info='1121'/>
     <enum name='XML_RNGP_XML_NS' file='xmlerror' value='1122' type='xmlParserErrors' info='1122'/>
     <enum name='XML_SAVE_CHAR_INVALID' file='xmlerror' value='1401' type='xmlParserErrors' info='1401'/>
-    <enum name='XML_SAVE_FORMAT' file='xmlsave' value='1' type='xmlSaveOption' info=' format save output'/>
+    <enum name='XML_SAVE_FORMAT' file='xmlsave' value='1' type='xmlSaveOption' info='format save output'/>
     <enum name='XML_SAVE_NOT_UTF8' file='xmlerror' value='1400' type='xmlParserErrors'/>
+    <enum name='XML_SAVE_NO_DECL' file='xmlsave' value='2' type='xmlSaveOption' info=' drop the xml declaration'/>
     <enum name='XML_SAVE_NO_DOCTYPE' file='xmlerror' value='1402' type='xmlParserErrors' info='1402'/>
     <enum name='XML_SAVE_UNKNOWN_ENCODING' file='xmlerror' value='1403' type='xmlParserErrors' info='1403'/>
     <enum name='XML_SCHEMAP_ATTRFORMDEFAULT_VALUE' file='xmlerror' value='1701' type='xmlParserErrors' info='1701'/>
@@ -5135,6 +5312,7 @@
     <enum name='XML_SCHEMAP_SRC_IMPORT_3_2' file='xmlerror' value='1796' type='xmlParserErrors' info='1796'/>
     <enum name='XML_SCHEMAP_SRC_INCLUDE' file='xmlerror' value='3050' type='xmlParserErrors' info='3050'/>
     <enum name='XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE' file='xmlerror' value='3006' type='xmlParserErrors' info='3006'/>
+    <enum name='XML_SCHEMAP_SRC_REDEFINE' file='xmlerror' value='3081' type='xmlParserErrors' info='3081'/>
     <enum name='XML_SCHEMAP_SRC_RESOLVE' file='xmlerror' value='3004' type='xmlParserErrors' info='3004'/>
     <enum name='XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE' file='xmlerror' value='3005' type='xmlParserErrors' info='3005'/>
     <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_1' file='xmlerror' value='3000' type='xmlParserErrors'/>
@@ -5251,6 +5429,12 @@
     <enum name='XML_SCHEMAS_ULONG' file='schemasInternals' value='38' type='xmlSchemaValType'/>
     <enum name='XML_SCHEMAS_UNKNOWN' file='schemasInternals' value='0' type='xmlSchemaValType'/>
     <enum name='XML_SCHEMAS_USHORT' file='schemasInternals' value='40' type='xmlSchemaValType'/>
+    <enum name='XML_SCHEMATRON_OUT_BUFFER' file='schematron' value='512' type='xmlSchematronValidOptions' info='output to a buffer'/>
+    <enum name='XML_SCHEMATRON_OUT_FILE' file='schematron' value='256' type='xmlSchematronValidOptions' info='output to a file descriptor'/>
+    <enum name='XML_SCHEMATRON_OUT_IO' file='schematron' value='1024' type='xmlSchematronValidOptions' info=' output to I/O mechanism'/>
+    <enum name='XML_SCHEMATRON_OUT_QUIET' file='schematron' value='1' type='xmlSchematronValidOptions' info='quiet no report'/>
+    <enum name='XML_SCHEMATRON_OUT_TEXT' file='schematron' value='2' type='xmlSchematronValidOptions' info='build a textual report'/>
+    <enum name='XML_SCHEMATRON_OUT_XML' file='schematron' value='4' type='xmlSchematronValidOptions' info='output SVRL'/>
     <enum name='XML_SCHEMAV_ATTRINVALID' file='xmlerror' value='1821' type='xmlParserErrors' info='1821'/>
     <enum name='XML_SCHEMAV_ATTRUNKNOWN' file='xmlerror' value='1820' type='xmlParserErrors' info='1820'/>
     <enum name='XML_SCHEMAV_CONSTRUCT' file='xmlerror' value='1817' type='xmlParserErrors' info='1817'/>
@@ -5757,6 +5941,12 @@
     <typedef name='xmlErrorDomain' file='xmlerror' type='enum'/>
     <typedef name='xmlErrorLevel' file='xmlerror' type='enum'/>
     <typedef name='xmlErrorPtr' file='xmlerror' type='xmlError *'/>
+    <struct name='xmlExpCtxt' file='xmlregexp' type='struct _xmlExpCtxt'/>
+    <typedef name='xmlExpCtxtPtr' file='xmlregexp' type='xmlExpCtxt *'/>
+    <struct name='xmlExpNode' file='xmlregexp' type='struct _xmlExpNode'/>
+    <typedef name='xmlExpNodePtr' file='xmlregexp' type='xmlExpNode *'/>
+    <typedef name='xmlExpNodeType' file='xmlregexp' type='enum'/>
+    <typedef name='xmlFeature' file='parser' type='enum'/>
     <struct name='xmlGlobalState' file='globals' type='struct _xmlGlobalState'>
       <field name='xmlParserVersion' type='const char *' info=''/>
       <field name='xmlDefaultSAXLocator' type='xmlSAXLocator' info=''/>
@@ -6317,6 +6507,13 @@
     </struct>
     <typedef name='xmlSchemaWildcardNsPtr' file='schemasInternals' type='xmlSchemaWildcardNs *'/>
     <typedef name='xmlSchemaWildcardPtr' file='schemasInternals' type='xmlSchemaWildcard *'/>
+    <struct name='xmlSchematron' file='schematron' type='struct _xmlSchematron'/>
+    <struct name='xmlSchematronParserCtxt' file='schematron' type='struct _xmlSchematronParserCtxt'/>
+    <typedef name='xmlSchematronParserCtxtPtr' file='schematron' type='xmlSchematronParserCtxt *'/>
+    <typedef name='xmlSchematronPtr' file='schematron' type='xmlSchematron *'/>
+    <struct name='xmlSchematronValidCtxt' file='schematron' type='struct _xmlSchematronValidCtxt'/>
+    <typedef name='xmlSchematronValidCtxtPtr' file='schematron' type='xmlSchematronValidCtxt *'/>
+    <typedef name='xmlSchematronValidOptions' file='schematron' type='enum'/>
     <struct name='xmlShellCtxt' file='debugXML' type='struct _xmlShellCtxt'>
       <field name='filename' type='char *' info=''/>
       <field name='doc' type='xmlDocPtr' info=''/>
@@ -6418,6 +6615,7 @@
       <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='flags' type='int' info=' flags to control compilation'/>
     </struct>
     <typedef name='xmlXPathContextPtr' file='xpath' type='xmlXPathContext *'/>
     <typedef name='xmlXPathError' file='xpath' type='enum'/>
@@ -6464,6 +6662,8 @@
     </struct>
     <typedef name='xmlXPathVariablePtr' file='xpath' type='xmlXPathVariable *'/>
     <variable name='docbDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
+    <variable name='emptyExp' file='xmlregexp' type='xmlExpNodePtr'/>
+    <variable name='forbiddenExp' file='xmlregexp' type='xmlExpNodePtr'/>
     <variable name='htmlDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
     <variable name='oldXMLWDcompatibility' file='globals' type='int'/>
     <variable name='xmlBufferAllocScheme' file='globals' type='xmlBufferAllocationScheme'/>
@@ -7963,6 +8163,17 @@
       <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
       <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
     </function>
+    <function name='xmlAutomataNewNegTrans' file='xmlautomata' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
+      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by any value except (@token, at token2) Note that if @token2 is not NULL, then (X, NULL) won&apos;t match to follow # the semantic of XSD ##other</info>
+      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
+      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
+      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
+      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
+      <arg name='token' type='const xmlChar *' info='the first input string associated to that transition'/>
+      <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
+      <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
+    </function>
     <function name='xmlAutomataNewOnceTrans' file='xmlautomata' module='xmlregexp'>
       <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_AUTOMATA_ENABLED)</cond>
       <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
@@ -9123,6 +9334,146 @@
       <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
       <arg name='extra' type='const char *' info='extra informations'/>
     </function>
+    <function name='xmlExpCtxtNbCons' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Debugging facility provides the number of allocated nodes over lifetime</info>
+      <return type='int' info='the number of nodes ever allocated or -1 in case of error'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
+    </function>
+    <function name='xmlExpCtxtNbNodes' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Debugging facility provides the number of allocated nodes at a that point</info>
+      <return type='int' info='the number of nodes in use or -1 in case of error'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
+    </function>
+    <function name='xmlExpDump' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Serialize the expression as compiled to the buffer</info>
+      <return type='void'/>
+      <arg name='buf' type='xmlBufferPtr' info='a buffer to receive the output'/>
+      <arg name='expr' type='xmlExpNodePtr' info='the compiled expression'/>
+    </function>
+    <function name='xmlExpExpDerive' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Evaluates the expression resulting from @exp consuming a sub expression @sub Based on algebraic derivation and sometimes direct Brzozowski derivation it usually tatkes less than linear time and can handle expressions generating infinite languages.</info>
+      <return type='xmlExpNodePtr' info='the resulting expression or NULL in case of internal error, the result must be freed'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
+      <arg name='exp' type='xmlExpNodePtr' info='the englobing expression'/>
+      <arg name='sub' type='xmlExpNodePtr' info='the subexpression'/>
+    </function>
+    <function name='xmlExpFree' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Dereference the expression</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+    </function>
+    <function name='xmlExpFreeCtxt' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Free an expression context</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
+    </function>
+    <function name='xmlExpGetLanguage' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Find all the strings used in @exp and store them in @list</info>
+      <return type='int' info='the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+      <arg name='list' type='const xmlChar **' info='where to store the tokens'/>
+      <arg name='len' type='int' info='the allocated lenght of @list'/>
+    </function>
+    <function name='xmlExpGetStart' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Find all the strings that appears at the start of the languages accepted by @exp and store them in @list. E.g. for (a, b) | c it will return the list [a, c]</info>
+      <return type='int' info='the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+      <arg name='list' type='const xmlChar **' info='where to store the tokens'/>
+      <arg name='len' type='int' info='the allocated lenght of @list'/>
+    </function>
+    <function name='xmlExpIsNillable' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Finds if the expression is nillable, i.e. if it accepts the empty sequqnce</info>
+      <return type='int' info='1 if nillable, 0 if not and -1 in case of error'/>
+      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+    </function>
+    <function name='xmlExpMaxToken' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Indicate the maximum number of input a expression can accept</info>
+      <return type='int' info='the maximum length or -1 in case of error'/>
+      <arg name='expr' type='xmlExpNodePtr' info='a compiled expression'/>
+    </function>
+    <function name='xmlExpNewAtom' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Get the atom associated to this name from that context</info>
+      <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+      <arg name='name' type='const xmlChar *' info='the atom name'/>
+      <arg name='len' type='int' info='the atom name lenght in byte (or -1);'/>
+    </function>
+    <function name='xmlExpNewCtxt' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Creates a new context for manipulating expressions</info>
+      <return type='xmlExpCtxtPtr' info='the context or NULL in case of error'/>
+      <arg name='maxNodes' type='int' info='the maximum number of nodes'/>
+      <arg name='dict' type='xmlDictPtr' info='optional dictionnary to use internally'/>
+    </function>
+    <function name='xmlExpNewOr' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</info>
+      <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+      <arg name='left' type='xmlExpNodePtr' info='left expression'/>
+      <arg name='right' type='xmlExpNodePtr' info='right expression'/>
+    </function>
+    <function name='xmlExpNewRange' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</info>
+      <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+      <arg name='subset' type='xmlExpNodePtr' info='the expression to be repeated'/>
+      <arg name='min' type='int' info='the lower bound for the repetition'/>
+      <arg name='max' type='int' info='the upper bound for the repetition, -1 means infinite'/>
+    </function>
+    <function name='xmlExpNewSeq' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</info>
+      <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+      <arg name='left' type='xmlExpNodePtr' info='left expression'/>
+      <arg name='right' type='xmlExpNodePtr' info='right expression'/>
+    </function>
+    <function name='xmlExpParse' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences  { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values</info>
+      <return type='xmlExpNodePtr' info='a new expression or NULL in case of failure'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
+      <arg name='expr' type='const char *' info='the 0 terminated string'/>
+    </function>
+    <function name='xmlExpRef' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Increase the reference count of the expression</info>
+      <return type='void'/>
+      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+    </function>
+    <function name='xmlExpStringDerive' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Do one step of Brzozowski derivation of the expression @exp with respect to the input string</info>
+      <return type='xmlExpNodePtr' info='the resulting expression or NULL in case of internal error'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
+      <arg name='str' type='const xmlChar *' info='the string'/>
+      <arg name='len' type='int' info='the string len in bytes if available'/>
+    </function>
+    <function name='xmlExpSubsume' file='xmlregexp' module='xmlregexp'>
+      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+      <info>Check whether @exp accepts all the languages accexpted by @sub the input being a subexpression.</info>
+      <return type='int' info='1 if true 0 if false and -1 in case of failure.'/>
+      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
+      <arg name='exp' type='xmlExpNodePtr' info='the englobing expression'/>
+      <arg name='sub' type='xmlExpNodePtr' info='the subexpression'/>
+    </function>
     <functype name='xmlExternalEntityLoader' file='parser' module='parser'>
       <info>External entity loaders types.</info>
       <return type='xmlParserInputPtr' info='the entity input parser.'/>
@@ -9539,6 +9890,11 @@
       <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
       <arg name='entity' type='xmlEntityPtr' info='an XML entity pointer.'/>
     </function>
+    <function name='xmlHasFeature' file='parser' module='parser'>
+      <info>Examines if the library has been compiled with a given feature.</info>
+      <return type='int' info='a non-zero value if the feature exist, otherwise zero. Returns zero (0) if the feature does not exist or an unknown unknown feature is requested, non-zero otherwise.'/>
+      <arg name='feature' type='xmlFeature' info='the feature to be examined'/>
+    </function>
     <function name='xmlHasNsProp' file='tree' module='tree'>
       <info>Search for an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. Note that a namespace of NULL indicates to use the default namespace.</info>
       <return type='xmlAttrPtr' info='the attribute or the attribute declaration or NULL if neither was found.'/>
@@ -10171,7 +10527,7 @@
       <arg name='pathss' type='const char *' info='a list of directories separated by a colon or a space.'/>
     </function>
     <function name='xmlLoadExternalEntity' file='parser' module='xmlIO'>
-      <info>Load an external entity, note that the use of this function for unparsed entities may generate problems TODO: a more generic External entity API must be designed</info>
+      <info>Load an external entity, note that the use of this function for unparsed entities may generate problems</info>
       <return type='xmlParserInputPtr' info='the xmlParserInputPtr or NULL'/>
       <arg name='URL' type='const char *' info='the URL for the entity to load'/>
       <arg name='ID' type='const char *' info='the Public ID for the entity to load'/>
@@ -11530,6 +11886,12 @@
       <return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
       <arg name='str' type='const char *' info='the URI string to analyze'/>
     </function>
+    <function name='xmlParseURIRaw' file='uri' module='uri'>
+      <info>Parse an URI but allows to keep intact the original fragments.  URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
+      <return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
+      <arg name='str' type='const char *' info='the URI string to analyze'/>
+      <arg name='raw' type='int' info='if 1 unescaping of URI pieces are disabled'/>
+    </function>
     <function name='xmlParseURIReference' file='uri' module='uri'>
       <info>Parse an URI reference string and fills in the appropriate fields of the @uri structure  URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
       <return type='int' info='0 or the error code'/>
@@ -11740,6 +12102,12 @@
       <return type='int' info='-2 if no limit (using //), otherwise the depth, and -1 in case of error'/>
       <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
     </function>
+    <function name='xmlPatternMinDepth' file='pattern' module='pattern'>
+      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
+      <info>Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.</info>
+      <return type='int' info='-1 in case of error otherwise the depth,'/>
+      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
+    </function>
     <function name='xmlPatternStreamable' file='pattern' module='pattern'>
       <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
       <info>Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.</info>
@@ -11752,7 +12120,7 @@
       <return type='xmlPatternPtr' info='the compiled form of the pattern or NULL in case of error'/>
       <arg name='pattern' type='const xmlChar *' info='the pattern to compile'/>
       <arg name='dict' type='xmlDict *' info='an optional dictionary for interned strings'/>
-      <arg name='flags' type='xmlPatternFlags' info='compilation flags, undefined yet'/>
+      <arg name='flags' type='int' info='compilation flags, see xmlPatternFlags'/>
       <arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
     </function>
     <function name='xmlPedanticParserDefault' file='parser' module='parserInternals'>
@@ -12233,6 +12601,14 @@
       <arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning function'/>
       <arg name='ctx' type='void *' info='the functions context'/>
     </function>
+    <function name='xmlRelaxNGSetValidStructuredErrors' file='relaxng' module='relaxng'>
+      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+      <info>Set the structured error callback</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
+      <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
+      <arg name='ctx' type='void *' info='the functions context'/>
+    </function>
     <function name='xmlRelaxNGValidateDoc' file='relaxng' module='relaxng'>
       <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
       <info>Validate a document tree in memory.</info>
@@ -12374,7 +12750,7 @@
       <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
     </function>
     <function name='xmlSAX2EndElement' file='SAX2' module='SAX2'>
-      <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
+      <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)</cond>
       <info>called when the end of an element has been detected.</info>
       <return type='void'/>
       <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -12526,7 +12902,7 @@
       <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
     </function>
     <function name='xmlSAX2StartElement' file='SAX2' module='SAX2'>
-      <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
+      <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)</cond>
       <info>called when an opening tag has been processed.</info>
       <return type='void'/>
       <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
@@ -13038,6 +13414,14 @@
       <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
       <arg name='options' type='int' info='a combination of xmlSchemaValidOption'/>
     </function>
+    <function name='xmlSchemaSetValidStructuredErrors' file='xmlschemas' module='xmlschemas'>
+      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
+      <info>Set the structured error callback</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
+      <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
+      <arg name='ctx' type='void *' info='the functions context'/>
+    </function>
     <function name='xmlSchemaValPredefTypeNode' file='xmlschemastypes' module='xmlschemastypes'>
       <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
       <info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</info>
@@ -13199,6 +13583,79 @@
       <return type='xmlChar *' info='the new string or NULL if no change was required.'/>
       <arg name='value' type='const xmlChar *' info='a value'/>
     </function>
+    <function name='xmlSchematronFree' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>Deallocate a Schematron structure.</info>
+      <return type='void'/>
+      <arg name='schema' type='xmlSchematronPtr' info='a schema structure'/>
+    </function>
+    <function name='xmlSchematronFreeParserCtxt' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>Free the resources associated to the schema parser context</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlSchematronParserCtxtPtr' info='the schema parser context'/>
+    </function>
+    <function name='xmlSchematronFreeValidCtxt' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>Free the resources associated to the schema validation context</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlSchematronValidCtxtPtr' info='the schema validation context'/>
+    </function>
+    <function name='xmlSchematronNewDocParserCtxt' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>Create an XML Schematrons parse context for that document. NB. The document may be modified during the parsing process.</info>
+      <return type='xmlSchematronParserCtxtPtr' info='the parser context or NULL in case of error'/>
+      <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
+    </function>
+    <function name='xmlSchematronNewMemParserCtxt' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>Create an XML Schematrons parse context for that memory buffer expected to contain an XML Schematrons file.</info>
+      <return type='xmlSchematronParserCtxtPtr' info='the parser context or NULL in case of error'/>
+      <arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
+      <arg name='size' type='int' info='the size of the array'/>
+    </function>
+    <function name='xmlSchematronNewParserCtxt' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>Create an XML Schematrons parse context for that file/resource expected to contain an XML Schematrons file.</info>
+      <return type='xmlSchematronParserCtxtPtr' info='the parser context or NULL in case of error'/>
+      <arg name='URL' type='const char *' info='the location of the schema'/>
+    </function>
+    <function name='xmlSchematronNewValidCtxt' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>Create an XML Schematrons validation context based on the given schema.</info>
+      <return type='xmlSchematronValidCtxtPtr' info='the validation context or NULL in case of error'/>
+      <arg name='schema' type='xmlSchematronPtr' info='a precompiled XML Schematrons'/>
+      <arg name='options' type='int' info='a set of xmlSchematronValidOptions'/>
+    </function>
+    <function name='xmlSchematronParse' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.</info>
+      <return type='xmlSchematronPtr' info='the internal XML Schematron structure built from the resource or NULL in case of error'/>
+      <arg name='ctxt' type='xmlSchematronParserCtxtPtr' info='a schema validation context'/>
+    </function>
+    <function name='xmlSchematronValidateDoc' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info>Validate a tree instance against the schematron</info>
+      <return type='int' info='0 in case of success, -1 in case of internal error and an error count otherwise.'/>
+      <arg name='ctxt' type='xmlSchematronValidCtxtPtr' info='the schema validation context'/>
+      <arg name='instance' type='xmlDocPtr' info='the document instace tree'/>
+    </function>
+    <functype name='xmlSchematronValidityErrorFunc' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info></info>
+      <return type='void'/>
+      <arg name='ctx' type='void *' info=''/>
+      <arg name='msg' type='const char *' info=''/>
+      <arg name='...' type='...' info=''/>
+    </functype>
+    <functype name='xmlSchematronValidityWarningFunc' file='schematron' module='schematron'>
+      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
+      <info></info>
+      <return type='void'/>
+      <arg name='ctx' type='void *' info=''/>
+      <arg name='msg' type='const char *' info=''/>
+      <arg name='...' type='...' info=''/>
+    </functype>
     <function name='xmlSearchNs' file='tree' module='tree'>
       <info>Search a Ns registered under a given name space for a document. recurse on the parents until it finds the defined namespace or return NULL otherwise. @nameSpace can be NULL, this is a search for the default namespace. We don&apos;t allow to cross entities boundaries. If you don&apos;t declare the namespace within those you will be in troubles !!! A warning is generated to cover this case.</info>
       <return type='xmlNsPtr' info='the namespace pointer or NULL.'/>
@@ -13464,7 +13921,7 @@
     </function>
     <function name='xmlSplitQName3' file='tree' module='tree'>
       <info>parse an XML qualified name string,i</info>
-      <return type='const xmlChar *' info='NULL if it is not a Qualified Name, otherwise, update len with the lenght in byte of the prefix and return a pointer'/>
+      <return type='const xmlChar *' info='NULL if it is not a Qualified Name, otherwise, update len with the lenght in byte of the prefix and return a pointer to the start of the name without the prefix'/>
       <arg name='name' type='const xmlChar *' info='the full QName'/>
       <arg name='len' type='int *' info='an int *'/>
     </function>

Modified: packages/libxml2/trunk/doc/libxml2.xsa
===================================================================
--- packages/libxml2/trunk/doc/libxml2.xsa	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/libxml2.xsa	2005-09-05 17:42:20 UTC (rev 466)
@@ -8,27 +8,47 @@
   </vendor>
   <product id="libxml2">
     <name>libxml2</name>
-    <version>2.6.19</version>
-    <last-release> Apr 02 2005</last-release>
+    <version>2.6.20</version>
+    <last-release> Jul 10 2005</last-release>
     <info-url>http://xmlsoft.org/</info-url>
-    <changes>   -  build fixes: drop .la from RPMs, --with-minimum build fix (William
-       Brack), use XML_SOCKLEN_T instead of SOCKLEN_T because it breaks with
-       AIX 5.3 compiler, fixed elfgcchack.h generation and PLT reduction
-       code on Linux/ELF/gcc4
-   -  bug fixes: schemas type decimal fixups (William Brack), xmmlint return
-       code (Gerry Murphy), small schemas fixes (Matthew Burgess and
-       GUY Fabrice), workaround "DAV:" namespace brokeness in c14n (Aleksey
-       Sanin), segfault in Schemas (Kasimier Buchcik), Schemas attribute
-       validation (Kasimier), Prop related functions and xmlNewNodeEatName
-       (Rob Richards), HTML serialization of name attribute on a elements,
-       Python error handlers leaks and improvement (Brent Hendricks), 
-       uninitialized variable in encoding code, Relax-NG validation bug,
-       potential crash if gnorableWhitespace is NULL, xmlSAXParseDoc and
-       xmlParseDoc signatures, switched back to assuming UTF-8 in case 
-       no encoding is given at serialization time
-   -  improvements: lot of work on Schemas by Kasimier Buchcik on facets
-       checking and also mixed handling.
-   - 
+    <changes>   -  build fixes: Windows build (Rob Richards), Mingw compilation (Igor
+       Zlatkovic), Windows Makefile (Igor), gcc warnings (Kasimier and
+       andriy at google.com), use gcc weak references to pthread to avoid the
+       pthread dependancy on Linux, compilation problem (Steve Nairn),
+       compiling of subset (Morten Welinder), IPv6/ss_family compilation
+       (William Brack), compilation when disabling parts of the library,
+       standalone test distribution.
+       
+   -  bug fixes: bug in lang(), memory cleanup on errors (William Brack),
+       HTTP query strings (Aron Stansvik), memory leak in DTD (William),
+       integer overflow in XPath (William), nanoftp buffer size, pattern
+       "." apth fixup (Kasimier), leak in tree reported by Malcolm Rowe,
+       replaceNode patch (Brent Hendricks), CDATA with NULL content
+       (Mark Vakoc), xml:base fixup on XInclude (William), pattern
+       fixes (William), attribute bug in exclusive c14n (Aleksey Sanin),
+       xml:space and xml:lang with SAX2 (Rob Richards), namespace 
+       trouble in complex parsing (Malcolm Rowe), XSD type QNames fixes
+       (Kasimier), XPath streaming fixups (William), RelaxNG bug (Rob Richards),
+       Schemas for Schemas fixes (Kasimier), removal of ID (Rob Richards),
+       a small RelaxNG leak, HTML parsing in push mode bug (James Bursa),
+       failure to detect UTF-8 parsing bugs in CDATA sections, areBlanks()
+       heuristic failure, duplicate attributes in DTD bug (William).
+       
+   -  improvements: lot of work on Schemas by Kasimier Buchcik both on 
+       conformance and streaming, Schemas validation messages (Kasimier
+       Buchcik, Matthew Burgess), namespace removal at the python level
+       (Brent Hendricks), Update to new Schemas regression tests from
+       W3C/Nist (Kasimier), xmlSchemaValidateFile() (Kasimier), implementation
+       of xmlTextReaderReadInnerXml and xmlTextReaderReadOuterXml (James Wert),
+       standalone test framework and programs, new DOM import APIs
+       xmlDOMWrapReconcileNamespaces() xmlDOMWrapAdoptNode() and
+       xmlDOMWrapRemoveNode(), extension of xmllint capabilities for
+       SAX and Schemas regression tests, xmlStopParser() available in
+       pull mode too, ienhancement to xmllint --shell namespaces support,
+       Windows port of the standalone testing tools (Kasimier and William),
+       xmlSchemaValidateStream() xmlSchemaSAXPlug() and xmlSchemaSAXUnplug()
+       SAX Schemas APIs, Schemas xmlReader support.
+       
 
 </changes>
   </product>

Modified: packages/libxml2/trunk/doc/news.html
===================================================================
--- packages/libxml2/trunk/doc/news.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/news.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -12,7 +12,43 @@
   <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.20: Jul 10 2005</h3><ul><li> build fixes: Windows build (Rob Richards), Mingw compilation (Igor
+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.21: Sep 4 2005</h3><ul><li>build fixes: Cygwin portability fixes (Gerrit P. Haase), calling
+      convention problems on Windows (Marcus Boerger), cleanups based on
+      Linus' sparse tool, update of win32/configure.js (Rob Richards),
+      remove warnings on Windows(Marcus Boerger), compilation without SAX1,
+      detection of the Python binary, use $GCC inestad of $CC = 'gcc' (Andrew
+      W. Nosenko), compilation/link with threads and old gcc, compile
+      problem by C370 on Z/OS, </li>
+  <li>bug fixes: http_proxy environments (Peter Breitenlohner), HTML UTF-8
+      bug (Jiri Netolicky), XPath NaN compare bug (William Brack), 
+      htmlParseScript potential bug, Schemas regexp handling of spaces,
+      Base64 Schemas comparisons NIST passes, automata build error xsd:all,
+      xmlGetNodePath for namespaced attributes (Alexander Pohoyda),
+      xmlSchemas foreign namespaces handling, XML Schemas facet comparison
+      (Kupriyanov Anatolij), xmlSchemaPSimpleTypeErr error report (Kasimier
+      Buchcik), xml: namespace ahndling in Schemas (Kasimier), empty model
+      group in Schemas (Kasimier), wilcard in Schemas (Kasimier), URI 
+      composition (William), xs:anyType in Schemas (Kasimier), Python resolver
+      emmitting error messages directly, Python xmlAttr.parent (Jakub Piotr
+      Clapa), trying to fix the file path/URI conversion, 
+      xmlTextReaderGetAttribute fix (Rob Richards), xmlSchemaFreeAnnot memleak
+      (Kasimier), HTML UTF-8 serialization, streaming XPath, Schemas determinism
+      detection problem, XInclude bug, Schemas context type (Dean Hill),
+      validation fix (Derek Poon), xmlTextReaderGetAttribute[Ns] namespaces
+      (Rob Richards), Schemas type fix (Kuba Nowakowski), UTF-8 parser bug,
+      error in encoding handling, xmlGetLineNo fixes, bug on entities handling,
+      entity name extraction in error handling with XInclude, text nodes
+      in HTML body tags (Gary Coady), xml:id and IDness at the treee level
+      fixes, XPath streaming patterns bugs.</li>
+  <li>improvements: structured interfaces for schemas and RNG error reports
+      (Marcus Boerger), optimization of the char data inner loop parsing
+      (thanks to Behdad Esfahbod for the idea), schematron validation
+      though not finished yet, xmlSaveOption to omit XML declaration,
+      keyref match error reports (Kasimier), formal expression handling
+      code not plugged yet, more lax mode for the HTML parser, 
+      parser XML_PARSE_COMPACT option for text nodes allocation.</li>
+  <li>documentation: xmllint man page had --nonet duplicated</li>
+</ul><h3>2.6.20: Jul 10 2005</h3><ul><li> build fixes: Windows build (Rob Richards), Mingw compilation (Igor
        Zlatkovic), Windows Makefile (Igor), gcc warnings (Kasimier and
        andriy at google.com), use gcc weak references to pthread to avoid the
        pthread dependancy on Linux, compilation problem (Steve Nairn),

Modified: packages/libxml2/trunk/doc/xml.html
===================================================================
--- packages/libxml2/trunk/doc/xml.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/xml.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -670,6 +670,7 @@
     binaries</a>.</li>
   <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
@@ -715,6 +716,45 @@
 
 <p>There is the list of public releases:</p>
 
+<h3>2.6.21: Sep 4 2005</h3>
+<ul>
+  <li>build fixes: Cygwin portability fixes (Gerrit P. Haase), calling
+      convention problems on Windows (Marcus Boerger), cleanups based on
+      Linus' sparse tool, update of win32/configure.js (Rob Richards),
+      remove warnings on Windows(Marcus Boerger), compilation without SAX1,
+      detection of the Python binary, use $GCC inestad of $CC = 'gcc' (Andrew
+      W. Nosenko), compilation/link with threads and old gcc, compile
+      problem by C370 on Z/OS, </li>
+  <li>bug fixes: http_proxy environments (Peter Breitenlohner), HTML UTF-8
+      bug (Jiri Netolicky), XPath NaN compare bug (William Brack), 
+      htmlParseScript potential bug, Schemas regexp handling of spaces,
+      Base64 Schemas comparisons NIST passes, automata build error xsd:all,
+      xmlGetNodePath for namespaced attributes (Alexander Pohoyda),
+      xmlSchemas foreign namespaces handling, XML Schemas facet comparison
+      (Kupriyanov Anatolij), xmlSchemaPSimpleTypeErr error report (Kasimier
+      Buchcik), xml: namespace ahndling in Schemas (Kasimier), empty model
+      group in Schemas (Kasimier), wilcard in Schemas (Kasimier), URI 
+      composition (William), xs:anyType in Schemas (Kasimier), Python resolver
+      emmitting error messages directly, Python xmlAttr.parent (Jakub Piotr
+      Clapa), trying to fix the file path/URI conversion, 
+      xmlTextReaderGetAttribute fix (Rob Richards), xmlSchemaFreeAnnot memleak
+      (Kasimier), HTML UTF-8 serialization, streaming XPath, Schemas determinism
+      detection problem, XInclude bug, Schemas context type (Dean Hill),
+      validation fix (Derek Poon), xmlTextReaderGetAttribute[Ns] namespaces
+      (Rob Richards), Schemas type fix (Kuba Nowakowski), UTF-8 parser bug,
+      error in encoding handling, xmlGetLineNo fixes, bug on entities handling,
+      entity name extraction in error handling with XInclude, text nodes
+      in HTML body tags (Gary Coady), xml:id and IDness at the treee level
+      fixes, XPath streaming patterns bugs.</li>
+  <li>improvements: structured interfaces for schemas and RNG error reports
+      (Marcus Boerger), optimization of the char data inner loop parsing
+      (thanks to Behdad Esfahbod for the idea), schematron validation
+      though not finished yet, xmlSaveOption to omit XML declaration,
+      keyref match error reports (Kasimier), formal expression handling
+      code not plugged yet, more lax mode for the HTML parser, 
+      parser XML_PARSE_COMPACT option for text nodes allocation.</li>
+  <li>documentation: xmllint man page had --nonet duplicated</li>
+</ul>
 <h3>2.6.20: Jul 10 2005</h3>
 <ul>
   <li> build fixes: Windows build (Rob Richards), Mingw compilation (Igor
@@ -2342,11 +2382,8 @@
 <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 <a
-href="http://cvs.gnome.org/lxr/source/libxslt/FEATURES">features</a>
-supported and the progresses on the <a
-href="http://cvs.gnome.org/lxr/source/libxslt/ChangeLog"
-name="Changelog">Changelog</a>.</p>
+<p>You can check the progresses on the libxslt <a
+href="http://xmlsoft.org/XSLT/ChangeLog.html">Changelog</a>.</p>
 
 <h2><a name="Python">Python and bindings</a></h2>
 

Modified: packages/libxml2/trunk/doc/xmllint.1
===================================================================
--- packages/libxml2/trunk/doc/xmllint.1	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/xmllint.1	2005-09-05 17:42:20 UTC (rev 466)
@@ -83,10 +83,6 @@
 Do not use the Internet to fetch DTD's or entities\&.
 
 .TP
-\fB\-\-nonet\fR
-Do not use the Internet to fetch DTD's or entities\&.
-
-.TP
 \fB\-\-path\fR \fIpaths\fR
 Use the list (separated by space or column) of filesystem path specified by \fIpaths\fR to load DTDs or entities \&.
 

Modified: packages/libxml2/trunk/doc/xmllint.xml
===================================================================
--- packages/libxml2/trunk/doc/xmllint.xml	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/doc/xmllint.xml	2005-09-05 17:42:20 UTC (rev 466)
@@ -226,15 +226,6 @@
       </varlistentry>
 
       <varlistentry>
-	<term><option>--nonet</option></term>
-	<listitem>
-	  <simpara>
-	    Do not use the Internet to fetch DTD's or entities.
-	  </simpara>
-	</listitem>
-      </varlistentry>
-
-      <varlistentry>
 	<term> <option>--path</option> <replaceable>paths</replaceable></term>
 	<listitem>
 	  <simpara>

Modified: packages/libxml2/trunk/elfgcchack.h
===================================================================
--- packages/libxml2/trunk/elfgcchack.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/elfgcchack.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -36,6 +36,7 @@
 #include "libxml/SAX2.h"
 #include "libxml/SAX.h"
 #include "libxml/schemasInternals.h"
+#include "libxml/schematron.h"
 #include "libxml/threads.h"
 #include "libxml/tree.h"
 #include "libxml/uri.h"
@@ -1224,6 +1225,18 @@
 
 #if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
 #ifdef bottom_xmlregexp
+#undef xmlAutomataNewNegTrans
+extern __typeof (xmlAutomataNewNegTrans) xmlAutomataNewNegTrans __attribute((alias("xmlAutomataNewNegTrans__internal_alias")));
+#else
+#ifndef xmlAutomataNewNegTrans
+extern __typeof (xmlAutomataNewNegTrans) xmlAutomataNewNegTrans__internal_alias __attribute((visibility("hidden")));
+#define xmlAutomataNewNegTrans xmlAutomataNewNegTrans__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
+#ifdef bottom_xmlregexp
 #undef xmlAutomataNewOnceTrans
 extern __typeof (xmlAutomataNewOnceTrans) xmlAutomataNewOnceTrans __attribute((alias("xmlAutomataNewOnceTrans__internal_alias")));
 #else
@@ -3094,6 +3107,234 @@
 #endif
 #endif
 
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpCtxtNbCons
+extern __typeof (xmlExpCtxtNbCons) xmlExpCtxtNbCons __attribute((alias("xmlExpCtxtNbCons__internal_alias")));
+#else
+#ifndef xmlExpCtxtNbCons
+extern __typeof (xmlExpCtxtNbCons) xmlExpCtxtNbCons__internal_alias __attribute((visibility("hidden")));
+#define xmlExpCtxtNbCons xmlExpCtxtNbCons__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpCtxtNbNodes
+extern __typeof (xmlExpCtxtNbNodes) xmlExpCtxtNbNodes __attribute((alias("xmlExpCtxtNbNodes__internal_alias")));
+#else
+#ifndef xmlExpCtxtNbNodes
+extern __typeof (xmlExpCtxtNbNodes) xmlExpCtxtNbNodes__internal_alias __attribute((visibility("hidden")));
+#define xmlExpCtxtNbNodes xmlExpCtxtNbNodes__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpDump
+extern __typeof (xmlExpDump) xmlExpDump __attribute((alias("xmlExpDump__internal_alias")));
+#else
+#ifndef xmlExpDump
+extern __typeof (xmlExpDump) xmlExpDump__internal_alias __attribute((visibility("hidden")));
+#define xmlExpDump xmlExpDump__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpExpDerive
+extern __typeof (xmlExpExpDerive) xmlExpExpDerive __attribute((alias("xmlExpExpDerive__internal_alias")));
+#else
+#ifndef xmlExpExpDerive
+extern __typeof (xmlExpExpDerive) xmlExpExpDerive__internal_alias __attribute((visibility("hidden")));
+#define xmlExpExpDerive xmlExpExpDerive__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpFree
+extern __typeof (xmlExpFree) xmlExpFree __attribute((alias("xmlExpFree__internal_alias")));
+#else
+#ifndef xmlExpFree
+extern __typeof (xmlExpFree) xmlExpFree__internal_alias __attribute((visibility("hidden")));
+#define xmlExpFree xmlExpFree__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpFreeCtxt
+extern __typeof (xmlExpFreeCtxt) xmlExpFreeCtxt __attribute((alias("xmlExpFreeCtxt__internal_alias")));
+#else
+#ifndef xmlExpFreeCtxt
+extern __typeof (xmlExpFreeCtxt) xmlExpFreeCtxt__internal_alias __attribute((visibility("hidden")));
+#define xmlExpFreeCtxt xmlExpFreeCtxt__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpGetLanguage
+extern __typeof (xmlExpGetLanguage) xmlExpGetLanguage __attribute((alias("xmlExpGetLanguage__internal_alias")));
+#else
+#ifndef xmlExpGetLanguage
+extern __typeof (xmlExpGetLanguage) xmlExpGetLanguage__internal_alias __attribute((visibility("hidden")));
+#define xmlExpGetLanguage xmlExpGetLanguage__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpGetStart
+extern __typeof (xmlExpGetStart) xmlExpGetStart __attribute((alias("xmlExpGetStart__internal_alias")));
+#else
+#ifndef xmlExpGetStart
+extern __typeof (xmlExpGetStart) xmlExpGetStart__internal_alias __attribute((visibility("hidden")));
+#define xmlExpGetStart xmlExpGetStart__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpIsNillable
+extern __typeof (xmlExpIsNillable) xmlExpIsNillable __attribute((alias("xmlExpIsNillable__internal_alias")));
+#else
+#ifndef xmlExpIsNillable
+extern __typeof (xmlExpIsNillable) xmlExpIsNillable__internal_alias __attribute((visibility("hidden")));
+#define xmlExpIsNillable xmlExpIsNillable__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpMaxToken
+extern __typeof (xmlExpMaxToken) xmlExpMaxToken __attribute((alias("xmlExpMaxToken__internal_alias")));
+#else
+#ifndef xmlExpMaxToken
+extern __typeof (xmlExpMaxToken) xmlExpMaxToken__internal_alias __attribute((visibility("hidden")));
+#define xmlExpMaxToken xmlExpMaxToken__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpNewAtom
+extern __typeof (xmlExpNewAtom) xmlExpNewAtom __attribute((alias("xmlExpNewAtom__internal_alias")));
+#else
+#ifndef xmlExpNewAtom
+extern __typeof (xmlExpNewAtom) xmlExpNewAtom__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewAtom xmlExpNewAtom__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpNewCtxt
+extern __typeof (xmlExpNewCtxt) xmlExpNewCtxt __attribute((alias("xmlExpNewCtxt__internal_alias")));
+#else
+#ifndef xmlExpNewCtxt
+extern __typeof (xmlExpNewCtxt) xmlExpNewCtxt__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewCtxt xmlExpNewCtxt__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpNewOr
+extern __typeof (xmlExpNewOr) xmlExpNewOr __attribute((alias("xmlExpNewOr__internal_alias")));
+#else
+#ifndef xmlExpNewOr
+extern __typeof (xmlExpNewOr) xmlExpNewOr__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewOr xmlExpNewOr__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpNewRange
+extern __typeof (xmlExpNewRange) xmlExpNewRange __attribute((alias("xmlExpNewRange__internal_alias")));
+#else
+#ifndef xmlExpNewRange
+extern __typeof (xmlExpNewRange) xmlExpNewRange__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewRange xmlExpNewRange__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpNewSeq
+extern __typeof (xmlExpNewSeq) xmlExpNewSeq __attribute((alias("xmlExpNewSeq__internal_alias")));
+#else
+#ifndef xmlExpNewSeq
+extern __typeof (xmlExpNewSeq) xmlExpNewSeq__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewSeq xmlExpNewSeq__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpParse
+extern __typeof (xmlExpParse) xmlExpParse __attribute((alias("xmlExpParse__internal_alias")));
+#else
+#ifndef xmlExpParse
+extern __typeof (xmlExpParse) xmlExpParse__internal_alias __attribute((visibility("hidden")));
+#define xmlExpParse xmlExpParse__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpRef
+extern __typeof (xmlExpRef) xmlExpRef __attribute((alias("xmlExpRef__internal_alias")));
+#else
+#ifndef xmlExpRef
+extern __typeof (xmlExpRef) xmlExpRef__internal_alias __attribute((visibility("hidden")));
+#define xmlExpRef xmlExpRef__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpStringDerive
+extern __typeof (xmlExpStringDerive) xmlExpStringDerive __attribute((alias("xmlExpStringDerive__internal_alias")));
+#else
+#ifndef xmlExpStringDerive
+extern __typeof (xmlExpStringDerive) xmlExpStringDerive__internal_alias __attribute((visibility("hidden")));
+#define xmlExpStringDerive xmlExpStringDerive__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpSubsume
+extern __typeof (xmlExpSubsume) xmlExpSubsume __attribute((alias("xmlExpSubsume__internal_alias")));
+#else
+#ifndef xmlExpSubsume
+extern __typeof (xmlExpSubsume) xmlExpSubsume__internal_alias __attribute((visibility("hidden")));
+#define xmlExpSubsume xmlExpSubsume__internal_alias
+#endif
+#endif
+#endif
+
 #ifdef bottom_xmlIO
 #undef xmlFileClose
 extern __typeof (xmlFileClose) xmlFileClose __attribute((alias("xmlFileClose__internal_alias")));
@@ -3830,6 +4071,16 @@
 #endif
 #endif
 
+#ifdef bottom_parser
+#undef xmlHasFeature
+extern __typeof (xmlHasFeature) xmlHasFeature __attribute((alias("xmlHasFeature__internal_alias")));
+#else
+#ifndef xmlHasFeature
+extern __typeof (xmlHasFeature) xmlHasFeature__internal_alias __attribute((visibility("hidden")));
+#define xmlHasFeature xmlHasFeature__internal_alias
+#endif
+#endif
+
 #ifdef bottom_tree
 #undef xmlHasNsProp
 extern __typeof (xmlHasNsProp) xmlHasNsProp __attribute((alias("xmlHasNsProp__internal_alias")));
@@ -7047,6 +7298,16 @@
 #endif
 
 #ifdef bottom_uri
+#undef xmlParseURIRaw
+extern __typeof (xmlParseURIRaw) xmlParseURIRaw __attribute((alias("xmlParseURIRaw__internal_alias")));
+#else
+#ifndef xmlParseURIRaw
+extern __typeof (xmlParseURIRaw) xmlParseURIRaw__internal_alias __attribute((visibility("hidden")));
+#define xmlParseURIRaw xmlParseURIRaw__internal_alias
+#endif
+#endif
+
+#ifdef bottom_uri
 #undef xmlParseURIReference
 extern __typeof (xmlParseURIReference) xmlParseURIReference __attribute((alias("xmlParseURIReference__internal_alias")));
 #else
@@ -7388,6 +7649,18 @@
 
 #if defined(LIBXML_PATTERN_ENABLED)
 #ifdef bottom_pattern
+#undef xmlPatternMinDepth
+extern __typeof (xmlPatternMinDepth) xmlPatternMinDepth __attribute((alias("xmlPatternMinDepth__internal_alias")));
+#else
+#ifndef xmlPatternMinDepth
+extern __typeof (xmlPatternMinDepth) xmlPatternMinDepth__internal_alias __attribute((visibility("hidden")));
+#define xmlPatternMinDepth xmlPatternMinDepth__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_PATTERN_ENABLED)
+#ifdef bottom_pattern
 #undef xmlPatternStreamable
 extern __typeof (xmlPatternStreamable) xmlPatternStreamable __attribute((alias("xmlPatternStreamable__internal_alias")));
 #else
@@ -8134,6 +8407,18 @@
 
 #if defined(LIBXML_SCHEMAS_ENABLED)
 #ifdef bottom_relaxng
+#undef xmlRelaxNGSetValidStructuredErrors
+extern __typeof (xmlRelaxNGSetValidStructuredErrors) xmlRelaxNGSetValidStructuredErrors __attribute((alias("xmlRelaxNGSetValidStructuredErrors__internal_alias")));
+#else
+#ifndef xmlRelaxNGSetValidStructuredErrors
+extern __typeof (xmlRelaxNGSetValidStructuredErrors) xmlRelaxNGSetValidStructuredErrors__internal_alias __attribute((visibility("hidden")));
+#define xmlRelaxNGSetValidStructuredErrors xmlRelaxNGSetValidStructuredErrors__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_relaxng
 #undef xmlRelaxNGValidateDoc
 extern __typeof (xmlRelaxNGValidateDoc) xmlRelaxNGValidateDoc __attribute((alias("xmlRelaxNGValidateDoc__internal_alias")));
 #else
@@ -8328,7 +8613,7 @@
 #endif
 #endif
 
-#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
 #ifdef bottom_SAX2
 #undef xmlSAX2EndElement
 extern __typeof (xmlSAX2EndElement) xmlSAX2EndElement __attribute((alias("xmlSAX2EndElement__internal_alias")));
@@ -8574,7 +8859,7 @@
 #endif
 #endif
 
-#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
 #ifdef bottom_SAX2
 #undef xmlSAX2StartElement
 extern __typeof (xmlSAX2StartElement) xmlSAX2StartElement __attribute((alias("xmlSAX2StartElement__internal_alias")));
@@ -9240,6 +9525,18 @@
 
 #if defined(LIBXML_SCHEMAS_ENABLED)
 #ifdef bottom_xmlschemas
+#undef xmlSchemaIsValid
+extern __typeof (xmlSchemaIsValid) xmlSchemaIsValid __attribute((alias("xmlSchemaIsValid__internal_alias")));
+#else
+#ifndef xmlSchemaIsValid
+extern __typeof (xmlSchemaIsValid) xmlSchemaIsValid__internal_alias __attribute((visibility("hidden")));
+#define xmlSchemaIsValid xmlSchemaIsValid__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlschemas
 #undef xmlSchemaNewDocParserCtxt
 extern __typeof (xmlSchemaNewDocParserCtxt) xmlSchemaNewDocParserCtxt __attribute((alias("xmlSchemaNewDocParserCtxt__internal_alias")));
 #else
@@ -9348,6 +9645,30 @@
 
 #if defined(LIBXML_SCHEMAS_ENABLED)
 #ifdef bottom_xmlschemas
+#undef xmlSchemaSAXPlug
+extern __typeof (xmlSchemaSAXPlug) xmlSchemaSAXPlug __attribute((alias("xmlSchemaSAXPlug__internal_alias")));
+#else
+#ifndef xmlSchemaSAXPlug
+extern __typeof (xmlSchemaSAXPlug) xmlSchemaSAXPlug__internal_alias __attribute((visibility("hidden")));
+#define xmlSchemaSAXPlug xmlSchemaSAXPlug__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlschemas
+#undef xmlSchemaSAXUnplug
+extern __typeof (xmlSchemaSAXUnplug) xmlSchemaSAXUnplug __attribute((alias("xmlSchemaSAXUnplug__internal_alias")));
+#else
+#ifndef xmlSchemaSAXUnplug
+extern __typeof (xmlSchemaSAXUnplug) xmlSchemaSAXUnplug__internal_alias __attribute((visibility("hidden")));
+#define xmlSchemaSAXUnplug xmlSchemaSAXUnplug__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlschemas
 #undef xmlSchemaSetParserErrors
 extern __typeof (xmlSchemaSetParserErrors) xmlSchemaSetParserErrors __attribute((alias("xmlSchemaSetParserErrors__internal_alias")));
 #else
@@ -9383,6 +9704,18 @@
 #endif
 
 #if defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlschemas
+#undef xmlSchemaSetValidStructuredErrors
+extern __typeof (xmlSchemaSetValidStructuredErrors) xmlSchemaSetValidStructuredErrors __attribute((alias("xmlSchemaSetValidStructuredErrors__internal_alias")));
+#else
+#ifndef xmlSchemaSetValidStructuredErrors
+extern __typeof (xmlSchemaSetValidStructuredErrors) xmlSchemaSetValidStructuredErrors__internal_alias __attribute((visibility("hidden")));
+#define xmlSchemaSetValidStructuredErrors xmlSchemaSetValidStructuredErrors__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
 #ifdef bottom_xmlschemastypes
 #undef xmlSchemaValPredefTypeNode
 extern __typeof (xmlSchemaValPredefTypeNode) xmlSchemaValPredefTypeNode __attribute((alias("xmlSchemaValPredefTypeNode__internal_alias")));
@@ -9598,6 +9931,114 @@
 #endif
 #endif
 
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronFree
+extern __typeof (xmlSchematronFree) xmlSchematronFree __attribute((alias("xmlSchematronFree__internal_alias")));
+#else
+#ifndef xmlSchematronFree
+extern __typeof (xmlSchematronFree) xmlSchematronFree__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronFree xmlSchematronFree__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronFreeParserCtxt
+extern __typeof (xmlSchematronFreeParserCtxt) xmlSchematronFreeParserCtxt __attribute((alias("xmlSchematronFreeParserCtxt__internal_alias")));
+#else
+#ifndef xmlSchematronFreeParserCtxt
+extern __typeof (xmlSchematronFreeParserCtxt) xmlSchematronFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronFreeParserCtxt xmlSchematronFreeParserCtxt__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronFreeValidCtxt
+extern __typeof (xmlSchematronFreeValidCtxt) xmlSchematronFreeValidCtxt __attribute((alias("xmlSchematronFreeValidCtxt__internal_alias")));
+#else
+#ifndef xmlSchematronFreeValidCtxt
+extern __typeof (xmlSchematronFreeValidCtxt) xmlSchematronFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronFreeValidCtxt xmlSchematronFreeValidCtxt__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronNewDocParserCtxt
+extern __typeof (xmlSchematronNewDocParserCtxt) xmlSchematronNewDocParserCtxt __attribute((alias("xmlSchematronNewDocParserCtxt__internal_alias")));
+#else
+#ifndef xmlSchematronNewDocParserCtxt
+extern __typeof (xmlSchematronNewDocParserCtxt) xmlSchematronNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronNewDocParserCtxt xmlSchematronNewDocParserCtxt__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronNewMemParserCtxt
+extern __typeof (xmlSchematronNewMemParserCtxt) xmlSchematronNewMemParserCtxt __attribute((alias("xmlSchematronNewMemParserCtxt__internal_alias")));
+#else
+#ifndef xmlSchematronNewMemParserCtxt
+extern __typeof (xmlSchematronNewMemParserCtxt) xmlSchematronNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronNewMemParserCtxt xmlSchematronNewMemParserCtxt__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronNewParserCtxt
+extern __typeof (xmlSchematronNewParserCtxt) xmlSchematronNewParserCtxt __attribute((alias("xmlSchematronNewParserCtxt__internal_alias")));
+#else
+#ifndef xmlSchematronNewParserCtxt
+extern __typeof (xmlSchematronNewParserCtxt) xmlSchematronNewParserCtxt__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronNewParserCtxt xmlSchematronNewParserCtxt__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronNewValidCtxt
+extern __typeof (xmlSchematronNewValidCtxt) xmlSchematronNewValidCtxt __attribute((alias("xmlSchematronNewValidCtxt__internal_alias")));
+#else
+#ifndef xmlSchematronNewValidCtxt
+extern __typeof (xmlSchematronNewValidCtxt) xmlSchematronNewValidCtxt__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronNewValidCtxt xmlSchematronNewValidCtxt__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronParse
+extern __typeof (xmlSchematronParse) xmlSchematronParse __attribute((alias("xmlSchematronParse__internal_alias")));
+#else
+#ifndef xmlSchematronParse
+extern __typeof (xmlSchematronParse) xmlSchematronParse__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronParse xmlSchematronParse__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+#ifdef bottom_schematron
+#undef xmlSchematronValidateDoc
+extern __typeof (xmlSchematronValidateDoc) xmlSchematronValidateDoc __attribute((alias("xmlSchematronValidateDoc__internal_alias")));
+#else
+#ifndef xmlSchematronValidateDoc
+extern __typeof (xmlSchematronValidateDoc) xmlSchematronValidateDoc__internal_alias __attribute((visibility("hidden")));
+#define xmlSchematronValidateDoc xmlSchematronValidateDoc__internal_alias
+#endif
+#endif
+#endif
+
 #ifdef bottom_tree
 #undef xmlSearchNs
 extern __typeof (xmlSearchNs) xmlSearchNs __attribute((alias("xmlSearchNs__internal_alias")));
@@ -9998,7 +10439,6 @@
 #endif
 #endif
 
-#if defined(LIBXML_PUSH_ENABLED)
 #ifdef bottom_parser
 #undef xmlStopParser
 extern __typeof (xmlStopParser) xmlStopParser __attribute((alias("xmlStopParser__internal_alias")));
@@ -10008,7 +10448,6 @@
 #define xmlStopParser xmlStopParser__internal_alias
 #endif
 #endif
-#endif
 
 #ifdef bottom_xmlstring
 #undef xmlStrEqual
@@ -11056,6 +11495,18 @@
 #endif
 #endif
 
+#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlreader
+#undef xmlTextReaderSchemaValidate
+extern __typeof (xmlTextReaderSchemaValidate) xmlTextReaderSchemaValidate __attribute((alias("xmlTextReaderSchemaValidate__internal_alias")));
+#else
+#ifndef xmlTextReaderSchemaValidate
+extern __typeof (xmlTextReaderSchemaValidate) xmlTextReaderSchemaValidate__internal_alias __attribute((visibility("hidden")));
+#define xmlTextReaderSchemaValidate xmlTextReaderSchemaValidate__internal_alias
+#endif
+#endif
+#endif
+
 #if defined(LIBXML_READER_ENABLED)
 #ifdef bottom_xmlreader
 #undef xmlTextReaderSetErrorHandler
@@ -11080,6 +11531,18 @@
 #endif
 #endif
 
+#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef bottom_xmlreader
+#undef xmlTextReaderSetSchema
+extern __typeof (xmlTextReaderSetSchema) xmlTextReaderSetSchema __attribute((alias("xmlTextReaderSetSchema__internal_alias")));
+#else
+#ifndef xmlTextReaderSetSchema
+extern __typeof (xmlTextReaderSetSchema) xmlTextReaderSetSchema__internal_alias __attribute((visibility("hidden")));
+#define xmlTextReaderSetSchema xmlTextReaderSetSchema__internal_alias
+#endif
+#endif
+#endif
+
 #if defined(LIBXML_READER_ENABLED)
 #ifdef bottom_xmlreader
 #undef xmlTextReaderSetStructuredErrorHandler
@@ -14484,7 +14947,7 @@
 #endif
 #endif
 
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED)
 #ifdef bottom_tree
 #undef xmlValidateNCName
 extern __typeof (xmlValidateNCName) xmlValidateNCName __attribute((alias("xmlValidateNCName__internal_alias")));

Modified: packages/libxml2/trunk/encoding.c
===================================================================
--- packages/libxml2/trunk/encoding.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/encoding.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -70,7 +70,33 @@
 
 static int xmlLittleEndian = 1;
 
+/**
+ * xmlEncodingErrMemory:
+ * @extra:  extra informations
+ *
+ * Handle an out of memory condition
+ */
+static void
+xmlEncodingErrMemory(const char *extra)
+{
+    __xmlSimpleError(XML_FROM_I18N, XML_ERR_NO_MEMORY, NULL, NULL, extra);
+}
 
+/**
+ * xmlErrEncoding:
+ * @error:  the error number
+ * @msg:  the error message
+ *
+ * n encoding error
+ */
+static void
+xmlEncodingErr(xmlParserErrors error, const char *msg, const char *val)
+{
+    __xmlRaiseError(NULL, NULL, NULL, NULL, NULL,
+                    XML_FROM_I18N, error, XML_ERR_FATAL,
+                    NULL, 0, val, NULL, NULL, 0, 0, msg, val);
+}
+
 /************************************************************************
  *									*
  *		Conversions To/From UTF8 encoding			*
@@ -1239,7 +1265,7 @@
     const char *alias;
     char upper[500];
     int i;
-    char *up = 0;
+    char *up = NULL;
 
     /*
      * Do the alias resolution
@@ -1252,8 +1278,8 @@
      * Keep only the uppercase version of the encoding.
      */
     if (name == NULL) {
-        xmlGenericError(xmlGenericErrorContext,
-		"xmlNewCharEncodingHandler : no name !\n");
+        xmlEncodingErr(XML_I18N_NO_NAME,
+		       "xmlNewCharEncodingHandler : no name !\n", NULL);
 	return(NULL);
     }
     for (i = 0;i < 499;i++) {
@@ -1263,8 +1289,7 @@
     upper[i] = 0;
     up = xmlMemStrdup(upper);
     if (up == NULL) {
-        xmlGenericError(xmlGenericErrorContext,
-		"xmlNewCharEncodingHandler : out of memory !\n");
+        xmlEncodingErrMemory("xmlNewCharEncodingHandler : out of memory !\n");
 	return(NULL);
     }
 
@@ -1275,8 +1300,7 @@
               xmlMalloc(sizeof(xmlCharEncodingHandler));
     if (handler == NULL) {
         xmlFree(up);
-        xmlGenericError(xmlGenericErrorContext,
-		"xmlNewCharEncodingHandler : out of memory !\n");
+        xmlEncodingErrMemory("xmlNewCharEncodingHandler : out of memory !\n");
 	return(NULL);
     }
     handler->input = input;
@@ -1319,12 +1343,13 @@
 
     if (*ptr == 0x12) xmlLittleEndian = 0;
     else if (*ptr == 0x34) xmlLittleEndian = 1;
-    else xmlGenericError(xmlGenericErrorContext,
-	    "Odd problem at endianness detection\n");
+    else {
+        xmlEncodingErr(XML_ERR_INTERNAL_ERROR,
+	               "Odd problem at endianness detection\n", NULL);
+    }
 
     if (handlers == NULL) {
-        xmlGenericError(xmlGenericErrorContext,
-		"xmlInitCharEncodingHandlers : out of memory !\n");
+        xmlEncodingErrMemory("xmlInitCharEncodingHandlers : out of memory !\n");
 	return;
     }
     xmlNewCharEncodingHandler("UTF-8", UTF8ToUTF8, UTF8ToUTF8);
@@ -1394,16 +1419,15 @@
 xmlRegisterCharEncodingHandler(xmlCharEncodingHandlerPtr handler) {
     if (handlers == NULL) xmlInitCharEncodingHandlers();
     if (handler == NULL) {
-        xmlGenericError(xmlGenericErrorContext,
-		"xmlRegisterCharEncodingHandler: NULL handler !\n");
+        xmlEncodingErr(XML_I18N_NO_HANDLER,
+		"xmlRegisterCharEncodingHandler: NULL handler !\n", NULL);
 	return;
     }
 
     if (nbCharEncodingHandler >= MAX_ENCODING_HANDLERS) {
-        xmlGenericError(xmlGenericErrorContext, 
-	"xmlRegisterCharEncodingHandler: Too many handler registered\n");
-        xmlGenericError(xmlGenericErrorContext,
-		"\tincrease MAX_ENCODING_HANDLERS : %s\n", __FILE__);
+        xmlEncodingErr(XML_I18N_EXCESS_HANDLER,
+	"xmlRegisterCharEncodingHandler: Too many handler registered, see %s\n",
+	               "MAX_ENCODING_HANDLERS");
 	return;
     }
     handlers[nbCharEncodingHandler++] = handler;
@@ -1612,7 +1636,7 @@
 #endif
 	    return enc;
     } else if ((icv_in != (iconv_t) -1) || icv_out != (iconv_t) -1) {
-	    xmlGenericError(xmlGenericErrorContext,
+	    xmlEncodingErr(XML_ERR_INTERNAL_ERROR,
 		    "iconv : problems with filters for '%s'\n", name);
     }
 #endif /* LIBXML_ICONV_ENABLED */
@@ -1878,20 +1902,24 @@
                             toconv, written, in->use);
 #endif
             break;
-        case -2:
-            xmlGenericError(xmlGenericErrorContext,
-                            "input conversion failed due to input error\n");
-            xmlGenericError(xmlGenericErrorContext,
-                            "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
-                            in->content[0], in->content[1],
-                            in->content[2], in->content[3]);
+        case -2: {
+            char buf[50];
+
+	    snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X", 
+		     in->content[0], in->content[1],
+		     in->content[2], in->content[3]);
+	    buf[49] = 0;
+	    xmlEncodingErr(XML_I18N_CONV_FAILED,
+		    "input conversion failed due to input error, bytes %s\n",
+		           buf);
+        }
     }
     /*
      * Ignore when input buffer is not on a boundary
      */
     if (ret == -3)
         ret = 0;
-    return (written);
+    return (written? written : ret);
 }
 
 /**
@@ -1997,8 +2025,8 @@
     }
 #endif /* LIBXML_ICONV_ENABLED */
     else {
-	xmlGenericError(xmlGenericErrorContext,
-		"xmlCharEncOutFunc: no output function !\n");
+	xmlEncodingErr(XML_I18N_NO_OUTPUT,
+		       "xmlCharEncOutFunc: no output function !\n", NULL);
 	return(-1);
     }
 
@@ -2049,18 +2077,21 @@
 		 * and continue the transcoding phase, hoping the error
 		 * did not mangle the encoder state.
 		 */
-		snprintf((char *) charref, sizeof(charref), "&#%d;", cur);
+		snprintf((char *) &charref[0], sizeof(charref), "&#%d;", cur);
 		xmlBufferShrink(in, len);
 		xmlBufferAddHead(in, charref, -1);
 
 		goto retry;
 	    } else {
-		xmlGenericError(xmlGenericErrorContext,
-			"output conversion failed due to conv error\n");
-		xmlGenericError(xmlGenericErrorContext,
-			"Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
-			in->content[0], in->content[1],
-			in->content[2], in->content[3]);
+		char buf[50];
+
+		snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X", 
+			 in->content[0], in->content[1],
+			 in->content[2], in->content[3]);
+		buf[49] = 0;
+		xmlEncodingErr(XML_I18N_CONV_FAILED,
+		    "output conversion failed due to conv error, bytes %s\n",
+			       buf);
 		in->content[0] = ' ';
 	    }
 	    break;

Modified: packages/libxml2/trunk/error.c
===================================================================
--- packages/libxml2/trunk/error.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/error.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -16,7 +16,7 @@
 #include <libxml/xmlmemory.h>
 #include <libxml/globals.h>
 
-void xmlGenericErrorDefaultFunc	(void *ctx ATTRIBUTE_UNUSED,
+void XMLCDECL xmlGenericErrorDefaultFunc	(void *ctx ATTRIBUTE_UNUSED,
 				 const char *msg,
 				 ...);
 
@@ -62,7 +62,7 @@
  * 
  * Default handler for out of context error messages.
  */
-void
+void XMLCDECL
 xmlGenericErrorDefaultFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) {
     va_list args;
 
@@ -354,6 +354,9 @@
         case XML_FROM_XSLT:
             channel(data, "XSLT ");
             break;
+        case XML_FROM_I18N:
+            channel(data, "encoding ");
+            break;
         default:
             break;
     }
@@ -437,7 +440,7 @@
  * then forward the error message down the parser or generic
  * error callback handler
  */
-void
+void XMLCDECL
 __xmlRaiseError(xmlStructuredErrorFunc schannel,
               xmlGenericErrorFunc channel, void *data, void *ctx,
               void *nod, int domain, int code, xmlErrorLevel level,
@@ -514,7 +517,7 @@
 
 	if ((node->doc != NULL) && (node->doc->URL != NULL)) {
 	    baseptr = node;
-	    file = (const char *) node->doc->URL;
+/*	    file = (const char *) node->doc->URL; */
 	}
 	for (i = 0;
 	     ((i < 10) && (node != NULL) && (node->type != XML_ELEMENT_NODE));
@@ -560,10 +563,19 @@
 	    }
 	}
 	if (prev != NULL) {
-	    to->file = (char *) xmlGetProp(prev, BAD_CAST "href");
+	    if (prev->type == XML_XINCLUDE_START) {
+		prev->type = XML_ELEMENT_NODE;
+		to->file = (char *) xmlGetProp(prev, BAD_CAST "href");
+		prev->type = XML_XINCLUDE_START;
+	    } else {
+		to->file = (char *) xmlGetProp(prev, BAD_CAST "href");
+	    }
 	} else
 #endif
 	    to->file = (char *) xmlStrdup(baseptr->doc->URL);
+	if ((to->file == NULL) && (node != NULL) && (node->doc != NULL)) {
+	    to->file = (char *) xmlStrdup(node->doc->URL);
+	}
 	file = to->file;
     }
     to->line = line;
@@ -595,8 +607,10 @@
 	    schannel = xmlStructuredError;
 	else
 	    channel = xmlGenericError;
+	if (!data) {
 	data = xmlGenericErrorContext;
     }
+    }
     if (schannel != NULL) {
         schannel(data, to);
 	return;
@@ -655,7 +669,7 @@
  * Display and format an error messages, gives file, line, position and
  * extra parameters.
  */
-void
+void XMLCDECL
 xmlParserError(void *ctx, const char *msg, ...)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -698,7 +712,7 @@
  * Display and format a warning messages, gives file, line, position and
  * extra parameters.
  */
-void
+void XMLCDECL
 xmlParserWarning(void *ctx, const char *msg, ...)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -747,7 +761,7 @@
  * Display and format an validity error messages, gives file,
  * line, position and extra parameters.
  */
-void
+void XMLCDECL
 xmlParserValidityError(void *ctx, const char *msg, ...)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -791,7 +805,7 @@
  * Display and format a validity warning messages, gives file, line,
  * position and extra parameters.
  */
-void
+void XMLCDECL
 xmlParserValidityWarning(void *ctx, const char *msg, ...)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;

Modified: packages/libxml2/trunk/example/Makefile.in
===================================================================
--- packages/libxml2/trunk/example/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/example/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -177,6 +177,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -212,6 +213,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@

Modified: packages/libxml2/trunk/globals.c
===================================================================
--- packages/libxml2/trunk/globals.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/globals.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -44,7 +44,7 @@
  *
  * Additional initialisation for multi-threading
  */
-void xmlInitGlobals()
+void xmlInitGlobals(void)
 {
     xmlThrDefMutex = xmlNewMutex();
 }
@@ -54,7 +54,7 @@
  *
  * Additional cleanup for multi-threading
  */
-void xmlCleanupGlobals()
+void xmlCleanupGlobals(void)
 {
     if (xmlThrDefMutex != NULL) {
 	xmlFreeMutex(xmlThrDefMutex);
@@ -289,7 +289,7 @@
 
 /* xmlGenericErrorFunc xmlGenericError = xmlGenericErrorDefaultFunc; */
 /* Must initialize xmlGenericError in xmlInitParser */
-void xmlGenericErrorDefaultFunc	(void *ctx ATTRIBUTE_UNUSED,
+void XMLCDECL xmlGenericErrorDefaultFunc	(void *ctx ATTRIBUTE_UNUSED,
 				 const char *msg,
 				 ...);
 /**
@@ -344,7 +344,7 @@
  * Disabled by default
  */
 int xmlSaveNoEmptyTags = 0;
-int xmlSaveNoEmptyTagsThrDef = 0;
+static int xmlSaveNoEmptyTagsThrDef = 0;
 
 #ifdef LIBXML_SAX1_ENABLED
 /**
@@ -496,7 +496,7 @@
 
     xmlMutexLock(xmlThrDefMutex);
 
-#if defined(LIBXML_DOCB_ENABLED) && defined(LIBXML_LEGACY_ENABLED)
+#if defined(LIBXML_DOCB_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED)
     initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
 #endif
 #if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED)

Modified: packages/libxml2/trunk/include/Makefile.in
===================================================================
--- packages/libxml2/trunk/include/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -163,6 +163,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -198,6 +199,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@

Modified: packages/libxml2/trunk/include/libxml/HTMLparser.h
===================================================================
--- packages/libxml2/trunk/include/libxml/HTMLparser.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/HTMLparser.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -173,11 +173,13 @@
  * to the xmlReadDoc() and similar calls.
  */
 typedef enum {
+    HTML_PARSE_RECOVER  = 1<<0, /* Relaxed parsing */
     HTML_PARSE_NOERROR	= 1<<5,	/* suppress error reports */
     HTML_PARSE_NOWARNING= 1<<6,	/* suppress warning reports */
     HTML_PARSE_PEDANTIC	= 1<<7,	/* pedantic error reporting */
     HTML_PARSE_NOBLANKS	= 1<<8,	/* remove blank nodes */
-    HTML_PARSE_NONET	= 1<<11 /* Forbid network access */
+    HTML_PARSE_NONET	= 1<<11,/* Forbid network access */
+    HTML_PARSE_COMPACT  = 1<<16 /* compact small text nodes */
 } htmlParserOption;
 
 XMLPUBFUN void XMLCALL

Modified: packages/libxml2/trunk/include/libxml/Makefile.am
===================================================================
--- packages/libxml2/trunk/include/libxml/Makefile.am	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/Makefile.am	2005-09-05 17:42:20 UTC (rev 466)
@@ -48,7 +48,8 @@
 		xmlwriter.h \
 		chvalid.h \
 		pattern.h \
-		xmlsave.h
+		xmlsave.h \
+		schematron.h
 
 install-exec-hook:
 	$(mkinstalldirs) $(DESTDIR)$(xmlincdir)

Modified: packages/libxml2/trunk/include/libxml/Makefile.in
===================================================================
--- packages/libxml2/trunk/include/libxml/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -161,6 +161,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -196,6 +197,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@
@@ -310,7 +312,8 @@
 		xmlwriter.h \
 		chvalid.h \
 		pattern.h \
-		xmlsave.h
+		xmlsave.h \
+		schematron.h
 
 EXTRA_DIST = xmlversion.h.in
 all: all-am

Modified: packages/libxml2/trunk/include/libxml/SAX2.h
===================================================================
--- packages/libxml2/trunk/include/libxml/SAX2.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/SAX2.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -98,7 +98,7 @@
 		xmlSAX2StartDocument		(void *ctx);
 XMLPUBFUN void XMLCALL		
 		xmlSAX2EndDocument		(void *ctx);
-#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
 XMLPUBFUN void XMLCALL		
 		xmlSAX2StartElement		(void *ctx,
 						 const xmlChar *fullname,

Modified: packages/libxml2/trunk/include/libxml/parser.h
===================================================================
--- packages/libxml2/trunk/include/libxml/parser.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/parser.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -591,7 +591,7 @@
  * 
  * Display and format a warning messages, callback.
  */
-typedef void (*warningSAXFunc) (void *ctx,
+typedef void (XMLCDECL *warningSAXFunc) (void *ctx,
 				const char *msg, ...);
 /**
  * errorSAXFunc:
@@ -601,7 +601,7 @@
  * 
  * Display and format an error messages, callback.
  */
-typedef void (*errorSAXFunc) (void *ctx,
+typedef void (XMLCDECL *errorSAXFunc) (void *ctx,
 				const char *msg, ...);
 /**
  * fatalErrorSAXFunc:
@@ -613,7 +613,7 @@
  * Note: so far fatalError() SAX callbacks are not used, error()
  *       get all the callbacks for errors.
  */
-typedef void (*fatalErrorSAXFunc) (void *ctx,
+typedef void (XMLCDECL *fatalErrorSAXFunc) (void *ctx,
 				const char *msg, ...);
 /**
  * isStandaloneSAXFunc:
@@ -1088,7 +1088,8 @@
     XML_PARSE_NODICT	= 1<<12,/* Do not reuse the context dictionnary */
     XML_PARSE_NSCLEAN	= 1<<13,/* remove redundant namespaces declarations */
     XML_PARSE_NOCDATA	= 1<<14,/* merge CDATA as text nodes */
-    XML_PARSE_NOXINCNODE= 1<<15 /* do not generate XINCLUDE START/END nodes */
+    XML_PARSE_NOXINCNODE= 1<<15,/* do not generate XINCLUDE START/END nodes */
+    XML_PARSE_COMPACT   = 1<<16 /* compact small text nodes */
 } xmlParserOption;
 
 XMLPUBFUN void XMLCALL
@@ -1162,6 +1163,52 @@
 					 const char *encoding,
 					 int options);
 
+/*
+ * Library wide options
+ */
+/**
+ * xmlFeature:
+ *
+ * Used to examine the existance of features that can be enabled
+ * or disabled at compile-time.
+ */
+typedef enum {
+    XML_FEATURE_THREAD = 1,
+    XML_FEATURE_TREE = 2,
+    XML_FEATURE_OUTPUT = 3,
+    XML_FEATURE_PUSH = 4,
+    XML_FEATURE_READER = 5,
+    XML_FEATURE_PATTERN = 6,
+    XML_FEATURE_WRITER = 7,
+    XML_FEATURE_SAX1 = 8,
+    XML_FEATURE_FTP = 9,
+    XML_FEATURE_HTTP = 10,
+    XML_FEATURE_VALID = 11,
+    XML_FEATURE_HTML = 12,
+    XML_FEATURE_LEGACY = 13,
+    XML_FEATURE_C14N = 14,
+    XML_FEATURE_CATALOG = 15,
+    XML_FEATURE_XPATH = 16,
+    XML_FEATURE_XPTR = 17,
+    XML_FEATURE_XINCLUDE = 18,
+    XML_FEATURE_ICONV = 19,
+    XML_FEATURE_ISO8859X = 20,
+    XML_FEATURE_UNICODE = 21,
+    XML_FEATURE_REGEXP = 22,
+    XML_FEATURE_AUTOMATA = 23,
+    XML_FEATURE_EXPR = 24,
+    XML_FEATURE_SCHEMAS = 25,
+    XML_FEATURE_SCHEMATRON = 26,
+    XML_FEATURE_MODULES = 27,
+    XML_FEATURE_DEBUG = 28,
+    XML_FEATURE_DEBUG_MEM = 29,
+    XML_FEATURE_DEBUG_RUN = 30,
+    XML_FEATURE_NONE = 99999 /* just to be sure of allocation size */
+} xmlFeature;
+
+XMLPUBFUN int XMLCALL
+		xmlHasFeature		(xmlFeature feature);
+
 #ifdef __cplusplus
 }
 #endif

Modified: packages/libxml2/trunk/include/libxml/pattern.h
===================================================================
--- packages/libxml2/trunk/include/libxml/pattern.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/pattern.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -52,7 +52,7 @@
 XMLPUBFUN xmlPatternPtr XMLCALL
 			xmlPatterncompile	(const xmlChar *pattern,
 						 xmlDict *dict,
-						 xmlPatternFlags flags,
+						 int flags,
 						 const xmlChar **namespaces);
 XMLPUBFUN int XMLCALL
 			xmlPatternMatch		(xmlPatternPtr comp,
@@ -67,6 +67,8 @@
 XMLPUBFUN int XMLCALL
 			xmlPatternMaxDepth	(xmlPatternPtr comp);
 XMLPUBFUN int XMLCALL
+			xmlPatternMinDepth	(xmlPatternPtr comp);
+XMLPUBFUN int XMLCALL
 			xmlPatternFromRoot	(xmlPatternPtr comp);
 XMLPUBFUN xmlStreamCtxtPtr XMLCALL
 			xmlPatternGetStreamCtxt	(xmlPatternPtr comp);

Modified: packages/libxml2/trunk/include/libxml/relaxng.h
===================================================================
--- packages/libxml2/trunk/include/libxml/relaxng.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/relaxng.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -27,8 +27,8 @@
 /**
  * A schemas validation context
  */
-typedef void (*xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
-typedef void (*xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...);
+typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
+typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...);
 
 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
@@ -152,6 +152,9 @@
 					 xmlRelaxNGValidityErrorFunc *err,
 					 xmlRelaxNGValidityWarningFunc *warn,
 					 void **ctx);
+XMLPUBFUN void XMLCALL
+			xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
+					  xmlStructuredErrorFunc serror, void *ctx);
 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL	
 		    xmlRelaxNGNewValidCtxt	(xmlRelaxNGPtr schema);
 XMLPUBFUN void XMLCALL			

Copied: packages/libxml2/trunk/include/libxml/schematron.h (from rev 465, packages/libxml2/branches/upstream/current/include/libxml/schematron.h)

Modified: packages/libxml2/trunk/include/libxml/threads.h
===================================================================
--- packages/libxml2/trunk/include/libxml/threads.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/threads.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -36,7 +36,6 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
 XMLPUBFUN xmlMutexPtr XMLCALL		
 			xmlNewMutex	(void);
 XMLPUBFUN void XMLCALL			

Modified: packages/libxml2/trunk/include/libxml/tree.h
===================================================================
--- packages/libxml2/trunk/include/libxml/tree.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/tree.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -55,6 +55,33 @@
 #define BASE_BUFFER_SIZE 4096
 
 /**
+ * xmlBufferAllocationScheme:
+ *
+ * A buffer allocation scheme can be defined to either match exactly the
+ * need or double it's allocated size each time it is found too small.
+ */
+
+typedef enum {
+    XML_BUFFER_ALLOC_DOUBLEIT,
+    XML_BUFFER_ALLOC_EXACT,
+    XML_BUFFER_ALLOC_IMMUTABLE
+} xmlBufferAllocationScheme;
+
+/**
+ * xmlBuffer:
+ *
+ * A buffer structure.
+ */
+typedef struct _xmlBuffer xmlBuffer;
+typedef xmlBuffer *xmlBufferPtr;
+struct _xmlBuffer {
+    xmlChar *content;		/* The buffer content UTF8 */
+    unsigned int use;		/* The buffer size used */
+    unsigned int size;		/* The buffer size */
+    xmlBufferAllocationScheme alloc; /* The realloc method */
+};
+
+/**
  * XML_XML_NAMESPACE:
  *
  * This is the namespace for the special xml: prefix predefined in the
@@ -402,33 +429,6 @@
 };
 
 /**
- * xmlBufferAllocationScheme:
- *
- * A buffer allocation scheme can be defined to either match exactly the
- * need or double it's allocated size each time it is found too small.
- */
-
-typedef enum {
-    XML_BUFFER_ALLOC_DOUBLEIT,
-    XML_BUFFER_ALLOC_EXACT,
-    XML_BUFFER_ALLOC_IMMUTABLE
-} xmlBufferAllocationScheme;
-
-/**
- * xmlBuffer:
- *
- * A buffer structure.
- */
-typedef struct _xmlBuffer xmlBuffer;
-typedef xmlBuffer *xmlBufferPtr;
-struct _xmlBuffer {
-    xmlChar *content;		/* The buffer content UTF8 */
-    unsigned int use;		/* The buffer size used */
-    unsigned int size;		/* The buffer size */
-    xmlBufferAllocationScheme alloc; /* The realloc method */
-};
-
-/**
  * xmlNode:
  *
  * A node in an XML tree.

Modified: packages/libxml2/trunk/include/libxml/uri.h
===================================================================
--- packages/libxml2/trunk/include/libxml/uri.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/uri.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -47,13 +47,16 @@
 XMLPUBFUN xmlURIPtr XMLCALL	
 		xmlCreateURI		(void);
 XMLPUBFUN xmlChar * XMLCALL	
-		xmlBuildURI			(const xmlChar *URI,
-	                         const xmlChar *base);
+		xmlBuildURI		(const xmlChar *URI,
+	                         	 const xmlChar *base);
 XMLPUBFUN xmlChar * XMLCALL	
 		xmlBuildRelativeURI	(const xmlChar *URI,
-	                         const xmlChar *base);
+	                         	 const xmlChar *base);
 XMLPUBFUN xmlURIPtr XMLCALL	
 		xmlParseURI		(const char *str);
+XMLPUBFUN xmlURIPtr XMLCALL	
+		xmlParseURIRaw		(const char *str,
+					 int raw);
 XMLPUBFUN int XMLCALL		
 		xmlParseURIReference	(xmlURIPtr uri,
 					 const char *str);

Modified: packages/libxml2/trunk/include/libxml/valid.h
===================================================================
--- packages/libxml2/trunk/include/libxml/valid.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/valid.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -39,7 +39,7 @@
  * Callback called when a validity error is found. This is a message
  * oriented function similar to an *printf function.
  */
-typedef void (*xmlValidityErrorFunc) (void *ctx,
+typedef void (XMLCDECL *xmlValidityErrorFunc) (void *ctx,
 			     const char *msg,
 			     ...);
 
@@ -54,7 +54,7 @@
  * Callback called when a validity warning is found. This is a message
  * oriented function similar to an *printf function.
  */
-typedef void (*xmlValidityWarningFunc) (void *ctx,
+typedef void (XMLCDECL *xmlValidityWarningFunc) (void *ctx,
 			       const char *msg,
 			       ...);
 

Modified: packages/libxml2/trunk/include/libxml/xmlIO.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlIO.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlIO.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -31,7 +31,7 @@
  *
  * Returns 1 if yes and 0 if another Input module should be used
  */
-typedef int (*xmlInputMatchCallback) (char const *filename);
+typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename);
 /**
  * xmlInputOpenCallback:
  * @filename: the filename or URI
@@ -40,7 +40,7 @@
  *
  * Returns an Input context or NULL in case or error
  */
-typedef void * (*xmlInputOpenCallback) (char const *filename);
+typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename);
 /**
  * xmlInputReadCallback:
  * @context:  an Input context
@@ -51,7 +51,7 @@
  *
  * Returns the number of bytes read or -1 in case of error
  */
-typedef int (*xmlInputReadCallback) (void * context, char * buffer, int len);
+typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len);
 /**
  * xmlInputCloseCallback:
  * @context:  an Input context
@@ -60,7 +60,7 @@
  *
  * Returns 0 or -1 in case of error
  */
-typedef int (*xmlInputCloseCallback) (void * context);
+typedef int (XMLCALL *xmlInputCloseCallback) (void * context);
 
 #ifdef LIBXML_OUTPUT_ENABLED
 /*
@@ -77,7 +77,7 @@
  *
  * Returns 1 if yes and 0 if another Output module should be used
  */
-typedef int (*xmlOutputMatchCallback) (char const *filename);
+typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename);
 /**
  * xmlOutputOpenCallback:
  * @filename: the filename or URI
@@ -86,7 +86,7 @@
  *
  * Returns an Output context or NULL in case or error
  */
-typedef void * (*xmlOutputOpenCallback) (char const *filename);
+typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename);
 /**
  * xmlOutputWriteCallback:
  * @context:  an Output context
@@ -97,7 +97,7 @@
  *
  * Returns the number of bytes written or -1 in case of error
  */
-typedef int (*xmlOutputWriteCallback) (void * context, const char * buffer,
+typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer,
                                        int len);
 /**
  * xmlOutputCloseCallback:
@@ -107,7 +107,7 @@
  *
  * Returns 0 or -1 in case of error
  */
-typedef int (*xmlOutputCloseCallback) (void * context);
+typedef int (XMLCALL *xmlOutputCloseCallback) (void * context);
 #endif /* LIBXML_OUTPUT_ENABLED */
 
 #ifdef __cplusplus

Modified: packages/libxml2/trunk/include/libxml/xmlautomata.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlautomata.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlautomata.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -65,6 +65,14 @@
 						 const xmlChar *token,
 						 const xmlChar *token2,
 						 void *data);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+                    xmlAutomataNewNegTrans	(xmlAutomataPtr am,
+						 xmlAutomataStatePtr from,
+						 xmlAutomataStatePtr to,
+						 const xmlChar *token,
+						 const xmlChar *token2,
+						 void *data);
+
 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
 		    xmlAutomataNewCountTrans	(xmlAutomataPtr am,
 						 xmlAutomataStatePtr from,

Modified: packages/libxml2/trunk/include/libxml/xmlerror.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlerror.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlerror.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -60,7 +60,8 @@
     XML_FROM_VALID,	/* The XML DTD validation with valid context */
     XML_FROM_CHECK,	/* The error checking module */
     XML_FROM_WRITER,	/* The xmlwriter module */
-    XML_FROM_MODULE	/* The dynamically loaded module module*/
+    XML_FROM_MODULE,	/* The dynamically loaded module module*/
+    XML_FROM_I18N 	/* The module handling character conversion */
 } xmlErrorDomain;
 
 /**
@@ -760,6 +761,7 @@
     XML_SCHEMAP_AU_PROPS_CORRECT_2, /* 3078 */
     XML_SCHEMAP_A_PROPS_CORRECT_2, /* 3079 */
     XML_SCHEMAP_C_PROPS_CORRECT, /* 3080 */
+    XML_SCHEMAP_SRC_REDEFINE, /* 3081 */
     XML_MODULE_OPEN = 4900, /* 4900 */
     XML_MODULE_CLOSE, /* 4901 */
     XML_CHECK_FOUND_ELEMENT = 5000,
@@ -799,7 +801,12 @@
     XML_CHECK_NOT_NCNAME, /* 5034 */
     XML_CHECK_OUTSIDE_DICT, /* 5035 */
     XML_CHECK_WRONG_NAME, /* 5036 */
-    XML_CHECK_NAME_NOT_NULL /* 5037 */
+    XML_CHECK_NAME_NOT_NULL, /* 5037 */
+    XML_I18N_NO_NAME = 6000,
+    XML_I18N_NO_HANDLER, /* 6001 */
+    XML_I18N_EXCESS_HANDLER, /* 6002 */
+    XML_I18N_CONV_FAILED, /* 6003 */
+    XML_I18N_NO_OUTPUT /* 6004 */
 #if 0
     XML_CHECK_, /* 5033 */
     XML_CHECK_X /* 503 */
@@ -815,7 +822,7 @@
  * Signature of the function to use when there is an error and
  * no parsing or validity context available .
  */
-typedef void (*xmlGenericErrorFunc) (void *ctx,
+typedef void (XMLCDECL *xmlGenericErrorFunc) (void *ctx,
 				 const char *msg,
 	 			 ...);
 /**
@@ -826,7 +833,7 @@
  * Signature of the function to use when there is an error and
  * the module handles the new error reporting mechanism.
  */
-typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
+typedef void (XMLCALL *xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
 
 /*
  * Use the following function to reset the two global variables
@@ -845,19 +852,19 @@
  * Default message routines used by SAX and Valid context for error
  * and warning reporting.
  */
-XMLPUBFUN void XMLCALL	
+XMLPUBFUN void XMLCDECL	
     xmlParserError		(void *ctx,
 				 const char *msg,
 				 ...);
-XMLPUBFUN void XMLCALL	
+XMLPUBFUN void XMLCDECL	
     xmlParserWarning		(void *ctx,
 				 const char *msg,
 				 ...);
-XMLPUBFUN void XMLCALL	
+XMLPUBFUN void XMLCDECL	
     xmlParserValidityError	(void *ctx,
 				 const char *msg,
 				 ...);
-XMLPUBFUN void XMLCALL	
+XMLPUBFUN void XMLCDECL	
     xmlParserValidityWarning	(void *ctx,
 				 const char *msg,
 				 ...);

Modified: packages/libxml2/trunk/include/libxml/xmlexports.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlexports.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlexports.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -40,6 +40,13 @@
  * Macros which declare the called convention for exported functions
  */
 #define XMLCALL
+/**
+ * XMLCDECL:
+ *
+ * Macro which declares the calling convention for exported functions that 
+ * use '...'.
+ */
+#define XMLCDECL
 
 /** DOC_DISABLE */
 
@@ -48,6 +55,7 @@
   #undef XMLPUBFUN
   #undef XMLPUBVAR
   #undef XMLCALL
+  #undef XMLCDECL
   #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
     #define XMLPUBFUN __declspec(dllexport)
     #define XMLPUBVAR __declspec(dllexport)
@@ -59,7 +67,12 @@
       #define XMLPUBVAR extern
     #endif
   #endif
-  #define XMLCALL __cdecl
+  #if defined(LIBXML_FASTCALL)
+    #define XMLCALL __fastcall
+  #else
+    #define XMLCALL __cdecl
+  #endif
+  #define XMLCDECL __cdecl
   #if !defined _REENTRANT
     #define _REENTRANT
   #endif
@@ -70,6 +83,7 @@
   #undef XMLPUBFUN
   #undef XMLPUBVAR
   #undef XMLCALL
+  #undef XMLCDECL
   #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
     #define XMLPUBFUN __declspec(dllexport)
     #define XMLPUBVAR __declspec(dllexport) extern
@@ -82,6 +96,7 @@
     #endif
   #endif
   #define XMLCALL __cdecl
+  #define XMLCDECL __cdecl
   #if !defined _REENTRANT
     #define _REENTRANT
   #endif
@@ -92,6 +107,7 @@
   #undef XMLPUBFUN
   #undef XMLPUBVAR
   #undef XMLCALL
+  #undef XMLCDECL
   #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
     #define XMLPUBFUN __declspec(dllexport)
     #define XMLPUBVAR __declspec(dllexport)
@@ -104,6 +120,7 @@
     #endif
   #endif
   #define XMLCALL __cdecl
+  #define XMLCDECL __cdecl
   #if !defined _REENTRANT
     #define _REENTRANT
   #endif
@@ -114,6 +131,7 @@
   #undef XMLPUBFUN
   #undef XMLPUBVAR
   #undef XMLCALL
+  #undef XMLCDECL
   #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
     #define XMLPUBFUN __declspec(dllexport)
     #define XMLPUBVAR __declspec(dllexport)
@@ -126,6 +144,7 @@
     #endif
   #endif
   #define XMLCALL __cdecl
+  #define XMLCDECL __cdecl
 #endif
 
 /* Compatibility */

Modified: packages/libxml2/trunk/include/libxml/xmlregexp.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlregexp.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlregexp.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -40,6 +40,7 @@
 }
 #endif 
 #include <libxml/tree.h>
+#include <libxml/dict.h>
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -99,6 +100,113 @@
 		    			 int *nbneg,
 					 xmlChar **values,
 					 int *terminal);
+#ifdef LIBXML_EXPR_ENABLED
+/*
+ * Formal regular expression handling
+ * Its goal is to do some formal work on content models
+ */
+
+/* expressions are used within a context */
+typedef struct _xmlExpCtxt xmlExpCtxt;
+typedef xmlExpCtxt *xmlExpCtxtPtr;
+
+XMLPUBFUN void XMLCALL
+			xmlExpFreeCtxt	(xmlExpCtxtPtr ctxt);
+XMLPUBFUN xmlExpCtxtPtr XMLCALL
+			xmlExpNewCtxt	(int maxNodes,
+					 xmlDictPtr dict);
+
+XMLPUBFUN int XMLCALL
+			xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+			xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
+
+/* Expressions are trees but the tree is opaque */
+typedef struct _xmlExpNode xmlExpNode;
+typedef xmlExpNode *xmlExpNodePtr;
+
+typedef enum {
+    XML_EXP_EMPTY = 0,
+    XML_EXP_FORBID = 1,
+    XML_EXP_ATOM = 2,
+    XML_EXP_SEQ = 3,
+    XML_EXP_OR = 4,
+    XML_EXP_COUNT = 5
+} xmlExpNodeType;
+
+/*
+ * 2 core expressions shared by all for the empty language set 
+ * and for the set with just the empty token
+ */
+XMLPUBVAR xmlExpNodePtr forbiddenExp;
+XMLPUBVAR xmlExpNodePtr emptyExp;
+
+/*
+ * Expressions are reference counted internally
+ */
+XMLPUBFUN void XMLCALL
+			xmlExpFree	(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr expr);
+XMLPUBFUN void XMLCALL
+			xmlExpRef	(xmlExpNodePtr expr);
+
+/*
+ * constructors can be either manual or from a string
+ */
+XMLPUBFUN xmlExpNodePtr XMLCALL
+			xmlExpParse	(xmlExpCtxtPtr ctxt,
+					 const char *expr);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+			xmlExpNewAtom	(xmlExpCtxtPtr ctxt,
+					 const xmlChar *name,
+					 int len);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+			xmlExpNewOr	(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr left,
+					 xmlExpNodePtr right);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+			xmlExpNewSeq	(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr left,
+					 xmlExpNodePtr right);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+			xmlExpNewRange	(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr subset,
+					 int min,
+					 int max);
+/*
+ * The really interesting APIs
+ */
+XMLPUBFUN int XMLCALL
+			xmlExpIsNillable(xmlExpNodePtr expr);
+XMLPUBFUN int XMLCALL
+			xmlExpMaxToken	(xmlExpNodePtr expr);
+XMLPUBFUN int XMLCALL
+			xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr expr,
+					 const xmlChar**list,
+					 int len);
+XMLPUBFUN int XMLCALL
+			xmlExpGetStart	(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr expr,
+					 const xmlChar**list,
+					 int len);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+			xmlExpStringDerive(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr expr,
+					 const xmlChar *str,
+					 int len);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+			xmlExpExpDerive	(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr expr,
+					 xmlExpNodePtr sub);
+XMLPUBFUN int XMLCALL
+			xmlExpSubsume	(xmlExpCtxtPtr ctxt,
+					 xmlExpNodePtr expr,
+					 xmlExpNodePtr sub);
+XMLPUBFUN void XMLCALL
+			xmlExpDump	(xmlBufferPtr buf,
+					 xmlExpNodePtr expr);
+#endif /* LIBXML_EXPR_ENABLED */
 #ifdef __cplusplus
 }
 #endif 

Modified: packages/libxml2/trunk/include/libxml/xmlsave.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlsave.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlsave.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -27,7 +27,8 @@
  * to the xmlSaveToFd() and similar calls.
  */
 typedef enum {
-    XML_SAVE_FORMAT     = 1<<0	/* format save output */
+    XML_SAVE_FORMAT     = 1<<0,	/* format save output */
+    XML_SAVE_NO_DECL    = 1<<1	/* drop the xml declaration */
 } xmlSaveOption;
 
 

Modified: packages/libxml2/trunk/include/libxml/xmlschemas.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlschemas.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlschemas.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -87,8 +87,8 @@
 /**
  * A schemas validation context
  */
-typedef void (*xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, ...);
-typedef void (*xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...);
+typedef void (XMLCDECL *xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, ...);
+typedef void (XMLCDECL *xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...);
 
 typedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt;
 typedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr;
@@ -138,6 +138,9 @@
 					 xmlSchemaValidityErrorFunc err,
 					 xmlSchemaValidityWarningFunc warn,
 					 void *ctx);
+XMLPUBFUN void XMLCALL
+	    xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt,
+								  xmlStructuredErrorFunc serror, void *ctx);
 XMLPUBFUN int XMLCALL
 	    xmlSchemaGetValidErrors	(xmlSchemaValidCtxtPtr ctxt,
 					 xmlSchemaValidityErrorFunc *err,

Modified: packages/libxml2/trunk/include/libxml/xmlversion.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlversion.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlversion.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -29,28 +29,28 @@
  *
  * the version string like "1.2.3"
  */
-#define LIBXML_DOTTED_VERSION "2.6.20"
+#define LIBXML_DOTTED_VERSION "2.6.21"
 
 /**
  * LIBXML_VERSION:
  *
  * the version number: 1.2.3 value is 1002003
  */
-#define LIBXML_VERSION 20620
+#define LIBXML_VERSION 20621
 
 /**
  * LIBXML_VERSION_STRING:
  *
  * the version number string, 1.2.3 value is "1002003"
  */
-#define LIBXML_VERSION_STRING "20620"
+#define LIBXML_VERSION_STRING "20621"
 
 /**
  * LIBXML_VERSION_EXTRA:
  *
  * extra version information, used to show a CVS compilation
  */
-#define LIBXML_VERSION_EXTRA "-CVS2521"
+#define LIBXML_VERSION_EXTRA "-CVS2619"
 
 /**
  * LIBXML_TEST_VERSION:
@@ -58,7 +58,7 @@
  * 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(20620);
+#define LIBXML_TEST_VERSION xmlCheckVersion(20621);
 
 #ifndef VMS
 #if 0
@@ -331,6 +331,15 @@
 #endif
 
 /**
+ * LIBXML_EXPR_ENABLED:
+ *
+ * Whether the formal expressions interfaces are compiled in
+ */
+#if 1
+#define LIBXML_EXPR_ENABLED
+#endif
+
+/**
  * LIBXML_SCHEMAS_ENABLED:
  *
  * Whether the Schemas validation interfaces are compiled in
@@ -340,12 +349,26 @@
 #endif
 
 /**
+ * LIBXML_SCHEMATRON_ENABLED:
+ *
+ * Whether the Schematron validation interfaces are compiled in
+ */
+#if 1
+#define LIBXML_SCHEMATRON_ENABLED
+#endif
+
+/**
  * LIBXML_MODULES_ENABLED:
  *
  * Whether the module interfaces are compiled in
  */
 #if 1
 #define LIBXML_MODULES_ENABLED
+/**
+ * LIBXML_MODULE_EXTENSION:
+ *
+ * the string suffix used by dynamic modules (usually shared libraries)
+ */
 #define LIBXML_MODULE_EXTENSION ".so" 
 #endif
 

Modified: packages/libxml2/trunk/include/libxml/xmlversion.h.in
===================================================================
--- packages/libxml2/trunk/include/libxml/xmlversion.h.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xmlversion.h.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -331,6 +331,15 @@
 #endif
 
 /**
+ * LIBXML_EXPR_ENABLED:
+ *
+ * Whether the formal expressions interfaces are compiled in
+ */
+#if @WITH_SCHEMAS@
+#define LIBXML_EXPR_ENABLED
+#endif
+
+/**
  * LIBXML_SCHEMAS_ENABLED:
  *
  * Whether the Schemas validation interfaces are compiled in
@@ -340,12 +349,26 @@
 #endif
 
 /**
+ * LIBXML_SCHEMATRON_ENABLED:
+ *
+ * Whether the Schematron validation interfaces are compiled in
+ */
+#if @WITH_SCHEMATRON@
+#define LIBXML_SCHEMATRON_ENABLED
+#endif
+
+/**
  * LIBXML_MODULES_ENABLED:
  *
  * Whether the module interfaces are compiled in
  */
 #if @WITH_MODULES@
 #define LIBXML_MODULES_ENABLED
+/**
+ * LIBXML_MODULE_EXTENSION:
+ *
+ * the string suffix used by dynamic modules (usually shared libraries)
+ */
 #define LIBXML_MODULE_EXTENSION "@MODULE_EXTENSION@" 
 #endif
 

Modified: packages/libxml2/trunk/include/libxml/xpath.h
===================================================================
--- packages/libxml2/trunk/include/libxml/xpath.h	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/include/libxml/xpath.h	2005-09-05 17:42:20 UTC (rev 466)
@@ -249,6 +249,23 @@
 					 const xmlChar *ns_uri);
 
 /**
+ * xmlXPathFlags:
+ * Flags for XPath engine compilation and runtime
+ */
+/**
+ * XML_XPATH_CHECKNS:
+ *
+ * check namespaces at compilation
+ */
+#define XML_XPATH_CHECKNS (1<<0)
+/**
+ * XML_XPATH_NOVAR:
+ *
+ * forbid variables in expression
+ */
+#define XML_XPATH_NOVAR	  (1<<1)
+
+/**
  * xmlXPathContext:
  *
  * Expression evaluation occurs with respect to a context.
@@ -324,6 +341,8 @@
 
     /* dictionnary */
     xmlDictPtr dict;			/* dictionnary if any */
+
+    int flags;				/* flags to control compilation */
 };
 
 /*

Modified: packages/libxml2/trunk/libxml.spec.in
===================================================================
--- packages/libxml2/trunk/libxml.spec.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/libxml.spec.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -64,31 +64,34 @@
 # try to use compiler profiling, based on Arjan van de Ven <arjanv at redhat.com>
 # initial test spec. This really doesn't work okay for most tests done.
 #
-GCC_VERSION=`gcc --version | grep "^gcc" | awk '{ print $3 }' | sed 's+\([0-9]\)\.\([0-9]\)\..*+\1\2+'`
-if [ $GCC_VERSION -ge 34 ]
-then
-    PROF_GEN='-fprofile-generate'
-    PROF_USE='-fprofile-use'
-fi
-
-if [ "$PROF_GEN" != "" ]
-then
-    # First generate a profiling version
-    CFLAGS="${RPM_OPT_FLAGS} ${PROF_GEN}"  %configure
-    make
-    # Run a few sampling
-    make dba100000.xml
-    ./xmllint --noout  dba100000.xml
-    ./xmllint --stream  dba100000.xml
-    ./xmllint --noout --valid test/valid/REC-xml-19980210.xml
-    ./xmllint --stream --valid test/valid/REC-xml-19980210.xml
-    # Then generate code based on profile
-    CFLAGS="${RPM_OPT_FLAGS} ${PROF_USE}"  %configure
-    make
-else
-    %configure
-    make
-fi
+# Well except it's just broken most of the time.
+#GCC_VERSION=`gcc --version | grep "^gcc" | awk '{ print $3 }' | sed 's+\([0-9]\)\.\([0-9]\)\..*+\1\2+'`
+#if [ $GCC_VERSION -ge 34 ]
+#then
+#    PROF_GEN='-fprofile-generate'
+#    PROF_USE='-fprofile-use'
+#fi
+#
+#if [ "$PROF_GEN" != "" ]
+#then
+#    # First generate a profiling version
+#    CFLAGS="${RPM_OPT_FLAGS} ${PROF_GEN}"  %configure
+#    make
+#    # Run a few sampling
+#    make dba100000.xml
+#    ./xmllint --noout  dba100000.xml
+#    ./xmllint --stream  dba100000.xml
+#    ./xmllint --noout --valid test/valid/REC-xml-19980210.xml
+#    ./xmllint --stream --valid test/valid/REC-xml-19980210.xml
+#    # Then generate code based on profile
+#    CFLAGS="${RPM_OPT_FLAGS} ${PROF_USE}"  %configure
+#    make
+#else
+#    %configure
+#    make
+#fi
+%configure
+make
 gzip -9 ChangeLog
 
 %install

Modified: packages/libxml2/trunk/libxml2.spec
===================================================================
--- packages/libxml2/trunk/libxml2.spec	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/libxml2.spec	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,6 +1,6 @@
 Summary: Library providing XML and HTML support
 Name: libxml2
-Version: 2.6.20
+Version: 2.6.21
 Release: 1
 License: MIT
 Group: Development/Libraries
@@ -64,31 +64,34 @@
 # try to use compiler profiling, based on Arjan van de Ven <arjanv at redhat.com>
 # initial test spec. This really doesn't work okay for most tests done.
 #
-GCC_VERSION=`gcc --version | grep "^gcc" | awk '{ print $3 }' | sed 's+\([0-9]\)\.\([0-9]\)\..*+\1\2+'`
-if [ $GCC_VERSION -ge 34 ]
-then
-    PROF_GEN='-fprofile-generate'
-    PROF_USE='-fprofile-use'
-fi
-
-if [ "$PROF_GEN" != "" ]
-then
-    # First generate a profiling version
-    CFLAGS="${RPM_OPT_FLAGS} ${PROF_GEN}"  %configure
-    make
-    # Run a few sampling
-    make dba100000.xml
-    ./xmllint --noout  dba100000.xml
-    ./xmllint --stream  dba100000.xml
-    ./xmllint --noout --valid test/valid/REC-xml-19980210.xml
-    ./xmllint --stream --valid test/valid/REC-xml-19980210.xml
-    # Then generate code based on profile
-    CFLAGS="${RPM_OPT_FLAGS} ${PROF_USE}"  %configure
-    make
-else
-    %configure
-    make
-fi
+# Well except it's just broken most of the time.
+#GCC_VERSION=`gcc --version | grep "^gcc" | awk '{ print $3 }' | sed 's+\([0-9]\)\.\([0-9]\)\..*+\1\2+'`
+#if [ $GCC_VERSION -ge 34 ]
+#then
+#    PROF_GEN='-fprofile-generate'
+#    PROF_USE='-fprofile-use'
+#fi
+#
+#if [ "$PROF_GEN" != "" ]
+#then
+#    # First generate a profiling version
+#    CFLAGS="${RPM_OPT_FLAGS} ${PROF_GEN}"  %configure
+#    make
+#    # Run a few sampling
+#    make dba100000.xml
+#    ./xmllint --noout  dba100000.xml
+#    ./xmllint --stream  dba100000.xml
+#    ./xmllint --noout --valid test/valid/REC-xml-19980210.xml
+#    ./xmllint --stream --valid test/valid/REC-xml-19980210.xml
+#    # Then generate code based on profile
+#    CFLAGS="${RPM_OPT_FLAGS} ${PROF_USE}"  %configure
+#    make
+#else
+#    %configure
+#    make
+#fi
+%configure
+make
 gzip -9 ChangeLog
 
 %install
@@ -150,8 +153,8 @@
 %doc doc/python.html
 
 %changelog
-* Mon Jul 11 2005 Daniel Veillard <veillard at redhat.com>
-- upstream release 2.6.20 see http://xmlsoft.org/news.html
+* Sun Sep  4 2005 Daniel Veillard <veillard at redhat.com>
+- upstream release 2.6.21 see http://xmlsoft.org/news.html
 
 * Thu Jan  2 2003 Daniel Veillard <veillard at redhat.com>
 - integrated drv_libxml2 xml.sax driver from Stéphane Bidoul

Modified: packages/libxml2/trunk/nanoftp.c
===================================================================
--- packages/libxml2/trunk/nanoftp.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/nanoftp.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -316,7 +316,7 @@
     }
     if (URL == NULL) return;
 
-    uri = xmlParseURI(URL);
+    uri = xmlParseURIRaw(URL, 1);
     if (uri == NULL)
 	return;
 
@@ -377,7 +377,7 @@
     if (ctxt->hostname == NULL)
 	return(-1);
 
-    uri = xmlParseURI(URL);
+    uri = xmlParseURIRaw(URL, 1);
     if (uri == NULL)
 	return(-1);
 
@@ -440,7 +440,7 @@
 #endif
     if (URL == NULL) return;
 
-    uri = xmlParseURI(URL);
+    uri = xmlParseURIRaw(URL, 1);
     if ((uri == NULL) || (uri->scheme == NULL) ||
 	(strcmp(uri->scheme, "ftp")) || (uri->server == NULL)) {
 	__xmlIOErr(XML_FROM_FTP, XML_FTP_URL_SYNTAX, "Syntax Error\n");
@@ -944,7 +944,7 @@
 	((struct sockaddr_in *)&ctxt->ftpAddr)->sin_family = AF_INET;
 	memcpy (&((struct sockaddr_in *)&ctxt->ftpAddr)->sin_addr,
 		hp->h_addr_list[0], hp->h_length);
-	((struct sockaddr_in *)&ctxt->ftpAddr)->sin_port = htons (port);
+	((struct sockaddr_in *)&ctxt->ftpAddr)->sin_port = (u_short)htons ((unsigned short)port);
 	ctxt->controlFd = socket (AF_INET, SOCK_STREAM, 0);
 	addrlen = sizeof (struct sockaddr_in);
     }

Modified: packages/libxml2/trunk/nanohttp.c
===================================================================
--- packages/libxml2/trunk/nanohttp.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/nanohttp.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -248,8 +248,10 @@
 
 void
 xmlNanoHTTPCleanup(void) {
-    if (proxy != NULL)
+    if (proxy != NULL) {
 	xmlFree(proxy);
+	proxy = NULL;
+    }
 #ifdef _WINSOCKAPI_
     if (initialized)
 	WSACleanup();
@@ -291,7 +293,7 @@
     }
     if (URL == NULL) return;
 
-    uri = xmlParseURI(URL);
+    uri = xmlParseURIRaw(URL, 1);
     if (uri == NULL)
 	return;
 
@@ -344,7 +346,7 @@
 #endif
     if (URL == NULL) return;
 
-    uri = xmlParseURI(URL);
+    uri = xmlParseURIRaw(URL, 1);
     if ((uri == NULL) || (uri->scheme == NULL) ||
 	(strcmp(uri->scheme, "http")) || (uri->server == NULL)) {
 	__xmlIOErr(XML_FROM_HTTP, XML_HTTP_URL_SYNTAX, "Syntax Error\n");
@@ -460,7 +462,14 @@
 		tv.tv_sec = timeout;
 		tv.tv_usec = 0;
 		FD_ZERO( &wfd );
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 4018)
+#endif
 		FD_SET( ctxt->fd, &wfd );
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
 		(void)select( ctxt->fd + 1, NULL, &wfd, NULL, &tv );
 	    }
 	}
@@ -553,7 +562,14 @@
 	tv.tv_sec = timeout;
 	tv.tv_usec = 0;
 	FD_ZERO(&rfd);
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 4018)
+#endif
 	FD_SET(ctxt->fd, &rfd);
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
 	
 	if ( (select(ctxt->fd+1, &rfd, NULL, NULL, &tv)<1)
 #if defined(EINTR)
@@ -839,7 +855,11 @@
     
     tv.tv_sec = timeout;
     tv.tv_usec = 0;
-    
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 4018)
+#endif
     FD_ZERO(&wfd);
     FD_SET(s, &wfd);
 
@@ -851,6 +871,9 @@
 #else
     switch(select(s+1, NULL, &wfd, NULL, &tv))
 #endif
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
     {
 	case 0:
 	    /* Time out */
@@ -1034,7 +1057,7 @@
 		memcpy (&ia, h->h_addr_list[i], h->h_length);
 		sockin.sin_family = h->h_addrtype;
 		sockin.sin_addr = ia;
-		sockin.sin_port = htons (port);
+		sockin.sin_port = (u_short)htons ((unsigned short)port);
 		addr = (struct sockaddr *) &sockin;
 #ifdef SUPPORT_IP6
 	    } else if (have_ipv6 () && (h->h_addrtype == AF_INET6)) {

Modified: packages/libxml2/trunk/parser.c
===================================================================
--- packages/libxml2/trunk/parser.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/parser.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -583,6 +583,212 @@
 
 /************************************************************************
  *									*
+ * 		Library wide options					*
+ *									*
+ ************************************************************************/
+
+/**
+  * xmlHasFeature:
+  * @feature: the feature to be examined
+  *
+  * Examines if the library has been compiled with a given feature.
+  *
+  * Returns a non-zero value if the feature exist, otherwise zero.
+  * Returns zero (0) if the feature does not exist or an unknown
+  * unknown feature is requested, non-zero otherwise.
+  */
+int
+xmlHasFeature(xmlFeature feature)
+{
+    switch (feature) {
+	case XML_FEATURE_THREAD:
+#ifdef LIBXML_THREAD_ENABLED
+	    return(1);
+#else
+	    return(0);
+#endif
+        case XML_FEATURE_TREE:
+#ifdef LIBXML_TREE_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_OUTPUT:
+#ifdef LIBXML_OUTPUT_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_PUSH:
+#ifdef LIBXML_PUSH_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_READER:
+#ifdef LIBXML_READER_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_PATTERN:
+#ifdef LIBXML_PATTERN_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_WRITER:
+#ifdef LIBXML_WRITER_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_SAX1:
+#ifdef LIBXML_SAX1_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_FTP:
+#ifdef LIBXML_FTP_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_HTTP:
+#ifdef LIBXML_HTTP_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_VALID:
+#ifdef LIBXML_VALID_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_HTML:
+#ifdef LIBXML_HTML_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_LEGACY:
+#ifdef LIBXML_LEGACY_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_C14N:
+#ifdef LIBXML_C14N_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_CATALOG:
+#ifdef LIBXML_CATALOG_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_XPATH:
+#ifdef LIBXML_XPATH_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_XPTR:
+#ifdef LIBXML_XPTR_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_XINCLUDE:
+#ifdef LIBXML_XINCLUDE_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_ICONV:
+#ifdef LIBXML_ICONV_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_ISO8859X:
+#ifdef LIBXML_ISO8859X_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_UNICODE:
+#ifdef LIBXML_UNICODE_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_REGEXP:
+#ifdef LIBXML_REGEXP_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_AUTOMATA:
+#ifdef LIBXML_AUTOMATA_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_EXPR:
+#ifdef LIBXML_EXPR_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_SCHEMAS:
+#ifdef LIBXML_SCHEMAS_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_SCHEMATRON:
+#ifdef LIBXML_SCHEMATRON_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_MODULES:
+#ifdef LIBXML_MODULES_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_DEBUG:
+#ifdef LIBXML_DEBUG_ENABLED
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_DEBUG_MEM:
+#ifdef DEBUG_MEMORY_LOCATION
+            return(1);
+#else
+            return(0);
+#endif
+        case XML_FEATURE_DEBUG_RUN:
+#ifdef LIBXML_DEBUG_RUNTIME
+            return(1);
+#else
+            return(0);
+#endif 
+        default:
+	    break;
+     }
+     return(0);
+}
+
+/************************************************************************
+ *									*
  * 		SAX2 defaulted attributes handling			*
  *									*
  ************************************************************************/
@@ -684,7 +890,7 @@
     }
 
     /*
-     * plit the element name into prefix:localname , the string found
+     * Split the element name into prefix:localname , the string found
      * are within the DTD and hen not associated to namespace names.
      */
     name = xmlSplitQName3(fullattr, &len);
@@ -984,14 +1190,14 @@
     if (ctxt == NULL)
         return(NULL);
     if (ctxt->inputNr <= 0)
-        return (0);
+        return (NULL);
     ctxt->inputNr--;
     if (ctxt->inputNr > 0)
         ctxt->input = ctxt->inputTab[ctxt->inputNr - 1];
     else
         ctxt->input = NULL;
     ret = ctxt->inputTab[ctxt->inputNr];
-    ctxt->inputTab[ctxt->inputNr] = 0;
+    ctxt->inputTab[ctxt->inputNr] = NULL;
     return (ret);
 }
 /**
@@ -1053,7 +1259,7 @@
     else
         ctxt->node = NULL;
     ret = ctxt->nodeTab[ctxt->nodeNr];
-    ctxt->nodeTab[ctxt->nodeNr] = 0;
+    ctxt->nodeTab[ctxt->nodeNr] = NULL;
     return (ret);
 }
 
@@ -1118,7 +1324,7 @@
     const xmlChar *ret;
 
     if (ctxt->nameNr <= 0)
-        return (0);
+        return (NULL);
     ctxt->nameNr--;
     if (ctxt->nameNr > 0)
         ctxt->name = ctxt->nameTab[ctxt->nameNr - 1];
@@ -1184,7 +1390,7 @@
     else
         ctxt->name = NULL;
     ret = ctxt->nameTab[ctxt->nameNr];
-    ctxt->nameTab[ctxt->nameNr] = 0;
+    ctxt->nameTab[ctxt->nameNr] = NULL;
     return (ret);
 }
 
@@ -2467,6 +2673,8 @@
 	NEXTL(l);
 	c = CUR_CHAR(l);
     }
+    if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r'))
+        return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len));
     return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
 }
 
@@ -3166,6 +3374,45 @@
 }
 
 void xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata);
+
+/*
+ * used for the test in the inner loop of the char data testing
+ */
+static const unsigned char test_char_data[256] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9, CR/LF separated */
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x00, 0x27, /* & */
+    0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+    0x38, 0x39, 0x3A, 0x3B, 0x00, 0x3D, 0x3E, 0x3F, /* < */
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+    0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+    0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x00, 0x5E, 0x5F, /* ] */
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+    0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+    0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* non-ascii */
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
 /**
  * xmlParseCharData:
  * @ctxt:  an XML parser context
@@ -3237,14 +3484,10 @@
 
 get_more:
             ccol = ctxt->input->col;
-	    while (((*in > ']') && (*in <= 0x7F)) ||
-	           ((*in > '&') && (*in < '<')) ||
-	           ((*in > '<') && (*in < ']')) ||
-		   ((*in >= 0x20) && (*in < '&')) ||
-		   (*in == 0x09)) {
-			in++;
-			ccol++;
-		}
+	    while (test_char_data[*in]) {
+		in++;
+		ccol++;
+	    }
 	    ctxt->input->col = ccol;
 	    if (*in == 0xA) {
 		ctxt->input->line++; ctxt->input->col = 1;
@@ -6063,6 +6306,11 @@
 		    } else {
 		        xmlErrMsgStr(ctxt, XML_WAR_UNDECLARED_ENTITY,
 				 "Entity '%s' not defined\n", name);
+			if ((ctxt->inSubset == 0) &&
+		            (ctxt->sax != NULL) &&
+		            (ctxt->sax->reference != NULL)) {
+			    ctxt->sax->reference(ctxt, name);
+			}
 		    }
 		    ctxt->valid = 0;
 		}
@@ -11277,8 +11525,9 @@
 	*lst = cur;
 	while (cur != NULL) {
 #ifdef LIBXML_VALID_ENABLED
-	    if (oldctxt->validate && oldctxt->wellFormed &&
-		oldctxt->myDoc && oldctxt->myDoc->intSubset) {
+	    if ((oldctxt->validate) && (oldctxt->wellFormed) &&
+		(oldctxt->myDoc) && (oldctxt->myDoc->intSubset) &&
+		(cur->type == XML_ELEMENT_NODE)) {
 		oldctxt->valid &= xmlValidateElement(&oldctxt->vctxt,
 			oldctxt->myDoc, cur);
 	    }
@@ -12419,7 +12668,7 @@
 #include <libxml/xpath.h>
 #endif
 
-extern void xmlGenericErrorDefaultFunc(void *ctx, const char *msg, ...);
+extern void XMLCDECL xmlGenericErrorDefaultFunc(void *ctx, const char *msg, ...);
 static int xmlParserInitialized = 0;
 
 /**
@@ -12801,6 +13050,10 @@
 	ctxt->options |= XML_PARSE_NONET;
         options -= XML_PARSE_NONET;
     }
+    if (options & XML_PARSE_COMPACT) {
+	ctxt->options |= XML_PARSE_COMPACT;
+        options -= XML_PARSE_COMPACT;
+    }
     ctxt->linenumbers = 1;
     return (options);
 }

Modified: packages/libxml2/trunk/parserInternals.c
===================================================================
--- packages/libxml2/trunk/parserInternals.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/parserInternals.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -728,7 +728,7 @@
     {
         char buffer[150];
 
-	snprintf(buffer, 149, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
+	snprintf(&buffer[0], 149, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
 			ctxt->input->cur[0], ctxt->input->cur[1],
 			ctxt->input->cur[2], ctxt->input->cur[3]);
 	__xmlErrEncoding(ctxt, XML_ERR_INVALID_CHAR,
@@ -1794,7 +1794,7 @@
  */
 
 xmlParserCtxtPtr
-xmlNewParserCtxt()
+xmlNewParserCtxt(void)
 {
     xmlParserCtxtPtr ctxt;
 

Modified: packages/libxml2/trunk/pattern.c
===================================================================
--- packages/libxml2/trunk/pattern.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/pattern.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -139,7 +139,7 @@
     xmlDictPtr dict;		/* the optional dictionary */
     struct _xmlPattern *next;	/* next pattern if | is used */
     const xmlChar *pattern;	/* the pattern */
-    xmlPatternFlags flags;	/* flags */
+    int flags;			/* flags */
     int nbStep;
     int maxStep;
     xmlStepOpPtr steps;        /* ops for computation */
@@ -905,20 +905,26 @@
 	* This is a namespace match
 	*/
 	token = xmlPatScanName(ctxt);
-	for (i = 0;i < ctxt->nb_namespaces;i++) {
-	    if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) {
-		URL = xmlStrdup(ctxt->namespaces[2 * i]);
-		break;
+	if ((prefix[0] == 'x') &&
+	    (prefix[1] == 'm') &&
+	    (prefix[2] == 'l') &&
+	    (prefix[3] == 0)) {
+	    URL = xmlStrdup(XML_XML_NAMESPACE);
+	} else {
+	    for (i = 0;i < ctxt->nb_namespaces;i++) {
+		if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) {
+		    URL = xmlStrdup(ctxt->namespaces[2 * i]);
+		    break;
+		}
 	    }
+	    if (i >= ctxt->nb_namespaces) {
+		ERROR5(NULL, NULL, NULL,
+		    "xmlCompileAttributeTest : no namespace bound to prefix %s\n",
+		    prefix);
+		ctxt->error = 1;	    
+		goto error;
+	    }
 	}
-	if (i >= ctxt->nb_namespaces) {
-	    ERROR5(NULL, NULL, NULL,
-		"xmlCompileAttributeTest : no namespace bound to prefix %s\n",
-		prefix);
-	    ctxt->error = 1;	    
-	    goto error;
-	}
-	
 	xmlFree(prefix);
 	if (token == NULL) {
 	    if (CUR == '*') {
@@ -998,19 +1004,26 @@
 	     * This is a namespace match
 	     */
 	    token = xmlPatScanName(ctxt);
-	    for (i = 0;i < ctxt->nb_namespaces;i++) {
-	        if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) {
-		    URL = xmlStrdup(ctxt->namespaces[2 * i]);
-		    break;
+	    if ((prefix[0] == 'x') &&
+		(prefix[1] == 'm') &&
+		(prefix[2] == 'l') &&
+		(prefix[3] == 0)) {
+		URL = xmlStrdup(XML_XML_NAMESPACE);
+	    } else {
+		for (i = 0;i < ctxt->nb_namespaces;i++) {
+		    if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) {
+			URL = xmlStrdup(ctxt->namespaces[2 * i]);
+			break;
+		    }
 		}
+		if (i >= ctxt->nb_namespaces) {
+		    ERROR5(NULL, NULL, NULL,
+			"xmlCompileStepPattern : no namespace bound to prefix %s\n",
+			prefix);
+		    ctxt->error = 1;
+		    goto error;
+		}
 	    }
-	    if (i >= ctxt->nb_namespaces) {
-		ERROR5(NULL, NULL, NULL,
-		    "xmlCompileStepPattern : no namespace bound to prefix %s\n",
-		    prefix);
-		ctxt->error = 1;
-		goto error;
-	    }
 	    xmlFree(prefix);
 	    if (token == NULL) {
 		if (CUR == '*') {
@@ -1051,19 +1064,26 @@
 		    * This is a namespace match
 		    */
 		    token = xmlPatScanName(ctxt);
-		    for (i = 0;i < ctxt->nb_namespaces;i++) {
-			if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) {
-			    URL = xmlStrdup(ctxt->namespaces[2 * i]);
-			    break;
+		    if ((prefix[0] == 'x') &&
+			(prefix[1] == 'm') &&
+			(prefix[2] == 'l') &&
+			(prefix[3] == 0)) {
+			URL = xmlStrdup(XML_XML_NAMESPACE);
+		    } else {
+			for (i = 0;i < ctxt->nb_namespaces;i++) {
+			    if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) {
+				URL = xmlStrdup(ctxt->namespaces[2 * i]);
+				break;
+			    }
 			}
+			if (i >= ctxt->nb_namespaces) {
+			    ERROR5(NULL, NULL, NULL,
+				"xmlCompileStepPattern : no namespace bound "
+				"to prefix %s\n", prefix);
+			    ctxt->error = 1;
+			    goto error;
+			}
 		    }
-		    if (i >= ctxt->nb_namespaces) {
-			ERROR5(NULL, NULL, NULL,
-			    "xmlCompileStepPattern : no namespace bound "
-			    	"to prefix %s\n", prefix);
-			ctxt->error = 1;
-			goto error;
-		    }
 		    xmlFree(prefix);
 		    if (token == NULL) {
 			if (CUR == '*') {
@@ -1615,6 +1635,14 @@
 	*/
 	if (comp->nbStep == 0) {
 	    /*
+	     * / and . are handled at the XPath node set creation
+	     * level by checking min depth
+	     */
+	    if (stream->flags & XML_PATTERN_XPATH) {
+		stream = stream->next;
+		continue; /* while */
+	    }
+	    /*
 	    * For non-pattern like evaluation like XML Schema IDCs
 	    * or traditional XPath expressions, this will match if
 	    * we are at the first level only, otherwise on every level.
@@ -1934,7 +1962,7 @@
  * xmlPatterncompile:
  * @pattern: the pattern to compile
  * @dict: an optional dictionary for interned strings
- * @flags: compilation flags, undefined yet
+ * @flags: compilation flags, see xmlPatternFlags
  * @namespaces: the prefix definitions, array of [URI, prefix] or NULL
  *
  * Compile a pattern.
@@ -1942,8 +1970,7 @@
  * Returns the compiled form of the pattern or NULL in case of error
  */
 xmlPatternPtr
-xmlPatterncompile(const xmlChar *pattern, xmlDict *dict,
-                  xmlPatternFlags flags,
+xmlPatterncompile(const xmlChar *pattern, xmlDict *dict, int flags,
                   const xmlChar **namespaces) {
     xmlPatternPtr ret = NULL, cur;
     xmlPatParserContextPtr ctxt = NULL;
@@ -2138,7 +2165,33 @@
 	comp = comp->next;
     }
     return(ret);
+}
 
+/**
+ * xmlPatternMinDepth:
+ * @comp: the precompiled pattern
+ *
+ * Check the minimum depth reachable by a pattern, 0 mean the / or . are
+ * part of the set.
+ *
+ * Returns -1 in case of error otherwise the depth,
+ *         
+ */
+int
+xmlPatternMinDepth(xmlPatternPtr comp) {
+    int ret = 12345678;
+    if (comp == NULL)
+        return(-1);
+    while (comp != NULL) {
+        if (comp->stream == NULL)
+	    return(-1);
+	if (comp->stream->nbStep < ret)
+	    ret = comp->stream->nbStep;
+	if (ret == 0)
+	    return(0);
+	comp = comp->next;
+    }
+    return(ret);
 }
 
 /**

Modified: packages/libxml2/trunk/python/Makefile.in
===================================================================
--- packages/libxml2/trunk/python/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/python/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -189,6 +189,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -224,6 +225,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@

Modified: packages/libxml2/trunk/python/generator.py
===================================================================
--- packages/libxml2/trunk/python/generator.py	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/python/generator.py	2005-09-05 17:42:20 UTC (rev 466)
@@ -1055,7 +1055,7 @@
 		   classes_ancestor[classname] == "xmlNode":
 		    classes.write("    def __repr__(self):\n")
 		    format = "<%s (%%s) object at 0x%%x>" % (classname)
-		    classes.write("        return \"%s\" %% (self.name, id (self))\n\n" % (
+		    classes.write("        return \"%s\" %% (self.name, long(id (self)))\n\n" % (
 				  format))
 	    else:
 		txt.write("Class %s()\n" % (classname))

Modified: packages/libxml2/trunk/python/libxml.c
===================================================================
--- packages/libxml2/trunk/python/libxml.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/python/libxml.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -681,8 +681,12 @@
 		    result = xmlNewIOInputStream(ctxt, buf,
 			                         XML_CHAR_ENCODING_NONE);
 		}
+#if 0
 	    } else {
-		printf("pythonExternalEntityLoader: can't read\n");
+		if (URL != NULL)
+		    printf("pythonExternalEntityLoader: can't read %s\n",
+		           URL);
+#endif
 	    }
 	    if (result == NULL) {
 		Py_DECREF(ret);
@@ -2529,6 +2533,7 @@
 
                 res = attr->parent;
             }
+	    break;
         case XML_ENTITY_DECL:
         case XML_NAMESPACE_DECL:
         case XML_XINCLUDE_START:

Modified: packages/libxml2/trunk/python/libxml2-py.c
===================================================================
--- packages/libxml2/trunk/python/libxml2-py.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/python/libxml2-py.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -951,22 +951,18 @@
 }
 
 #endif /* defined(LIBXML_READER_ENABLED) */
-#if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
-libxml_xmlUCSIsKhmerSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    PyObject *py_retval;
-    int c_retval;
-    int code;
+libxml_xmlCheckVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    int version;
 
-    if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKhmerSymbols", &code))
+    if (!PyArg_ParseTuple(args, (char *)"i:xmlCheckVersion", &version))
         return(NULL);
 
-    c_retval = xmlUCSIsKhmerSymbols(code);
-    py_retval = libxml_intWrap((int) c_retval);
-    return(py_retval);
+    xmlCheckVersion(version);
+    Py_INCREF(Py_None);
+    return(Py_None);
 }
 
-#endif /* defined(LIBXML_UNICODE_ENABLED) */
 PyObject *
 libxml_xmlParseMarkupDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     xmlParserCtxtPtr ctxt;
@@ -1198,22 +1194,28 @@
 }
 
 #endif /* defined(LIBXML_HTTP_ENABLED) */
-#if defined(LIBXML_XPATH_ENABLED)
 PyObject *
-libxml_xmlXPathNewFloat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+libxml_xmlStringLenDecodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
-    xmlXPathObjectPtr c_retval;
-    double val;
+    xmlChar * c_retval;
+    xmlParserCtxtPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlChar * str;
+    int len;
+    int what;
+    xmlChar end;
+    xmlChar end2;
+    xmlChar end3;
 
-    if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathNewFloat", &val))
+    if (!PyArg_ParseTuple(args, (char *)"Oziiccc:xmlStringLenDecodeEntities", &pyobj_ctxt, &str, &len, &what, &end, &end2, &end3))
         return(NULL);
+    ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt);
 
-    c_retval = xmlXPathNewFloat(val);
-    py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval);
+    c_retval = xmlStringLenDecodeEntities(ctxt, str, len, what, end, end2, end3);
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
     return(py_retval);
 }
 
-#endif /* defined(LIBXML_XPATH_ENABLED) */
 #if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
 libxml_xmlUCSIsCatCc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -2943,13 +2945,17 @@
 #endif /* defined(LIBXML_HTML_ENABLED) */
 #if defined(LIBXML_CATALOG_ENABLED)
 PyObject *
-libxml_xmlCatalogConvert(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
-    PyObject *py_retval;
-    int c_retval;
+libxml_xmlFreeCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlCatalogPtr catal;
+    PyObject *pyobj_catal;
 
-    c_retval = xmlCatalogConvert();
-    py_retval = libxml_intWrap((int) c_retval);
-    return(py_retval);
+    if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeCatalog", &pyobj_catal))
+        return(NULL);
+    catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal);
+
+    xmlFreeCatalog(catal);
+    Py_INCREF(Py_None);
+    return(Py_None);
 }
 
 #endif /* defined(LIBXML_CATALOG_ENABLED) */
@@ -3334,20 +3340,6 @@
 }
 
 #endif /* defined(LIBXML_HTML_ENABLED) */
-PyObject *
-libxml_xmlSubstituteEntitiesDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    PyObject *py_retval;
-    int c_retval;
-    int val;
-
-    if (!PyArg_ParseTuple(args, (char *)"i:xmlSubstituteEntitiesDefault", &val))
-        return(NULL);
-
-    c_retval = xmlSubstituteEntitiesDefault(val);
-    py_retval = libxml_intWrap((int) c_retval);
-    return(py_retval);
-}
-
 #if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
 libxml_xmlUCSIsGreek(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -3501,22 +3493,16 @@
 }
 
 #endif /* defined(LIBXML_HTTP_ENABLED) */
-#if defined(LIBXML_UNICODE_ENABLED)
+#if defined(LIBXML_SCHEMAS_ENABLED)
 PyObject *
-libxml_xmlUCSIsCatMc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    PyObject *py_retval;
-    int c_retval;
-    int code;
+libxml_xmlRelaxNGCleanupTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
 
-    if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatMc", &code))
-        return(NULL);
-
-    c_retval = xmlUCSIsCatMc(code);
-    py_retval = libxml_intWrap((int) c_retval);
-    return(py_retval);
+    xmlRelaxNGCleanupTypes();
+    Py_INCREF(Py_None);
+    return(Py_None);
 }
 
-#endif /* defined(LIBXML_UNICODE_ENABLED) */
+#endif /* defined(LIBXML_SCHEMAS_ENABLED) */
 PyObject *
 libxml_xmlStringLenGetNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
@@ -4290,7 +4276,24 @@
     return(py_retval);
 }
 
+#if defined(LIBXML_XPATH_ENABLED)
 PyObject *
+libxml_xmlXPathNamespaceURIFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNamespaceURIFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xmlXPathNamespaceURIFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+#endif /* defined(LIBXML_XPATH_ENABLED) */
+PyObject *
 libxml_xmlURISetScheme(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     xmlURIPtr URI;
     PyObject *pyobj_URI;
@@ -4995,18 +4998,22 @@
 }
 
 #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
+#if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
-libxml_xmlCheckVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    int version;
+libxml_xmlUCSIsKhmerSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    int code;
 
-    if (!PyArg_ParseTuple(args, (char *)"i:xmlCheckVersion", &version))
+    if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKhmerSymbols", &code))
         return(NULL);
 
-    xmlCheckVersion(version);
-    Py_INCREF(Py_None);
-    return(Py_None);
+    c_retval = xmlUCSIsKhmerSymbols(code);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
 }
 
+#endif /* defined(LIBXML_UNICODE_ENABLED) */
 #if defined(LIBXML_REGEXP_ENABLED)
 PyObject *
 libxml_xmlRegFreeRegexp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -5396,6 +5403,20 @@
 }
 
 #endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */
+PyObject *
+libxml_xmlCheckFilename(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    char * path;
+
+    if (!PyArg_ParseTuple(args, (char *)"z:xmlCheckFilename", &path))
+        return(NULL);
+
+    c_retval = xmlCheckFilename(path);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
 #if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
 PyObject *
 libxml_xmlTextReaderRelaxNGValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -5546,16 +5567,22 @@
 }
 
 #endif /* defined(LIBXML_UNICODE_ENABLED) */
-#if defined(LIBXML_SCHEMAS_ENABLED)
+#if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
-libxml_xmlRelaxNGCleanupTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+libxml_xmlUCSIsCatMc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    int code;
 
-    xmlRelaxNGCleanupTypes();
-    Py_INCREF(Py_None);
-    return(Py_None);
+    if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatMc", &code))
+        return(NULL);
+
+    c_retval = xmlUCSIsCatMc(code);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
 }
 
-#endif /* defined(LIBXML_SCHEMAS_ENABLED) */
+#endif /* defined(LIBXML_UNICODE_ENABLED) */
 #if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
 libxml_xmlUCSIsCatMe(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -5642,24 +5669,7 @@
     return(py_retval);
 }
 
-#if defined(LIBXML_XPATH_ENABLED)
 PyObject *
-libxml_xmlXPathNamespaceURIFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    xmlXPathParserContextPtr ctxt;
-    PyObject *pyobj_ctxt;
-    int nargs;
-
-    if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNamespaceURIFunction", &pyobj_ctxt, &nargs))
-        return(NULL);
-    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
-
-    xmlXPathNamespaceURIFunction(ctxt, nargs);
-    Py_INCREF(Py_None);
-    return(Py_None);
-}
-
-#endif /* defined(LIBXML_XPATH_ENABLED) */
-PyObject *
 libxml_xmlCtxtReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
     xmlDocPtr c_retval;
@@ -5679,6 +5689,20 @@
     return(py_retval);
 }
 
+PyObject *
+libxml_xmlSubstituteEntitiesDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    int val;
+
+    if (!PyArg_ParseTuple(args, (char *)"i:xmlSubstituteEntitiesDefault", &val))
+        return(NULL);
+
+    c_retval = xmlSubstituteEntitiesDefault(val);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
 #if defined(LIBXML_READER_ENABLED)
 PyObject *
 libxml_xmlTextReaderQuoteChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -5817,20 +5841,6 @@
     return(py_retval);
 }
 
-PyObject *
-libxml_xmlCheckFilename(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    PyObject *py_retval;
-    int c_retval;
-    char * path;
-
-    if (!PyArg_ParseTuple(args, (char *)"z:xmlCheckFilename", &path))
-        return(NULL);
-
-    c_retval = xmlCheckFilename(path);
-    py_retval = libxml_intWrap((int) c_retval);
-    return(py_retval);
-}
-
 #if defined(LIBXML_XPATH_ENABLED)
 PyObject *
 libxml_xmlXPathFloorFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -7406,6 +7416,22 @@
 #endif /* defined(LIBXML_XPATH_ENABLED) */
 #if defined(LIBXML_XPATH_ENABLED)
 PyObject *
+libxml_xmlXPathNewFloat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlXPathObjectPtr c_retval;
+    double val;
+
+    if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathNewFloat", &val))
+        return(NULL);
+
+    c_retval = xmlXPathNewFloat(val);
+    py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval);
+    return(py_retval);
+}
+
+#endif /* defined(LIBXML_XPATH_ENABLED) */
+#if defined(LIBXML_XPATH_ENABLED)
+PyObject *
 libxml_xmlXPathNewString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
     xmlXPathObjectPtr c_retval;
@@ -7982,28 +8008,6 @@
 }
 
 #endif /* defined(LIBXML_FTP_ENABLED) */
-PyObject *
-libxml_xmlStringLenDecodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    PyObject *py_retval;
-    xmlChar * c_retval;
-    xmlParserCtxtPtr ctxt;
-    PyObject *pyobj_ctxt;
-    xmlChar * str;
-    int len;
-    int what;
-    xmlChar end;
-    xmlChar end2;
-    xmlChar end3;
-
-    if (!PyArg_ParseTuple(args, (char *)"Oziiccc:xmlStringLenDecodeEntities", &pyobj_ctxt, &str, &len, &what, &end, &end2, &end3))
-        return(NULL);
-    ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt);
-
-    c_retval = xmlStringLenDecodeEntities(ctxt, str, len, what, end, end2, end3);
-    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
-    return(py_retval);
-}
-
 #if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
 libxml_xmlUCSIsCJKUnifiedIdeographsExtensionA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -8421,20 +8425,28 @@
 }
 
 #endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
 PyObject *
-libxml_xmlCharStrdup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+libxml_xmlUnsetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
-    xmlChar * c_retval;
-    char * cur;
+    int c_retval;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlNsPtr ns;
+    PyObject *pyobj_ns;
+    xmlChar * name;
 
-    if (!PyArg_ParseTuple(args, (char *)"z:xmlCharStrdup", &cur))
+    if (!PyArg_ParseTuple(args, (char *)"OOz:xmlUnsetNsProp", &pyobj_node, &pyobj_ns, &name))
         return(NULL);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+    ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns);
 
-    c_retval = xmlCharStrdup(cur);
-    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    c_retval = xmlUnsetNsProp(node, ns, name);
+    py_retval = libxml_intWrap((int) c_retval);
     return(py_retval);
 }
 
+#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
 #if defined(LIBXML_OUTPUT_ENABLED)
 PyObject *
 libxml_xmlElemDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -9319,22 +9331,22 @@
     return(py_retval);
 }
 
+#if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
-libxml_namePop(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+libxml_xmlUCSIsEthiopic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
-    const xmlChar * c_retval;
-    xmlParserCtxtPtr ctxt;
-    PyObject *pyobj_ctxt;
+    int c_retval;
+    int code;
 
-    if (!PyArg_ParseTuple(args, (char *)"O:namePop", &pyobj_ctxt))
+    if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsEthiopic", &code))
         return(NULL);
-    ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt);
 
-    c_retval = namePop(ctxt);
-    py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval);
+    c_retval = xmlUCSIsEthiopic(code);
+    py_retval = libxml_intWrap((int) c_retval);
     return(py_retval);
 }
 
+#endif /* defined(LIBXML_UNICODE_ENABLED) */
 PyObject *
 libxml_xmlParseContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     xmlParserCtxtPtr ctxt;
@@ -9733,22 +9745,6 @@
     return(Py_None);
 }
 
-PyObject *
-libxml_xmlErrorGetLevel(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    PyObject *py_retval;
-    int c_retval;
-    xmlErrorPtr Error;
-    PyObject *pyobj_Error;
-
-    if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetLevel", &pyobj_Error))
-        return(NULL);
-    Error = (xmlErrorPtr) PyError_Get(pyobj_Error);
-
-    c_retval = Error->level;
-    py_retval = libxml_intWrap((int) c_retval);
-    return(py_retval);
-}
-
 #if defined(LIBXML_XPATH_ENABLED)
 PyObject *
 libxml_xmlXPathNewParserContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -11866,22 +11862,22 @@
     return(Py_None);
 }
 
-#if defined(LIBXML_UNICODE_ENABLED)
 PyObject *
-libxml_xmlUCSIsEthiopic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+libxml_namePop(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
-    int c_retval;
-    int code;
+    const xmlChar * c_retval;
+    xmlParserCtxtPtr ctxt;
+    PyObject *pyobj_ctxt;
 
-    if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsEthiopic", &code))
+    if (!PyArg_ParseTuple(args, (char *)"O:namePop", &pyobj_ctxt))
         return(NULL);
+    ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt);
 
-    c_retval = xmlUCSIsEthiopic(code);
-    py_retval = libxml_intWrap((int) c_retval);
+    c_retval = namePop(ctxt);
+    py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval);
     return(py_retval);
 }
 
-#endif /* defined(LIBXML_UNICODE_ENABLED) */
 #if defined(LIBXML_HTML_ENABLED)
 PyObject *
 libxml_htmlParseFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -12479,6 +12475,21 @@
     return(py_retval);
 }
 
+PyObject *
+libxml_xmlParseURIRaw(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlURIPtr c_retval;
+    char * str;
+    int raw;
+
+    if (!PyArg_ParseTuple(args, (char *)"zi:xmlParseURIRaw", &str, &raw))
+        return(NULL);
+
+    c_retval = xmlParseURIRaw(str, raw);
+    py_retval = libxml_xmlURIPtrWrap((xmlURIPtr) c_retval);
+    return(py_retval);
+}
+
 #if defined(LIBXML_CATALOG_ENABLED)
 PyObject *
 libxml_xmlACatalogResolvePublic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -12514,17 +12525,13 @@
 
 #if defined(LIBXML_CATALOG_ENABLED)
 PyObject *
-libxml_xmlFreeCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-    xmlCatalogPtr catal;
-    PyObject *pyobj_catal;
+libxml_xmlCatalogConvert(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+    PyObject *py_retval;
+    int c_retval;
 
-    if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeCatalog", &pyobj_catal))
-        return(NULL);
-    catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal);
-
-    xmlFreeCatalog(catal);
-    Py_INCREF(Py_None);
-    return(Py_None);
+    c_retval = xmlCatalogConvert();
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
 }
 
 #endif /* defined(LIBXML_CATALOG_ENABLED) */
@@ -13445,28 +13452,20 @@
     return(py_retval);
 }
 
-#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
 PyObject *
-libxml_xmlUnsetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+libxml_xmlCharStrdup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
-    int c_retval;
-    xmlNodePtr node;
-    PyObject *pyobj_node;
-    xmlNsPtr ns;
-    PyObject *pyobj_ns;
-    xmlChar * name;
+    xmlChar * c_retval;
+    char * cur;
 
-    if (!PyArg_ParseTuple(args, (char *)"OOz:xmlUnsetNsProp", &pyobj_node, &pyobj_ns, &name))
+    if (!PyArg_ParseTuple(args, (char *)"z:xmlCharStrdup", &cur))
         return(NULL);
-    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
-    ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns);
 
-    c_retval = xmlUnsetNsProp(node, ns, name);
-    py_retval = libxml_intWrap((int) c_retval);
+    c_retval = xmlCharStrdup(cur);
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
     return(py_retval);
 }
 
-#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
 #if defined(LIBXML_XPATH_ENABLED)
 PyObject *
 libxml_xmlXPathRegisterNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -13933,6 +13932,22 @@
 
 #endif /* defined(LIBXML_UNICODE_ENABLED) */
 PyObject *
+libxml_xmlErrorGetLevel(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xmlErrorPtr Error;
+    PyObject *pyobj_Error;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetLevel", &pyobj_Error))
+        return(NULL);
+    Error = (xmlErrorPtr) PyError_Get(pyobj_Error);
+
+    c_retval = Error->level;
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
 libxml_xmlCheckUTF8(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
     int c_retval;

Modified: packages/libxml2/trunk/python/setup.py
===================================================================
--- packages/libxml2/trunk/python/setup.py	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/python/setup.py	2005-09-05 17:42:20 UTC (rev 466)
@@ -226,7 +226,7 @@
 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.20",
+       version = "2.6.21",
        description = descr,
        author = "Daniel Veillard",
        author_email = "veillard at redhat.com",

Modified: packages/libxml2/trunk/python/tests/Makefile.in
===================================================================
--- packages/libxml2/trunk/python/tests/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/python/tests/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -154,6 +154,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -189,6 +190,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@

Modified: packages/libxml2/trunk/python/tests/tstLastError.py
===================================================================
--- packages/libxml2/trunk/python/tests/tstLastError.py	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/python/tests/tstLastError.py	2005-09-05 17:42:20 UTC (rev 466)
@@ -5,6 +5,10 @@
 
 class TestCase(unittest.TestCase):
 
+    def runTest(self):
+        self.test1()
+        self.test2()
+
     def setUp(self):
         libxml2.debugMemory(1)
 
@@ -13,6 +17,8 @@
         if libxml2.debugMemory(1) != 0:
             libxml2.dumpMemory() 
             self.fail("Memory leak %d bytes" % (libxml2.debugMemory(1),))
+	else:
+	    print "OK"
 
     def failUnlessXmlError(self,f,args,exc,domain,code,message,level,file,line):
         """Run function f, with arguments args and expect an exception exc;
@@ -69,4 +75,8 @@
                         line=3)
 
 if __name__ == "__main__":
-    unittest.main()
+    test = TestCase()
+    test.setUp()
+    test.test1()
+    test.test2()
+    test.tearDown()

Modified: packages/libxml2/trunk/relaxng.c
===================================================================
--- packages/libxml2/trunk/relaxng.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/relaxng.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -254,6 +254,7 @@
 #define FLAGS_IGNORABLE		1
 #define FLAGS_NEGATIVE		2
 #define FLAGS_MIXED_CONTENT	4
+#define FLAGS_NOERROR		8
 
 /**
  * xmlRelaxNGInterleaveGroup:
@@ -435,10 +436,12 @@
     void *data = NULL;
 
     if (ctxt != NULL) {
-        channel = ctxt->error;
+        if (ctxt->serror != NULL)
+	    schannel = ctxt->serror;
+	else
+	    channel = ctxt->error;
         data = ctxt->userData;
         ctxt->nbErrors++;
-        schannel = ctxt->serror;
     }
     if (extra)
         __xmlRaiseError(schannel, channel, data,
@@ -468,10 +471,12 @@
     void *data = NULL;
 
     if (ctxt != NULL) {
-        channel = ctxt->error;
+        if (ctxt->serror != NULL)
+	    schannel = ctxt->serror;
+	else
+	    channel = ctxt->error;
         data = ctxt->userData;
         ctxt->nbErrors++;
-        schannel = ctxt->serror;
     }
     if (extra)
         __xmlRaiseError(schannel, channel, data,
@@ -506,10 +511,12 @@
     void *data = NULL;
 
     if (ctxt != NULL) {
-        channel = ctxt->error;
+        if (ctxt->serror != NULL)
+	    schannel = ctxt->serror;
+	else
+	    channel = ctxt->error;
         data = ctxt->userData;
         ctxt->nbErrors++;
-        schannel = ctxt->serror;
     }
     __xmlRaiseError(schannel, channel, data,
                     NULL, node, XML_FROM_RELAXNGP,
@@ -538,10 +545,12 @@
     void *data = NULL;
 
     if (ctxt != NULL) {
-        channel = ctxt->error;
+        if (ctxt->serror != NULL)
+	    schannel = ctxt->serror;
+	else
+	    channel = ctxt->error;
         data = ctxt->userData;
         ctxt->nbErrors++;
-        schannel = ctxt->serror;
     }
     __xmlRaiseError(schannel, channel, data,
                     NULL, node, XML_FROM_RELAXNGV,
@@ -1477,14 +1486,14 @@
     xmlRelaxNGIncludePtr ret;
 
     if (ctxt->incNr <= 0)
-        return (0);
+        return (NULL);
     ctxt->incNr--;
     if (ctxt->incNr > 0)
         ctxt->inc = ctxt->incTab[ctxt->incNr - 1];
     else
         ctxt->inc = NULL;
     ret = ctxt->incTab[ctxt->incNr];
-    ctxt->incTab[ctxt->incNr] = 0;
+    ctxt->incTab[ctxt->incNr] = NULL;
     return (ret);
 }
 
@@ -1889,14 +1898,14 @@
     xmlRelaxNGDocumentPtr ret;
 
     if (ctxt->docNr <= 0)
-        return (0);
+        return (NULL);
     ctxt->docNr--;
     if (ctxt->docNr > 0)
         ctxt->doc = ctxt->docTab[ctxt->docNr - 1];
     else
         ctxt->doc = NULL;
     ret = ctxt->docTab[ctxt->docNr];
-    ctxt->docTab[ctxt->docNr] = 0;
+    ctxt->docTab[ctxt->docNr] = NULL;
     return (ret);
 }
 
@@ -2220,7 +2229,7 @@
 {
     xmlChar *msg;
 
-    if (ctxt->error == NULL)
+    if (ctxt->flags & FLAGS_NOERROR)
         return;
 
 #ifdef DEBUG_ERROR
@@ -2332,8 +2341,10 @@
                         xmlRelaxNGValidErr err, const xmlChar * arg1,
                         const xmlChar * arg2, int dup)
 {
-    if ((ctxt == NULL) || (ctxt->error == NULL))
+    if (ctxt == NULL)
         return;
+    if (ctxt->flags & FLAGS_NOERROR)
+        return;
 
 #ifdef DEBUG_ERROR
     xmlGenericError(xmlGenericErrorContext, "Adding error %d\n", err);
@@ -3739,10 +3750,10 @@
     xmlNs ns;
     xmlRelaxNGValidCtxt ctxt;
 
-    ctxt.flags = FLAGS_IGNORABLE;
-
     memset(&ctxt, 0, sizeof(xmlRelaxNGValidCtxt));
 
+    ctxt.flags = FLAGS_IGNORABLE | FLAGS_NOERROR;
+
     if ((def1->type == XML_RELAXNG_ELEMENT) ||
         (def1->type == XML_RELAXNG_ATTRIBUTE)) {
         if (def2->type == XML_RELAXNG_TEXT)
@@ -7469,6 +7480,7 @@
         return;
     ctxt->error = err;
     ctxt->warning = warn;
+    ctxt->serror = NULL;
     ctxt->userData = ctx;
 }
 
@@ -8638,8 +8650,6 @@
                     if (ctxt->errNr > 0)
                         xmlRelaxNGPopErrors(ctxt, 0);
                 }
-                if (ret == 0)
-                    xmlRelaxNGNextValue(ctxt);
                 break;
             }
         case XML_RELAXNG_LIST:{
@@ -10591,7 +10601,8 @@
     ret->errMax = 0;
     ret->err = NULL;
     ret->errTab = NULL;
-    ret->idref = schema->idref;
+    if (schema != NULL)
+	ret->idref = schema->idref;
     ret->states = NULL;
     ret->freeState = NULL;
     ret->freeStates = NULL;
@@ -10660,9 +10671,30 @@
     ctxt->error = err;
     ctxt->warning = warn;
     ctxt->userData = ctx;
+    ctxt->serror = NULL;
 }
 
 /**
+ * xmlRelaxNGSetValidStructuredErrors:
+ * @ctxt:  a Relax-NG validation context
+ * @serror:  the structured error function
+ * @ctx: the functions context
+ *
+ * Set the structured error callback
+ */
+void
+xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
+                                   xmlStructuredErrorFunc serror, void *ctx)
+{
+    if (ctxt == NULL)
+        return;
+    ctxt->serror = serror;
+    ctxt->error = NULL;
+    ctxt->warning = NULL;
+    ctxt->userData = ctx;
+}
+
+/**
  * xmlRelaxNGGetValidErrors:
  * @ctxt:  a Relax-NG validation context
  * @err:  the error function result

Modified: packages/libxml2/trunk/result/HTML/Down.html
===================================================================
--- packages/libxml2/trunk/result/HTML/Down.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/Down.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -3,10 +3,8 @@
 <head><title>This service is temporary down</title></head>
 <body bgcolor="#FFFFFF">
 <h1 align="center">Sorry, this service is temporary down</h1>
-<p>
 We are doing our best to get it back on-line,
 
-</p>
 <p>The W3C system administrators</p>
 </body>
 </html>

Modified: packages/libxml2/trunk/result/HTML/Down.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/Down.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/Down.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -16,19 +16,17 @@
 
 , 2)
 SAX.startElement(body, bgcolor='#FFFFFF')
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(h1, align='center')
 SAX.characters(Sorry, this service is tempora, 37)
 SAX.endElement(h1)
-SAX.startElement(p)
 SAX.characters(
 We are doing our best to get , 48)
-SAX.endElement(p)
 SAX.startElement(p)
 SAX.characters(The W3C system administrators, 29)
 SAX.endElement(p)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.ignorableWhitespace(

Modified: packages/libxml2/trunk/result/HTML/attrents.html
===================================================================
--- packages/libxml2/trunk/result/HTML/attrents.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/attrents.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,4 +1,4 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
-<html><body bgcolor="#FFFFFF">
-<a href="mailto:katherine at cbfanc.org,website at bis.doc.gov?subject=South%20San%20Francisco%20BIS%20Seminar%20-%20October%2016th"></a><br>
+<html><body bgcolor="#FFFFFF">
+                <a href="mailto:katherine at cbfanc.org,website at bis.doc.gov?subject=South%20San%20Francisco%20BIS%20Seminar%20-%20October%2016th"></a><br>
 </body></html>

Modified: packages/libxml2/trunk/result/HTML/attrents.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/attrents.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/attrents.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -4,13 +4,13 @@
 SAX.ignorableWhitespace(
 , 2)
 SAX.startElement(body, bgcolor='#FFFFFF')
-SAX.ignorableWhitespace(
+SAX.characters(
                 , 18)
 SAX.startElement(a, href='mailto:katherine at cbfanc.org,website at bis.doc.gov?subject=South San Francisco BIS Seminar - October 16th')
 SAX.endElement(a)
 SAX.startElement(br)
 SAX.endElement(br)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.endElement(body)
 SAX.ignorableWhitespace(

Modified: packages/libxml2/trunk/result/HTML/cf_128.html
===================================================================
--- packages/libxml2/trunk/result/HTML/cf_128.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/cf_128.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,7 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html>
 <head><title>gnome-xml push mode bug</title></head>
-<body><table border="4"><tr>
+<body>
+
+<table border="4"><tr>
 <td bgcolor="white">
 	Foo1
 	<table border="4"><tr><td>Foo2<p></p>
@@ -9,5 +11,6 @@
 </td></tr></table>
 </td>
     <td bgcolor="blue">Foo3</td>
-   </tr></table></body>
+   </tr></table>
+</body>
 </html>

Modified: packages/libxml2/trunk/result/HTML/cf_128.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/cf_128.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/cf_128.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -16,7 +16,7 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(table, border='4')
@@ -58,7 +58,7 @@
 SAX.characters(
   , 3)
 SAX.endElement(table)
-SAX.ignorableWhitespace(
+SAX.characters(
   , 3)
 SAX.endElement(body)
 SAX.ignorableWhitespace(

Modified: packages/libxml2/trunk/result/HTML/doc2.htm
===================================================================
--- packages/libxml2/trunk/result/HTML/doc2.htm	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/doc2.htm	2005-09-05 17:42:20 UTC (rev 466)
@@ -20,7 +20,9 @@
 </frameset>
 <noframes>
 
-  <body bgcolor="#FFFFFF" text="#000000" link="#000080" vlink="#000080" alink="#000080" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0"><p>This page uses frames, but your browser doesn't support them.</p></body>
+  <body bgcolor="#FFFFFF" text="#000000" link="#000080" vlink="#000080" alink="#000080" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
+  <p>This page uses frames, but your browser doesn't support them.</p>
+  </body>
   </noframes>
 </frameset>
 </html>

Modified: packages/libxml2/trunk/result/HTML/doc2.htm.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/doc2.htm.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/doc2.htm.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -51,12 +51,12 @@
 
   , 4)
 SAX.startElement(body, bgcolor='#FFFFFF', text='#000000', link='#000080', vlink='#000080', alink='#000080', topmargin='0', leftmargin='0', marginheight='0', marginwidth='0')
-SAX.ignorableWhitespace(
+SAX.characters(
   , 3)
 SAX.startElement(p)
 SAX.characters(This page uses frames, but you, 61)
 SAX.endElement(p)
-SAX.ignorableWhitespace(
+SAX.characters(
   , 3)
 SAX.endElement(body)
 SAX.characters(

Modified: packages/libxml2/trunk/result/HTML/doc3.htm
===================================================================
--- packages/libxml2/trunk/result/HTML/doc3.htm	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/doc3.htm	2005-09-05 17:42:20 UTC (rev 466)
@@ -32,7 +32,7 @@
 // End -->
 </script><meta content="MSHTML 5.00.3103.1000" name="GENERATOR">
 </head>
-<body alink="red" bgcolor="black" link="red" text="white" vlink="red">
+<body alink="red" bgcolor="black" link="red" text="white" vlink="red">
 <p>
 </p>
 <div align="center">
@@ -439,7 +439,7 @@
 </td></tr>
 <!--	<TR>		<TD WIDTH="780">			<P ALIGN="CENTER"><FONT SIZE="1" COLOR="#999999" FACE="Verdana,arial">Site design by Tim Brinkley</FONT>		</TD>	</TR> -->
 </tbody></table>
-</div>
+</div>
 <script> window.open=NS_ActualOpen; </script>
 </body>
 </html>

Modified: packages/libxml2/trunk/result/HTML/doc3.htm.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/doc3.htm.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/doc3.htm.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -73,7 +73,7 @@
 SAX.ignorableWhitespace(
 , 2)
 SAX.startElement(body, alink='red', bgcolor='black', link='red', text='white', vlink='red')
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(p)
 SAX.characters(
@@ -2905,12 +2905,12 @@
 SAX.endElement(tbody)
 SAX.endElement(table)
 SAX.endElement(div)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(script)
 SAX.cdata( window.open=NS_ActualOpen; , 28)
 SAX.endElement(script)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.endElement(body)
 SAX.endElement(html)

Modified: packages/libxml2/trunk/result/HTML/fp40.htm
===================================================================
--- packages/libxml2/trunk/result/HTML/fp40.htm	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/fp40.htm	2005-09-05 17:42:20 UTC (rev 466)
@@ -44,7 +44,8 @@
 configuration files (access.conf, srm.conf), add the following lines to http.conf:</p>
 
 
-</font><blockquote>
+</font>
+<blockquote>
   <font face="Courier New">
 ResourceConfig /dev/null&nbsp;<br>
 AccessConfig /dev/null</font>

Modified: packages/libxml2/trunk/result/HTML/fp40.htm.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/fp40.htm.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/fp40.htm.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -26,7 +26,7 @@
 
 , 2)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(font, face='Verdana')
 SAX.characters(
@@ -167,7 +167,7 @@
 
 , 3)
 SAX.endElement(font)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(blockquote)
 SAX.characters(
@@ -184,7 +184,7 @@
 SAX.characters(
 , 1)
 SAX.endElement(blockquote)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(font, face='Verdana')
 SAX.characters(
@@ -452,7 +452,7 @@
 
 , 4)
 SAX.endElement(font)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.ignorableWhitespace(

Modified: packages/libxml2/trunk/result/HTML/liclose.html
===================================================================
--- packages/libxml2/trunk/result/HTML/liclose.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/liclose.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,10 +1,12 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 <html>
 <head><title></title></head>
-<body><ul>
+<body>
+<ul>
 <li>First item
 </li>
 <li>Second item, closes the first one
 </li>
-</ul></body>
+</ul>
+</body>
 </html>

Modified: packages/libxml2/trunk/result/HTML/liclose.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/liclose.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/liclose.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -15,7 +15,7 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(ul)
 SAX.characters(
@@ -28,7 +28,7 @@
 SAX.characters(Second item, closes the first , 34)
 SAX.endElement(li)
 SAX.endElement(ul)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.endElement(body)

Modified: packages/libxml2/trunk/result/HTML/pre.html
===================================================================
--- packages/libxml2/trunk/result/HTML/pre.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/pre.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,2 +1,4 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
-<html><body><pre><a href="toto"></a><img src="titi"></pre></body></html>
+<html><body>
+<pre><a href="toto"></a><img src="titi"></pre>
+</body></html>

Modified: packages/libxml2/trunk/result/HTML/pre.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/pre.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/pre.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -4,7 +4,7 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(pre)
 SAX.startElement(a, href='toto')
@@ -12,7 +12,7 @@
 SAX.startElement(img, src='titi')
 SAX.endElement(img)
 SAX.endElement(pre)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.ignorableWhitespace(

Modified: packages/libxml2/trunk/result/HTML/python.html
===================================================================
--- packages/libxml2/trunk/result/HTML/python.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/python.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,5 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <?xml-stylesheet href="./css/ht2html.css" type="text/css"?><html>
 <!-- THIS PAGE IS AUTOMATICALLY GENERATED.  DO NOT EDIT. --><head><title>Python Programming Language</title></head>
-<body></body>
+<body>
+</body>
 </html>

Modified: packages/libxml2/trunk/result/HTML/python.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/python.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/python.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -20,7 +20,7 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.endElement(html)

Modified: packages/libxml2/trunk/result/HTML/reg1.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/reg1.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/reg1.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -15,12 +15,12 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(h1)
 SAX.characters(Regression test 1, 17)
 SAX.endElement(h1)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(p)
 SAX.characters(

Modified: packages/libxml2/trunk/result/HTML/reg2.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/reg2.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/reg2.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -15,12 +15,12 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(h1)
 SAX.characters(Regression test 2, 17)
 SAX.endElement(h1)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(p)
 SAX.characters(

Modified: packages/libxml2/trunk/result/HTML/reg3.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/reg3.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/reg3.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -15,12 +15,12 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(h1)
 SAX.characters(Regression test 3, 17)
 SAX.endElement(h1)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(p)
 SAX.characters(
@@ -29,7 +29,7 @@
 SAX.endElement(p)
 SAX.startElement(hr)
 SAX.endElement(hr)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(p)
 SAX.characters(

Modified: packages/libxml2/trunk/result/HTML/reg4.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/reg4.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/reg4.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -15,12 +15,12 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(h1)
 SAX.characters(Regression test 4, 17)
 SAX.endElement(h1)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(p)
 SAX.characters(
@@ -29,10 +29,10 @@
 SAX.endElement(p)
 SAX.startElement(hr)
 SAX.endElement(hr)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.error: Unexpected end tag : p
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.ignorableWhitespace(

Modified: packages/libxml2/trunk/result/HTML/script.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/script.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/script.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -11,17 +11,17 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(script, language='javascript')
 SAX.cdata(
     if (window.open&lt;max) ;, 28)
 SAX.endElement(script)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(input, onclick='if(window.open&lt;max);')
 SAX.endElement(input)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.ignorableWhitespace(

Copied: packages/libxml2/trunk/result/HTML/script2.html (from rev 465, packages/libxml2/branches/upstream/current/result/HTML/script2.html)

Copied: packages/libxml2/trunk/result/HTML/script2.html.err (from rev 465, packages/libxml2/branches/upstream/current/result/HTML/script2.html.err)

Copied: packages/libxml2/trunk/result/HTML/script2.html.sax (from rev 465, packages/libxml2/branches/upstream/current/result/HTML/script2.html.sax)

Modified: packages/libxml2/trunk/result/HTML/test2.html
===================================================================
--- packages/libxml2/trunk/result/HTML/test2.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/test2.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -2,6 +2,7 @@
 <html>
 <head><title>Linux Today</title></head>
 <body bgcolor="White" link="Blue" text="Black" vlink="Black" alink="Red">
+
 <center>
 <table border="0" width="100%" cellspacing="0" cellpadding="0"><tr bgcolor="#FFFFFF">
 <td height="90">

Modified: packages/libxml2/trunk/result/HTML/test2.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/test2.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/test2.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -11,7 +11,7 @@
 SAX.ignorableWhitespace(
 , 1)
 SAX.startElement(body, bgcolor='White', link='Blue', text='Black', vlink='Black', alink='Red')
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(center)
@@ -130,7 +130,7 @@
 SAX.characters(
 , 1)
 SAX.endElement(center)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(p)
 SAX.characters(

Modified: packages/libxml2/trunk/result/HTML/test3.html
===================================================================
--- packages/libxml2/trunk/result/HTML/test3.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/test3.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -38,7 +38,7 @@
 <dt><h4>Class <a href="ProblemDomain.Note.html#ProblemDomain.Note">ProblemDomain.Note</a>
 </h4></dt>
 </dl>
-<h4><b>Links</b></h4>
+<h4><b>Links</b></h4>
 <ul><li>
 <b>Link to </b><a href="HumanInterface.Package.html#HumanInterface.Package">HumanInterface</a>
 </li></ul>

Modified: packages/libxml2/trunk/result/HTML/test3.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/test3.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/test3.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -26,7 +26,7 @@
 SAX.startElement(hr)
 SAX.endElement(hr)
 SAX.error: Unexpected end tag : p
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(dl)
 SAX.characters(
@@ -59,14 +59,14 @@
 SAX.endElement(dd)
 SAX.endElement(dd)
 SAX.endElement(dl)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(p)
 SAX.endElement(p)
 SAX.startElement(hr)
 SAX.endElement(hr)
 SAX.error: Unexpected end tag : p
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(dl)
 SAX.characters(
@@ -163,7 +163,7 @@
 SAX.characters(
 , 2)
 SAX.endElement(dl)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 4)
 SAX.startElement(h4)
@@ -173,7 +173,7 @@
 SAX.endElement(b)
 SAX.endElement(h4)
 SAX.error: Unexpected end tag : b
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(ul)
 SAX.startElement(li)
@@ -185,11 +185,11 @@
 SAX.endElement(a)
 SAX.endElement(li)
 SAX.endElement(ul)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(dir)
 SAX.endElement(dir)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(ul)
 SAX.startElement(li)
@@ -201,11 +201,11 @@
 SAX.endElement(a)
 SAX.endElement(li)
 SAX.endElement(ul)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(dir)
 SAX.endElement(dir)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(ul)
 SAX.startElement(li)
@@ -217,11 +217,11 @@
 SAX.endElement(a)
 SAX.endElement(li)
 SAX.endElement(ul)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.startElement(dir)
 SAX.endElement(dir)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 2)
 SAX.endElement(body)
 SAX.endElement(html)

Modified: packages/libxml2/trunk/result/HTML/wired.html
===================================================================
--- packages/libxml2/trunk/result/HTML/wired.html	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/wired.html	2005-09-05 17:42:20 UTC (rev 466)
@@ -2,6 +2,7 @@
 <!-- Vignette StoryServer 4 Fri Oct 15 11:37:12 1999 --><html>
 <head><title>Top Stories News from Wired News</title></head>
 <body bgcolor="#FFFFFF" text="#000000" link="#333399" vlink="#660066" alink="#666699">
+
 <table border="0" width="600" cellspacing="0" cellpadding="0"><tr>
 <td valign="top" align="LEFT"><table border="0" cellpadding="0" cellspacing="0" width="468" height="60" bgcolor="#FFFFFF">
 <form method="GET" action="http://nsads.hotwired.com/event.ng/Type=click&amp;ProfileID=9688&amp;RunID=14074&amp;AdID=22584&amp;GroupID=1&amp;FamilyID=2684&amp;TagValues=8.25.156.159.166.171.172.174.179.180.181.182.183.196.197.199.208.389.412.436.2041.6750.78456.79630.81880&amp;Redirect=http://www.springstreet.com/aa/citysearch.htm" id="form1" name="form1">
@@ -69,7 +70,8 @@
 </table></td>
     <td valign="top" align="RIGHT"><a href="http://nsads.hotwired.com/event.ng/Type=click&amp;ProfileID=5597&amp;RunID=17167&amp;AdID=22588&amp;GroupID=1&amp;FamilyID=3228&amp;TagValues=8.25.159.171.172.174.179.180.181.182.183.196.197.199.208.241.389.412.436.2035.6749.6750.70367.78456.79630.81880&amp;Redirect=http:%2F%2Fwww.hp.com%2Fgo%2Foriginal%20" target="_top"><img src="http://static.wired.com/advertising/blipverts/hp_colorinkjet/hp_970c_120x60_6.gif" border="1" height="60" width="120" alt="True to the Original"></a></td>
   </tr></table>
-<!-- WIRED NEWS header --><!-- CMD_HOST = scoop.hotwired.com --><a name="#"></a><table border="0" width="600" cellspacing="0" cellpadding="0">
+<!-- WIRED NEWS header --><!-- CMD_HOST = scoop.hotwired.com --><a name="#"></a>
+<table border="0" width="600" cellspacing="0" cellpadding="0">
 <tr>
 <td></td>
 <td colspan="2"><img src="http://static.wired.com/news/images/spacer.gif" height="5" width="447" alt=""></td>

Modified: packages/libxml2/trunk/result/HTML/wired.html.sax
===================================================================
--- packages/libxml2/trunk/result/HTML/wired.html.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/HTML/wired.html.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -8,7 +8,7 @@
 SAX.endElement(title)
 SAX.endElement(head)
 SAX.startElement(body, bgcolor='#FFFFFF', text='#000000', link='#333399', vlink='#660066', alink='#666699')
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(table, border='0', width='600', cellspacing='0', cellpadding='0')
@@ -315,19 +315,19 @@
 SAX.characters(
 , 1)
 SAX.endElement(table)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.comment( WIRED NEWS header )
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.comment( CMD_HOST = scoop.hotwired.com )
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(a, name='#')
 SAX.endElement(a)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(table, border='0', width='600', cellspacing='0', cellpadding='0')
 SAX.characters(
@@ -574,14 +574,14 @@
 SAX.characters(
 , 1)
 SAX.endElement(table)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.comment( end WIRED NEWS header )
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.comment( begin upper left side Navigation )
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(table, border='0', cellpadding='3', cellspacing='0', align='LEFT', bgcolor='#FFFFFF')
@@ -1463,14 +1463,14 @@
 
 , 2)
 SAX.endElement(table)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.comment( end lower left side Navigation )
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.comment( CONTENT TABLE )
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(table, border='0', width='447', cellspacing='0', cellpadding='0', bordercolor='#66FF00')
@@ -2830,13 +2830,13 @@
 SAX.characters(
 , 1)
 SAX.endElement(table)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 
 , 3)
 SAX.startElement(br)
 SAX.endElement(br)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.ignorableWhitespace(

Modified: packages/libxml2/trunk/result/ent2.sax
===================================================================
--- packages/libxml2/trunk/result/ent2.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/ent2.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -11,6 +11,7 @@
   , 3)
 SAX.getEntity(title)
 SAX.error: Entity 'title' not defined
+SAX.reference(title)
 SAX.characters(
   This text is about XML, the, 31)
 SAX.getEntity(xml)

Modified: packages/libxml2/trunk/result/ent2.sax2
===================================================================
--- packages/libxml2/trunk/result/ent2.sax2	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/ent2.sax2	2005-09-05 17:42:20 UTC (rev 466)
@@ -11,6 +11,7 @@
   , 3)
 SAX.getEntity(title)
 SAX.error: Entity 'title' not defined
+SAX.reference(title)
 SAX.characters(
   This text is about XML, the, 31)
 SAX.getEntity(xml)

Modified: packages/libxml2/trunk/result/ent7.sax
===================================================================
--- packages/libxml2/trunk/result/ent7.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/ent7.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -11,6 +11,7 @@
 SAX.characters('they called me , 16)
 SAX.getEntity(sampleEnt)
 SAX.error: Entity 'sampleEnt' not defined
+SAX.reference(sampleEnt)
 SAX.characters(', 1)
 SAX.endDocument()
 xmlSAXUserParseFile returned error 27

Modified: packages/libxml2/trunk/result/ent7.sax2
===================================================================
--- packages/libxml2/trunk/result/ent7.sax2	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/ent7.sax2	2005-09-05 17:42:20 UTC (rev 466)
@@ -11,6 +11,7 @@
 SAX.characters('they called me , 16)
 SAX.getEntity(sampleEnt)
 SAX.error: Entity 'sampleEnt' not defined
+SAX.reference(sampleEnt)
 SAX.characters(', 1)
 SAX.endDocument()
 xmlSAXUserParseFile returned error 27

Copied: packages/libxml2/trunk/result/expr (from rev 465, packages/libxml2/branches/upstream/current/result/expr)

Copied: packages/libxml2/trunk/result/regexp/* (from rev 465, packages/libxml2/branches/upstream/current/result/regexp/*)

Copied: packages/libxml2/trunk/result/relaxng/307377_0 (from rev 465, packages/libxml2/branches/upstream/current/result/relaxng/307377_0)

Copied: packages/libxml2/trunk/result/relaxng/307377_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/relaxng/307377_0.err)

Copied: packages/libxml2/trunk/result/relaxng/307377_1 (from rev 465, packages/libxml2/branches/upstream/current/result/relaxng/307377_1)

Copied: packages/libxml2/trunk/result/relaxng/307377_1.err (from rev 465, packages/libxml2/branches/upstream/current/result/relaxng/307377_1.err)

Copied: packages/libxml2/trunk/result/relaxng/307377_2 (from rev 465, packages/libxml2/branches/upstream/current/result/relaxng/307377_2)

Copied: packages/libxml2/trunk/result/relaxng/307377_2.err (from rev 465, packages/libxml2/branches/upstream/current/result/relaxng/307377_2.err)

Copied: packages/libxml2/trunk/result/relaxng/307377_err (from rev 465, packages/libxml2/branches/upstream/current/result/relaxng/307377_err)

Copied: packages/libxml2/trunk/result/relaxng/307377_valid (from rev 465, packages/libxml2/branches/upstream/current/result/relaxng/307377_valid)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_0)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_0.err)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_1 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_1)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_1.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_1.err)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_2 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_2)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_2.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_2.err)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_3 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_3)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_3.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_3.err)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_4 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_4)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_4.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_4.err)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_5 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_5)

Copied: packages/libxml2/trunk/result/schemas/allsg_0_5.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/allsg_0_5.err)

Modified: packages/libxml2/trunk/result/schemas/any3_0_0.err
===================================================================
--- packages/libxml2/trunk/result/schemas/any3_0_0.err	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/schemas/any3_0_0.err	2005-09-05 17:42:20 UTC (rev 466)
@@ -1 +1 @@
-./test/schemas/any3_0.xml:12: element bar.A: Schemas validity error : Element 'bar.A': This element is not expected. Expected is one of ( {##other:http://FOO}* ).
+./test/schemas/any3_0.xml:12: element bar.A: Schemas validity error : Element 'bar.A': This element is not expected. Expected is ( ##other{http://FOO}* ).

Copied: packages/libxml2/trunk/result/schemas/any5_0_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_0)

Copied: packages/libxml2/trunk/result/schemas/any5_0_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_0.err)

Copied: packages/libxml2/trunk/result/schemas/any5_0_1 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_1)

Copied: packages/libxml2/trunk/result/schemas/any5_0_1.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_1.err)

Copied: packages/libxml2/trunk/result/schemas/any5_0_2 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_2)

Copied: packages/libxml2/trunk/result/schemas/any5_0_2.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_2.err)

Copied: packages/libxml2/trunk/result/schemas/any5_0_3 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_3)

Copied: packages/libxml2/trunk/result/schemas/any5_0_3.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_3.err)

Copied: packages/libxml2/trunk/result/schemas/any5_0_4 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_4)

Copied: packages/libxml2/trunk/result/schemas/any5_0_4.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_4.err)

Copied: packages/libxml2/trunk/result/schemas/any5_0_5 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_5)

Copied: packages/libxml2/trunk/result/schemas/any5_0_5.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_5.err)

Copied: packages/libxml2/trunk/result/schemas/any5_0_6 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_6)

Copied: packages/libxml2/trunk/result/schemas/any5_0_6.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_0_6.err)

Copied: packages/libxml2/trunk/result/schemas/any5_1_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_0)

Copied: packages/libxml2/trunk/result/schemas/any5_1_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_0.err)

Copied: packages/libxml2/trunk/result/schemas/any5_1_1 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_1)

Copied: packages/libxml2/trunk/result/schemas/any5_1_1.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_1.err)

Copied: packages/libxml2/trunk/result/schemas/any5_1_2 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_2)

Copied: packages/libxml2/trunk/result/schemas/any5_1_2.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_2.err)

Copied: packages/libxml2/trunk/result/schemas/any5_1_3 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_3)

Copied: packages/libxml2/trunk/result/schemas/any5_1_3.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_3.err)

Copied: packages/libxml2/trunk/result/schemas/any5_1_4 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_4)

Copied: packages/libxml2/trunk/result/schemas/any5_1_4.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_4.err)

Copied: packages/libxml2/trunk/result/schemas/any5_1_5 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_5)

Copied: packages/libxml2/trunk/result/schemas/any5_1_5.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_5.err)

Copied: packages/libxml2/trunk/result/schemas/any5_1_6 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_6)

Copied: packages/libxml2/trunk/result/schemas/any5_1_6.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any5_1_6.err)

Copied: packages/libxml2/trunk/result/schemas/any6_1_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any6_1_0)

Copied: packages/libxml2/trunk/result/schemas/any6_1_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any6_1_0.err)

Copied: packages/libxml2/trunk/result/schemas/any6_2_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any6_2_0)

Copied: packages/libxml2/trunk/result/schemas/any6_2_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any6_2_0.err)

Copied: packages/libxml2/trunk/result/schemas/any7_1_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_1_0)

Copied: packages/libxml2/trunk/result/schemas/any7_1_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_1_0.err)

Copied: packages/libxml2/trunk/result/schemas/any7_1_1 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_1_1)

Copied: packages/libxml2/trunk/result/schemas/any7_1_1.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_1_1.err)

Copied: packages/libxml2/trunk/result/schemas/any7_1_2 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_1_2)

Copied: packages/libxml2/trunk/result/schemas/any7_1_2.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_1_2.err)

Copied: packages/libxml2/trunk/result/schemas/any7_2_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_2_0)

Copied: packages/libxml2/trunk/result/schemas/any7_2_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_2_0.err)

Copied: packages/libxml2/trunk/result/schemas/any7_2_1 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_2_1)

Copied: packages/libxml2/trunk/result/schemas/any7_2_1.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_2_1.err)

Copied: packages/libxml2/trunk/result/schemas/any7_2_2 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_2_2)

Copied: packages/libxml2/trunk/result/schemas/any7_2_2.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any7_2_2.err)

Copied: packages/libxml2/trunk/result/schemas/any8_1_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any8_1_0)

Copied: packages/libxml2/trunk/result/schemas/any8_1_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/any8_1_0.err)

Modified: packages/libxml2/trunk/result/schemas/bug303566_1_1.err
===================================================================
--- packages/libxml2/trunk/result/schemas/bug303566_1_1.err	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/schemas/bug303566_1_1.err	2005-09-05 17:42:20 UTC (rev 466)
@@ -1 +1 @@
-./test/schemas/bug303566_1.xml:5: element Country: Schemas validity error : Element 'Country': No match found for key-sequence ['B'] of key reference 'PartRefCountryDummy'.
+./test/schemas/bug303566_1.xml:9: Schemas validity error : Element 'Part': No match found for key-sequence ['B'] of key reference 'PartRefCountryDummy'.

Copied: packages/libxml2/trunk/result/schemas/bug310264_0_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/bug310264_0_0)

Copied: packages/libxml2/trunk/result/schemas/bug310264_0_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/bug310264_0_0.err)

Copied: packages/libxml2/trunk/result/schemas/bug312957_1_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/bug312957_1_0)

Copied: packages/libxml2/trunk/result/schemas/bug312957_1_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/bug312957_1_0.err)

Copied: packages/libxml2/trunk/result/schemas/bug313982_0_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/bug313982_0_0)

Copied: packages/libxml2/trunk/result/schemas/bug313982_0_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/bug313982_0_0.err)

Copied: packages/libxml2/trunk/result/schemas/extension2_1_0 (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/extension2_1_0)

Copied: packages/libxml2/trunk/result/schemas/extension2_1_0.err (from rev 465, packages/libxml2/branches/upstream/current/result/schemas/extension2_1_0.err)

Copied: packages/libxml2/trunk/result/schematron (from rev 465, packages/libxml2/branches/upstream/current/result/schematron)

Copied: packages/libxml2/trunk/result/valid/objednavka.xml (from rev 465, packages/libxml2/branches/upstream/current/result/valid/objednavka.xml)

Copied: packages/libxml2/trunk/result/valid/objednavka.xml.err (from rev 465, packages/libxml2/branches/upstream/current/result/valid/objednavka.xml.err)

Modified: packages/libxml2/trunk/result/xml2.sax
===================================================================
--- packages/libxml2/trunk/result/xml2.sax	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/xml2.sax	2005-09-05 17:42:20 UTC (rev 466)
@@ -12,6 +12,7 @@
 SAX.characters(This sample shows a , 20)
 SAX.getEntity(tricky)
 SAX.error: Entity 'tricky' not defined
+SAX.reference(tricky)
 SAX.characters( method., 8)
 SAX.endDocument()
 xmlSAXUserParseFile returned error 27

Modified: packages/libxml2/trunk/result/xml2.sax2
===================================================================
--- packages/libxml2/trunk/result/xml2.sax2	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/result/xml2.sax2	2005-09-05 17:42:20 UTC (rev 466)
@@ -12,6 +12,7 @@
 SAX.characters(This sample shows a , 20)
 SAX.getEntity(tricky)
 SAX.error: Entity 'tricky' not defined
+SAX.reference(tricky)
 SAX.characters( method., 8)
 SAX.endDocument()
 xmlSAXUserParseFile returned error 27

Modified: packages/libxml2/trunk/runsuite.c
===================================================================
--- packages/libxml2/trunk/runsuite.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/runsuite.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -30,8 +30,8 @@
 #include <libxml/xmlschemastypes.h>
 
 #define LOGFILE "runsuite.log"
-FILE *logfile = NULL;
-int verbose = 0;
+static FILE *logfile = NULL;
+static int verbose = 0;
 
 #if defined(_WIN32) && !defined(__CYGWIN__)
 #define vsnprintf _vsnprintf
@@ -96,9 +96,9 @@
  * that's needed to implement <resource>
  */
 #define MAX_ENTITIES 20
-char *testEntitiesName[MAX_ENTITIES];
-char *testEntitiesValue[MAX_ENTITIES];
-int nb_entities = 0;
+static char *testEntitiesName[MAX_ENTITIES];
+static char *testEntitiesValue[MAX_ENTITIES];
+static int nb_entities = 0;
 static void resetEntities(void) {
     int i;
 
@@ -205,7 +205,7 @@
     testErrors[testErrorsSize] = 0;
 }
 
-xmlXPathContextPtr ctxtXPath;
+static xmlXPathContextPtr ctxtXPath;
 
 static void
 initializeLibxml2(void) {

Modified: packages/libxml2/trunk/runtest.c
===================================================================
--- packages/libxml2/trunk/runtest.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/runtest.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -241,7 +241,7 @@
 static char testErrors[32769];
 static int testErrorsSize = 0;
 
-static void
+static void XMLCDECL
 testErrorHandler(void *ctx  ATTRIBUTE_UNUSED, const char *msg, ...) {
     va_list args;
     int res;
@@ -263,7 +263,7 @@
     testErrors[testErrorsSize] = 0;
 }
 
-static void
+static void XMLCDECL
 channel(void *ctx  ATTRIBUTE_UNUSED, const char *msg, ...) {
     va_list args;
     int res;
@@ -714,12 +714,12 @@
  *									*
  ************************************************************************/
 
-FILE *SAXdebug = NULL;
+static FILE *SAXdebug = NULL;
 
 /*
  * empty SAX block
  */
-xmlSAXHandler emptySAXHandlerStruct = {
+static xmlSAXHandler emptySAXHandlerStruct = {
     NULL, /* internalSubset */
     NULL, /* isStandalone */
     NULL, /* hasInternalSubset */
@@ -755,8 +755,8 @@
 };
 
 static xmlSAXHandlerPtr emptySAXHandler = &emptySAXHandlerStruct;
-int callbacks = 0;
-int quiet = 0;
+static int callbacks = 0;
+static int quiet = 0;
 
 /**
  * isStandaloneDebug:
@@ -1287,7 +1287,7 @@
  * Display and format a warning messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -1310,7 +1310,7 @@
  * Display and format a error messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -1333,7 +1333,7 @@
  * Display and format a fatalError messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 fatalErrorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -1347,7 +1347,7 @@
     va_end(args);
 }
 
-xmlSAXHandler debugSAXHandlerStruct = {
+static xmlSAXHandler debugSAXHandlerStruct = {
     internalSubsetDebug,
     isStandaloneDebug,
     hasInternalSubsetDebug,
@@ -1382,7 +1382,7 @@
     NULL
 };
 
-xmlSAXHandlerPtr debugSAXHandler = &debugSAXHandlerStruct;
+static xmlSAXHandlerPtr debugSAXHandler = &debugSAXHandlerStruct;
 
 /*
  * SAX2 specific callbacks
@@ -1471,7 +1471,7 @@
 	fprintf(SAXdebug, ", '%s')\n", (char *) URI);
 }
 
-xmlSAXHandler debugSAX2HandlerStruct = {
+static xmlSAXHandler debugSAX2HandlerStruct = {
     internalSubsetDebug,
     isStandaloneDebug,
     hasInternalSubsetDebug,
@@ -1506,7 +1506,7 @@
     NULL
 };
 
-xmlSAXHandlerPtr debugSAX2Handler = &debugSAX2HandlerStruct;
+static xmlSAXHandlerPtr debugSAX2Handler = &debugSAX2HandlerStruct;
 
 #ifdef LIBXML_HTML_ENABLED
 /**
@@ -1586,7 +1586,7 @@
     fprintf(SAXdebug, "SAX.cdata(%s, %d)\n", output, len);
 }
 
-xmlSAXHandler debugHTMLSAXHandlerStruct = {
+static xmlSAXHandler debugHTMLSAXHandlerStruct = {
     internalSubsetDebug,
     isStandaloneDebug,
     hasInternalSubsetDebug,
@@ -1621,7 +1621,7 @@
     NULL
 };
 
-xmlSAXHandlerPtr debugHTMLSAXHandler = &debugHTMLSAXHandlerStruct;
+static xmlSAXHandlerPtr debugHTMLSAXHandler = &debugHTMLSAXHandlerStruct;
 #endif /* LIBXML_HTML_ENABLED */
 
 #ifdef LIBXML_SAX1_ENABLED
@@ -2247,8 +2247,8 @@
  *									*
  ************************************************************************/
 
-FILE *xpathOutput;
-xmlDocPtr xpathDocument;
+static FILE *xpathOutput;
+static xmlDocPtr xpathDocument;
 
 static void
 testXPath(const char *str, int xptr, int expr) {
@@ -2692,6 +2692,178 @@
                          "http://foo.com/path/to/index.html?orig#help"));
 }
 
+static int urip_success = 1;
+static int urip_current = 0;
+static const char *urip_testURLs[] = {
+    "urip://example.com/a b.html",
+    "urip://example.com/a%20b.html",
+    "file:///path/to/a b.html",
+    "file:///path/to/a%20b.html",
+    "/path/to/a b.html",
+    "/path/to/a%20b.html",
+    "urip://example.com/résumé.html",
+    "urip://example.com/test?a=1&b=2%263&c=4#foo",
+    NULL
+};
+static const char *urip_rcvsURLs[] = {
+    /* it is an URI the strings must be escaped */
+    "urip://example.com/a%20b.html",
+    /* check that % escaping is not broken */
+    "urip://example.com/a%20b.html",
+    /* it's an URI path the strings must be escaped */
+    "file:///path/to/a%20b.html",
+    /* check that % escaping is not broken */
+    "file:///path/to/a%20b.html",
+    /* this is not an URI, this is a path, so this should not be escaped */
+    "/path/to/a b.html",
+    /* check that paths with % are not broken */
+    "/path/to/a%20b.html",
+    /* out of context the encoding can't be guessed byte by byte conversion */
+    "urip://example.com/r%E9sum%E9.html",
+    /* verify we don't destroy URIs especially the query part */
+    "urip://example.com/test?a=1&b=2%263&c=4#foo",
+    NULL
+};
+static const char *urip_res = "<list/>";
+static const char *urip_cur = NULL;
+static int urip_rlen;
+
+/**
+ * uripMatch:
+ * @URI: an URI to test
+ *
+ * Check for an urip: query
+ *
+ * Returns 1 if yes and 0 if another Input module should be used
+ */
+static int
+uripMatch(const char * URI) {
+    if ((URI == NULL) || (!strcmp(URI, "file:///etc/xml/catalog")))
+        return(0);
+    /* Verify we received the escaped URL */
+    if (strcmp(urip_rcvsURLs[urip_current], URI))
+	urip_success = 0;
+    return(1);
+}
+
+/**
+ * uripOpen:
+ * @URI: an URI to test
+ *
+ * Return a pointer to the urip: query handler, in this example simply
+ * the urip_current pointer...
+ *
+ * Returns an Input context or NULL in case or error
+ */
+static void *
+uripOpen(const char * URI) {
+    if ((URI == NULL) || (!strcmp(URI, "file:///etc/xml/catalog")))
+        return(NULL);
+    /* Verify we received the escaped URL */
+    if (strcmp(urip_rcvsURLs[urip_current], URI))
+	urip_success = 0;
+    urip_cur = urip_res;
+    urip_rlen = strlen(urip_res);
+    return((void *) urip_cur);
+}
+
+/**
+ * uripClose:
+ * @context: the read context
+ *
+ * Close the urip: query handler
+ *
+ * Returns 0 or -1 in case of error
+ */
+static int
+uripClose(void * context) {
+    if (context == NULL) return(-1);
+    urip_cur = NULL;
+    urip_rlen = 0;
+    return(0);
+}
+
+/**
+ * uripRead:
+ * @context: the read context
+ * @buffer: where to store data
+ * @len: number of bytes to read
+ *
+ * Implement an urip: query read.
+ *
+ * Returns the number of bytes read or -1 in case of error
+ */
+static int
+uripRead(void * context, char * buffer, int len) {
+   const char *ptr = (const char *) context;
+
+   if ((context == NULL) || (buffer == NULL) || (len < 0))
+       return(-1);
+
+   if (len > urip_rlen) len = urip_rlen;
+   memcpy(buffer, ptr, len);
+   urip_rlen -= len;
+   return(len);
+}
+
+static int
+urip_checkURL(const char *URL) {
+    xmlDocPtr doc;
+
+    doc = xmlReadFile(URL, NULL, 0);
+    if (doc == NULL)
+        return(-1);
+    xmlFreeDoc(doc);
+    return(1);
+}
+
+/**
+ * uriPathTest:
+ * @filename: ignored
+ * @result: ignored
+ * @err: ignored
+ *
+ * Run a set of tests to check how Path and URI are handled before
+ * being passed to the I/O layer
+ *
+ * Returns 0 in case of success, an error code otherwise
+ */
+static int
+uriPathTest(const char *filename ATTRIBUTE_UNUSED,
+             const char *result ATTRIBUTE_UNUSED,
+             const char *err ATTRIBUTE_UNUSED,
+             int options ATTRIBUTE_UNUSED) {
+    int parsed;
+    int failures = 0;
+
+    /*
+     * register the new I/O handlers
+     */
+    if (xmlRegisterInputCallbacks(uripMatch, uripOpen, uripRead, uripClose) < 0)
+    {
+        fprintf(stderr, "failed to register HTTP handler\n");
+	return(-1);
+    }
+
+    for (urip_current = 0;urip_testURLs[urip_current] != NULL;urip_current++) {
+        urip_success = 1;
+        parsed = urip_checkURL(urip_testURLs[urip_current]);
+	if (urip_success != 1) {
+	    fprintf(stderr, "failed the URL passing test for %s",
+	            urip_testURLs[urip_current]);
+	    failures++;
+	} else if (parsed != 1) {
+	    fprintf(stderr, "failed the parsing test for %s",
+	            urip_testURLs[urip_current]);
+	    failures++;
+	}
+	nb_tests++;
+    }
+
+    xmlPopInputCallbacks();
+    return(failures);
+}
+
 #ifdef LIBXML_SCHEMAS_ENABLED
 /************************************************************************
  *									*
@@ -3076,7 +3248,7 @@
      * hack is also done in the Makefile
      */
     if ((!strcmp(prefix, "tutor10_1")) || (!strcmp(prefix, "tutor10_2")) ||
-        (!strcmp(prefix, "tutor3_2"))) 
+        (!strcmp(prefix, "tutor3_2")) || (!strcmp(prefix, "307377"))) 
 	disable_err = 1;
 
     snprintf(pattern, 499, "./test/relaxng/%s_?.xml", prefix);
@@ -3357,7 +3529,7 @@
     xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
     xmlSubstituteEntitiesDefault(1);
 
-    doc = xmlParseFile(filename);
+    doc = xmlReadFile(filename, NULL, XML_PARSE_DTDATTR | XML_PARSE_NOENT);
     if (doc == NULL) {
 	fprintf(stderr, "Error: unable to parse file \"%s\"\n", filename);
 	return(NULL);
@@ -3509,7 +3681,7 @@
     xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
     xmlSubstituteEntitiesDefault(1);
 
-    doc = xmlParseFile(xml_filename);
+    doc = xmlReadFile(xml_filename, NULL, XML_PARSE_DTDATTR | XML_PARSE_NOENT);
     if (doc == NULL) {
 	fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_filename);
 	return(-1);
@@ -3644,7 +3816,7 @@
     return(c14nCommonTest(filename, 0, 1, "exc-without-comments"));
 }
 #endif
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
+#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined (LIBXML_SAX1_ENABLED)
 /************************************************************************
  *									*
  *			Catalog and threads test			*
@@ -3667,8 +3839,8 @@
     "test/threads/invalid.xml",
 };
 
-const char *Okay = "OK";
-const char *Failed = "Failed";
+static const char *Okay = "OK";
+static const char *Failed = "Failed";
 
 #ifndef xmlDoValidityCheckingDefaultValue
 #error xmlDoValidityCheckingDefaultValue is not a macro
@@ -4039,6 +4211,9 @@
     { "URI base composition tests" ,
       uriBaseTest, "./test/URI/*.data", "result/URI/", "", NULL,
       0 },
+    { "Path URI conversion tests" ,
+      uriPathTest, NULL, NULL, NULL, NULL,
+      0 },
 #ifdef LIBXML_SCHEMAS_ENABLED
     { "Schemas regression tests" ,
       schemasTest, "./test/schemas/*_*.xsd", NULL, NULL, NULL,
@@ -4070,7 +4245,7 @@
       c14nExcWithoutCommentTest, "./test/c14n/exc-without-comments/*.xml", NULL, NULL, NULL,
       0 },
 #endif
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
+#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_SAX1_ENABLED)
     { "Catalog and Threads regression tests" ,
       threadsTest, NULL, NULL, NULL, NULL,
       0 },
@@ -4131,7 +4306,7 @@
 		testErrorsSize = 0;
 		testErrors[0] = 0;
 		res = tst->func(globbuf.gl_pathv[i], result, error,
-		                tst->options);
+		                tst->options | XML_PARSE_COMPACT);
 		xmlResetLastError();
 		if (res != 0) {
 		    fprintf(stderr, "File %s generated an error\n",
@@ -4169,35 +4344,61 @@
     return(err);
 }
 
+static int verbose = 0;
+static int tests_quiet = 0;
+
+static int
+runtest(int i) {
+    int ret = 0, res;
+    int old_errors, old_tests, old_leaks;
+
+    old_errors = nb_errors;
+    old_tests = nb_tests;
+    old_leaks = nb_leaks;
+    if ((tests_quiet == 0) && (testDescriptions[i].desc != NULL))
+	printf("## %s\n", testDescriptions[i].desc);
+    res = launchTests(&testDescriptions[i]);
+    if (res != 0)
+	ret++;
+    if (verbose) {
+	if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
+	    printf("Ran %d tests, no errors\n", nb_tests - old_tests);
+	else
+	    printf("Ran %d tests, %d errors, %d leaks\n",
+		   nb_tests - old_tests,
+		   nb_errors - old_errors,
+		   nb_leaks - old_leaks);
+    }
+    return(ret);
+}
+
 int
 main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
-    int i = 0, res, ret = 0;
-    int verbose = 0;
-    int old_errors, old_tests, old_leaks;
+    int i, a, ret = 0;
+    int subset = 0;
 
     initializeLibxml2();
 
-    if ((argc >= 2) && (!strcmp(argv[1], "-v")))
-        verbose = 1;
-    for (i = 0; testDescriptions[i].func != NULL; i++) {
-        old_errors = nb_errors;
-        old_tests = nb_tests;
-        old_leaks = nb_leaks;
-        if (testDescriptions[i].desc != NULL)
-	    printf("## %s\n", testDescriptions[i].desc);
-	res = launchTests(&testDescriptions[i]);
-	if (res != 0)
-	    ret++;
-	if (verbose) {
-	    if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
-	        printf("Ran %d tests, no errors\n", nb_tests - old_tests);
-	    else
-	        printf("Ran %d tests, %d errors, %d leaks\n",
-		       nb_tests - old_tests,
-		       nb_errors - old_errors,
-		       nb_leaks - old_leaks);
+    
+    for (a = 1; a < argc;a++) {
+        if (!strcmp(argv[a], "-v"))
+	    verbose = 1;
+        else if (!strcmp(argv[a], "-quiet"))
+	    tests_quiet = 1;
+	else {
+	    for (i = 0; testDescriptions[i].func != NULL; i++) {
+	        if (strstr(testDescriptions[i].desc, argv[a])) {
+		    ret += runtest(i);
+		    subset++;
+		}
+	    }
 	}
     }
+    if (subset == 0) {
+	for (i = 0; testDescriptions[i].func != NULL; i++) {
+	    ret += runtest(i);
+	}
+    }
     if ((nb_errors == 0) && (nb_leaks == 0)) {
         ret = 0;
 	printf("Total %d tests, no errors\n",

Copied: packages/libxml2/trunk/schematron.c (from rev 465, packages/libxml2/branches/upstream/current/schematron.c)

Copied: packages/libxml2/trunk/test/HTML/script2.html (from rev 465, packages/libxml2/branches/upstream/current/test/HTML/script2.html)

Copied: packages/libxml2/trunk/test/expr (from rev 465, packages/libxml2/branches/upstream/current/test/expr)

Copied: packages/libxml2/trunk/test/relaxng/307377.rng (from rev 465, packages/libxml2/branches/upstream/current/test/relaxng/307377.rng)

Copied: packages/libxml2/trunk/test/relaxng/307377_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/relaxng/307377_0.xml)

Copied: packages/libxml2/trunk/test/relaxng/307377_1.xml (from rev 465, packages/libxml2/branches/upstream/current/test/relaxng/307377_1.xml)

Copied: packages/libxml2/trunk/test/relaxng/307377_2.xml (from rev 465, packages/libxml2/branches/upstream/current/test/relaxng/307377_2.xml)

Modified: packages/libxml2/trunk/test/relaxng/docbook_0.xml
===================================================================
--- packages/libxml2/trunk/test/relaxng/docbook_0.xml	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/test/relaxng/docbook_0.xml	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,6 +1,5 @@
 <?xml version="1.0"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
-    "../dtd/4.1.2/docbookx.dtd" [
+<!DOCTYPE article [
 <!ENTITY version "1.0.53">
 <!ENTITY mdash  "--">
 <!ENTITY hellip "...">

Modified: packages/libxml2/trunk/test/schemas/.memdump
===================================================================
--- packages/libxml2/trunk/test/schemas/.memdump	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/test/schemas/.memdump	2005-09-05 17:42:20 UTC (rev 466)
@@ -1,4 +1,4 @@
-      01:13:40 PM
+      05:55:56 PM
 
-      MEMORY ALLOCATED : 0, MAX was 28425
+      MEMORY ALLOCATED : 0, MAX was 31048
 BLOCK  NUMBER   SIZE  TYPE

Copied: packages/libxml2/trunk/test/schemas/allsg_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/allsg_0.xml)

Copied: packages/libxml2/trunk/test/schemas/allsg_0.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/allsg_0.xsd)

Copied: packages/libxml2/trunk/test/schemas/allsg_1.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/allsg_1.xml)

Copied: packages/libxml2/trunk/test/schemas/allsg_2.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/allsg_2.xml)

Copied: packages/libxml2/trunk/test/schemas/allsg_3.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/allsg_3.xml)

Copied: packages/libxml2/trunk/test/schemas/allsg_4.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/allsg_4.xml)

Copied: packages/libxml2/trunk/test/schemas/allsg_5.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/allsg_5.xml)

Copied: packages/libxml2/trunk/test/schemas/any5_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_0.xml)

Copied: packages/libxml2/trunk/test/schemas/any5_0.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_0.xsd)

Copied: packages/libxml2/trunk/test/schemas/any5_1.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_1.xml)

Copied: packages/libxml2/trunk/test/schemas/any5_1.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_1.xsd)

Copied: packages/libxml2/trunk/test/schemas/any5_2.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_2.xml)

Copied: packages/libxml2/trunk/test/schemas/any5_3.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_3.xml)

Copied: packages/libxml2/trunk/test/schemas/any5_4.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_4.xml)

Copied: packages/libxml2/trunk/test/schemas/any5_5.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_5.xml)

Copied: packages/libxml2/trunk/test/schemas/any5_6.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any5_6.xml)

Copied: packages/libxml2/trunk/test/schemas/any6_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any6_0.xml)

Copied: packages/libxml2/trunk/test/schemas/any6_1.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any6_1.xsd)

Copied: packages/libxml2/trunk/test/schemas/any6_2.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any6_2.xsd)

Copied: packages/libxml2/trunk/test/schemas/any7_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any7_0.xml)

Copied: packages/libxml2/trunk/test/schemas/any7_1.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any7_1.xml)

Copied: packages/libxml2/trunk/test/schemas/any7_1.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any7_1.xsd)

Copied: packages/libxml2/trunk/test/schemas/any7_2.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any7_2.xml)

Copied: packages/libxml2/trunk/test/schemas/any7_2.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any7_2.xsd)

Copied: packages/libxml2/trunk/test/schemas/any8_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any8_0.xml)

Copied: packages/libxml2/trunk/test/schemas/any8_1.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/any8_1.xsd)

Copied: packages/libxml2/trunk/test/schemas/bug310264_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/bug310264_0.xml)

Copied: packages/libxml2/trunk/test/schemas/bug310264_0.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/bug310264_0.xsd)

Copied: packages/libxml2/trunk/test/schemas/bug312957_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/bug312957_0.xml)

Copied: packages/libxml2/trunk/test/schemas/bug312957_1.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/bug312957_1.xsd)

Copied: packages/libxml2/trunk/test/schemas/bug313982_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/bug313982_0.xml)

Copied: packages/libxml2/trunk/test/schemas/bug313982_0.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/bug313982_0.xsd)

Copied: packages/libxml2/trunk/test/schemas/extension2_0.xml (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/extension2_0.xml)

Copied: packages/libxml2/trunk/test/schemas/extension2_1.xsd (from rev 465, packages/libxml2/branches/upstream/current/test/schemas/extension2_1.xsd)

Copied: packages/libxml2/trunk/test/schematron (from rev 465, packages/libxml2/branches/upstream/current/test/schematron)

Copied: packages/libxml2/trunk/test/valid/dtds/objednavka.dtd (from rev 465, packages/libxml2/branches/upstream/current/test/valid/dtds/objednavka.dtd)

Copied: packages/libxml2/trunk/test/valid/objednavka.xml (from rev 465, packages/libxml2/branches/upstream/current/test/valid/objednavka.xml)

Modified: packages/libxml2/trunk/testC14N.c
===================================================================
--- packages/libxml2/trunk/testC14N.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/testC14N.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -63,7 +63,7 @@
     xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
     xmlSubstituteEntitiesDefault(1);
 
-    doc = xmlParseFile(xml_filename);
+    doc = xmlReadFile(xml_filename, NULL, XML_PARSE_DTDATTR | XML_PARSE_NOENT);
     if (doc == NULL) {
 	fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_filename);
 	return(-1);
@@ -237,7 +237,7 @@
     xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
     xmlSubstituteEntitiesDefault(1);
 
-    doc = xmlParseFile(filename);
+    doc = xmlReadFile(filename, NULL, XML_PARSE_DTDATTR | XML_PARSE_NOENT);
     if (doc == NULL) {
 	fprintf(stderr, "Error: unable to parse file \"%s\"\n", filename);
 	return(NULL);

Modified: packages/libxml2/trunk/testHTML.c
===================================================================
--- packages/libxml2/trunk/testHTML.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/testHTML.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -50,7 +50,7 @@
 static char *encoding = NULL;
 static int options = 0;
 
-xmlSAXHandler emptySAXHandlerStruct = {
+static xmlSAXHandler emptySAXHandlerStruct = {
     NULL, /* internalSubset */
     NULL, /* isStandalone */
     NULL, /* hasInternalSubset */
@@ -85,7 +85,7 @@
     NULL  /* xmlStructuredErrorFunc */
 };
 
-xmlSAXHandlerPtr emptySAXHandler = &emptySAXHandlerStruct;
+static xmlSAXHandlerPtr emptySAXHandler = &emptySAXHandlerStruct;
 extern xmlSAXHandlerPtr debugSAXHandler;
 
 /************************************************************************
@@ -523,7 +523,7 @@
  * Display and format a warning messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -543,7 +543,7 @@
  * Display and format a error messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -563,7 +563,7 @@
  * Display and format a fatalError messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 fatalErrorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -574,7 +574,7 @@
     va_end(args);
 }
 
-xmlSAXHandler debugSAXHandlerStruct = {
+static xmlSAXHandler debugSAXHandlerStruct = {
     internalSubsetDebug,
     isStandaloneDebug,
     hasInternalSubsetDebug,

Modified: packages/libxml2/trunk/testReader.c
===================================================================
--- packages/libxml2/trunk/testReader.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/testReader.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -34,12 +34,12 @@
 
 #include <libxml/xmlreader.h>
 
-int debug = 0;
-int dump = 0;
-int noent = 0;
-int count = 0;
-int valid = 0;
-int consumed = 0;
+static int debug = 0;
+static int dump = 0;
+static int noent = 0;
+static int count = 0;
+static int valid = 0;
+static int consumed = 0;
 
 static void usage(const char *progname) {
     printf("Usage : %s [options] XMLfiles ...\n", progname);

Modified: packages/libxml2/trunk/testRegexp.c
===================================================================
--- packages/libxml2/trunk/testRegexp.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/testRegexp.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -12,8 +12,8 @@
 #include <libxml/tree.h>
 #include <libxml/xmlregexp.h>
 
-int repeat = 0;
-int debug = 0;
+static int repeat = 0;
+static int debug = 0;
 
 static void testRegexp(xmlRegexpPtr comp, const char *value) {
     int ret;
@@ -85,13 +85,194 @@
 	xmlRegFreeRegexp(comp);
 }
 
+#ifdef LIBXML_EXPR_ENABLED
+static void
+runFileTest(xmlExpCtxtPtr ctxt, const char *filename) {
+    xmlExpNodePtr expr = NULL, sub;
+    FILE *input;
+    char expression[5000];
+    int len;
 
+    input = fopen(filename, "r");
+    if (input == NULL) {
+        xmlGenericError(xmlGenericErrorContext,
+		"Cannot open %s for reading\n", filename);
+	return;
+    }
+    while (fgets(expression, 4500, input) != NULL) {
+	len = strlen(expression);
+	len--;
+	while ((len >= 0) && 
+	       ((expression[len] == '\n') || (expression[len] == '\t') ||
+		(expression[len] == '\r') || (expression[len] == ' '))) len--;
+	expression[len + 1] = 0;      
+	if (len >= 0) {
+	    if (expression[0] == '#')
+		continue;
+	    if ((expression[0] == '=') && (expression[1] == '>')) {
+		char *str = &expression[2];
+
+		if (expr != NULL) {
+		    xmlExpFree(ctxt, expr);
+		    if (xmlExpCtxtNbNodes(ctxt) != 0) 
+		        printf(" Parse/free of Expression leaked %d\n",
+			       xmlExpCtxtNbNodes(ctxt));
+		    expr = NULL;
+		}
+		printf("Expression: %s\n", str) ;
+		expr = xmlExpParse(ctxt, str);
+		if (expr == NULL) {
+		    printf("   parsing Failed\n");
+		    break;
+		}
+	    } else if (expr != NULL) {
+	        int expect = -1;
+		int nodes1, nodes2;
+
+		if (expression[0] == '0')
+		    expect = 0;
+		if (expression[0] == '1')
+		    expect = 1;
+		printf("Subexp: %s", expression + 2) ;
+		nodes1 = xmlExpCtxtNbNodes(ctxt);
+		sub = xmlExpParse(ctxt, expression + 2);
+		if (sub == NULL) {
+		    printf("   parsing Failed\n");
+		    break;
+		} else {
+		    int ret;
+		    
+		    nodes2 = xmlExpCtxtNbNodes(ctxt);
+		    ret = xmlExpSubsume(ctxt, expr, sub);
+
+		    if ((expect == 1) && (ret == 1)) {
+			printf(" => accept, Ok\n");
+		    } else if ((expect == 0) && (ret == 0)) {
+		        printf(" => reject, Ok\n");
+		    } else if ((expect == 1) && (ret == 0)) {
+			printf(" => reject, Failed\n");
+		    } else if ((expect == 0) && (ret == 1)) {
+			printf(" => accept, Failed\n");
+		    } else {
+		        printf(" => fail internally\n");
+		    }
+		    if (xmlExpCtxtNbNodes(ctxt) > nodes2) {
+		        printf(" Subsume leaked %d\n",
+			       xmlExpCtxtNbNodes(ctxt) - nodes2);
+			nodes1 += xmlExpCtxtNbNodes(ctxt) - nodes2;
+		    }
+		    xmlExpFree(ctxt, sub);
+		    if (xmlExpCtxtNbNodes(ctxt) > nodes1) {
+		        printf(" Parse/free leaked %d\n",
+			       xmlExpCtxtNbNodes(ctxt) - nodes1);
+		    }
+		}
+
+	    }
+	}
+    }
+    if (expr != NULL) {
+	xmlExpFree(ctxt, expr);
+	if (xmlExpCtxtNbNodes(ctxt) != 0) 
+	    printf(" Parse/free of Expression leaked %d\n",
+		   xmlExpCtxtNbNodes(ctxt));
+    }
+    fclose(input);
+}
+
+static void 
+testReduce(xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, const char *tst) {
+    xmlBufferPtr xmlExpBuf;
+    xmlExpNodePtr sub, deriv;
+    xmlExpBuf = xmlBufferCreate();
+
+    sub = xmlExpParse(ctxt, tst);
+    if (sub == NULL) {
+        printf("Subset %s failed to parse\n", tst);
+	return;
+    }
+    xmlExpDump(xmlExpBuf, sub);
+    printf("Subset parsed as: %s\n",
+           (const char *) xmlBufferContent(xmlExpBuf));
+    deriv = xmlExpExpDerive(ctxt, expr, sub);
+    if (deriv == NULL) {
+        printf("Derivation led to an internal error, report this !\n");
+	return;
+    } else {
+        xmlBufferEmpty(xmlExpBuf);
+	xmlExpDump(xmlExpBuf, deriv);
+	if (xmlExpIsNillable(deriv))
+	    printf("Resulting nillable derivation: %s\n",
+	           (const char *) xmlBufferContent(xmlExpBuf));
+	else
+	    printf("Resulting derivation: %s\n",
+	           (const char *) xmlBufferContent(xmlExpBuf));
+	xmlExpFree(ctxt, deriv);
+    }
+    xmlExpFree(ctxt, sub);
+}
+
+static void 
+exprDebug(xmlExpCtxtPtr ctxt, xmlExpNodePtr expr) {
+    xmlBufferPtr xmlExpBuf;
+    xmlExpNodePtr deriv;
+    const char *list[40];
+    int ret;
+
+    xmlExpBuf = xmlBufferCreate();
+
+    if (expr == NULL) {
+        printf("Failed to parse\n");
+	return;
+    }
+    xmlExpDump(xmlExpBuf, expr);
+    printf("Parsed as: %s\n", (const char *) xmlBufferContent(xmlExpBuf));
+    printf("Max token input = %d\n", xmlExpMaxToken(expr));
+    if (xmlExpIsNillable(expr) == 1)
+	printf("Is nillable\n");
+    ret = xmlExpGetLanguage(ctxt, expr, (const xmlChar **) &list[0], 40);
+    if (ret < 0)
+	printf("Failed to get list: %d\n", ret);
+    else {
+	int i;
+
+	printf("Language has %d strings, testing string derivations\n", ret);
+	for (i = 0;i < ret;i++) {
+	    deriv = xmlExpStringDerive(ctxt, expr, BAD_CAST list[i], -1);
+	    if (deriv == NULL) {
+		printf("  %s -> derivation failed\n", list[i]);
+	    } else {
+		xmlBufferEmpty(xmlExpBuf);
+		xmlExpDump(xmlExpBuf, deriv);
+		printf("  %s -> %s\n", list[i],
+		       (const char *) xmlBufferContent(xmlExpBuf));
+	    }
+	    xmlExpFree(ctxt, deriv);
+	}
+    }
+    xmlBufferFree(xmlExpBuf);
+}
+#endif
+
 static void usage(const char *name) {
-    fprintf(stderr, "Usage: %s\n", name);
+    fprintf(stderr, "Usage: %s [flags]\n", name);
+    fprintf(stderr, "Testing tool for libxml2 string and pattern regexps\n");
+    fprintf(stderr, "   --debug: switch on debugging\n");
+    fprintf(stderr, "   --repeat: loop on the operation\n");
+#ifdef LIBXML_EXPR_ENABLED
+    fprintf(stderr, "   --expr: test xmlExp and not xmlRegexp\n");
+#endif
+    fprintf(stderr, "   --input filename: use the given filename for regexp\n");
+    fprintf(stderr, "   --input filename: use the given filename for exp\n");
 }
 
 int main(int argc, char **argv) {
     xmlRegexpPtr comp = NULL;
+#ifdef LIBXML_EXPR_ENABLED
+    xmlExpNodePtr expr = NULL;
+    int use_exp = 0;
+    xmlExpCtxtPtr ctxt = NULL;
+#endif
     const char *pattern = NULL;
     char *filename = NULL;
     int i;
@@ -113,39 +294,88 @@
 	} else if ((!strcmp(argv[i], "-repeat")) ||
 	         (!strcmp(argv[i], "--repeat"))) {
 	    repeat++;
-	} else if ((!strcmp(argv[i], "-i")) || (!strcmp(argv[i], "--input")))
+#ifdef LIBXML_EXPR_ENABLED
+	} else if ((!strcmp(argv[i], "-expr")) ||
+	         (!strcmp(argv[i], "--expr"))) {
+	    use_exp++;
+#endif
+	} else if ((!strcmp(argv[i], "-i")) || (!strcmp(argv[i], "-f")) ||
+		   (!strcmp(argv[i], "--input")))
 	    filename = argv[++i];
         else {
 	    fprintf(stderr, "Unknown option %s\n", argv[i]);
 	    usage(argv[0]);
 	}
     }
+
+#ifdef LIBXML_EXPR_ENABLED
+    if (use_exp)
+	ctxt = xmlExpNewCtxt(0, NULL);
+#endif
+
     if (filename != NULL) {
-	testRegexpFile(filename);
+#ifdef LIBXML_EXPR_ENABLED
+        if (use_exp)
+	    runFileTest(ctxt, filename);
+	else
+#endif
+	    testRegexpFile(filename);
     } else {
-	for (i = 1; i < argc ; i++) {
-	    if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
-		if (pattern == NULL) {
-		    pattern = argv[i];
-		    printf("Testing %s:\n", pattern);
-		    comp = xmlRegexpCompile((const xmlChar *) pattern);
-		    if (comp == NULL) {
-			printf("   failed to compile\n");
-			break;
+#ifdef LIBXML_EXPR_ENABLED
+        if (use_exp) {
+	    for (i = 1; i < argc ; i++) {
+		if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
+		    if (pattern == NULL) {
+			pattern = argv[i];
+			printf("Testing expr %s:\n", pattern);
+			expr = xmlExpParse(ctxt, pattern);
+			if (expr == NULL) {
+			    printf("   failed to compile\n");
+			    break;
+			}
+			if (debug) {
+			    exprDebug(ctxt, expr);
+			}
+		    } else {
+			testReduce(ctxt, expr, argv[i]);
 		    }
-		    if (debug)
-			xmlRegexpPrint(stdout, comp);
-		} else {
-		    testRegexp(comp, argv[i]);
 		}
 	    }
-	}
-	xmlMemoryDump();
-	if (comp != NULL)
-	    xmlRegFreeRegexp(comp);
+	    if (expr != NULL)
+		xmlExpFree(ctxt, expr);
+	} else
+#endif
+        {
+	    for (i = 1; i < argc ; i++) {
+		if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
+		    if (pattern == NULL) {
+			pattern = argv[i];
+			printf("Testing %s:\n", pattern);
+			comp = xmlRegexpCompile((const xmlChar *) pattern);
+			if (comp == NULL) {
+			    printf("   failed to compile\n");
+			    break;
+			}
+			if (debug)
+			    xmlRegexpPrint(stdout, comp);
+		    } else {
+			testRegexp(comp, argv[i]);
+		    }
+		}
+	    }
+	    if (comp != NULL)
+		xmlRegFreeRegexp(comp);
+        }
     }
+#ifdef LIBXML_EXPR_ENABLED
+    if (ctxt != NULL) {
+	printf("Ops: %d nodes, %d cons\n",
+	       xmlExpCtxtNbNodes(ctxt), xmlExpCtxtNbCons(ctxt));
+	xmlExpFreeCtxt(ctxt);
+    }
+#endif
     xmlCleanupParser();
-    /* xmlMemoryDump(); */
+    xmlMemoryDump();
     return(0);
 }
 

Modified: packages/libxml2/trunk/testSAX.c
===================================================================
--- packages/libxml2/trunk/testSAX.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/testSAX.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -113,7 +113,7 @@
  *           message about the timing performed; format is a printf
  *           type argument
  */
-static void
+static void XMLCDECL
 endTimer(const char *fmt, ...)
 {
     long msec;
@@ -149,7 +149,7 @@
 {
     begin = clock();
 }
-static void
+static void XMLCDECL
 endTimer(const char *fmt, ...)
 {
     long msec;
@@ -178,7 +178,7 @@
      * Do nothing
      */
 }
-static void
+static void XMLCDECL
 endTimer(char *format, ...)
 {
     /*
@@ -200,7 +200,7 @@
 /*
  * empty SAX block
  */
-xmlSAXHandler emptySAXHandlerStruct = {
+static xmlSAXHandler emptySAXHandlerStruct = {
     NULL, /* internalSubset */
     NULL, /* isStandalone */
     NULL, /* hasInternalSubset */
@@ -235,7 +235,7 @@
     NULL  /* xmlStructuredErrorFunc */
 };
 
-xmlSAXHandlerPtr emptySAXHandler = &emptySAXHandlerStruct;
+static xmlSAXHandlerPtr emptySAXHandler = &emptySAXHandlerStruct;
 extern xmlSAXHandlerPtr debugSAXHandler;
 
 /************************************************************************
@@ -773,7 +773,7 @@
  * Display and format a warning messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -796,7 +796,7 @@
  * Display and format a error messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -819,7 +819,7 @@
  * Display and format a fatalError messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 fatalErrorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -833,7 +833,7 @@
     va_end(args);
 }
 
-xmlSAXHandler debugSAXHandlerStruct = {
+static xmlSAXHandler debugSAXHandlerStruct = {
     internalSubsetDebug,
     isStandaloneDebug,
     hasInternalSubsetDebug,
@@ -957,7 +957,7 @@
 	fprintf(stdout, ", '%s')\n", (char *) URI);
 }
 
-xmlSAXHandler debugSAX2HandlerStruct = {
+static xmlSAXHandler debugSAX2HandlerStruct = {
     internalSubsetDebug,
     isStandaloneDebug,
     hasInternalSubsetDebug,
@@ -992,7 +992,7 @@
     NULL
 };
 
-xmlSAXHandlerPtr debugSAX2Handler = &debugSAX2HandlerStruct;
+static xmlSAXHandlerPtr debugSAX2Handler = &debugSAX2HandlerStruct;
 
 /************************************************************************
  *									*

Modified: packages/libxml2/trunk/testThreads.c
===================================================================
--- packages/libxml2/trunk/testThreads.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/testThreads.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -36,8 +36,8 @@
     "test/threads/invalid.xml",
 };
 
-const char *Okay = "OK";
-const char *Failed = "Failed";
+static const char *Okay = "OK";
+static const char *Failed = "Failed";
 
 #ifndef xmlDoValidityCheckingDefaultValue
 #error xmlDoValidityCheckingDefaultValue is not a macro
@@ -110,7 +110,7 @@
 	}
 
 	for (i = 0; i < num_threads; i++) {
-	    ret = pthread_create(&tid[i], 0, thread_specific_data,
+	    ret = pthread_create(&tid[i], NULL, thread_specific_data,
 				 (void *) testfiles[i]);
 	    if (ret != 0) {
 		perror("pthread_create");

Modified: packages/libxml2/trunk/testXPath.c
===================================================================
--- packages/libxml2/trunk/testXPath.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/testXPath.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -178,9 +178,9 @@
     }
     if (document == NULL) {
         if (filename == NULL)
-	    document = xmlReadDoc(buffer,NULL,NULL,0);
+	    document = xmlReadDoc(buffer,NULL,NULL,XML_PARSE_COMPACT);
 	else
-	    document = xmlReadFile(filename,NULL,0);
+	    document = xmlReadFile(filename,NULL,XML_PARSE_COMPACT);
     }
     for (i = 1; i < argc ; i++) {
 	if ((!strcmp(argv[i], "-i")) || (!strcmp(argv[i], "--input"))) {

Modified: packages/libxml2/trunk/testapi.c
===================================================================
--- packages/libxml2/trunk/testapi.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/testapi.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -171,6 +171,7 @@
 #include <libxml/pattern.h>
 #include <libxml/relaxng.h>
 #include <libxml/schemasInternals.h>
+#include <libxml/schematron.h>
 #include <libxml/tree.h>
 #include <libxml/uri.h>
 #include <libxml/valid.h>
@@ -1051,24 +1052,21 @@
 static void des_xmlElementTypeVal(int no ATTRIBUTE_UNUSED, xmlElementTypeVal val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
 }
 
-static void desret_xmlParserErrors(xmlParserErrors val ATTRIBUTE_UNUSED) {
+#define gen_nb_xmlFeature 4
+static xmlFeature gen_xmlFeature(int no, int nr ATTRIBUTE_UNUSED) {
+    if (no == 1) return(XML_FEATURE_AUTOMATA);
+    if (no == 2) return(XML_FEATURE_C14N);
+    if (no == 3) return(XML_FEATURE_CATALOG);
+    if (no == 4) return(XML_FEATURE_DEBUG);
+    return(0);
 }
 
-#ifdef LIBXML_PATTERN_ENABLED
-#define gen_nb_xmlPatternFlags 4
-static xmlPatternFlags gen_xmlPatternFlags(int no, int nr ATTRIBUTE_UNUSED) {
-    if (no == 1) return(XML_PATTERN_DEFAULT);
-    if (no == 2) return(XML_PATTERN_XPATH);
-    if (no == 3) return(XML_PATTERN_XSFIELD);
-    if (no == 4) return(XML_PATTERN_XSSEL);
-    return(0);
+static void des_xmlFeature(int no ATTRIBUTE_UNUSED, xmlFeature val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
 }
 
-static void des_xmlPatternFlags(int no ATTRIBUTE_UNUSED, xmlPatternFlags val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+static void desret_xmlParserErrors(xmlParserErrors val ATTRIBUTE_UNUSED) {
 }
 
-#endif
-
 #ifdef LIBXML_SCHEMAS_ENABLED
 #define gen_nb_xmlSchemaValType 4
 static xmlSchemaValType gen_xmlSchemaValType(int no, int nr ATTRIBUTE_UNUSED) {
@@ -1121,6 +1119,7 @@
 #include <libxml/pattern.h>
 #include <libxml/relaxng.h>
 #include <libxml/schemasInternals.h>
+#include <libxml/schematron.h>
 #include <libxml/tree.h>
 #include <libxml/uri.h>
 #include <libxml/valid.h>
@@ -1159,6 +1158,7 @@
 static int test_pattern(void);
 static int test_relaxng(void);
 static int test_schemasInternals(void);
+static int test_schematron(void);
 static int test_tree(void);
 static int test_uri(void);
 static int test_valid(void);
@@ -1211,6 +1211,7 @@
     test_ret += test_pattern();
     test_ret += test_relaxng();
     test_ret += test_schemasInternals();
+    test_ret += test_schematron();
     test_ret += test_tree();
     test_ret += test_uri();
     test_ret += test_valid();
@@ -3924,7 +3925,7 @@
 test_xmlSAX2EndElement(void) {
     int test_ret = 0;
 
-#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
 #ifdef LIBXML_SAX1_ENABLED
     int mem_base;
     void * ctx; /* the user data (XML parser context) */
@@ -4889,7 +4890,7 @@
 test_xmlSAX2StartElement(void) {
     int test_ret = 0;
 
-#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED)
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
 #ifdef LIBXML_SAX1_ENABLED
     int mem_base;
     void * ctx; /* the user data (XML parser context) */
@@ -12985,6 +12986,38 @@
 
 
 static int
+test_xmlHasFeature(void) {
+    int test_ret = 0;
+
+    int mem_base;
+    int ret_val;
+    xmlFeature feature; /* the feature to be examined */
+    int n_feature;
+
+    for (n_feature = 0;n_feature < gen_nb_xmlFeature;n_feature++) {
+        mem_base = xmlMemBlocks();
+        feature = gen_xmlFeature(n_feature, 0);
+
+        ret_val = xmlHasFeature(feature);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlFeature(n_feature, feature, 0);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlHasFeature",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_feature);
+            printf("\n");
+        }
+    }
+    function_tests++;
+
+    return(test_ret);
+}
+
+
+static int
 test_xmlIOParseDTD(void) {
     int test_ret = 0;
 
@@ -15172,7 +15205,7 @@
 test_parser(void) {
     int test_ret = 0;
 
-    if (quiet == 0) printf("Testing parser : 60 of 69 functions ...\n");
+    if (quiet == 0) printf("Testing parser : 61 of 70 functions ...\n");
     test_ret += test_xmlByteConsumed();
     test_ret += test_xmlClearNodeInfoSeq();
     test_ret += test_xmlClearParserCtxt();
@@ -15187,6 +15220,7 @@
     test_ret += test_xmlGetExternalEntityLoader();
     test_ret += test_xmlGetFeature();
     test_ret += test_xmlGetFeaturesList();
+    test_ret += test_xmlHasFeature();
     test_ret += test_xmlIOParseDTD();
     test_ret += test_xmlInitNodeInfoSeq();
     test_ret += test_xmlInitParser();
@@ -16710,6 +16744,40 @@
 
 
 static int
+test_xmlPatternMinDepth(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_PATTERN_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlPatternPtr comp; /* the precompiled pattern */
+    int n_comp;
+
+    for (n_comp = 0;n_comp < gen_nb_xmlPatternPtr;n_comp++) {
+        mem_base = xmlMemBlocks();
+        comp = gen_xmlPatternPtr(n_comp, 0);
+
+        ret_val = xmlPatternMinDepth(comp);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlPatternPtr(n_comp, comp, 0);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlPatternMinDepth",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_comp);
+            printf("\n");
+        }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+
+static int
 test_xmlPatternStreamable(void) {
     int test_ret = 0;
 
@@ -16896,11 +16964,12 @@
 test_pattern(void) {
     int test_ret = 0;
 
-    if (quiet == 0) printf("Testing pattern : 7 of 12 functions ...\n");
+    if (quiet == 0) printf("Testing pattern : 8 of 13 functions ...\n");
     test_ret += test_xmlPatternFromRoot();
     test_ret += test_xmlPatternGetStreamCtxt();
     test_ret += test_xmlPatternMatch();
     test_ret += test_xmlPatternMaxDepth();
+    test_ret += test_xmlPatternMinDepth();
     test_ret += test_xmlPatternStreamable();
     test_ret += test_xmlPatterncompile();
     test_ret += test_xmlStreamPop();
@@ -17337,6 +17406,16 @@
 
 
 static int
+test_xmlRelaxNGSetValidStructuredErrors(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
 test_xmlRelaxNGValidateDoc(void) {
     int test_ret = 0;
 
@@ -17613,7 +17692,7 @@
 test_relaxng(void) {
     int test_ret = 0;
 
-    if (quiet == 0) printf("Testing relaxng : 14 of 22 functions ...\n");
+    if (quiet == 0) printf("Testing relaxng : 14 of 23 functions ...\n");
     test_ret += test_xmlRelaxNGDump();
     test_ret += test_xmlRelaxNGDumpTree();
     test_ret += test_xmlRelaxNGGetParserErrors();
@@ -17626,6 +17705,7 @@
     test_ret += test_xmlRelaxNGParse();
     test_ret += test_xmlRelaxNGSetParserErrors();
     test_ret += test_xmlRelaxNGSetValidErrors();
+    test_ret += test_xmlRelaxNGSetValidStructuredErrors();
     test_ret += test_xmlRelaxNGValidateDoc();
     test_ret += test_xmlRelaxNGValidateFullElement();
     test_ret += test_xmlRelaxNGValidatePopElement();
@@ -17649,6 +17729,134 @@
 }
 
 static int
+test_xmlSchematronNewDocParserCtxt(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlSchematronNewMemParserCtxt(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlSchematronNewParserCtxt(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+#define gen_nb_xmlSchematronPtr 1
+static xmlSchematronPtr gen_xmlSchematronPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+    return(NULL);
+}
+static void des_xmlSchematronPtr(int no ATTRIBUTE_UNUSED, xmlSchematronPtr val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+}
+
+static int
+test_xmlSchematronNewValidCtxt(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+#define gen_nb_xmlSchematronParserCtxtPtr 1
+static xmlSchematronParserCtxtPtr gen_xmlSchematronParserCtxtPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+    return(NULL);
+}
+static void des_xmlSchematronParserCtxtPtr(int no ATTRIBUTE_UNUSED, xmlSchematronParserCtxtPtr val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+}
+
+static int
+test_xmlSchematronParse(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+#define gen_nb_xmlSchematronValidCtxtPtr 1
+static xmlSchematronValidCtxtPtr gen_xmlSchematronValidCtxtPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+    return(NULL);
+}
+static void des_xmlSchematronValidCtxtPtr(int no ATTRIBUTE_UNUSED, xmlSchematronValidCtxtPtr val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+}
+
+static int
+test_xmlSchematronValidateDoc(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_SCHEMATRON_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlSchematronValidCtxtPtr ctxt; /* the schema validation context */
+    int n_ctxt;
+    xmlDocPtr instance; /* the document instace tree */
+    int n_instance;
+
+    for (n_ctxt = 0;n_ctxt < gen_nb_xmlSchematronValidCtxtPtr;n_ctxt++) {
+    for (n_instance = 0;n_instance < gen_nb_xmlDocPtr;n_instance++) {
+        mem_base = xmlMemBlocks();
+        ctxt = gen_xmlSchematronValidCtxtPtr(n_ctxt, 0);
+        instance = gen_xmlDocPtr(n_instance, 1);
+
+        ret_val = xmlSchematronValidateDoc(ctxt, instance);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlSchematronValidCtxtPtr(n_ctxt, ctxt, 0);
+        des_xmlDocPtr(n_instance, instance, 1);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlSchematronValidateDoc",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_ctxt);
+            printf(" %d", n_instance);
+            printf("\n");
+        }
+    }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+static int
+test_schematron(void) {
+    int test_ret = 0;
+
+    if (quiet == 0) printf("Testing schematron : 1 of 9 functions ...\n");
+    test_ret += test_xmlSchematronNewDocParserCtxt();
+    test_ret += test_xmlSchematronNewMemParserCtxt();
+    test_ret += test_xmlSchematronNewParserCtxt();
+    test_ret += test_xmlSchematronNewValidCtxt();
+    test_ret += test_xmlSchematronParse();
+    test_ret += test_xmlSchematronValidateDoc();
+
+    if (test_ret != 0)
+	printf("Module schematron: %d errors\n", test_ret);
+    return(test_ret);
+}
+
+static int
 test_xmlAddChild(void) {
     int test_ret = 0;
 
@@ -23558,6 +23766,16 @@
 }
 
 
+static int
+test_xmlParseURIRaw(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
 #define gen_nb_xmlURIPtr 1
 static xmlURIPtr gen_xmlURIPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
     return(NULL);
@@ -23757,13 +23975,14 @@
 test_uri(void) {
     int test_ret = 0;
 
-    if (quiet == 0) printf("Testing uri : 9 of 13 functions ...\n");
+    if (quiet == 0) printf("Testing uri : 9 of 14 functions ...\n");
     test_ret += test_xmlBuildRelativeURI();
     test_ret += test_xmlBuildURI();
     test_ret += test_xmlCanonicPath();
     test_ret += test_xmlCreateURI();
     test_ret += test_xmlNormalizeURIPath();
     test_ret += test_xmlParseURI();
+    test_ret += test_xmlParseURIRaw();
     test_ret += test_xmlParseURIReference();
     test_ret += test_xmlPrintURI();
     test_ret += test_xmlSaveUri();
@@ -28226,6 +28445,16 @@
 
 
 static int
+test_xmlAutomataNewNegTrans(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
 test_xmlAutomataNewOnceTrans(void) {
     int test_ret = 0;
 
@@ -28329,7 +28558,7 @@
 test_xmlautomata(void) {
     int test_ret = 0;
 
-    if (quiet == 0) printf("Testing xmlautomata : 3 of 18 functions ...\n");
+    if (quiet == 0) printf("Testing xmlautomata : 3 of 19 functions ...\n");
     test_ret += test_xmlAutomataCompile();
     test_ret += test_xmlAutomataGetInitState();
     test_ret += test_xmlAutomataIsDeterminist();
@@ -28340,6 +28569,7 @@
     test_ret += test_xmlAutomataNewCounter();
     test_ret += test_xmlAutomataNewCounterTrans();
     test_ret += test_xmlAutomataNewEpsilon();
+    test_ret += test_xmlAutomataNewNegTrans();
     test_ret += test_xmlAutomataNewOnceTrans();
     test_ret += test_xmlAutomataNewOnceTrans2();
     test_ret += test_xmlAutomataNewState();
@@ -31707,6 +31937,471 @@
 }
 #ifdef LIBXML_REGEXP_ENABLED
 
+#define gen_nb_xmlExpCtxtPtr 1
+static xmlExpCtxtPtr gen_xmlExpCtxtPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+    return(NULL);
+}
+static void des_xmlExpCtxtPtr(int no ATTRIBUTE_UNUSED, xmlExpCtxtPtr val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+}
+#endif
+
+
+static int
+test_xmlExpCtxtNbCons(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlExpCtxtPtr ctxt; /* an expression context */
+    int n_ctxt;
+
+    for (n_ctxt = 0;n_ctxt < gen_nb_xmlExpCtxtPtr;n_ctxt++) {
+        mem_base = xmlMemBlocks();
+        ctxt = gen_xmlExpCtxtPtr(n_ctxt, 0);
+
+        ret_val = xmlExpCtxtNbCons(ctxt);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlExpCtxtPtr(n_ctxt, ctxt, 0);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpCtxtNbCons",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_ctxt);
+            printf("\n");
+        }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpCtxtNbNodes(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlExpCtxtPtr ctxt; /* an expression context */
+    int n_ctxt;
+
+    for (n_ctxt = 0;n_ctxt < gen_nb_xmlExpCtxtPtr;n_ctxt++) {
+        mem_base = xmlMemBlocks();
+        ctxt = gen_xmlExpCtxtPtr(n_ctxt, 0);
+
+        ret_val = xmlExpCtxtNbNodes(ctxt);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlExpCtxtPtr(n_ctxt, ctxt, 0);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpCtxtNbNodes",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_ctxt);
+            printf("\n");
+        }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+#ifdef LIBXML_REGEXP_ENABLED
+
+#define gen_nb_xmlExpNodePtr 1
+static xmlExpNodePtr gen_xmlExpNodePtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+    return(NULL);
+}
+static void des_xmlExpNodePtr(int no ATTRIBUTE_UNUSED, xmlExpNodePtr val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
+}
+#endif
+
+
+static int
+test_xmlExpDump(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    xmlBufferPtr buf; /* a buffer to receive the output */
+    int n_buf;
+    xmlExpNodePtr expr; /* the compiled expression */
+    int n_expr;
+
+    for (n_buf = 0;n_buf < gen_nb_xmlBufferPtr;n_buf++) {
+    for (n_expr = 0;n_expr < gen_nb_xmlExpNodePtr;n_expr++) {
+        mem_base = xmlMemBlocks();
+        buf = gen_xmlBufferPtr(n_buf, 0);
+        expr = gen_xmlExpNodePtr(n_expr, 1);
+
+        xmlExpDump(buf, expr);
+        call_tests++;
+        des_xmlBufferPtr(n_buf, buf, 0);
+        des_xmlExpNodePtr(n_expr, expr, 1);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpDump",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_buf);
+            printf(" %d", n_expr);
+            printf("\n");
+        }
+    }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpExpDerive(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpGetLanguage(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlExpCtxtPtr ctxt; /* the expression context */
+    int n_ctxt;
+    xmlExpNodePtr exp; /* the expression */
+    int n_exp;
+    xmlChar ** list; /* where to store the tokens */
+    int n_list;
+    int len; /* the allocated lenght of @list */
+    int n_len;
+
+    for (n_ctxt = 0;n_ctxt < gen_nb_xmlExpCtxtPtr;n_ctxt++) {
+    for (n_exp = 0;n_exp < gen_nb_xmlExpNodePtr;n_exp++) {
+    for (n_list = 0;n_list < gen_nb_const_xmlChar_ptr_ptr;n_list++) {
+    for (n_len = 0;n_len < gen_nb_int;n_len++) {
+        mem_base = xmlMemBlocks();
+        ctxt = gen_xmlExpCtxtPtr(n_ctxt, 0);
+        exp = gen_xmlExpNodePtr(n_exp, 1);
+        list = gen_const_xmlChar_ptr_ptr(n_list, 2);
+        len = gen_int(n_len, 3);
+
+        ret_val = xmlExpGetLanguage(ctxt, exp, (const xmlChar **)list, len);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlExpCtxtPtr(n_ctxt, ctxt, 0);
+        des_xmlExpNodePtr(n_exp, exp, 1);
+        des_const_xmlChar_ptr_ptr(n_list, (const xmlChar **)list, 2);
+        des_int(n_len, len, 3);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpGetLanguage",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_ctxt);
+            printf(" %d", n_exp);
+            printf(" %d", n_list);
+            printf(" %d", n_len);
+            printf("\n");
+        }
+    }
+    }
+    }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpGetStart(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlExpCtxtPtr ctxt; /* the expression context */
+    int n_ctxt;
+    xmlExpNodePtr exp; /* the expression */
+    int n_exp;
+    xmlChar ** list; /* where to store the tokens */
+    int n_list;
+    int len; /* the allocated lenght of @list */
+    int n_len;
+
+    for (n_ctxt = 0;n_ctxt < gen_nb_xmlExpCtxtPtr;n_ctxt++) {
+    for (n_exp = 0;n_exp < gen_nb_xmlExpNodePtr;n_exp++) {
+    for (n_list = 0;n_list < gen_nb_const_xmlChar_ptr_ptr;n_list++) {
+    for (n_len = 0;n_len < gen_nb_int;n_len++) {
+        mem_base = xmlMemBlocks();
+        ctxt = gen_xmlExpCtxtPtr(n_ctxt, 0);
+        exp = gen_xmlExpNodePtr(n_exp, 1);
+        list = gen_const_xmlChar_ptr_ptr(n_list, 2);
+        len = gen_int(n_len, 3);
+
+        ret_val = xmlExpGetStart(ctxt, exp, (const xmlChar **)list, len);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlExpCtxtPtr(n_ctxt, ctxt, 0);
+        des_xmlExpNodePtr(n_exp, exp, 1);
+        des_const_xmlChar_ptr_ptr(n_list, (const xmlChar **)list, 2);
+        des_int(n_len, len, 3);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpGetStart",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_ctxt);
+            printf(" %d", n_exp);
+            printf(" %d", n_list);
+            printf(" %d", n_len);
+            printf("\n");
+        }
+    }
+    }
+    }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpIsNillable(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlExpNodePtr exp; /* the expression */
+    int n_exp;
+
+    for (n_exp = 0;n_exp < gen_nb_xmlExpNodePtr;n_exp++) {
+        mem_base = xmlMemBlocks();
+        exp = gen_xmlExpNodePtr(n_exp, 0);
+
+        ret_val = xmlExpIsNillable(exp);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlExpNodePtr(n_exp, exp, 0);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpIsNillable",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_exp);
+            printf("\n");
+        }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpMaxToken(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlExpNodePtr expr; /* a compiled expression */
+    int n_expr;
+
+    for (n_expr = 0;n_expr < gen_nb_xmlExpNodePtr;n_expr++) {
+        mem_base = xmlMemBlocks();
+        expr = gen_xmlExpNodePtr(n_expr, 0);
+
+        ret_val = xmlExpMaxToken(expr);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlExpNodePtr(n_expr, expr, 0);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpMaxToken",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_expr);
+            printf("\n");
+        }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpNewAtom(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpNewCtxt(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpNewOr(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpNewRange(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpNewSeq(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpParse(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpRef(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    xmlExpNodePtr exp; /* the expression */
+    int n_exp;
+
+    for (n_exp = 0;n_exp < gen_nb_xmlExpNodePtr;n_exp++) {
+        mem_base = xmlMemBlocks();
+        exp = gen_xmlExpNodePtr(n_exp, 0);
+
+        xmlExpRef(exp);
+        call_tests++;
+        des_xmlExpNodePtr(n_exp, exp, 0);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpRef",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_exp);
+            printf("\n");
+        }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpStringDerive(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
+test_xmlExpSubsume(void) {
+    int test_ret = 0;
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+    int mem_base;
+    int ret_val;
+    xmlExpCtxtPtr ctxt; /* the expressions context */
+    int n_ctxt;
+    xmlExpNodePtr exp; /* the englobing expression */
+    int n_exp;
+    xmlExpNodePtr sub; /* the subexpression */
+    int n_sub;
+
+    for (n_ctxt = 0;n_ctxt < gen_nb_xmlExpCtxtPtr;n_ctxt++) {
+    for (n_exp = 0;n_exp < gen_nb_xmlExpNodePtr;n_exp++) {
+    for (n_sub = 0;n_sub < gen_nb_xmlExpNodePtr;n_sub++) {
+        mem_base = xmlMemBlocks();
+        ctxt = gen_xmlExpCtxtPtr(n_ctxt, 0);
+        exp = gen_xmlExpNodePtr(n_exp, 1);
+        sub = gen_xmlExpNodePtr(n_sub, 2);
+
+        ret_val = xmlExpSubsume(ctxt, exp, sub);
+        desret_int(ret_val);
+        call_tests++;
+        des_xmlExpCtxtPtr(n_ctxt, ctxt, 0);
+        des_xmlExpNodePtr(n_exp, exp, 1);
+        des_xmlExpNodePtr(n_sub, sub, 2);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlExpSubsume",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_ctxt);
+            printf(" %d", n_exp);
+            printf(" %d", n_sub);
+            printf("\n");
+        }
+    }
+    }
+    }
+    function_tests++;
+#endif
+
+    return(test_ret);
+}
+
+#ifdef LIBXML_REGEXP_ENABLED
+
 #define gen_nb_xmlRegExecCtxtPtr 1
 static xmlRegExecCtxtPtr gen_xmlRegExecCtxtPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
     return(NULL);
@@ -32097,7 +32792,24 @@
 test_xmlregexp(void) {
     int test_ret = 0;
 
-    if (quiet == 0) printf("Testing xmlregexp : 7 of 11 functions ...\n");
+    if (quiet == 0) printf("Testing xmlregexp : 16 of 30 functions ...\n");
+    test_ret += test_xmlExpCtxtNbCons();
+    test_ret += test_xmlExpCtxtNbNodes();
+    test_ret += test_xmlExpDump();
+    test_ret += test_xmlExpExpDerive();
+    test_ret += test_xmlExpGetLanguage();
+    test_ret += test_xmlExpGetStart();
+    test_ret += test_xmlExpIsNillable();
+    test_ret += test_xmlExpMaxToken();
+    test_ret += test_xmlExpNewAtom();
+    test_ret += test_xmlExpNewCtxt();
+    test_ret += test_xmlExpNewOr();
+    test_ret += test_xmlExpNewRange();
+    test_ret += test_xmlExpNewSeq();
+    test_ret += test_xmlExpParse();
+    test_ret += test_xmlExpRef();
+    test_ret += test_xmlExpStringDerive();
+    test_ret += test_xmlExpSubsume();
     test_ret += test_xmlRegExecErrInfo();
     test_ret += test_xmlRegExecNextValues();
     test_ret += test_xmlRegExecPushString();
@@ -32809,6 +33521,16 @@
 
 
 static int
+test_xmlSchemaSetValidStructuredErrors(void) {
+    int test_ret = 0;
+
+
+    /* missing type support */
+    return(test_ret);
+}
+
+
+static int
 test_xmlSchemaValidCtxtGetOptions(void) {
     int test_ret = 0;
 
@@ -33037,7 +33759,7 @@
 test_xmlschemas(void) {
     int test_ret = 0;
 
-    if (quiet == 0) printf("Testing xmlschemas : 14 of 22 functions ...\n");
+    if (quiet == 0) printf("Testing xmlschemas : 14 of 23 functions ...\n");
     test_ret += test_xmlSchemaDump();
     test_ret += test_xmlSchemaGetParserErrors();
     test_ret += test_xmlSchemaGetValidErrors();
@@ -33052,6 +33774,7 @@
     test_ret += test_xmlSchemaSetParserErrors();
     test_ret += test_xmlSchemaSetValidErrors();
     test_ret += test_xmlSchemaSetValidOptions();
+    test_ret += test_xmlSchemaSetValidStructuredErrors();
     test_ret += test_xmlSchemaValidCtxtGetOptions();
     test_ret += test_xmlSchemaValidateDoc();
     test_ret += test_xmlSchemaValidateFile();
@@ -49988,6 +50711,7 @@
     if (!strcmp(module, "pattern")) return(test_pattern());
     if (!strcmp(module, "relaxng")) return(test_relaxng());
     if (!strcmp(module, "schemasInternals")) return(test_schemasInternals());
+    if (!strcmp(module, "schematron")) return(test_schematron());
     if (!strcmp(module, "tree")) return(test_tree());
     if (!strcmp(module, "uri")) return(test_uri());
     if (!strcmp(module, "valid")) return(test_valid());

Modified: packages/libxml2/trunk/threads.c
===================================================================
--- packages/libxml2/trunk/threads.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/threads.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -472,7 +472,7 @@
     void *memory;
 } xmlGlobalStateCleanupHelperParams;
 
-static void xmlGlobalStateCleanupHelper (void *p)
+static void XMLCDECL xmlGlobalStateCleanupHelper (void *p)
 {
     xmlGlobalStateCleanupHelperParams *params = (xmlGlobalStateCleanupHelperParams *) p;
     WaitForSingleObject(params->thread, INFINITE);

Modified: packages/libxml2/trunk/tree.c
===================================================================
--- packages/libxml2/trunk/tree.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/tree.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -297,6 +297,7 @@
  *
  * returns NULL if it is not a Qualified Name, otherwise, update len
  *         with the lenght in byte of the prefix and return a pointer
+ *         to the start of the name without the prefix
  */
 
 const xmlChar *
@@ -1133,8 +1134,10 @@
 	return;
     }
 #ifdef LIBXML_DEBUG_RUNTIME
+#ifdef LIBXML_DEBUG_ENABLED
     xmlDebugCheckDocument(stderr, cur);
 #endif
+#endif
 
     if (cur != NULL) dict = cur->dict;
 
@@ -1721,80 +1724,87 @@
 }
 #endif /* LIBXML_TREE_ENABLED */
 
-static xmlAttrPtr xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns, 
-           const xmlChar *name, const xmlChar *value, int eatname) {
+static xmlAttrPtr
+xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns,
+                   const xmlChar * name, const xmlChar * value,
+                   int eatname)
+{
     xmlAttrPtr cur;
     xmlDocPtr doc = NULL;
 
     if ((node != NULL) && (node->type != XML_ELEMENT_NODE)) {
-		if (eatname == 1)
-			xmlFree((xmlChar *) name);
-		return(NULL);
-	}
+        if (eatname == 1)
+            xmlFree((xmlChar *) name);
+        return (NULL);
+    }
 
     /*
      * Allocate a new property and fill the fields.
      */
     cur = (xmlAttrPtr) xmlMalloc(sizeof(xmlAttr));
     if (cur == NULL) {
-		if (eatname == 1)
-			xmlFree((xmlChar *) name);
-		xmlTreeErrMemory("building attribute");
-		return(NULL);
+        if (eatname == 1)
+            xmlFree((xmlChar *) name);
+        xmlTreeErrMemory("building attribute");
+        return (NULL);
     }
     memset(cur, 0, sizeof(xmlAttr));
     cur->type = XML_ATTRIBUTE_NODE;
 
-    cur->parent = node; 
+    cur->parent = node;
     if (node != NULL) {
-	doc = node->doc;
-	cur->doc = doc;
+        doc = node->doc;
+        cur->doc = doc;
     }
-	cur->ns = ns;
+    cur->ns = ns;
 
-	if (eatname == 0) {
-		if ((doc != NULL) && (doc->dict != NULL))
-			cur->name = (xmlChar *) xmlDictLookup(doc->dict, name, -1);
-		else
-			cur->name = xmlStrdup(name);
-	} else
-		cur->name = name;
+    if (eatname == 0) {
+        if ((doc != NULL) && (doc->dict != NULL))
+            cur->name = (xmlChar *) xmlDictLookup(doc->dict, name, -1);
+        else
+            cur->name = xmlStrdup(name);
+    } else
+        cur->name = name;
 
     if (value != NULL) {
-	xmlChar *buffer;
-	xmlNodePtr tmp;
+        xmlChar *buffer;
+        xmlNodePtr tmp;
 
-	buffer = xmlEncodeEntitiesReentrant(doc, value);
-	cur->children = xmlStringGetNodeList(doc, buffer);
-	cur->last = NULL;
-	tmp = cur->children;
-	while (tmp != NULL) {
-	    tmp->parent = (xmlNodePtr) cur;
-	    if (tmp->next == NULL)
-		cur->last = tmp;
-	    tmp = tmp->next;
-	}
-	xmlFree(buffer);
-    }	
+        buffer = xmlEncodeEntitiesReentrant(doc, value);
+        cur->children = xmlStringGetNodeList(doc, buffer);
+        cur->last = NULL;
+        tmp = cur->children;
+        while (tmp != NULL) {
+            tmp->parent = (xmlNodePtr) cur;
+            if (tmp->next == NULL)
+                cur->last = tmp;
+            tmp = tmp->next;
+        }
+        xmlFree(buffer);
+    }
 
     /*
      * Add it at the end to preserve parsing order ...
      */
     if (node != NULL) {
-	if (node->properties == NULL) {
-	    node->properties = cur;
-	} else {
-	    xmlAttrPtr prev = node->properties;
+        if (node->properties == NULL) {
+            node->properties = cur;
+        } else {
+            xmlAttrPtr prev = node->properties;
 
-	    while (prev->next != NULL) prev = prev->next;
-	    prev->next = cur;
-	    cur->prev = prev;
-	}
+            while (prev->next != NULL)
+                prev = prev->next;
+            prev->next = cur;
+            cur->prev = prev;
+        }
     }
 
+    if (xmlIsID((node == NULL) ? NULL : node->doc, node, cur) == 1)
+        xmlAddID(NULL, node->doc, value, cur);
+
     if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
-	xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
-    return(cur);
+        xmlRegisterNodeDefaultValue((xmlNodePtr) cur);
+    return (cur);
 }
 
 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
@@ -3285,7 +3295,8 @@
 	    if ((cur->type != XML_ELEMENT_NODE) &&
 		(cur->type != XML_XINCLUDE_START) &&
 		(cur->type != XML_XINCLUDE_END) &&
-		(cur->type != XML_ENTITY_REF_NODE)) {
+		(cur->type != XML_ENTITY_REF_NODE) &&
+		(cur->content != (xmlChar *) &(cur->properties))) {
 		DICT_FREE(cur->content)
 	    }
 	    if (((cur->type == XML_ELEMENT_NODE) ||
@@ -3354,7 +3365,8 @@
 	(cur->content != NULL) &&
 	(cur->type != XML_ENTITY_REF_NODE) &&
 	(cur->type != XML_XINCLUDE_END) &&
-	(cur->type != XML_XINCLUDE_START)) {
+	(cur->type != XML_XINCLUDE_START) &&
+	(cur->content != (xmlChar *) &(cur->properties))) {
 	DICT_FREE(cur->content)
     }
 
@@ -3809,7 +3821,7 @@
     
     if (!extended)
 	goto out;
-    if (node->nsDef != NULL)
+    if ((node->type == XML_ELEMENT_NODE) && (node->nsDef != NULL))
         ret->nsDef = xmlCopyNamespaceList(node->nsDef);
 
     if (node->ns != NULL) {
@@ -3836,7 +3848,7 @@
 	    ret->ns = ns;
 	}
     }
-    if (node->properties != NULL)
+    if ((node->type == XML_ELEMENT_NODE) && (node->properties != NULL))
         ret->properties = xmlCopyPropList(ret, node->properties);
     if (node->type == XML_ENTITY_REF_NODE) {
 	if ((doc == NULL) || (node->doc != doc)) {
@@ -4136,15 +4148,19 @@
 
     if (!node)
         return result;
-    if (node->type == XML_ELEMENT_NODE)
+    if ((node->type == XML_ELEMENT_NODE) ||
+        (node->type == XML_TEXT_NODE) ||
+	(node->type == XML_COMMENT_NODE) ||
+	(node->type == XML_PI_NODE))
         result = (long) node->line;
     else if ((node->prev != NULL) &&
              ((node->prev->type == XML_ELEMENT_NODE) ||
-	      (node->prev->type == XML_TEXT_NODE)))
+	      (node->prev->type == XML_TEXT_NODE) ||
+	      (node->prev->type == XML_COMMENT_NODE) ||
+	      (node->prev->type == XML_PI_NODE)))
         result = xmlGetLineNo(node->prev);
     else if ((node->parent != NULL) &&
-             ((node->parent->type == XML_ELEMENT_NODE) ||
-      	      (node->parent->type == XML_TEXT_NODE)))
+             (node->parent->type == XML_ELEMENT_NODE))
         result = xmlGetLineNo(node->parent);
 
     return result;
@@ -4332,6 +4348,16 @@
         } else if (cur->type == XML_ATTRIBUTE_NODE) {
             sep = "/@";
             name = (const char *) (((xmlAttrPtr) cur)->name);
+            if (cur->ns) {
+	        if (cur->ns->prefix != NULL)
+                    snprintf(nametemp, sizeof(nametemp) - 1, "%s:%s",
+		    	(char *)cur->ns->prefix, (char *)cur->name);
+		else
+		    snprintf(nametemp, sizeof(nametemp) - 1, "%s",
+		    	(char *)cur->name);
+                nametemp[sizeof(nametemp) - 1] = 0;
+                name = nametemp;
+            }
             next = ((xmlAttrPtr) cur)->parent;
         } else {
             next = cur->parent;
@@ -5090,7 +5116,8 @@
         case XML_ENTITY_NODE:
         case XML_PI_NODE:
         case XML_COMMENT_NODE:
-	    if (cur->content != NULL) {
+	    if ((cur->content != NULL) &&
+	        (cur->content != (xmlChar *) &(cur->properties))) {
 	        if (!((cur->doc != NULL) && (cur->doc->dict != NULL) &&
 		    (xmlDictOwns(cur->doc->dict, cur->content))))
 		    xmlFree(cur->content);
@@ -5101,6 +5128,8 @@
 		cur->content = xmlStrdup(content);
 	    } else 
 		cur->content = NULL;
+	    cur->properties = NULL;
+	    cur->nsDef = NULL;
 	    break;
         case XML_DOCUMENT_NODE:
         case XML_HTML_DOCUMENT_NODE:
@@ -5162,8 +5191,11 @@
         case XML_PI_NODE:
         case XML_COMMENT_NODE:
         case XML_NOTATION_NODE:
-	    if (cur->content != NULL) {
-		xmlFree(cur->content);
+	    if ((cur->content != NULL) &&
+	        (cur->content != (xmlChar *) &(cur->properties))) {
+	        if (!((cur->doc != NULL) && (cur->doc->dict != NULL) &&
+		    (xmlDictOwns(cur->doc->dict, cur->content))))
+		    xmlFree(cur->content);
 	    }	
 	    if (cur->children != NULL) xmlFreeNodeList(cur->children);
 	    cur->children = cur->last = NULL;
@@ -5171,6 +5203,8 @@
 		cur->content = xmlStrndup(content, len);
 	    } else 
 		cur->content = NULL;
+	    cur->properties = NULL;
+	    cur->nsDef = NULL;
 	    break;
         case XML_DOCUMENT_NODE:
         case XML_DTD_NODE:
@@ -5241,10 +5275,12 @@
         case XML_COMMENT_NODE:
         case XML_NOTATION_NODE:
 	    if (content != NULL) {
-	        if ((cur->doc != NULL) && (cur->doc->dict != NULL) &&
-			    xmlDictOwns(cur->doc->dict, cur->content)) {
-		    cur->content =
-			    xmlStrncatNew(cur->content, content, len);
+	        if ((cur->content == (xmlChar *) &(cur->properties)) ||
+		    ((cur->doc != NULL) && (cur->doc->dict != NULL) &&
+			    xmlDictOwns(cur->doc->dict, cur->content))) {
+		    cur->content = xmlStrncatNew(cur->content, content, len);
+		    cur->properties = NULL;
+		    cur->nsDef = NULL;
 		    break;
 		}
 		cur->content = xmlStrncat(cur->content, content, len);
@@ -5887,7 +5923,8 @@
     xmlAttrPtr prop;
     xmlDocPtr doc;
 
-    if ((node == NULL) || (name == NULL)) return(NULL);
+    if ((node == NULL) || (node->type != XML_ELEMENT_NODE) || (name == NULL))
+        return(NULL);
     /*
      * Check on the properties attached to the node
      */
@@ -5943,7 +5980,7 @@
     xmlDocPtr doc;
 #endif /* LIBXML_TREE_ENABLED */
 
-    if (node == NULL)
+    if ((node == NULL) || (node->type != XML_ELEMENT_NODE) || (name == NULL))
 	return(NULL);
 
     prop = node->properties;
@@ -6041,7 +6078,9 @@
     xmlAttrPtr prop;
     xmlDocPtr doc;
 
-    if ((node == NULL) || (name == NULL)) return(NULL);
+    if ((node == NULL) || (node->type != XML_ELEMENT_NODE) || (name == NULL))
+        return(NULL);
+
     /*
      * Check on the properties attached to the node
      */
@@ -6098,7 +6137,8 @@
     xmlAttrPtr prop;
     xmlDocPtr doc;
 
-    if ((node == NULL) || (name == NULL)) return(NULL);
+    if ((node == NULL) || (node->type != XML_ELEMENT_NODE) || (name == NULL))
+	return(NULL);
     /*
      * Check on the properties attached to the node
      */
@@ -6156,7 +6196,7 @@
     xmlDocPtr doc;
     xmlNsPtr ns;
 
-    if (node == NULL)
+    if ((node == NULL) || (node->type != XML_ELEMENT_NODE))
 	return(NULL);
 
     prop = node->properties;
@@ -6220,7 +6260,7 @@
 xmlUnsetProp(xmlNodePtr node, const xmlChar *name) {
     xmlAttrPtr prop, prev = NULL;;
 
-    if ((node == NULL) || (name == NULL))
+    if ((node == NULL) || (node->type != XML_ELEMENT_NODE) || (name == NULL))
 	return(-1);
     prop = node->properties;
     while (prop != NULL) {
@@ -6249,7 +6289,7 @@
 xmlUnsetNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name) {
     xmlAttrPtr prop, prev = NULL;;
 
-    if ((node == NULL) || (name == NULL))
+    if ((node == NULL) || (node->type != XML_ELEMENT_NODE) || (name == NULL))
 	return(-1);
     prop = node->properties;
     if (ns == NULL)
@@ -6284,16 +6324,36 @@
 xmlSetProp(xmlNodePtr node, const xmlChar *name, const xmlChar *value) {
     xmlAttrPtr prop;
     xmlDocPtr doc;
+    int len;
+    const xmlChar *nqname;
 
     if ((node == NULL) || (name == NULL) || (node->type != XML_ELEMENT_NODE))
 	return(NULL);
+
+    /*
+     * handle QNames
+     */
+    nqname = xmlSplitQName3(name, &len);
+    if (nqname != NULL) {
+        xmlNsPtr ns;
+	xmlChar *prefix = xmlStrndup(name, len);
+	ns = xmlSearchNs(node->doc, node, prefix);
+	if (prefix != NULL)
+	    xmlFree(prefix);
+	if (ns != NULL)
+	    return(xmlSetNsProp(node, ns, nqname, value));
+    }
+
     doc = node->doc;
     prop = node->properties;
     while (prop != NULL) {
         if ((xmlStrEqual(prop->name, name)) &&
 	    (prop->ns == NULL)){
 	    xmlNodePtr oldprop = prop->children;
+	    int id = xmlIsID(node->doc, node, prop);
 
+	    if (id == 1)
+	        xmlRemoveID(node->doc, prop);
 	    prop->children = NULL;
 	    prop->last = NULL;
 	    if (value != NULL) {
@@ -6316,6 +6376,8 @@
 	    }
 	    if (oldprop != NULL) 
 	        xmlFreeNodeList(oldprop);
+	    if (id)
+	        xmlAddID(NULL, node->doc, value, prop);
 	    return(prop);
 	}
 	prop = prop->next;
@@ -6358,6 +6420,10 @@
 	 */
         if ((xmlStrEqual(prop->name, name)) &&
 	    (prop->ns != NULL) && (xmlStrEqual(prop->ns->href, ns->href))) {
+	    int id = xmlIsID(node->doc, node, prop);
+
+	    if (id == 1)
+	        xmlRemoveID(node->doc, prop);
 	    if (prop->children != NULL) 
 	        xmlFreeNodeList(prop->children);
 	    prop->children = NULL;
@@ -6379,6 +6445,8 @@
 		}
 		xmlFree(buffer);
 	    }	
+	    if (id)
+	        xmlAddID(NULL, node->doc, value, prop);
 	    return(prop);
         }
 	prop = prop->next;
@@ -6455,12 +6523,14 @@
         return(-1);
     }
     /* need to check if content is currently in the dictionary */
-    if ((node->doc != NULL) && (node->doc->dict != NULL) &&
-		xmlDictOwns(node->doc->dict, node->content)) {
+    if ((node->content == (xmlChar *) &(node->properties)) ||
+        ((node->doc != NULL) && (node->doc->dict != NULL) &&
+		xmlDictOwns(node->doc->dict, node->content))) {
 	node->content = xmlStrncatNew(node->content, content, len);
     } else {
         node->content = xmlStrncat(node->content, content, len);
     }
+    node->properties = NULL;
     if (node->content == NULL)
         return(-1);
     return(0);

Modified: packages/libxml2/trunk/uri.c
===================================================================
--- packages/libxml2/trunk/uri.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/uri.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -185,6 +185,8 @@
  * path          = [ abs_path | opaque_part ]
  */
 
+#define STRNDUP(s, n) (char *) xmlStrndup((const xmlChar *)(s), (n))
+
 /************************************************************************
  *									*
  *			Generic URI structure functions			*
@@ -1086,7 +1088,10 @@
     if (uri != NULL) {
         if (uri->fragment != NULL)
             xmlFree(uri->fragment);
-        uri->fragment = xmlURIUnescapeString(*str, cur - *str, NULL);
+	if (uri->cleanup & 2)
+	    uri->fragment = STRNDUP(*str, cur - *str);
+	else
+	    uri->fragment = xmlURIUnescapeString(*str, cur - *str, NULL);
     }
     *str = cur;
     return (0);
@@ -1111,12 +1116,16 @@
     if (str == NULL)
         return (-1);
 
-    while (IS_URIC(cur) || ((uri != NULL) && (uri->cleanup) && (IS_UNWISE(cur))))
+    while ((IS_URIC(cur)) ||
+           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))
         NEXT(cur);
     if (uri != NULL) {
         if (uri->query != NULL)
             xmlFree(uri->query);
-        uri->query = xmlURIUnescapeString(*str, cur - *str, NULL);
+	if (uri->cleanup & 2)
+	    uri->query = STRNDUP(*str, cur - *str);
+	else
+	    uri->query = xmlURIUnescapeString(*str, cur - *str, NULL);
     }
     *str = cur;
     return (0);
@@ -1147,8 +1156,7 @@
     while (IS_SCHEME(*cur)) cur++;
     if (uri != NULL) {
 	if (uri->scheme != NULL) xmlFree(uri->scheme);
-	/* !!! strndup */
-	uri->scheme = xmlURIUnescapeString(*str, cur - *str, NULL);
+	uri->scheme = STRNDUP(*str, cur - *str);
     }
     *str = cur;
     return(0);
@@ -1174,16 +1182,21 @@
         return (-1);
 
     cur = *str;
-    if (!(IS_URIC_NO_SLASH(cur) || ((uri != NULL) && (uri->cleanup) && (IS_UNWISE(cur))))) {
+    if (!((IS_URIC_NO_SLASH(cur)) ||
+          ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))) {
         return (3);
     }
     NEXT(cur);
-    while (IS_URIC(cur) || ((uri != NULL) && (uri->cleanup) && (IS_UNWISE(cur))))
+    while ((IS_URIC(cur)) ||
+           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))
         NEXT(cur);
     if (uri != NULL) {
         if (uri->opaque != NULL)
             xmlFree(uri->opaque);
-        uri->opaque = xmlURIUnescapeString(*str, cur - *str, NULL);
+	if (uri->cleanup & 2)
+	    uri->opaque = STRNDUP(*str, cur - *str);
+	else
+	    uri->opaque = xmlURIUnescapeString(*str, cur - *str, NULL);
     }
     *str = cur;
     return (0);
@@ -1235,7 +1248,10 @@
     if (*cur == '@') {
 	if (uri != NULL) {
 	    if (uri->user != NULL) xmlFree(uri->user);
-	    uri->user = xmlURIUnescapeString(*str, cur - *str, NULL);
+	    if (uri->cleanup & 2)
+		uri->path = STRNDUP(*str, cur - *str);
+	    else
+		uri->user = xmlURIUnescapeString(*str, cur - *str, NULL);
 	}
 	cur++;
     } else {
@@ -1349,7 +1365,10 @@
 	uri->authority = NULL;
 	if (host[0] != '[') {	/* it's not an IPV6 addr */
 	    if (uri->server != NULL) xmlFree(uri->server);
-	    uri->server = xmlURIUnescapeString(host, cur - host, NULL);
+	    if (uri->cleanup & 2)
+		uri->server = STRNDUP(host, cur - host);
+	    else
+		uri->server = xmlURIUnescapeString(host, cur - host, NULL);
 	}
     }
     /*
@@ -1392,16 +1411,21 @@
         return (-1);
 
     cur = *str;
-    if (!(IS_SEGMENT(cur) || ((uri != NULL) && (uri->cleanup) && (IS_UNWISE(cur))))) {
+    if (!((IS_SEGMENT(cur)) ||
+          ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))) {
         return (3);
     }
     NEXT(cur);
-    while (IS_SEGMENT(cur) || ((uri != NULL) && (uri->cleanup) && (IS_UNWISE(cur))))
+    while ((IS_SEGMENT(cur)) ||
+           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))
         NEXT(cur);
     if (uri != NULL) {
         if (uri->path != NULL)
             xmlFree(uri->path);
-        uri->path = xmlURIUnescapeString(*str, cur - *str, NULL);
+	if (uri->cleanup & 2)
+	    uri->path = STRNDUP(*str, cur - *str);
+	else
+	    uri->path = xmlURIUnescapeString(*str, cur - *str, NULL);
     }
     *str = cur;
     return (0);
@@ -1432,11 +1456,13 @@
     cur = *str;
 
     do {
-        while (IS_PCHAR(cur) || ((uri != NULL) && (uri->cleanup) && (IS_UNWISE(cur))))
+        while ((IS_PCHAR(cur)) ||
+	       ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))
             NEXT(cur);
         while (*cur == ';') {
             cur++;
-            while (IS_PCHAR(cur) || ((uri != NULL) && (uri->cleanup) && (IS_UNWISE(cur))))
+            while ((IS_PCHAR(cur)) ||
+	           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))
                 NEXT(cur);
         }
         if (*cur != '/')
@@ -1472,8 +1498,13 @@
             len2++;
         }
         path[len2] = 0;
-        if (cur - *str > 0)
-            xmlURIUnescapeString(*str, cur - *str, &path[len2]);
+        if (cur - *str > 0) {
+	    if (uri->cleanup & 2) {
+	        memcpy(&path[len2], *str, cur - *str);
+		path[len2 + (cur - *str)] = 0;
+	    } else
+		xmlURIUnescapeString(*str, cur - *str, &path[len2]);
+	}
         if (uri->path != NULL)
             xmlFree(uri->path);
         uri->path = path;
@@ -1538,7 +1569,10 @@
 	if (uri->user != NULL) xmlFree(uri->user);
 	uri->user = NULL;
 	if (uri->authority != NULL) xmlFree(uri->authority);
-	uri->authority = xmlURIUnescapeString(*str, cur - *str, NULL);
+	if (uri->cleanup & 2)
+	    uri->authority = STRNDUP(*str, cur - *str);
+	else
+	    uri->authority = xmlURIUnescapeString(*str, cur - *str, NULL);
     }
     *str = cur;
     return(0);
@@ -1761,6 +1795,38 @@
     return(uri);
 }
 
+/**
+ * xmlParseURIRaw:
+ * @str:  the URI string to analyze
+ * @raw:  if 1 unescaping of URI pieces are disabled
+ *
+ * Parse an URI but allows to keep intact the original fragments.
+ * 
+ * URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
+ *
+ * Returns a newly built xmlURIPtr or NULL in case of error
+ */
+xmlURIPtr
+xmlParseURIRaw(const char *str, int raw) {
+    xmlURIPtr uri;
+    int ret;
+
+    if (str == NULL)
+	return(NULL);
+    uri = xmlCreateURI();
+    if (uri != NULL) {
+        if (raw) {
+	    uri->cleanup |= 2;
+	}
+	ret = xmlParseURIReference(uri, str);
+        if (ret) {
+	    xmlFreeURI(uri);
+	    return(NULL);
+	}
+    }
+    return(uri);
+}
+
 /************************************************************************
  *									*
  *			Public functions				*
@@ -2070,14 +2136,6 @@
 
     if ((URI == NULL) || (*URI == 0))
 	return NULL;
-    /*
-     * Special case - if URI starts with '.', we assume it's already
-     * in relative form, so nothing to do.
-     */
-    if (*URI == '.') {
-	val = xmlStrdup (URI);
-	goto done;
-    }
 
     /*
      * First parse URI into a standard form
@@ -2085,9 +2143,13 @@
     ref = xmlCreateURI ();
     if (ref == NULL)
 	return NULL;
-    ret = xmlParseURIReference (ref, (const char *) URI);
-    if (ret != 0)
-	goto done;		/* Error in URI, return NULL */
+    /* If URI not already in "relative" form */
+    if (URI[0] != '.') {
+	ret = xmlParseURIReference (ref, (const char *) URI);
+	if (ret != 0)
+	    goto done;		/* Error in URI, return NULL */
+    } else
+	ref->path = (char *)xmlStrdup(URI);
 
     /*
      * Next parse base into the same standard form
@@ -2099,9 +2161,12 @@
     bas = xmlCreateURI ();
     if (bas == NULL)
 	goto done;
-    ret = xmlParseURIReference (bas, (const char *) base);
-    if (ret != 0)
-	goto done;		/* Error in base, return NULL */
+    if (base[0] != '.') {
+	ret = xmlParseURIReference (bas, (const char *) base);
+	if (ret != 0)
+	    goto done;		/* Error in base, return NULL */
+    } else
+	bas->path = (char *)xmlStrdup(base);
 
     /*
      * If the scheme / server on the URI differs from the base,
@@ -2230,8 +2295,9 @@
     int i = 0;
     xmlChar *p = NULL;
 #endif
+    xmlURIPtr uri;
     xmlChar *ret;
-    xmlURIPtr uri;
+    const xmlChar *absuri;
 
     if (path == NULL)
 	return(NULL);
@@ -2240,12 +2306,47 @@
 	return xmlStrdup(path);
     }
 
+    absuri = xmlStrstr(path, BAD_CAST "://");
+    if (absuri != NULL) {
+        int l, j;
+	unsigned char c;
+	xmlChar *escURI;
+
+        /*
+	 * this looks like an URI where some parts have not been
+	 * escaped leading to a parsing problem check that the first
+	 * part matches a protocol.
+	 */
+	l = absuri - path;
+	if ((l <= 0) || (l > 20))
+	    goto path_processing;
+	for (j = 0;j < l;j++) {
+	    c = path[j];
+	    if (!(((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z'))))
+	        goto path_processing;
+	}
+
+        escURI = xmlURIEscapeStr(path, BAD_CAST ":/?_.#&;=");
+	if (escURI != NULL) {
+	    uri = xmlParseURI((const char *) escURI);
+	    if (uri != NULL) {
+	        xmlFreeURI(uri);
+		return escURI;
+	    }
+	    xmlFreeURI(uri);
+	}
+    }
+
+path_processing:
+#if defined(_WIN32) && !defined(__CYGWIN__)    
+    /*
+     * This really need to be cleaned up by someone with a Windows box
+     */
     uri = xmlCreateURI();
     if (uri == NULL) {
         return(NULL);
     }
 
-#if defined(_WIN32) && !defined(__CYGWIN__)    
     len = xmlStrlen(path);
     if ((len > 2) && IS_WINDOWS_PATH(path)) {
 	uri->scheme = xmlStrdup(BAD_CAST "file");
@@ -2262,15 +2363,15 @@
 	    *p = '/';
 	p++;
     }
-#else
-    uri->path = (char *) xmlStrdup((const xmlChar *) path);
-#endif
     if (uri->path == NULL) {
         xmlFreeURI(uri);
         return(NULL);
     }
     ret = xmlSaveUri(uri);
     xmlFreeURI(uri);
+#else
+    ret = xmlStrdup((const xmlChar *) path);
+#endif
     return(ret);
 }
 

Modified: packages/libxml2/trunk/valid.c
===================================================================
--- packages/libxml2/trunk/valid.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/valid.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -453,14 +453,14 @@
     xmlNodePtr ret;
 
     if (ctxt->nodeNr <= 0)
-        return (0);
+        return (NULL);
     ctxt->nodeNr--;
     if (ctxt->nodeNr > 0)
         ctxt->node = ctxt->nodeTab[ctxt->nodeNr - 1];
     else
         ctxt->node = NULL;
     ret = ctxt->nodeTab[ctxt->nodeNr];
-    ctxt->nodeTab[ctxt->nodeNr] = 0;
+    ctxt->nodeTab[ctxt->nodeNr] = NULL;
     return (ret);
 }
 
@@ -2703,8 +2703,12 @@
  */
 int
 xmlIsID(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) {
+    if ((attr == NULL) || (attr->name == NULL)) return(0);
+    if ((attr->ns != NULL) && (attr->ns->prefix != NULL) &&
+        (!strcmp((char *) attr->name, "id")) &&
+        (!strcmp((char *) attr->ns->prefix, "xml")))
+	return(1);
     if (doc == NULL) return(0);
-    if (attr == NULL) return(0);
     if ((doc->intSubset == NULL) && (doc->extSubset == NULL)) {
 	return(0);
     } else if (doc->type == XML_HTML_DOCUMENT_NODE) {
@@ -2713,32 +2717,35 @@
 	    ((elem != NULL) && (!xmlStrEqual(elem->name, BAD_CAST "input"))))
 	    return(1);
 	return(0);    
+    } else if (elem == NULL) {
+	return(0);
     } else {
-	xmlAttributePtr attrDecl;
+	xmlAttributePtr attrDecl = NULL;
 
-	if (elem == NULL) return(0);
-	if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) {
-	    xmlChar fn[50];
-	    xmlChar *fullname;
-	    
-	    fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
-	    if (fullname == NULL)
-		return(0);
-	    attrDecl = xmlGetDtdAttrDesc(doc->intSubset, fullname,
-		                         attr->name);
+	xmlChar felem[50], fattr[50];
+	xmlChar *fullelemname, *fullattrname;
+
+	fullelemname = (elem->ns != NULL && elem->ns->prefix != NULL) ?
+	    xmlBuildQName(elem->name, elem->ns->prefix, felem, 50) :
+	    (xmlChar *)elem->name;
+
+	fullattrname = (attr->ns != NULL && attr->ns->prefix != NULL) ?
+	    xmlBuildQName(attr->name, attr->ns->prefix, fattr, 50) :
+	    (xmlChar *)attr->name;
+
+	if (fullelemname != NULL && fullattrname != NULL) {
+	    attrDecl = xmlGetDtdAttrDesc(doc->intSubset, fullelemname,
+		                         fullattrname);
 	    if ((attrDecl == NULL) && (doc->extSubset != NULL))
-		attrDecl = xmlGetDtdAttrDesc(doc->extSubset, fullname,
-					     attr->name);
-	    if ((fullname != fn) && (fullname != elem->name))
-		xmlFree(fullname);
-	} else {
-	    attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name,
-		                         attr->name);
-	    if ((attrDecl == NULL) && (doc->extSubset != NULL))
-		attrDecl = xmlGetDtdAttrDesc(doc->extSubset, elem->name,
-					     attr->name);
+		attrDecl = xmlGetDtdAttrDesc(doc->extSubset, fullelemname,
+					     fullattrname);
 	}
 
+	if ((fullattrname != fattr) && (fullattrname != attr->name))
+	    xmlFree(fullattrname);
+	if ((fullelemname != felem) && (fullelemname != elem->name))
+	    xmlFree(fullelemname);
+
         if ((attrDecl != NULL) && (attrDecl->atype == XML_ATTRIBUTE_ID))
 	    return(1);
     }
@@ -3866,7 +3873,7 @@
 	
 	fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
 	if (fullname == NULL)
-	    return(0);
+	    return(NULL);
 	attrDecl = xmlGetDtdAttrDesc(doc->intSubset, fullname, name);
 	if ((attrDecl == NULL) && (doc->extSubset != NULL)) {
 	    attrDecl = xmlGetDtdAttrDesc(doc->extSubset, fullname, name);
@@ -3951,7 +3958,7 @@
 	
 	fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
 	if (fullname == NULL)
-	    return(0);
+	    return(NULL);
 	attrDecl = xmlGetDtdAttrDesc(doc->intSubset, fullname, name);
 	if ((attrDecl == NULL) && (doc->extSubset != NULL))
 	    attrDecl = xmlGetDtdAttrDesc(doc->extSubset, fullname, name);
@@ -5857,24 +5864,12 @@
 				NULL,NULL,NULL);
 		return(0);
 	    }
-	    if (elem->properties != NULL) {
-		xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
-		                "Text element has attribute !\n",
-				NULL,NULL,NULL);
-		return(0);
-	    }
 	    if (elem->ns != NULL) {
 		xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
 		                "Text element has namespace !\n",
 				NULL,NULL,NULL);
 		return(0);
 	    }
-	    if (elem->nsDef != NULL) {
-		xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
-		                "Text element has namespace !\n",
-				NULL,NULL,NULL);
-		return(0);
-	    }
 	    if (elem->content == NULL) {
 		xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
 		                "Text element has no content !\n",
@@ -6299,24 +6294,26 @@
     }
 
     ret &= xmlValidateOneElement(ctxt, doc, elem);
-    attr = elem->properties;
-    while (attr != NULL) {
-        value = xmlNodeListGetString(doc, attr->children, 0);
-	ret &= xmlValidateOneAttribute(ctxt, doc, elem, attr, value);
-	if (value != NULL)
-	    xmlFree((char *)value);
-	attr= attr->next;
+    if (elem->type == XML_ELEMENT_NODE) {
+	attr = elem->properties;
+	while (attr != NULL) {
+	    value = xmlNodeListGetString(doc, attr->children, 0);
+	    ret &= xmlValidateOneAttribute(ctxt, doc, elem, attr, value);
+	    if (value != NULL)
+		xmlFree((char *)value);
+	    attr= attr->next;
+	}
+	ns = elem->nsDef;
+	while (ns != NULL) {
+	    if (elem->ns == NULL)
+		ret &= xmlValidateOneNamespace(ctxt, doc, elem, NULL,
+					       ns, ns->href);
+	    else
+		ret &= xmlValidateOneNamespace(ctxt, doc, elem,
+		                               elem->ns->prefix, ns, ns->href);
+	    ns = ns->next;
+	}
     }
-    ns = elem->nsDef;
-    while (ns != NULL) {
-        if (elem->ns == NULL)
-	    ret &= xmlValidateOneNamespace(ctxt, doc, elem, NULL,
-					   ns, ns->href);
-	else
-	    ret &= xmlValidateOneNamespace(ctxt, doc, elem, elem->ns->prefix,
-					   ns, ns->href);
-        ns = ns->next;
-    }
     child = elem->children;
     while (child != NULL) {
         ret &= xmlValidateElement(ctxt, doc, child);
@@ -6808,7 +6805,7 @@
 /*
  * Dummy function to suppress messages while we try out valid elements
  */
-static void xmlNoValidityErr(void *ctx ATTRIBUTE_UNUSED,
+static void XMLCDECL xmlNoValidityErr(void *ctx ATTRIBUTE_UNUSED,
                                 const char *msg ATTRIBUTE_UNUSED, ...) {
     return;
 }

Modified: packages/libxml2/trunk/win32/Makefile.msvc
===================================================================
--- packages/libxml2/trunk/win32/Makefile.msvc	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/win32/Makefile.msvc	2005-09-05 17:42:20 UTC (rev 466)
@@ -115,6 +115,7 @@
 	$(XML_INTDIR)\relaxng.obj\
 	$(XML_INTDIR)\SAX2.obj\
 	$(XML_INTDIR)\SAX.obj\
+	$(XML_INTDIR)\schematron.obj\
 	$(XML_INTDIR)\threads.obj\
 	$(XML_INTDIR)\tree.obj\
 	$(XML_INTDIR)\uri.obj\
@@ -159,6 +160,7 @@
 	$(XML_INTDIR_A)\relaxng.obj\
 	$(XML_INTDIR_A)\SAX2.obj\
 	$(XML_INTDIR_A)\SAX.obj\
+	$(XML_INTDIR_A)\schematron.obj\
 	$(XML_INTDIR_A)\threads.obj\
 	$(XML_INTDIR_A)\tree.obj\
 	$(XML_INTDIR_A)\uri.obj\

Modified: packages/libxml2/trunk/win32/configure.js
===================================================================
--- packages/libxml2/trunk/win32/configure.js	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/win32/configure.js	2005-09-05 17:42:20 UTC (rev 466)
@@ -45,6 +45,7 @@
 var withDebug = true;
 var withMemDebug = false;
 var withSchemas = true;
+var withSchematron = true;
 var withRegExps = true;
 var withModules = true;
 var withTree = true;
@@ -138,6 +139,7 @@
 	txt += "  legacy:     Enable Deprecated api's (" + (withLegacy? "yes" : "no") + ")\n";
 	txt += "  output:     Enable serialization support (" + (withOutput? "yes" : "no") + ")\n";
 	txt += "  schemas:    Enable XML Schema support (" + (withSchemas? "yes" : "no")  + ")\n";
+	txt += "  schematron: Enable Schematron support (" + (withSchematron? "yes" : "no")  + ")\n";
 	txt += "  python:     Build Python bindings (" + (withPython? "yes" : "no")  + ")\n";
 	txt += "\nWin32 build options, default value given in parentheses:\n\n";
 	txt += "  compiler:   Compiler to be used [msvc|mingw|bcb] (" + compiler + ")\n";
@@ -232,6 +234,7 @@
 	vf.WriteLine("WITH_DEBUG=" + (withDebug? "1" : "0"));
 	vf.WriteLine("WITH_MEM_DEBUG=" + (withMemDebug? "1" : "0"));
 	vf.WriteLine("WITH_SCHEMAS=" + (withSchemas? "1" : "0"));
+	vf.WriteLine("WITH_SCHEMATRON=" + (withSchematron? "1" : "0"));
 	vf.WriteLine("WITH_REGEXPS=" + (withRegExps? "1" : "0"));
 	vf.WriteLine("WITH_MODULES=" + (withModules? "1" : "0"));
 	vf.WriteLine("WITH_TREE=" + (withTree? "1" : "0"));
@@ -320,6 +323,8 @@
 			of.WriteLine(s.replace(/\@WITH_MEM_DEBUG\@/, withMemDebug? "1" : "0"));
 		} else if (s.search(/\@WITH_SCHEMAS\@/) != -1) {
 			of.WriteLine(s.replace(/\@WITH_SCHEMAS\@/, withSchemas? "1" : "0"));
+		} else if (s.search(/\@WITH_SCHEMATRON\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_SCHEMATRON\@/, withSchematron? "1" : "0"));
 		} else if (s.search(/\@WITH_REGEXPS\@/) != -1) {
 			of.WriteLine(s.replace(/\@WITH_REGEXPS\@/, withRegExps? "1" : "0"));
 		} else if (s.search(/\@WITH_MODULES\@/) != -1) {
@@ -459,8 +464,12 @@
 			withMemDebug = strToBool(arg.substring(opt.length + 1, arg.length));
 		else if (opt == "schemas")
 			withSchemas = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "schematron")
+			withSchematron = strToBool(arg.substring(opt.length + 1, arg.length));
 		else if (opt == "regexps")
 			withRegExps = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "modules")
+			withModules = strToBool(arg.substring(opt.length + 1, arg.length));
 		else if (opt == "tree")
 			withTree = strToBool(arg.substring(opt.length + 1, arg.length));
 		else if (opt == "reader")
@@ -638,6 +647,7 @@
 txtOut += "    Legacy support: " + boolToStr(withLegacy) + "\n";
 txtOut += "    Output support: " + boolToStr(withOutput) + "\n";
 txtOut += "XML Schema support: " + boolToStr(withSchemas) + "\n";
+txtOut += "Schematron support: " + boolToStr(withSchematron) + "\n";
 txtOut += "   Python bindings: " + boolToStr(withPython) + "\n";
 txtOut += "\n";
 txtOut += "Win32 build configuration\n";

Modified: packages/libxml2/trunk/win32/libxml2.def.src
===================================================================
--- packages/libxml2/trunk/win32/libxml2.def.src	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/win32/libxml2.def.src	2005-09-05 17:42:20 UTC (rev 466)
@@ -11,6 +11,12 @@
 docbDefaultSAXHandler DATA
 #endif
 #endif
+#ifdef LIBXML_REGEXP_ENABLED
+emptyExp DATA
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+forbiddenExp DATA
+#endif
 #ifdef LIBXML_THREAD_ENABLED
 #ifdef LIBXML_HTML_ENABLED
 __htmlDefaultSAXHandler
@@ -517,6 +523,9 @@
 xmlAutomataNewEpsilon
 #endif
 #ifdef LIBXML_AUTOMATA_ENABLED
+xmlAutomataNewNegTrans
+#endif
+#ifdef LIBXML_AUTOMATA_ENABLED
 xmlAutomataNewOnceTrans
 #endif
 #ifdef LIBXML_AUTOMATA_ENABLED
@@ -775,6 +784,63 @@
 xmlEncodeEntitiesReentrant
 xmlEncodeSpecialChars
 xmlErrMemory
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpCtxtNbCons
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpCtxtNbNodes
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpDump
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpExpDerive
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpFree
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpFreeCtxt
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpGetLanguage
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpGetStart
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpIsNillable
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpMaxToken
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewAtom
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewCtxt
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewOr
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewRange
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewSeq
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpParse
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpRef
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpStringDerive
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpSubsume
+#endif
 xmlFileClose
 xmlFileMatch
 xmlFileOpen
@@ -850,6 +916,7 @@
 xmlGetThreadId
 xmlGetUTF8Char
 xmlHandleEntity
+xmlHasFeature
 xmlHasNsProp
 xmlHasProp
 xmlHashAddEntry
@@ -1273,6 +1340,7 @@
 xmlParseSystemLiteral
 xmlParseTextDecl
 xmlParseURI
+xmlParseURIRaw
 xmlParseURIReference
 xmlParseVersionInfo
 xmlParseVersionNum
@@ -1306,6 +1374,7 @@
 xmlPatternGetStreamCtxt
 xmlPatternMatch
 xmlPatternMaxDepth
+xmlPatternMinDepth
 xmlPatternStreamable
 xmlPatterncompile
 xmlPedanticParserDefault
@@ -1430,6 +1499,9 @@
 xmlRelaxNGSetValidErrors
 #endif
 #ifdef LIBXML_SCHEMAS_ENABLED
+xmlRelaxNGSetValidStructuredErrors
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
 xmlRelaxNGValidateDoc
 #endif
 #ifdef LIBXML_SCHEMAS_ENABLED
@@ -1586,6 +1658,9 @@
 xmlSchemaIsBuiltInTypeFacet
 #endif
 #ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaIsValid
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
 xmlSchemaNewDocParserCtxt
 #endif
 #ifdef LIBXML_SCHEMAS_ENABLED
@@ -1613,6 +1688,12 @@
 xmlSchemaParse
 #endif
 #ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaSAXPlug
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaSAXUnplug
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
 xmlSchemaSetParserErrors
 #endif
 #ifdef LIBXML_SCHEMAS_ENABLED
@@ -1622,6 +1703,9 @@
 xmlSchemaSetValidOptions
 #endif
 #ifdef LIBXML_SCHEMAS_ENABLED
+xmlSchemaSetValidStructuredErrors
+#endif
+#ifdef LIBXML_SCHEMAS_ENABLED
 xmlSchemaValPredefTypeNode
 #endif
 #ifdef LIBXML_SCHEMAS_ENABLED
@@ -1675,6 +1759,15 @@
 #ifdef LIBXML_SCHEMAS_ENABLED
 xmlSchemaWhiteSpaceReplace
 #endif
+xmlSchematronFree
+xmlSchematronFreeParserCtxt
+xmlSchematronFreeValidCtxt
+xmlSchematronNewDocParserCtxt
+xmlSchematronNewMemParserCtxt
+xmlSchematronNewParserCtxt
+xmlSchematronNewValidCtxt
+xmlSchematronParse
+xmlSchematronValidateDoc
 xmlSearchNs
 xmlSearchNsByHref
 xmlSetBufferAllocationScheme
@@ -1836,8 +1929,10 @@
 #ifdef LIBXML_SCHEMAS_ENABLED
 xmlTextReaderRelaxNGValidate
 #endif
+xmlTextReaderSchemaValidate
 xmlTextReaderSetErrorHandler
 xmlTextReaderSetParserProp
+xmlTextReaderSetSchema
 xmlTextReaderSetStructuredErrorHandler
 xmlTextReaderStandalone
 xmlTextReaderValue

Modified: packages/libxml2/trunk/xinclude.c
===================================================================
--- packages/libxml2/trunk/xinclude.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xinclude.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -237,7 +237,7 @@
 	ret->URI = xmlStrdup(URI);
     ret->fragment = NULL;
     ret->ref = ref;
-    ret->doc = 0;
+    ret->doc = NULL;
     ret->count = 0;
     ret->xml = 0;
     ret->inc = NULL;
@@ -360,7 +360,7 @@
     else
         ctxt->url = NULL;
     ret = ctxt->urlTab[ctxt->urlNr];
-    ctxt->urlTab[ctxt->urlNr] = 0;
+    ctxt->urlTab[ctxt->urlNr] = NULL;
     if (ret != NULL)
 	xmlFree(ret);
 }
@@ -1952,7 +1952,7 @@
 static xmlNodePtr
 xmlXIncludePreProcessNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node) {
     xmlXIncludeAddNode(ctxt, node);
-    return(0);
+    return(NULL);
 }
 
 /**
@@ -2303,7 +2303,7 @@
 xmlXIncludeDoProcess(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr tree) {
     xmlNodePtr cur;
     int ret = 0;
-    int i;
+    int i, start;
 
     if ((doc == NULL) || (tree == NULL))
 	return(-1);
@@ -2315,6 +2315,10 @@
 	if (ret < 0)
 	    return(-1);
     }
+    if (tree)
+	start = ctxt->incNr;
+    else
+        start = ctxt->incBase;
 
     /*
      * First phase: lookup the elements in the document
@@ -2355,7 +2359,7 @@
     /*
      * Second Phase : collect the infosets fragments
      */
-    for (i = ctxt->incBase;i < ctxt->incNr; i++) {
+    for (i = start;i < ctxt->incNr; i++) {
         xmlXIncludeLoadNode(ctxt, i);
 	ret++;
     }

Modified: packages/libxml2/trunk/xml2-config.in
===================================================================
--- packages/libxml2/trunk/xml2-config.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xml2-config.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -15,7 +15,6 @@
   --prefix=DIR		change libxml prefix [default $prefix]
   --exec-prefix=DIR	change libxml exec prefix [default $exec_prefix]
   --libs		print library linking information
-  --libtool-libs        print linking information for use with libtool
   --cflags		print pre-processor and compiler flags
   --modules		module support enabled
   --help		display this help and exit

Modified: packages/libxml2/trunk/xmlIO.c
===================================================================
--- packages/libxml2/trunk/xmlIO.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlIO.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -1206,7 +1206,7 @@
     }
 
     /*  Set the header data.  The CRC will be needed for the trailer  */
-    buff->crc = crc32( 0L, Z_NULL, 0 );
+    buff->crc = crc32( 0L, NULL, 0 );
     hdr_lgth = snprintf( (char *)buff->zbuff, buff->size,
 			"%c%c%c%c%c%c%c%c%c%c",
 			GZ_MAGIC1, GZ_MAGIC2, Z_DEFLATED, 
@@ -3533,7 +3533,6 @@
  *
  * Load an external entity, note that the use of this function for
  * unparsed entities may generate problems
- * TODO: a more generic External entity API must be designed
  *
  * Returns the xmlParserInputPtr or NULL
  */

Modified: packages/libxml2/trunk/xmllint.c
===================================================================
--- packages/libxml2/trunk/xmllint.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmllint.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -85,6 +85,9 @@
 #endif
 #include <libxml/globals.h>
 #include <libxml/xmlreader.h>
+#ifdef LIBXML_SCHEMATRON_ENABLED
+#include <libxml/schematron.h>
+#endif
 #ifdef LIBXML_SCHEMAS_ENABLED
 #include <libxml/relaxng.h>
 #include <libxml/xmlschemas.h>
@@ -143,6 +146,10 @@
 static char * schema = NULL;
 static xmlSchemaPtr wxschemas = NULL;
 #endif
+#ifdef LIBXML_SCHEMAS_ENABLED
+static char * schematron = NULL;
+static xmlSchematronPtr wxschematron = NULL;
+#endif
 static int repeat = 0;
 static int insert = 0;
 #if defined(LIBXML_HTML_ENABLED) || defined(LIBXML_VALID_ENABLED)
@@ -189,7 +196,7 @@
 static xmlPatternPtr patternc = NULL;
 static xmlStreamCtxtPtr patstream = NULL;
 #endif
-static int options = 0;
+static int options = XML_PARSE_COMPACT;
 static int sax = 0;
 
 /************************************************************************
@@ -228,7 +235,7 @@
     }
 }
 
-xmlExternalEntityLoader defaultEntityLoader = NULL;
+static xmlExternalEntityLoader defaultEntityLoader = NULL;
 
 static xmlParserInputPtr 
 xmllintExternalEntityLoader(const char *URL, const char *ID,
@@ -413,7 +420,7 @@
  *           message about the timing performed; format is a printf
  *           type argument
  */
-static void
+static void XMLCDECL
 endTimer(const char *fmt, ...)
 {
     long msec;
@@ -449,7 +456,7 @@
 {
     begin = clock();
 }
-static void
+static void XMLCDECL
 endTimer(const char *fmt, ...)
 {
     long msec;
@@ -478,7 +485,7 @@
      * Do nothing
      */
 }
-static void
+static void XMLCDECL
 endTimer(char *format, ...)
 {
     /*
@@ -501,7 +508,7 @@
  * 			HTML ouput					*
  * 									*
  ************************************************************************/
-char buffer[50000];
+static char buffer[50000];
 
 static void
 xmlHTMLEncodeSend(void) {
@@ -597,7 +604,7 @@
  * Display and format an error messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 xmlHTMLError(void *ctx, const char *msg, ...)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -634,7 +641,7 @@
  * Display and format a warning messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 xmlHTMLWarning(void *ctx, const char *msg, ...)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -672,7 +679,7 @@
  * Display and format an validity error messages, gives file,
  * line, position and extra parameters.
  */
-static void
+static void XMLCDECL
 xmlHTMLValidityError(void *ctx, const char *msg, ...)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -709,7 +716,7 @@
  * Display and format a validity warning messages, gives file, line,
  * position and extra parameters.
  */
-static void
+static void XMLCDECL
 xmlHTMLValidityWarning(void *ctx, const char *msg, ...)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
@@ -810,7 +817,7 @@
 /*
  * empty SAX block
  */
-xmlSAXHandler emptySAXHandlerStruct = {
+static xmlSAXHandler emptySAXHandlerStruct = {
     NULL, /* internalSubset */
     NULL, /* isStandalone */
     NULL, /* hasInternalSubset */
@@ -845,7 +852,7 @@
     NULL  /* xmlStructuredErrorFunc */
 };
 
-xmlSAXHandlerPtr emptySAXHandler = &emptySAXHandlerStruct;
+static xmlSAXHandlerPtr emptySAXHandler = &emptySAXHandlerStruct;
 extern xmlSAXHandlerPtr debugSAXHandler;
 static int callbacks;
 
@@ -1373,7 +1380,7 @@
  * Display and format a warning messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -1396,7 +1403,7 @@
  * Display and format a error messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -1419,7 +1426,7 @@
  * Display and format a fatalError messages, gives file, line, position and
  * extra parameters.
  */
-static void
+static void XMLCDECL
 fatalErrorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
 {
     va_list args;
@@ -1433,7 +1440,7 @@
     va_end(args);
 }
 
-xmlSAXHandler debugSAXHandlerStruct = {
+static xmlSAXHandler debugSAXHandlerStruct = {
     internalSubsetDebug,
     isStandaloneDebug,
     hasInternalSubsetDebug,
@@ -1557,7 +1564,7 @@
 	fprintf(stdout, ", '%s')\n", (char *) URI);
 }
 
-xmlSAXHandler debugSAX2HandlerStruct = {
+static xmlSAXHandler debugSAX2HandlerStruct = {
     internalSubsetDebug,
     isStandaloneDebug,
     hasInternalSubsetDebug,
@@ -1592,7 +1599,7 @@
     NULL
 };
 
-xmlSAXHandlerPtr debugSAX2Handler = &debugSAX2HandlerStruct;
+static xmlSAXHandlerPtr debugSAX2Handler = &debugSAX2HandlerStruct;
 
 static void
 testSAX(const char *filename) {
@@ -2580,6 +2587,46 @@
 	xmlFreeValidCtxt(cvp);
     }
 #endif /* LIBXML_VALID_ENABLED */
+#ifdef LIBXML_SCHEMATRON_ENABLED
+    if (wxschematron != NULL) {
+	xmlSchematronValidCtxtPtr ctxt;
+	int ret;
+	int flag;
+
+	if ((timing) && (!repeat)) {
+	    startTimer();
+	}
+
+	if (debug)
+	    flag = XML_SCHEMATRON_OUT_XML;
+	else
+	    flag = XML_SCHEMATRON_OUT_TEXT;
+	if (noout)
+	    flag |= XML_SCHEMATRON_OUT_QUIET;
+	ctxt = xmlSchematronNewValidCtxt(wxschematron, flag);
+#if 0
+	xmlSchematronSetValidErrors(ctxt,
+		(xmlSchematronValidityErrorFunc) fprintf,
+		(xmlSchematronValidityWarningFunc) fprintf,
+		stderr);
+#endif
+	ret = xmlSchematronValidateDoc(ctxt, doc);
+	if (ret == 0) {
+	    fprintf(stderr, "%s validates\n", filename);
+	} else if (ret > 0) {
+	    fprintf(stderr, "%s fails to validate\n", filename);
+	    progresult = XMLLINT_ERR_VALID;
+	} else {
+	    fprintf(stderr, "%s validation generated an internal error\n",
+		   filename);
+	    progresult = XMLLINT_ERR_VALID;
+	}
+	xmlSchematronFreeValidCtxt(ctxt);
+	if ((timing) && (!repeat)) {
+	    endTimer("Validating");
+	}
+    }
+#endif
 #ifdef LIBXML_SCHEMAS_ENABLED
     if (relaxngschemas != NULL) {
 	xmlRelaxNGValidCtxtPtr ctxt;
@@ -2666,54 +2713,36 @@
 static void showVersion(const char *name) {
     fprintf(stderr, "%s: using libxml version %s\n", name, xmlParserVersion);
     fprintf(stderr, "   compiled with: ");
-#ifdef LIBXML_VALID_ENABLED
-    fprintf(stderr, "DTDValid ");
-#endif
-#ifdef LIBXML_FTP_ENABLED
-    fprintf(stderr, "FTP ");
-#endif
-#ifdef LIBXML_HTTP_ENABLED
-    fprintf(stderr, "HTTP ");
-#endif
-#ifdef LIBXML_HTML_ENABLED
-    fprintf(stderr, "HTML ");
-#endif
-#ifdef LIBXML_C14N_ENABLED
-    fprintf(stderr, "C14N ");
-#endif
-#ifdef LIBXML_CATALOG_ENABLED
-    fprintf(stderr, "Catalog ");
-#endif
-#ifdef LIBXML_XPATH_ENABLED
-    fprintf(stderr, "XPath ");
-#endif
-#ifdef LIBXML_XPTR_ENABLED
-    fprintf(stderr, "XPointer ");
-#endif
-#ifdef LIBXML_XINCLUDE_ENABLED
-    fprintf(stderr, "XInclude ");
-#endif
-#ifdef LIBXML_ICONV_ENABLED
-    fprintf(stderr, "Iconv ");
-#endif
-#ifdef DEBUG_MEMORY_LOCATION
-    fprintf(stderr, "MemDebug ");
-#endif
-#ifdef LIBXML_UNICODE_ENABLED
-    fprintf(stderr, "Unicode ");
-#endif
-#ifdef LIBXML_REGEXP_ENABLED
-    fprintf(stderr, "Regexps ");
-#endif
-#ifdef LIBXML_AUTOMATA_ENABLED
-    fprintf(stderr, "Automata ");
-#endif
-#ifdef LIBXML_SCHEMAS_ENABLED
-    fprintf(stderr, "Schemas ");
-#endif
-#ifdef LIBXML_MODULES_ENABLED
-    fprintf(stderr, "Modules ");
-#endif
+    if (xmlHasFeature(XML_FEATURE_THREAD)) fprintf(stderr, "Threads ");
+    if (xmlHasFeature(XML_FEATURE_TREE)) fprintf(stderr, "Tree ");
+    if (xmlHasFeature(XML_FEATURE_OUTPUT)) fprintf(stderr, "Output ");
+    if (xmlHasFeature(XML_FEATURE_PUSH)) fprintf(stderr, "Push ");
+    if (xmlHasFeature(XML_FEATURE_READER)) fprintf(stderr, "Reader ");
+    if (xmlHasFeature(XML_FEATURE_PATTERN)) fprintf(stderr, "Patterns ");
+    if (xmlHasFeature(XML_FEATURE_WRITER)) fprintf(stderr, "Writer ");
+    if (xmlHasFeature(XML_FEATURE_SAX1)) fprintf(stderr, "SAXv1 ");
+    if (xmlHasFeature(XML_FEATURE_FTP)) fprintf(stderr, "FTP "); 
+    if (xmlHasFeature(XML_FEATURE_HTTP)) fprintf(stderr, "HTTP "); 
+    if (xmlHasFeature(XML_FEATURE_VALID)) fprintf(stderr, "DTDValid ");
+    if (xmlHasFeature(XML_FEATURE_HTML)) fprintf(stderr, "HTML "); 
+    if (xmlHasFeature(XML_FEATURE_LEGACY)) fprintf(stderr, "Legacy "); 
+    if (xmlHasFeature(XML_FEATURE_C14N)) fprintf(stderr, "C14N "); 
+    if (xmlHasFeature(XML_FEATURE_CATALOG)) fprintf(stderr, "Catalog "); 
+    if (xmlHasFeature(XML_FEATURE_XPATH)) fprintf(stderr, "XPath "); 
+    if (xmlHasFeature(XML_FEATURE_XPTR)) fprintf(stderr, "XPointer "); 
+    if (xmlHasFeature(XML_FEATURE_XINCLUDE)) fprintf(stderr, "XInclude "); 
+    if (xmlHasFeature(XML_FEATURE_ICONV)) fprintf(stderr, "Iconv "); 
+    if (xmlHasFeature(XML_FEATURE_ISO8859X)) fprintf(stderr, "ISO8859X "); 
+    if (xmlHasFeature(XML_FEATURE_UNICODE)) fprintf(stderr, "Unicode "); 
+    if (xmlHasFeature(XML_FEATURE_REGEXP)) fprintf(stderr, "Regexps "); 
+    if (xmlHasFeature(XML_FEATURE_AUTOMATA)) fprintf(stderr, "Automata "); 
+    if (xmlHasFeature(XML_FEATURE_EXPR)) fprintf(stderr, "Expr "); 
+    if (xmlHasFeature(XML_FEATURE_SCHEMAS)) fprintf(stderr, "Schemas "); 
+    if (xmlHasFeature(XML_FEATURE_SCHEMATRON)) fprintf(stderr, "Schematron "); 
+    if (xmlHasFeature(XML_FEATURE_MODULES)) fprintf(stderr, "Modules "); 
+    if (xmlHasFeature(XML_FEATURE_DEBUG)) fprintf(stderr, "Debug "); 
+    if (xmlHasFeature(XML_FEATURE_DEBUG_MEM)) fprintf(stderr, "MemDebug "); 
+    if (xmlHasFeature(XML_FEATURE_DEBUG_RUN)) fprintf(stderr, "RunDebug "); 
     fprintf(stderr, "\n");
 }
 
@@ -2743,6 +2772,7 @@
     printf("\t--path 'paths': provide a set of paths for resources\n");
     printf("\t--load-trace : print trace of all external entites loaded\n");
     printf("\t--nonet : refuse to fetch DTDs or entities over network\n");
+    printf("\t--nocompact : do not generate compact text nodes\n");
     printf("\t--htmlout : output results as HTML\n");
     printf("\t--nowrap : do not put HTML doc wrapper\n");
 #ifdef LIBXML_VALID_ENABLED
@@ -2810,6 +2840,9 @@
     printf("\t--relaxng schema : do RelaxNG validation against the schema\n");
     printf("\t--schema schema : do validation against the WXS schema\n");
 #endif
+#ifdef LIBXML_SCHEMATRON_ENABLED
+    printf("\t--schematron schema : do validation against a schematron\n");
+#endif
 #ifdef LIBXML_SAX1_ENABLED
     printf("\t--sax1: use the old SAX1 interfaces for processing\n");
 #endif
@@ -3112,9 +3145,19 @@
 	    schema = argv[i];
 	    noent++;
 #endif
+#ifdef LIBXML_SCHEMATRON_ENABLED
+	} else if ((!strcmp(argv[i], "-schematron")) ||
+	         (!strcmp(argv[i], "--schematron"))) {
+	    i++;
+	    schematron = argv[i];
+	    noent++;
+#endif
         } else if ((!strcmp(argv[i], "-nonet")) ||
                    (!strcmp(argv[i], "--nonet"))) {
 	    options |= XML_PARSE_NONET;
+        } else if ((!strcmp(argv[i], "-nocompact")) ||
+                   (!strcmp(argv[i], "--nocompact"))) {
+	    options &= ~XML_PARSE_COMPACT;
 	} else if ((!strcmp(argv[i], "-load-trace")) ||
 	           (!strcmp(argv[i], "--load-trace"))) {
 	    load_trace++;
@@ -3193,6 +3236,40 @@
 		argv[0]);
     }
 
+#ifdef LIBXML_SCHEMATRON_ENABLED
+    if ((schematron != NULL) && (sax == 0)
+#ifdef LIBXML_READER_ENABLED
+        && (stream == 0)
+#endif /* LIBXML_READER_ENABLED */
+	) {
+	xmlSchematronParserCtxtPtr ctxt;
+
+        /* forces loading the DTDs */
+        xmlLoadExtDtdDefaultValue |= 1; 
+	options |= XML_PARSE_DTDLOAD;
+	if (timing) {
+	    startTimer();
+	}
+	ctxt = xmlSchematronNewParserCtxt(schematron);
+#if 0
+	xmlSchematronSetParserErrors(ctxt,
+		(xmlSchematronValidityErrorFunc) fprintf,
+		(xmlSchematronValidityWarningFunc) fprintf,
+		stderr);
+#endif
+	wxschematron = xmlSchematronParse(ctxt);
+	if (wxschematron == NULL) {
+	    xmlGenericError(xmlGenericErrorContext,
+		    "Schematron schema %s failed to compile\n", schematron);
+            progresult = XMLLINT_ERR_SCHEMACOMP;
+	    schematron = NULL;
+	}
+	xmlSchematronFreeParserCtxt(ctxt);
+	if (timing) {
+	    endTimer("Compiling the schemas");
+	}
+    }
+#endif
 #ifdef LIBXML_SCHEMAS_ENABLED
     if ((relaxng != NULL) && (sax == 0)
 #ifdef LIBXML_READER_ENABLED
@@ -3309,6 +3386,11 @@
 	    i++;
 	    continue;
         }
+	if ((!strcmp(argv[i], "-schematron")) ||
+	         (!strcmp(argv[i], "--schematron"))) {
+	    i++;
+	    continue;
+        }
 #ifdef LIBXML_PATTERN_ENABLED
         if ((!strcmp(argv[i], "-pattern")) ||
 	    (!strcmp(argv[i], "--pattern"))) {
@@ -3375,6 +3457,10 @@
     if ((files == 0) && (!generate) && (version == 0)) {
 	usage(argv[0]);
     }
+#ifdef LIBXML_SCHEMATRON_ENABLED
+    if (wxschematron != NULL)
+	xmlSchematronFree(wxschematron);
+#endif
 #ifdef LIBXML_SCHEMAS_ENABLED
     if (relaxngschemas != NULL)
 	xmlRelaxNGFree(relaxngschemas);

Modified: packages/libxml2/trunk/xmlmodule.c
===================================================================
--- packages/libxml2/trunk/xmlmodule.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlmodule.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -85,7 +85,7 @@
         __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_MODULE,
                         XML_MODULE_OPEN, XML_ERR_FATAL, NULL, 0, 0,
                         name, NULL, 0, 0, "failed to open %s\n", name);
-        return 0;
+        return(NULL);
     }
 
     module->name = xmlStrdup((const xmlChar *) name);
@@ -179,7 +179,7 @@
 {
     if (NULL == module) {
         __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_MODULE,
-                        XML_MODULE_CLOSE, XML_ERR_FATAL, NULL, 0, 0,
+                        XML_MODULE_CLOSE, XML_ERR_FATAL, NULL, 0, NULL,
                         NULL, NULL, 0, 0, "null module pointer\n");
         return -1;
     }

Modified: packages/libxml2/trunk/xmlreader.c
===================================================================
--- packages/libxml2/trunk/xmlreader.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlreader.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -348,7 +348,8 @@
 		 (cur->type == XML_XINCLUDE_END)) &&
 		(cur->properties != NULL))
 		xmlTextReaderFreePropList(reader, cur->properties);
-	    if ((cur->type != XML_ELEMENT_NODE) &&
+	    if ((cur->content != (xmlChar *) &(cur->properties)) &&
+	        (cur->type != XML_ELEMENT_NODE) &&
 		(cur->type != XML_XINCLUDE_START) &&
 		(cur->type != XML_XINCLUDE_END) &&
 		(cur->type != XML_ENTITY_REF_NODE)) {
@@ -422,7 +423,8 @@
 	 (cur->type == XML_XINCLUDE_END)) &&
 	(cur->properties != NULL))
 	xmlTextReaderFreePropList(reader, cur->properties);
-    if ((cur->type != XML_ELEMENT_NODE) &&
+    if ((cur->content != (xmlChar *) &(cur->properties)) &&
+        (cur->type != XML_ELEMENT_NODE) &&
 	(cur->type != XML_XINCLUDE_START) &&
 	(cur->type != XML_XINCLUDE_END) &&
 	(cur->type != XML_ENTITY_REF_NODE)) {
@@ -598,14 +600,14 @@
     xmlNodePtr ret;
 
     if (reader->entNr <= 0)
-        return (0);
+        return (NULL);
     reader->entNr--;
     if (reader->entNr > 0)
         reader->ent = reader->entTab[reader->entNr - 1];
     else
         reader->ent = NULL;
     ret = reader->entTab[reader->entNr];
-    reader->entTab[reader->entNr] = 0;
+    reader->entTab[reader->entNr] = NULL;
     return (ret);
 }
 
@@ -2172,7 +2174,7 @@
 	if ((reader->ctxt->vctxt.vstateTab != NULL) &&
 	    (reader->ctxt->vctxt.vstateMax > 0)){
 	    xmlFree(reader->ctxt->vctxt.vstateTab);
-	    reader->ctxt->vctxt.vstateTab = 0;
+	    reader->ctxt->vctxt.vstateTab = NULL;
 	    reader->ctxt->vctxt.vstateMax = 0;
 	}
 	if (reader->allocs & XML_TEXTREADER_CTXT)
@@ -2309,15 +2311,42 @@
 	return(NULL);
 
     localname = xmlSplitQName2(name, &prefix);
-    if (localname == NULL)
-	return(xmlGetProp(reader->node, name));
-    
-    ns = xmlSearchNs(reader->node->doc, reader->node, prefix);
-    if (ns != NULL)
-        ret = xmlGetNsProp(reader->node, localname, ns->href);
+    if (localname == NULL) {
+		/*
+		 * Namespace default decl
+		 */
+		if (xmlStrEqual(name, BAD_CAST "xmlns")) {
+			ns = reader->node->nsDef;
+			while (ns != NULL) {
+				if (ns->prefix == NULL) {
+					return(xmlStrdup(ns->href));
+				}
+				ns = ns->next;
+			}
+			return NULL;
+		}
+		return(xmlGetNoNsProp(reader->node, name));
+	}
 
-    if (localname != NULL)
-        xmlFree(localname);
+    /*
+     * Namespace default decl
+     */
+    if (xmlStrEqual(prefix, BAD_CAST "xmlns")) {
+		ns = reader->node->nsDef;
+		while (ns != NULL) {
+			if ((ns->prefix != NULL) && (xmlStrEqual(ns->prefix, localname))) {
+				ret = xmlStrdup(ns->href);
+				break;
+			}
+			ns = ns->next;
+		}
+    } else {
+		ns = xmlSearchNs(reader->node->doc, reader->node, prefix);
+		if (ns != NULL)
+			ret = xmlGetNsProp(reader->node, localname, ns->href);
+	}
+
+    xmlFree(localname);
     if (prefix != NULL)
         xmlFree(prefix);
     return(ret);
@@ -2338,6 +2367,9 @@
 xmlChar *
 xmlTextReaderGetAttributeNs(xmlTextReaderPtr reader, const xmlChar *localName,
 			    const xmlChar *namespaceURI) {
+    xmlChar *prefix = NULL;
+    xmlNsPtr ns;
+
     if ((reader == NULL) || (localName == NULL))
 	return(NULL);
     if (reader->node == NULL)
@@ -2349,6 +2381,21 @@
     if (reader->node->type != XML_ELEMENT_NODE)
 	return(NULL);
 
+    if (xmlStrEqual(namespaceURI, BAD_CAST "http://www.w3.org/2000/xmlns/")) {
+		if (! xmlStrEqual(localName, BAD_CAST "xmlns")) {
+			prefix = BAD_CAST localName;
+		}
+		ns = reader->node->nsDef;
+		while (ns != NULL) {
+			if ((prefix == NULL && ns->prefix == NULL) || 
+				((ns->prefix != NULL) && (xmlStrEqual(ns->prefix, localName)))) {
+				return xmlStrdup(ns->href);
+			}
+			ns = ns->next;
+		}
+		return NULL;
+    }
+
     return(xmlGetNsProp(reader->node, localName, namespaceURI));
 }
 
@@ -2599,6 +2646,8 @@
 	const xmlChar *localName, const xmlChar *namespaceURI) {
     xmlAttrPtr prop;
     xmlNodePtr node;
+    xmlNsPtr ns;
+    xmlChar *prefix = NULL;
 
     if ((reader == NULL) || (localName == NULL) || (namespaceURI == NULL))
 	return(-1);
@@ -2608,10 +2657,22 @@
 	return(0);
     node = reader->node;
 
-    /*
-     * A priori reading http://www.w3.org/TR/REC-xml-names/ there is no
-     * namespace name associated to "xmlns"
-     */
+    if (xmlStrEqual(namespaceURI, BAD_CAST "http://www.w3.org/2000/xmlns/")) {
+		if (! xmlStrEqual(localName, BAD_CAST "xmlns")) {
+			prefix = BAD_CAST localName;
+		}
+		ns = reader->node->nsDef;
+		while (ns != NULL) {
+			if ((prefix == NULL && ns->prefix == NULL) || 
+				((ns->prefix != NULL) && (xmlStrEqual(ns->prefix, localName)))) {
+				reader->curnode = (xmlNodePtr) ns;
+				return(1);
+			}
+			ns = ns->next;
+		}
+		return(0);
+    }
+
     prop = node->properties;
     while (prop != NULL) {
 	/*
@@ -2751,7 +2812,9 @@
 	    reader->faketext = xmlNewDocText(reader->node->doc, 
 		                             ns->href);
 	} else {
-            if (reader->faketext->content != NULL)
+            if ((reader->faketext->content != NULL) &&
+	        (reader->faketext->content !=
+		 (xmlChar *) &(reader->faketext->properties)))
 		xmlFree(reader->faketext->content);
 	    reader->faketext->content = xmlStrdup(ns->href);
 	}
@@ -3880,6 +3943,66 @@
 }
 
 #ifdef LIBXML_SCHEMAS_ENABLED
+
+static char *
+xmlTextReaderBuildMessage(const char *msg, va_list ap);
+
+static void XMLCDECL 
+xmlTextReaderValidityError(void *ctxt, const char *msg, ...);
+
+static void XMLCDECL 
+xmlTextReaderValidityWarning(void *ctxt, const char *msg, ...);
+
+static void XMLCDECL xmlTextReaderValidityErrorRelay(void *ctx, const char *msg, ...)
+{
+	xmlTextReaderPtr reader = (xmlTextReaderPtr) ctx;
+	char * str;
+	va_list ap;
+
+	va_start(ap,msg);
+	str = xmlTextReaderBuildMessage(msg,ap);
+	if (!reader->errorFunc) {
+		xmlTextReaderValidityError(ctx, "%s", str);
+	} else {
+		reader->errorFunc(reader->errorFuncArg, str, XML_PARSER_SEVERITY_VALIDITY_ERROR, NULL /* locator */);
+	}
+	if (str != NULL)
+		xmlFree(str);
+	va_end(ap);
+}
+
+static void XMLCDECL xmlTextReaderValidityWarningRelay(void *ctx, const char *msg, ...)
+{
+	xmlTextReaderPtr reader = (xmlTextReaderPtr) ctx;
+	char * str;
+	va_list ap;
+
+	va_start(ap,msg);
+	str = xmlTextReaderBuildMessage(msg,ap);
+	if (!reader->errorFunc) {
+		xmlTextReaderValidityWarning(ctx, "%s", str);
+	} else {
+		reader->errorFunc(reader->errorFuncArg, str, XML_PARSER_SEVERITY_VALIDITY_WARNING, NULL /* locator */);
+	}
+	if (str != NULL)
+		xmlFree(str);
+	va_end(ap);
+}
+
+static void 
+xmlTextReaderStructuredError(void *ctxt, xmlErrorPtr error);
+
+static void xmlTextReaderValidityStructuredRelay(void * userData, xmlErrorPtr error)
+{
+	xmlTextReaderPtr reader = (xmlTextReaderPtr) userData;
+
+	if (reader->sErrorFunc) {
+		reader->sErrorFunc(reader->errorFuncArg, error);
+	} else {
+		xmlTextReaderStructuredError(reader, error);
+	}
+}
+
 /**
  * xmlTextReaderRelaxNGSetSchema:
  * @reader:  the xmlTextReaderPtr used
@@ -3924,10 +4047,15 @@
         return(-1);
     if (reader->errorFunc != NULL) {
 	xmlRelaxNGSetValidErrors(reader->rngValidCtxt,
-			 (xmlRelaxNGValidityErrorFunc)reader->errorFunc,
-			 (xmlRelaxNGValidityWarningFunc) reader->errorFunc,
-			 reader->errorFuncArg);
+			xmlTextReaderValidityErrorRelay,
+			xmlTextReaderValidityWarningRelay,
+			reader);
     }
+	if (reader->sErrorFunc != NULL) {
+		xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, 
+			xmlTextReaderValidityStructuredRelay,
+			reader);
+    }
     reader->rngValidErrors = 0;
     reader->rngFullNode = NULL;
     reader->validate = XML_TEXTREADER_VALIDATE_RNG;
@@ -3999,10 +4127,15 @@
     }
     if (reader->errorFunc != NULL) {
 	xmlSchemaSetValidErrors(reader->xsdValidCtxt,
-			 (xmlSchemaValidityErrorFunc)reader->errorFunc,
-			 (xmlSchemaValidityWarningFunc) reader->errorFunc,
-			 reader->errorFuncArg);
+			xmlTextReaderValidityErrorRelay,
+			xmlTextReaderValidityWarningRelay,
+			reader);
     }
+	if (reader->sErrorFunc != NULL) {
+		xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt,
+			xmlTextReaderValidityStructuredRelay,
+			reader);
+    }
     reader->xsdValidErrors = 0;
     reader->validate = XML_TEXTREADER_VALIDATE_XSD;
     return(0);
@@ -4051,10 +4184,15 @@
     ctxt = xmlRelaxNGNewParserCtxt(rng);
     if (reader->errorFunc != NULL) {
 	xmlRelaxNGSetParserErrors(ctxt,
-			 (xmlRelaxNGValidityErrorFunc) reader->errorFunc,
-			 (xmlRelaxNGValidityWarningFunc) reader->errorFunc,
-			 reader->errorFuncArg);
+			 xmlTextReaderValidityErrorRelay,
+			 xmlTextReaderValidityWarningRelay,
+			 reader);
     }
+	if (reader->sErrorFunc != NULL) {
+		xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, 
+			xmlTextReaderValidityStructuredRelay,
+			reader);
+    }
     reader->rngSchemas = xmlRelaxNGParse(ctxt);
     xmlRelaxNGFreeParserCtxt(ctxt);
     if (reader->rngSchemas == NULL)
@@ -4067,10 +4205,15 @@
     }
     if (reader->errorFunc != NULL) {
 	xmlRelaxNGSetValidErrors(reader->rngValidCtxt,
-			 (xmlRelaxNGValidityErrorFunc)reader->errorFunc,
-			 (xmlRelaxNGValidityWarningFunc) reader->errorFunc,
-			 reader->errorFuncArg);
+			 xmlTextReaderValidityErrorRelay,
+			 xmlTextReaderValidityWarningRelay,
+			 reader);
     }
+	if (reader->sErrorFunc != NULL) {
+		xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, 
+			xmlTextReaderValidityStructuredRelay,
+			reader);
+    }
     reader->rngValidErrors = 0;
     reader->rngFullNode = NULL;
     reader->validate = XML_TEXTREADER_VALIDATE_RNG;
@@ -4129,9 +4272,9 @@
     ctxt = xmlSchemaNewParserCtxt(xsd);
     if (reader->errorFunc != NULL) {
 	xmlSchemaSetParserErrors(ctxt,
-			 (xmlSchemaValidityErrorFunc) reader->errorFunc,
-			 (xmlSchemaValidityWarningFunc) reader->errorFunc,
-			 reader->errorFuncArg);
+			 xmlTextReaderValidityErrorRelay,
+			 xmlTextReaderValidityWarningRelay,
+			 reader);
     }
     reader->xsdSchemas = xmlSchemaParse(ctxt);
     xmlSchemaFreeParserCtxt(ctxt);
@@ -4155,10 +4298,15 @@
     }
     if (reader->errorFunc != NULL) {
 	xmlSchemaSetValidErrors(reader->xsdValidCtxt,
-			 (xmlSchemaValidityErrorFunc)reader->errorFunc,
-			 (xmlSchemaValidityWarningFunc) reader->errorFunc,
-			 reader->errorFuncArg);
+			 xmlTextReaderValidityErrorRelay,
+			 xmlTextReaderValidityWarningRelay,
+			 reader);
     }
+	if (reader->sErrorFunc != NULL) {
+		xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, 
+			xmlTextReaderValidityStructuredRelay,
+			reader);
+    }
     reader->xsdValidErrors = 0;
     reader->validate = XML_TEXTREADER_VALIDATE_XSD;
     return(0);
@@ -4385,7 +4533,7 @@
   }
 }
 
-static void 
+static void XMLCDECL 
 xmlTextReaderError(void *ctxt, const char *msg, ...) {
     va_list ap;
 
@@ -4397,7 +4545,7 @@
 
 }
 
-static void 
+static void XMLCDECL 
 xmlTextReaderWarning(void *ctxt, const char *msg, ...) {
     va_list ap;
 
@@ -4408,7 +4556,7 @@
     va_end(ap);
 }
 
-static void 
+static void XMLCDECL 
 xmlTextReaderValidityError(void *ctxt, const char *msg, ...) {
     va_list ap;
     int len = xmlStrlen((const xmlChar *) msg);
@@ -4426,7 +4574,7 @@
     }
 }
 
-static void 
+static void XMLCDECL 
 xmlTextReaderValidityWarning(void *ctxt, const char *msg, ...) {
     va_list ap;
     int len = xmlStrlen((const xmlChar *) msg);
@@ -4467,6 +4615,22 @@
 	reader->errorFunc = f;
 	reader->sErrorFunc = NULL;
 	reader->errorFuncArg = arg;
+#ifdef LIBXML_SCHEMAS_ENABLED
+		if (reader->rngValidCtxt) {
+			xmlRelaxNGSetValidErrors(reader->rngValidCtxt,
+				 xmlTextReaderValidityErrorRelay,
+				 xmlTextReaderValidityWarningRelay,
+				 reader);
+			xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, NULL, reader);
+		}
+		if (reader->xsdValidCtxt) {
+			xmlSchemaSetValidErrors(reader->xsdValidCtxt,
+				 xmlTextReaderValidityErrorRelay,
+				 xmlTextReaderValidityWarningRelay,
+				 reader);
+			xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, NULL, reader);
+		}
+#endif
     }
     else {
 	/* restore defaults */
@@ -4477,6 +4641,16 @@
 	reader->errorFunc = NULL;
 	reader->sErrorFunc = NULL;
 	reader->errorFuncArg = NULL;
+#ifdef LIBXML_SCHEMAS_ENABLED
+		if (reader->rngValidCtxt) {
+			xmlRelaxNGSetValidErrors(reader->rngValidCtxt, NULL, NULL, reader);
+			xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, NULL, reader);
+		}
+		if (reader->xsdValidCtxt) {
+			xmlSchemaSetValidErrors(reader->xsdValidCtxt, NULL, NULL, reader);
+			xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, NULL, reader);
+		}
+#endif
     }
 }
 
@@ -4503,6 +4677,20 @@
 	reader->sErrorFunc = f;
 	reader->errorFunc = NULL;
 	reader->errorFuncArg = arg;
+#ifdef LIBXML_SCHEMAS_ENABLED
+		if (reader->rngValidCtxt) {
+			xmlRelaxNGSetValidErrors(reader->rngValidCtxt, NULL, NULL, reader);
+			xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt,
+				xmlTextReaderValidityStructuredRelay,
+				reader);
+		}
+		if (reader->xsdValidCtxt) {
+			xmlSchemaSetValidErrors(reader->xsdValidCtxt, NULL, NULL, reader);
+			xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, 
+				xmlTextReaderValidityStructuredRelay,
+				reader);
+		}
+#endif
   }
   else {
 	/* restore defaults */
@@ -4514,6 +4702,16 @@
 	reader->errorFunc = NULL;
 	reader->sErrorFunc = NULL;
 	reader->errorFuncArg = NULL;
+#ifdef LIBXML_SCHEMAS_ENABLED
+		if (reader->rngValidCtxt) {
+			xmlRelaxNGSetValidErrors(reader->rngValidCtxt, NULL, NULL, reader);
+			xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, NULL, reader);
+		}
+		if (reader->xsdValidCtxt) {
+			xmlSchemaSetValidErrors(reader->xsdValidCtxt, NULL, NULL, reader);
+			xmlSchemaSetValidStructuredErrors(reader->xsdValidCtxt, NULL, reader);
+		}
+#endif
   }
 }
 
@@ -4582,6 +4780,12 @@
     if (reader == NULL)
         return (-1);
 
+    /*
+     * we force the generation of compact text nodes on the reader
+     * since usr applications should never modify the tree
+     */
+    options |= XML_PARSE_COMPACT;
+
     reader->doc = NULL;
     reader->entNr = 0;
     reader->parserFlags = options;

Modified: packages/libxml2/trunk/xmlregexp.c
===================================================================
--- packages/libxml2/trunk/xmlregexp.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlregexp.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -38,7 +38,7 @@
 #endif
 
 /* #define DEBUG_REGEXP_GRAPH */
-/* #define DEBUG_REGEXP_EXEC */ 
+/* #define DEBUG_REGEXP_EXEC */
 /* #define DEBUG_PUSH */
 /* #define DEBUG_COMPACTION */
 
@@ -211,6 +211,10 @@
     int maxTrans;
     int nbTrans;
     xmlRegTrans *trans;
+    /*  knowing states ponting to us can speed things up */
+    int maxTransTo;
+    int nbTransTo;
+    int *transTo;
 };
 
 typedef struct _xmlAutomata xmlRegParserCtxt;
@@ -242,6 +246,7 @@
     xmlRegCounter *counters;
 
     int determinist;
+    int negs;
 };
 
 struct _xmlRegexp {
@@ -329,6 +334,7 @@
 static void xmlFAParseRegExp(xmlRegParserCtxtPtr ctxt, int top);
 static void xmlRegFreeState(xmlRegStatePtr state);
 static void xmlRegFreeAtom(xmlRegAtomPtr atom);
+static int xmlRegStrEqualWildcard(const xmlChar *expStr, const xmlChar *valStr);
 
 /************************************************************************
  *									*
@@ -414,6 +420,7 @@
 
     if ((ret->determinist != 0) &&
 	(ret->nbCounters == 0) &&
+	(ctxt->negs == 0) &&
 	(ret->atoms != NULL) &&
 	(ret->atoms[0] != NULL) &&
 	(ret->atoms[0]->type == XML_REGEXP_STRING)) {
@@ -656,6 +663,7 @@
 	ret->string = xmlStrdup(string);
     ret->cur = ret->string;
     ret->neg = 0;
+    ret->negs = 0;
     ret->error = 0;
     ret->determinist = -1;
     return(ret);
@@ -751,6 +759,8 @@
 	xmlFree(atom->ranges);
     if ((atom->type == XML_REGEXP_STRING) && (atom->valuep != NULL))
 	xmlFree(atom->valuep);
+    if ((atom->type == XML_REGEXP_STRING) && (atom->valuep2 != NULL))
+	xmlFree(atom->valuep2);
     if ((atom->type == XML_REGEXP_BLOCK_NAME) && (atom->valuep != NULL))
 	xmlFree(atom->valuep);
     xmlFree(atom);
@@ -784,6 +794,8 @@
 
     if (state->trans != NULL)
 	xmlFree(state->trans);
+    if (state->transTo != NULL)
+	xmlFree(state->transTo);
     xmlFree(state);
 }
 
@@ -971,6 +983,8 @@
 	fprintf(output, "NULL\n");
 	return;
     }
+    if (atom->neg)
+        fprintf(output, "not ");
     xmlRegPrintAtomType(output, atom->type);
     xmlRegPrintQuantType(output, atom->quant);
     if (atom->quant == XML_REGEXP_QUANT_RANGE)
@@ -1191,9 +1205,37 @@
 }
 
 static void 
+xmlRegStateAddTransTo(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr target,
+                      int from) {
+    if (target->maxTransTo == 0) {
+	target->maxTransTo = 8;
+	target->transTo = (int *) xmlMalloc(target->maxTransTo *
+		                             sizeof(int));
+	if (target->transTo == NULL) {
+	    xmlRegexpErrMemory(ctxt, "adding transition");
+	    target->maxTransTo = 0;
+	    return;
+	}
+    } else if (target->nbTransTo >= target->maxTransTo) {
+	int *tmp;
+	target->maxTransTo *= 2;
+	tmp = (int *) xmlRealloc(target->transTo, target->maxTransTo *
+		                             sizeof(int));
+	if (tmp == NULL) {
+	    xmlRegexpErrMemory(ctxt, "adding transition");
+	    target->maxTransTo /= 2;
+	    return;
+	}
+	target->transTo = tmp;
+    }
+    target->transTo[target->nbTransTo] = from;
+    target->nbTransTo++;
+}
+
+static void 
 xmlRegStateAddTrans(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr state,
 	            xmlRegAtomPtr atom, xmlRegStatePtr target,
-		    int counter, int count) {
+		    int counter, int count, int nchk) {
 
     int nrtrans;
 
@@ -1211,21 +1253,24 @@
      * so, silently ignore this request.
      */
 
-    for (nrtrans=0; nrtrans<state->nbTrans; nrtrans++) {
-        if ((state->trans[nrtrans].atom == atom) &&
-            (state->trans[nrtrans].to == target->no) &&
-            (state->trans[nrtrans].counter == counter) &&
-            (state->trans[nrtrans].count == count)) {
+    if (nchk == 0) {
+	for (nrtrans = state->nbTrans - 1; nrtrans >= 0; nrtrans--) {
+	    xmlRegTransPtr trans = &(state->trans[nrtrans]);
+	    if ((trans->atom == atom) &&
+		(trans->to == target->no) &&
+		(trans->counter == counter) &&
+		(trans->count == count)) {
 #ifdef DEBUG_REGEXP_GRAPH
-            printf("Ignoring duplicate transition from %d to %d\n",
-                    state->no, target->no);
+		printf("Ignoring duplicate transition from %d to %d\n",
+			state->no, target->no);
 #endif
-            return;
-        }
+		return;
+	    }
+	}
     }
 
     if (state->maxTrans == 0) {
-	state->maxTrans = 4;
+	state->maxTrans = 8;
 	state->trans = (xmlRegTrans *) xmlMalloc(state->maxTrans *
 		                             sizeof(xmlRegTrans));
 	if (state->trans == NULL) {
@@ -1264,6 +1309,7 @@
     state->trans[state->nbTrans].counter = counter;
     state->trans[state->nbTrans].count = count;
     state->nbTrans++;
+    xmlRegStateAddTransTo(ctxt, target, state->no);
 }
 
 static int
@@ -1313,9 +1359,9 @@
 	ctxt->state = to;
     }
     if (lax)
-	xmlRegStateAddTrans(ctxt, from, NULL, to, -1, REGEXP_ALL_LAX_COUNTER);
+	xmlRegStateAddTrans(ctxt, from, NULL, to, -1, REGEXP_ALL_LAX_COUNTER, 0);
     else
-	xmlRegStateAddTrans(ctxt, from, NULL, to, -1, REGEXP_ALL_COUNTER);
+	xmlRegStateAddTrans(ctxt, from, NULL, to, -1, REGEXP_ALL_COUNTER, 0);
 }
 
 /**
@@ -1333,7 +1379,7 @@
 	xmlRegStatePush(ctxt, to);
 	ctxt->state = to;
     }
-    xmlRegStateAddTrans(ctxt, from, NULL, to, -1, -1);
+    xmlRegStateAddTrans(ctxt, from, NULL, to, -1, -1, 0);
 }
 
 /**
@@ -1352,7 +1398,7 @@
 	xmlRegStatePush(ctxt, to);
 	ctxt->state = to;
     }
-    xmlRegStateAddTrans(ctxt, from, NULL, to, counter, -1);
+    xmlRegStateAddTrans(ctxt, from, NULL, to, counter, -1, 0);
 }
 
 /**
@@ -1371,7 +1417,7 @@
 	xmlRegStatePush(ctxt, to);
 	ctxt->state = to;
     }
-    xmlRegStateAddTrans(ctxt, from, NULL, to, -1, counter);
+    xmlRegStateAddTrans(ctxt, from, NULL, to, -1, counter, 0);
 }
 
 /**
@@ -1467,6 +1513,23 @@
 		break;
 	}
 	return(0);
+    } else if ((atom->min == 0) && (atom->max == 0) &&
+               (atom->quant == XML_REGEXP_QUANT_RANGE)) {
+        /*
+	 * we can discard the atom and generate an epsilon transition instead
+	 */
+	if (to == NULL) {
+	    to = xmlRegNewState(ctxt);
+	    if (to != NULL)
+		xmlRegStatePush(ctxt, to);
+	    else {
+		return(-1);
+	    }
+	}
+	xmlFAGenerateEpsilonTransition(ctxt, from, to);
+	ctxt->state = to;
+	xmlRegFreeAtom(atom);
+	return(0);
     } else {
 	if (to == NULL) {
 	    to = xmlRegNewState(ctxt);
@@ -1479,7 +1542,7 @@
 	if (xmlRegAtomPush(ctxt, atom) < 0) {
 	    return(-1);
 	}
-	xmlRegStateAddTrans(ctxt, from, atom, to, -1, -1);
+	xmlRegStateAddTrans(ctxt, from, atom, to, -1, -1, 0);
 	ctxt->state = to;
     }
     switch (atom->quant) {
@@ -1490,11 +1553,11 @@
 	case XML_REGEXP_QUANT_MULT:
 	    atom->quant = XML_REGEXP_QUANT_ONCE;
 	    xmlFAGenerateEpsilonTransition(ctxt, from, to);
-	    xmlRegStateAddTrans(ctxt, to, atom, to, -1, -1);
+	    xmlRegStateAddTrans(ctxt, to, atom, to, -1, -1, 0);
 	    break;
 	case XML_REGEXP_QUANT_PLUS:
 	    atom->quant = XML_REGEXP_QUANT_ONCE;
-	    xmlRegStateAddTrans(ctxt, to, atom, to, -1, -1);
+	    xmlRegStateAddTrans(ctxt, to, atom, to, -1, -1, 0);
 	    break;
 	default:
 	    break;
@@ -1538,6 +1601,8 @@
 	from->type = XML_REGEXP_FINAL_STATE;
     }
     for (transnr = 0;transnr < to->nbTrans;transnr++) {
+        if (to->trans[transnr].to < 0)
+	    continue;
 	if (to->trans[transnr].atom == NULL) {
 	    /*
 	     * Don't remove counted transitions
@@ -1549,7 +1614,7 @@
 
 		    xmlRegStateAddTrans(ctxt, from, NULL,
 					ctxt->states[newto], 
-					-1, to->trans[transnr].count);
+					-1, to->trans[transnr].count, 0);
 		} else {
 #ifdef DEBUG_REGEXP_GRAPH
 		    printf("Found epsilon trans %d from %d to %d\n",
@@ -1572,10 +1637,10 @@
 	    if (to->trans[transnr].counter >= 0) {
 		xmlRegStateAddTrans(ctxt, from, to->trans[transnr].atom, 
 				    ctxt->states[newto], 
-				    to->trans[transnr].counter, -1);
+				    to->trans[transnr].counter, -1, 1);
 	    } else {
 		xmlRegStateAddTrans(ctxt, from, to->trans[transnr].atom, 
-				    ctxt->states[newto], counter, -1);
+				    ctxt->states[newto], counter, -1, 1);
 	    }
 	}
     }
@@ -1583,6 +1648,89 @@
 }
 
 /**
+ * xmlFAEliminateSimpleEpsilonTransitions:
+ * @ctxt:  a regexp parser context
+ *
+ * Eliminating general epsilon transitions can get costly in the general 
+ * algorithm due to the large amount of generated new transitions and
+ * associated comparisons. However for simple epsilon transition used just
+ * to separate building blocks when generating the automata this can be
+ * reduced to state elimination:
+ *    - if there exists an epsilon from X to Y
+ *    - if there is no other transition from X
+ * then X and Y are semantically equivalent and X can be eliminated
+ * If X is the start state then make Y the start state, else replace the
+ * target of all transitions to X by transitions to Y.
+ */
+static void
+xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr ctxt) {
+    int statenr, i, j, newto;
+    xmlRegStatePtr state, tmp;
+
+    for (statenr = 0;statenr < ctxt->nbStates;statenr++) {
+	state = ctxt->states[statenr];
+	if (state == NULL)
+	    continue;
+	if (state->nbTrans != 1)
+	    continue;
+	/* is the only transition out a basic transition */
+	if ((state->trans[0].atom == NULL) &&
+	    (state->trans[0].to >= 0) &&
+	    (state->trans[0].to != statenr) &&
+	    (state->trans[0].counter < 0) &&
+	    (state->trans[0].count < 0)) {
+	    newto = state->trans[0].to;
+
+            if (state->type == XML_REGEXP_START_STATE) {
+#ifdef DEBUG_REGEXP_GRAPH
+		printf("Found simple epsilon trans from start %d to %d\n",
+		       statenr, newto);
+#endif     
+            } else {
+#ifdef DEBUG_REGEXP_GRAPH
+		printf("Found simple epsilon trans from %d to %d\n",
+		       statenr, newto);
+#endif     
+	        for (i = 0;i < state->nbTransTo;i++) {
+		    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     
+			}
+		    }
+		}
+#endif
+		if (state->type == XML_REGEXP_FINAL_STATE)
+		    ctxt->states[newto]->type = XML_REGEXP_FINAL_STATE;
+		/* eliminate the transition completely */
+		state->nbTrans = 0;
+
+
+	    }
+            
+	}
+    }
+}
+/**
  * xmlFAEliminateEpsilonTransitions:
  * @ctxt:  a regexp parser context
  *
@@ -1591,10 +1739,14 @@
 xmlFAEliminateEpsilonTransitions(xmlRegParserCtxtPtr ctxt) {
     int statenr, transnr;
     xmlRegStatePtr state;
+    int has_epsilon;
 
     if (ctxt->states == NULL) return;
 
+    xmlFAEliminateSimpleEpsilonTransitions(ctxt);
 
+    has_epsilon = 0;
+
     /*
      * build the completed transitions bypassing the epsilons
      * Use a marking algorithm to avoid loops
@@ -1625,6 +1777,7 @@
 			   transnr, statenr, newto);
 #endif
 		    state->mark = XML_REGEXP_MARK_START;
+		    has_epsilon = 1;
 		    xmlFAReduceEpsilonTransitions(ctxt, statenr,
 				      newto, state->trans[transnr].counter);
 		    state->mark = XML_REGEXP_MARK_NORMAL;
@@ -1640,15 +1793,18 @@
     /*
      * Eliminate the epsilon transitions
      */
-    for (statenr = 0;statenr < ctxt->nbStates;statenr++) {
-	state = ctxt->states[statenr];
-	if (state == NULL)
-	    continue;
-	for (transnr = 0;transnr < state->nbTrans;transnr++) {
-	    if ((state->trans[transnr].atom == NULL) &&
-		(state->trans[transnr].count < 0) &&
-		(state->trans[transnr].to >= 0)) {
-		state->trans[transnr].to = -1;
+    if (has_epsilon) {
+	for (statenr = 0;statenr < ctxt->nbStates;statenr++) {
+	    state = ctxt->states[statenr];
+	    if (state == NULL)
+		continue;
+	    for (transnr = 0;transnr < state->nbTrans;transnr++) {
+		xmlRegTransPtr trans = &(state->trans[transnr]);
+		if ((trans->atom == NULL) &&
+		    (trans->count < 0) &&
+		    (trans->to >= 0)) {
+		    trans->to = -1;
+		}
 	    }
 	}
     }
@@ -1724,6 +1880,8 @@
  */
 static int
 xmlFACompareAtoms(xmlRegAtomPtr atom1, xmlRegAtomPtr atom2) {
+    int ret;
+
     if (atom1 == atom2)
 	return(1);
     if ((atom1 == NULL) || (atom2 == NULL))
@@ -1733,19 +1891,24 @@
 	return(0);
     switch (atom1->type) {
         case XML_REGEXP_STRING:
-	    return(xmlStrEqual((xmlChar *)atom1->valuep,
-			       (xmlChar *)atom2->valuep));
+	    ret = xmlRegStrEqualWildcard((xmlChar *)atom1->valuep,
+	                                 (xmlChar *)atom2->valuep);
+	    break;
         case XML_REGEXP_EPSILON:
 	    return(1);
         case XML_REGEXP_CHARVAL:
-	    return(atom1->codepoint == atom2->codepoint);
+	    ret = atom1->codepoint == atom2->codepoint;
+	    break;
         case XML_REGEXP_RANGES:
 	    TODO;
 	    return(0);
 	default:
-	    break;
+	    return(1);
     }
-    return(1);
+    if (atom1->neg != atom2->neg) {
+        ret = !ret;
+    }
+    return(ret);
 }
 
 /**
@@ -1818,6 +1981,8 @@
 	state = ctxt->states[statenr];
 	if (state == NULL)
 	    continue;
+	if (state->nbTrans < 2)
+	    continue;
 	for (transnr = 0;transnr < state->nbTrans;transnr++) {
 	    t1 = &(state->trans[transnr]);
 	    /*
@@ -2420,7 +2585,15 @@
 #endif
 		    exec->counts[trans->counter]++;
 		}
+		if ((trans->count >= 0) &&
+		    (trans->count < REGEXP_ALL_COUNTER)) {
 #ifdef DEBUG_REGEXP_EXEC
+		    printf("resetting count %d on transition\n",
+		           trans->count);
+#endif
+		    exec->counts[trans->count] = 0;
+		}
+#ifdef DEBUG_REGEXP_EXEC
 		printf("entering state %d\n", trans->to);
 #endif
 		exec->state = comp->states[trans->to];
@@ -2633,6 +2806,14 @@
 	* Eval if we have a wildcard for the current item.
 	*/
         if (*expStr != *valStr) {
+	    /* if one of them starts with a wildcard make valStr be it */
+	    if (*valStr == '*') {
+	        const xmlChar *tmp;
+
+		tmp = valStr;
+		valStr = expStr;
+		expStr = tmp;
+	    }
 	    if ((*valStr != 0) && (*expStr != 0) && (*expStr++ == '*')) {
 		do {
 		    if (*valStr == XML_REG_STRING_SEPARATOR)
@@ -2736,19 +2917,20 @@
 }
 
 /**
- * xmlRegExecPushString:
+ * xmlRegExecPushStringInternal:
  * @exec: a regexp execution context or NULL to indicate the end
  * @value: a string token input
  * @data: data associated to the token to reuse in callbacks
+ * @compound: value was assembled from 2 strings
  *
  * Push one input token in the execution context
  *
  * Returns: 1 if the regexp reached a final state, 0 if non-final, and
  *     a negative value in case of error.
  */
-int
-xmlRegExecPushString(xmlRegExecCtxtPtr exec, const xmlChar *value,
-	             void *data) {
+static int
+xmlRegExecPushStringInternal(xmlRegExecCtxtPtr exec, const xmlChar *value,
+	                     void *data, int compound) {
     xmlRegTransPtr trans;
     xmlRegAtomPtr atom;
     int ret;
@@ -2890,6 +3072,11 @@
 		break;
 	    } else if (value != NULL) {
 		ret = xmlRegStrEqualWildcard(atom->valuep, value);
+		if (atom->neg) {
+		    ret = !ret;
+		    if (!compound)
+		        ret = 0;
+		}
 		if ((ret == 1) && (trans->counter >= 0)) {
 		    xmlRegCounterPtr counter;
 		    int count;
@@ -2985,6 +3172,14 @@
 #endif
 		    exec->counts[trans->counter]++;
 		}
+		if ((trans->count >= 0) &&
+		    (trans->count < REGEXP_ALL_COUNTER)) {
+#ifdef DEBUG_REGEXP_EXEC
+		    printf("resetting count %d on transition\n",
+		           trans->count);
+#endif
+		    exec->counts[trans->count] = 0;
+		}
 #ifdef DEBUG_PUSH
 		printf("entering state %d\n", trans->to);
 #endif
@@ -3081,6 +3276,23 @@
 }
 
 /**
+ * xmlRegExecPushString:
+ * @exec: a regexp execution context or NULL to indicate the end
+ * @value: a string token input
+ * @data: data associated to the token to reuse in callbacks
+ *
+ * Push one input token in the execution context
+ *
+ * Returns: 1 if the regexp reached a final state, 0 if non-final, and
+ *     a negative value in case of error.
+ */
+int
+xmlRegExecPushString(xmlRegExecCtxtPtr exec, const xmlChar *value,
+	             void *data) {
+    return(xmlRegExecPushStringInternal(exec, value, data, 0));
+}
+
+/**
  * xmlRegExecPushString2:
  * @exec: a regexp execution context or NULL to indicate the end
  * @value: the first string token input
@@ -3129,7 +3341,7 @@
     if (exec->comp->compact != NULL)
 	ret = xmlRegCompactPushString(exec, exec->comp, str, data);
     else
-        ret = xmlRegExecPushString(exec, str, data);
+        ret = xmlRegExecPushStringInternal(exec, str, data, 1);
 
     if (str != buf)
         xmlFree(buf);
@@ -3137,7 +3349,7 @@
 }
 
 /**
- * xmlRegExecGetalues:
+ * xmlRegExecGetValues:
  * @exec: a regexp execution context
  * @err: error extraction or normal one
  * @nbval: pointer to the number of accepted values IN/OUT
@@ -3246,14 +3458,20 @@
 		    count = exec->counts[trans->counter];
 		counter = &exec->comp->counters[trans->counter];
 		if (count < counter->max) {
-		    values[nb++] = (xmlChar *) atom->valuep;
+		    if (atom->neg)
+			values[nb++] = (xmlChar *) atom->valuep2;
+		    else
+			values[nb++] = (xmlChar *) atom->valuep;
 		    (*nbval)++;
 		}
 	    } else {
                 if ((exec->comp->states[trans->to] != NULL) &&
 		    (exec->comp->states[trans->to]->type !=
 		     XML_REGEXP_SINK_STATE)) {
-		    values[nb++] = (xmlChar *) atom->valuep;
+		    if (atom->neg)
+			values[nb++] = (xmlChar *) atom->valuep2;
+		    else
+			values[nb++] = (xmlChar *) atom->valuep;
 		    (*nbval)++;
 		}
 	    } 
@@ -3277,7 +3495,10 @@
                 if ((exec->comp->states[trans->to] != NULL) &&
 		    (exec->comp->states[trans->to]->type ==
 		     XML_REGEXP_SINK_STATE)) {
-		    values[nb++] = (xmlChar *) atom->valuep;
+		    if (atom->neg)
+			values[nb++] = (xmlChar *) atom->valuep2;
+		    else
+			values[nb++] = (xmlChar *) atom->valuep;
 		    (*nbneg)++;
 		}
 	    } 
@@ -3815,8 +4036,21 @@
 	(cur == 0x5E)) {
 	if (ctxt->atom == NULL) {
 	    ctxt->atom = xmlRegNewAtom(ctxt, XML_REGEXP_CHARVAL);
-	    if (ctxt->atom != NULL)
-		ctxt->atom->codepoint = cur;
+	    if (ctxt->atom != NULL) {
+	        switch (cur) {
+		    case 'n':
+		        ctxt->atom->codepoint = '\n';
+			break;
+		    case 'r':
+		        ctxt->atom->codepoint = '\r';
+			break;
+		    case 't':
+		        ctxt->atom->codepoint = '\t';
+			break;
+		    default:
+			ctxt->atom->codepoint = cur;
+		}
+	    }
 	} else if (ctxt->atom->type == XML_REGEXP_RANGES) {
 	    xmlRegAtomAddRange(ctxt, ctxt->atom, ctxt->neg,
 			       XML_REGEXP_CHARVAL, cur, cur, NULL);
@@ -4550,6 +4784,7 @@
     /* initialize the parser */
     ctxt->end = NULL;
     ctxt->start = ctxt->state = xmlRegNewState(ctxt);
+    ctxt->start->type = XML_REGEXP_START_STATE;
     if (ctxt->start == NULL) {
 	xmlFreeAutomata(ctxt);
 	return(NULL);
@@ -4706,6 +4941,72 @@
 }
 
 /**
+ * xmlAutomataNewNegTrans:
+ * @am: an automata
+ * @from: the starting point of the transition
+ * @to: the target point of the transition or NULL
+ * @token: the first input string associated to that transition
+ * @token2: the second input string associated to that transition
+ * @data: data passed to the callback function if the transition is activated
+ *
+ * If @to is NULL, this creates first a new target state in the automata
+ * and then adds a transition from the @from state to the target state
+ * activated by any value except (@token, at token2)
+ * Note that if @token2 is not NULL, then (X, NULL) won't match to follow
+ # the semantic of XSD ##other
+ *
+ * Returns the target state or NULL in case of error
+ */
+xmlAutomataStatePtr
+xmlAutomataNewNegTrans(xmlAutomataPtr am, xmlAutomataStatePtr from,
+		       xmlAutomataStatePtr to, const xmlChar *token,
+		       const xmlChar *token2, void *data) {
+    xmlRegAtomPtr atom;
+    xmlChar err_msg[200];
+
+    if ((am == NULL) || (from == NULL) || (token == NULL))
+	return(NULL);
+    atom = xmlRegNewAtom(am, XML_REGEXP_STRING);
+    if (atom == NULL)
+	return(NULL);
+    atom->data = data;
+    atom->neg = 1;
+    if ((token2 == NULL) || (*token2 == 0)) {
+	atom->valuep = xmlStrdup(token);
+    } else {
+	int lenn, lenp;
+	xmlChar *str;
+
+	lenn = strlen((char *) token2);
+	lenp = strlen((char *) token);
+
+	str = (xmlChar *) xmlMallocAtomic(lenn + lenp + 2);
+	if (str == NULL) {
+	    xmlRegFreeAtom(atom);
+	    return(NULL);
+	}
+	memcpy(&str[0], token, lenp);
+	str[lenp] = '|';
+	memcpy(&str[lenp + 1], token2, lenn);
+	str[lenn + lenp + 1] = 0;
+
+	atom->valuep = str;
+    }
+    snprintf((char *) err_msg, 199, "not %s", (const char *) atom->valuep);
+    err_msg[199] = 0;
+    atom->valuep2 = xmlStrdup(err_msg);
+
+    if (xmlFAGenerateTransitions(am, from, to, atom) < 0) {
+        xmlRegFreeAtom(atom);
+	return(NULL);
+    }
+    am->negs++;
+    if (to == NULL)
+	return(am->state);
+    return(to);
+}
+
+/**
  * xmlAutomataNewCountTrans2:
  * @am: an automata
  * @from: the starting point of the transition
@@ -4780,7 +5081,7 @@
         to = xmlRegNewState(am);
 	xmlRegStatePush(am, to);
     }
-    xmlRegStateAddTrans(am, from, atom, to, counter, -1);
+    xmlRegStateAddTrans(am, from, atom, to, counter, -1, 0);
     xmlRegAtomPush(am, atom);
     am->state = to;
 
@@ -4846,7 +5147,7 @@
         to = xmlRegNewState(am);
 	xmlRegStatePush(am, to);
     }
-    xmlRegStateAddTrans(am, from, atom, to, counter, -1);
+    xmlRegStateAddTrans(am, from, atom, to, counter, -1, 0);
     xmlRegAtomPush(am, atom);
     am->state = to;
 
@@ -4935,7 +5236,7 @@
 	to = xmlRegNewState(am);
 	xmlRegStatePush(am, to);
     }
-    xmlRegStateAddTrans(am, from, atom, to, counter, -1);
+    xmlRegStateAddTrans(am, from, atom, to, counter, -1, 0);
     xmlRegAtomPush(am, atom);
     am->state = to;
     return(to);
@@ -4997,7 +5298,7 @@
 	to = xmlRegNewState(am);
 	xmlRegStatePush(am, to);
     }
-    xmlRegStateAddTrans(am, from, atom, to, counter, -1);
+    xmlRegStateAddTrans(am, from, atom, to, counter, -1, 0);
     xmlRegAtomPush(am, atom);
     am->state = to;
     return(to);
@@ -5183,6 +5484,1844 @@
     return(ret);
 }
 #endif /* LIBXML_AUTOMATA_ENABLED */
+
+#ifdef LIBXML_EXPR_ENABLED
+/************************************************************************
+ *									*
+ *		Formal Expression handling code				*
+ *									*
+ ************************************************************************/
+/************************************************************************
+ *									*
+ *		Expression handling context				*
+ *									*
+ ************************************************************************/
+
+struct _xmlExpCtxt {
+    xmlDictPtr dict;
+    xmlExpNodePtr *table;
+    int size;
+    int nbElems;
+    int nb_nodes;
+    const char *expr;
+    const char *cur;
+    int nb_cons;
+    int tabSize;
+};
+
+/**
+ * xmlExpNewCtxt:
+ * @maxNodes:  the maximum number of nodes
+ * @dict:  optional dictionnary to use internally
+ *
+ * Creates a new context for manipulating expressions
+ *
+ * Returns the context or NULL in case of error
+ */
+xmlExpCtxtPtr
+xmlExpNewCtxt(int maxNodes, xmlDictPtr dict) {
+    xmlExpCtxtPtr ret;
+    int size = 256;
+
+    if (maxNodes <= 4096)
+        maxNodes = 4096;
+    
+    ret = (xmlExpCtxtPtr) xmlMalloc(sizeof(xmlExpCtxt));
+    if (ret == NULL)
+        return(NULL);
+    memset(ret, 0, sizeof(xmlExpCtxt));
+    ret->size = size;
+    ret->nbElems = 0;
+    ret->table = xmlMalloc(size * sizeof(xmlExpNodePtr));
+    if (ret->table == NULL) {
+        xmlFree(ret);
+	return(NULL);
+    }
+    memset(ret->table, 0, size * sizeof(xmlExpNodePtr));
+    if (dict == NULL) {
+        ret->dict = xmlDictCreate();
+	if (ret->dict == NULL) {
+	    xmlFree(ret->table);
+	    xmlFree(ret);
+	    return(NULL);
+	}
+    } else {
+        ret->dict = dict;
+	xmlDictReference(ret->dict);
+    }
+    return(ret);
+}
+
+/**
+ * xmlExpFreeCtxt:
+ * @ctxt:  an expression context
+ *
+ * Free an expression context
+ */
+void
+xmlExpFreeCtxt(xmlExpCtxtPtr ctxt) {
+    if (ctxt == NULL)
+        return;
+    xmlDictFree(ctxt->dict);
+    if (ctxt->table != NULL)
+	xmlFree(ctxt->table);
+    xmlFree(ctxt);
+}
+
+/************************************************************************
+ *									*
+ *		Structure associated to an expression node		*
+ *									*
+ ************************************************************************/
+#define MAX_NODES 10000
+
+/* #define DEBUG_DERIV */
+
+/*
+ * TODO: 
+ * - Wildcards
+ * - public API for creation
+ *
+ * Started
+ * - regression testing
+ *
+ * Done
+ * - split into module and test tool
+ * - memleaks
+ */
+
+typedef enum {
+    XML_EXP_NILABLE = (1 << 0)
+} xmlExpNodeInfo;
+
+#define IS_NILLABLE(node) ((node)->info & XML_EXP_NILABLE)
+
+struct _xmlExpNode {
+    unsigned char type;/* xmlExpNodeType */
+    unsigned char info;/* OR of xmlExpNodeInfo */
+    unsigned short key;	/* the hash key */
+    unsigned int ref;	/* The number of references */
+    int c_max;		/* the maximum length it can consume */
+    xmlExpNodePtr exp_left;
+    xmlExpNodePtr next;/* the next node in the hash table or free list */
+    union {
+	struct {
+	    int f_min;
+	    int f_max;
+	} count;
+	struct {
+	    xmlExpNodePtr f_right;
+	} children;
+        const xmlChar *f_str;
+    } field;
+};
+
+#define exp_min field.count.f_min
+#define exp_max field.count.f_max
+/* #define exp_left field.children.f_left */
+#define exp_right field.children.f_right
+#define exp_str field.f_str
+
+static xmlExpNodePtr xmlExpNewNode(xmlExpCtxtPtr ctxt, xmlExpNodeType type);
+static xmlExpNode forbiddenExpNode = {
+    XML_EXP_FORBID, 0, 0, 0, 0, NULL, NULL, {{ 0, 0}}
+};
+xmlExpNodePtr forbiddenExp = &forbiddenExpNode;
+static xmlExpNode emptyExpNode = {
+    XML_EXP_EMPTY, 1, 0, 0, 0, NULL, NULL, {{ 0, 0}}
+};
+xmlExpNodePtr emptyExp = &emptyExpNode;
+
+/************************************************************************
+ *									*
+ *  The custom hash table for unicity and canonicalization		*
+ *  of sub-expressions pointers						*
+ *									*
+ ************************************************************************/
+/*
+ * xmlExpHashNameComputeKey:
+ * Calculate the hash key for a token
+ */
+static unsigned short
+xmlExpHashNameComputeKey(const xmlChar *name) {
+    unsigned short value = 0L;
+    char ch;
+    
+    if (name != NULL) {
+	value += 30 * (*name);
+	while ((ch = *name++) != 0) {
+	    value = value ^ ((value << 5) + (value >> 3) + (unsigned long)ch);
+	}
+    }
+    return (value);
+}
+
+/*
+ * xmlExpHashComputeKey:
+ * Calculate the hash key for a compound expression
+ */
+static unsigned short
+xmlExpHashComputeKey(xmlExpNodeType type, xmlExpNodePtr left,
+                     xmlExpNodePtr right) {
+    unsigned long value;
+    unsigned short ret;
+    
+    switch (type) {
+        case XML_EXP_SEQ:
+	    value = left->key;
+	    value += right->key;
+	    value *= 3;
+	    ret = (unsigned short) value;
+	    break;
+        case XML_EXP_OR:
+	    value = left->key;
+	    value += right->key;
+	    value *= 7;
+	    ret = (unsigned short) value;
+	    break;
+        case XML_EXP_COUNT:
+	    value = left->key;
+	    value += right->key;
+	    ret = (unsigned short) value;
+	    break;
+	default:
+	    ret = 0;
+    }
+    return(ret);
+}
+
+
+static xmlExpNodePtr
+xmlExpNewNode(xmlExpCtxtPtr ctxt, xmlExpNodeType type) {
+    xmlExpNodePtr ret;
+
+    if (ctxt->nb_nodes >= MAX_NODES)
+        return(NULL);
+    ret = (xmlExpNodePtr) xmlMalloc(sizeof(xmlExpNode));
+    if (ret == NULL)
+        return(NULL);
+    memset(ret, 0, sizeof(xmlExpNode));
+    ret->type = type;
+    ret->next = NULL;
+    ctxt->nb_nodes++;
+    ctxt->nb_cons++;
+    return(ret);
+}
+
+/**
+ * xmlExpHashGetEntry:
+ * @table: the hash table
+ *
+ * Get the unique entry from the hash table. The entry is created if
+ * needed. @left and @right are consumed, i.e. their ref count will
+ * be decremented by the operation.
+ *
+ * Returns the pointer or NULL in case of error
+ */
+static xmlExpNodePtr
+xmlExpHashGetEntry(xmlExpCtxtPtr ctxt, xmlExpNodeType type,
+                   xmlExpNodePtr left, xmlExpNodePtr right,
+		   const xmlChar *name, int min, int max) {
+    unsigned short kbase, key;
+    xmlExpNodePtr entry;
+    xmlExpNodePtr insert;
+
+    if (ctxt == NULL)
+	return(NULL);
+
+    /*
+     * Check for duplicate and insertion location.
+     */
+    if (type == XML_EXP_ATOM) {
+	kbase = xmlExpHashNameComputeKey(name);
+    } else if (type == XML_EXP_COUNT) {
+        /* COUNT reduction rule 1 */
+	/* a{1} -> a */
+	if (min == max) {
+	    if (min == 1) {
+		return(left);
+	    }
+	    if (min == 0) {
+		xmlExpFree(ctxt, left);
+	        return(emptyExp);
+	    }
+	}
+	if (min < 0) {
+	    xmlExpFree(ctxt, left);
+	    return(forbiddenExp);
+	}
+        if (max == -1)
+	    kbase = min + 79;
+	else
+	    kbase = max - min;
+	kbase += left->key;
+    } else if (type == XML_EXP_OR) {
+        /* Forbid reduction rules */
+        if (left->type == XML_EXP_FORBID) {
+	    xmlExpFree(ctxt, left);
+	    return(right);
+	}
+        if (right->type == XML_EXP_FORBID) {
+	    xmlExpFree(ctxt, right);
+	    return(left);
+	}
+
+        /* OR reduction rule 1 */
+	/* a | a reduced to a */
+        if (left == right) {
+	    left->ref--;
+	    return(left);
+	}
+        /* OR canonicalization rule 1 */
+	/* linearize (a | b) | c into a | (b | c) */
+        if ((left->type == XML_EXP_OR) && (right->type != XML_EXP_OR)) {
+	    xmlExpNodePtr tmp = left;
+            left = right;
+	    right = tmp;
+	}
+        /* OR reduction rule 2 */
+	/* a | (a | b) and b | (a | b) are reduced to a | b */
+        if (right->type == XML_EXP_OR) {
+	    if ((left == right->exp_left) ||
+	        (left == right->exp_right)) {
+		xmlExpFree(ctxt, left);
+		return(right);
+	    }
+	}
+        /* OR canonicalization rule 2 */
+	/* linearize (a | b) | c into a | (b | c) */
+        if (left->type == XML_EXP_OR) {
+	    xmlExpNodePtr tmp;
+
+	    /* OR canonicalization rule 2 */
+	    if ((left->exp_right->type != XML_EXP_OR) &&
+	        (left->exp_right->key < left->exp_left->key)) {
+	        tmp = left->exp_right;
+		left->exp_right = left->exp_left;
+		left->exp_left = tmp;
+	    }
+	    left->exp_right->ref++;
+	    tmp = xmlExpHashGetEntry(ctxt, XML_EXP_OR, left->exp_right, right,
+	                             NULL, 0, 0);
+	    left->exp_left->ref++;
+	    tmp = xmlExpHashGetEntry(ctxt, XML_EXP_OR, left->exp_left, tmp,
+	                             NULL, 0, 0);
+	
+	    xmlExpFree(ctxt, left);
+	    return(tmp);
+	}
+	if (right->type == XML_EXP_OR) {
+	    /* Ordering in the tree */
+	    /* C | (A | B) -> A | (B | C) */
+	    if (left->key > right->exp_right->key) {
+		xmlExpNodePtr tmp;
+		right->exp_right->ref++;
+		tmp = xmlExpHashGetEntry(ctxt, XML_EXP_OR, right->exp_right,
+		                         left, NULL, 0, 0);
+		right->exp_left->ref++;
+		tmp = xmlExpHashGetEntry(ctxt, XML_EXP_OR, right->exp_left,
+		                         tmp, NULL, 0, 0);
+		xmlExpFree(ctxt, right);
+		return(tmp);
+	    }
+	    /* Ordering in the tree */
+	    /* B | (A | C) -> A | (B | C) */
+	    if (left->key > right->exp_left->key) {
+		xmlExpNodePtr tmp;
+		right->exp_right->ref++;
+		tmp = xmlExpHashGetEntry(ctxt, XML_EXP_OR, left,
+		                         right->exp_right, NULL, 0, 0);
+		right->exp_left->ref++;
+		tmp = xmlExpHashGetEntry(ctxt, XML_EXP_OR, right->exp_left,
+		                         tmp, NULL, 0, 0);
+		xmlExpFree(ctxt, right);
+		return(tmp);
+	    }
+	}
+	/* we know both types are != XML_EXP_OR here */
+        else if (left->key > right->key) {
+	    xmlExpNodePtr tmp = left;
+            left = right;
+	    right = tmp;
+	}
+	kbase = xmlExpHashComputeKey(type, left, right);
+    } else if (type == XML_EXP_SEQ) {
+        /* Forbid reduction rules */
+        if (left->type == XML_EXP_FORBID) {
+	    xmlExpFree(ctxt, right);
+	    return(left);
+	}
+        if (right->type == XML_EXP_FORBID) {
+	    xmlExpFree(ctxt, left);
+	    return(right);
+	}
+        /* Empty reduction rules */
+        if (right->type == XML_EXP_EMPTY) {
+	    return(left);
+	}
+        if (left->type == XML_EXP_EMPTY) {
+	    return(right);
+	}
+	kbase = xmlExpHashComputeKey(type, left, right);
+    } else 
+        return(NULL);
+
+    key = kbase % ctxt->size;
+    if (ctxt->table[key] != NULL) {
+	for (insert = ctxt->table[key]; insert != NULL;
+	     insert = insert->next) {
+	    if ((insert->key == kbase) &&
+	        (insert->type == type)) {
+		if (type == XML_EXP_ATOM) {
+		    if (name == insert->exp_str) {
+			insert->ref++;
+			return(insert);
+		    }
+		} else if (type == XML_EXP_COUNT) {
+		    if ((insert->exp_min == min) && (insert->exp_max == max) &&
+		        (insert->exp_left == left)) {
+			insert->ref++;
+			left->ref--;
+			return(insert);
+		    }
+		} else if ((insert->exp_left == left) &&
+			   (insert->exp_right == right)) {
+		    insert->ref++;
+		    left->ref--;
+		    right->ref--;
+		    return(insert);
+		}
+	    }
+	}
+    }
+
+    entry = xmlExpNewNode(ctxt, type);
+    if (entry == NULL)
+        return(NULL);
+    entry->key = kbase;
+    if (type == XML_EXP_ATOM) {
+	entry->exp_str = name;
+	entry->c_max = 1;
+    } else if (type == XML_EXP_COUNT) {
+        entry->exp_min = min;
+        entry->exp_max = max;
+	entry->exp_left = left;
+	if ((min == 0) || (IS_NILLABLE(left)))
+	    entry->info |= XML_EXP_NILABLE;
+	if (max < 0)
+	    entry->c_max = -1;
+	else
+	    entry->c_max = max * entry->exp_left->c_max;
+    } else {
+	entry->exp_left = left;
+	entry->exp_right = right;
+	if (type == XML_EXP_OR) {
+	    if ((IS_NILLABLE(left)) || (IS_NILLABLE(right)))
+		entry->info |= XML_EXP_NILABLE;
+	    if ((entry->exp_left->c_max == -1) ||
+	        (entry->exp_right->c_max == -1))
+		entry->c_max = -1;
+	    else if (entry->exp_left->c_max > entry->exp_right->c_max)
+	        entry->c_max = entry->exp_left->c_max;
+	    else
+	        entry->c_max = entry->exp_right->c_max;
+	} else {
+	    if ((IS_NILLABLE(left)) && (IS_NILLABLE(right)))
+		entry->info |= XML_EXP_NILABLE;
+	    if ((entry->exp_left->c_max == -1) ||
+	        (entry->exp_right->c_max == -1))
+		entry->c_max = -1;
+	    else
+	        entry->c_max = entry->exp_left->c_max + entry->exp_right->c_max;
+	}
+    }
+    entry->ref = 1;
+    if (ctxt->table[key] != NULL)
+        entry->next = ctxt->table[key];
+
+    ctxt->table[key] = entry;
+    ctxt->nbElems++;
+
+    return(entry);
+}
+
+/**
+ * xmlExpFree:
+ * @ctxt: the expression context
+ * @exp: the expression
+ *
+ * Dereference the expression
+ */
+void
+xmlExpFree(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp) {
+    if ((exp == NULL) || (exp == forbiddenExp) || (exp == emptyExp))
+        return;
+    exp->ref--;
+    if (exp->ref == 0) {
+        unsigned short key;
+
+        /* Unlink it first from the hash table */
+	key = exp->key % ctxt->size;
+	if (ctxt->table[key] == exp) {
+	    ctxt->table[key] = exp->next;
+	} else {
+	    xmlExpNodePtr tmp;
+
+	    tmp = ctxt->table[key];
+	    while (tmp != NULL) {
+	        if (tmp->next == exp) {
+		    tmp->next = exp->next;
+		    break;
+		}
+	        tmp = tmp->next;
+	    }
+	}
+
+        if ((exp->type == XML_EXP_SEQ) || (exp->type == XML_EXP_OR)) {
+	    xmlExpFree(ctxt, exp->exp_left);
+	    xmlExpFree(ctxt, exp->exp_right);
+	} else if (exp->type == XML_EXP_COUNT) {
+	    xmlExpFree(ctxt, exp->exp_left);
+	}
+        xmlFree(exp);
+	ctxt->nb_nodes--;
+    }
+}
+
+/**
+ * xmlExpRef:
+ * @exp: the expression
+ *
+ * Increase the reference count of the expression
+ */
+void
+xmlExpRef(xmlExpNodePtr exp) {
+    if (exp != NULL)
+        exp->ref++;
+}
+
+/**
+ * xmlExpNewAtom:
+ * @ctxt: the expression context
+ * @name: the atom name
+ * @len: the atom name lenght in byte (or -1);
+ *
+ * Get the atom associated to this name from that context
+ *
+ * Returns the node or NULL in case of error
+ */
+xmlExpNodePtr
+xmlExpNewAtom(xmlExpCtxtPtr ctxt, const xmlChar *name, int len) {
+    if ((ctxt == NULL) || (name == NULL))
+        return(NULL);
+    name = xmlDictLookup(ctxt->dict, name, len);
+    if (name == NULL)
+        return(NULL);
+    return(xmlExpHashGetEntry(ctxt, XML_EXP_ATOM, NULL, NULL, name, 0, 0));
+}
+
+/**
+ * xmlExpNewOr:
+ * @ctxt: the expression context
+ * @left: left expression
+ * @right: right expression
+ *
+ * Get the atom associated to the choice @left | @right
+ * Note that @left and @right are consumed in the operation, to keep
+ * an handle on them use xmlExpRef() and use xmlExpFree() to release them,
+ * this is true even in case of failure (unless ctxt == NULL).
+ *
+ * Returns the node or NULL in case of error
+ */
+xmlExpNodePtr
+xmlExpNewOr(xmlExpCtxtPtr ctxt, xmlExpNodePtr left, xmlExpNodePtr right) {
+    if ((ctxt == NULL) || (left == NULL) || (right == NULL)) {
+        xmlExpFree(ctxt, left);
+        xmlExpFree(ctxt, right);
+        return(NULL);
+    }
+    return(xmlExpHashGetEntry(ctxt, XML_EXP_OR, left, right, NULL, 0, 0));
+}
+
+/**
+ * xmlExpNewSeq:
+ * @ctxt: the expression context
+ * @left: left expression
+ * @right: right expression
+ *
+ * Get the atom associated to the sequence @left , @right
+ * Note that @left and @right are consumed in the operation, to keep
+ * an handle on them use xmlExpRef() and use xmlExpFree() to release them,
+ * this is true even in case of failure (unless ctxt == NULL).
+ *
+ * Returns the node or NULL in case of error
+ */
+xmlExpNodePtr
+xmlExpNewSeq(xmlExpCtxtPtr ctxt, xmlExpNodePtr left, xmlExpNodePtr right) {
+    if ((ctxt == NULL) || (left == NULL) || (right == NULL)) {
+        xmlExpFree(ctxt, left);
+        xmlExpFree(ctxt, right);
+        return(NULL);
+    }
+    return(xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, left, right, NULL, 0, 0));
+}
+
+/**
+ * xmlExpNewRange:
+ * @ctxt: the expression context
+ * @subset: the expression to be repeated
+ * @min: the lower bound for the repetition
+ * @max: the upper bound for the repetition, -1 means infinite
+ *
+ * Get the atom associated to the range (@subset){@min, @max}
+ * Note that @subset is consumed in the operation, to keep
+ * an handle on it use xmlExpRef() and use xmlExpFree() to release it,
+ * this is true even in case of failure (unless ctxt == NULL).
+ *
+ * Returns the node or NULL in case of error
+ */
+xmlExpNodePtr
+xmlExpNewRange(xmlExpCtxtPtr ctxt, xmlExpNodePtr subset, int min, int max) {
+    if ((ctxt == NULL) || (subset == NULL) || (min < 0) || (max < -1) ||
+        ((max >= 0) && (min > max))) {
+	xmlExpFree(ctxt, subset);
+        return(NULL);
+    }
+    return(xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, subset,
+                              NULL, NULL, min, max));
+}
+
+/************************************************************************
+ *									*
+ *		Public API for operations on expressions		*
+ *									*
+ ************************************************************************/
+
+static int
+xmlExpGetLanguageInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, 
+                     const xmlChar**list, int len, int nb) {
+    int tmp, tmp2;
+tail:
+    switch (exp->type) {
+        case XML_EXP_EMPTY:
+	    return(0);
+        case XML_EXP_ATOM:
+	    for (tmp = 0;tmp < nb;tmp++)
+	        if (list[tmp] == exp->exp_str)
+		    return(0);
+            if (nb >= len)
+	        return(-2);
+	    list[nb++] = exp->exp_str;
+	    return(1);
+        case XML_EXP_COUNT:
+	    exp = exp->exp_left;
+	    goto tail;
+        case XML_EXP_SEQ:
+        case XML_EXP_OR:
+	    tmp = xmlExpGetLanguageInt(ctxt, exp->exp_left, list, len, nb);
+	    if (tmp < 0)
+	        return(tmp);
+	    tmp2 = xmlExpGetLanguageInt(ctxt, exp->exp_right, list, len,
+	                                nb + tmp);
+	    if (tmp2 < 0)
+	        return(tmp2);
+            return(tmp + tmp2);
+    }
+    return(-1);
+}
+
+/**
+ * xmlExpGetLanguage:
+ * @ctxt: the expression context
+ * @exp: the expression
+ * @list: where to store the tokens
+ * @len: the allocated lenght of @list
+ *
+ * Find all the strings used in @exp and store them in @list
+ *
+ * Returns the number of unique strings found, -1 in case of errors and
+ *         -2 if there is more than @len strings
+ */
+int
+xmlExpGetLanguage(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, 
+                  const xmlChar**list, int len) {
+    if ((ctxt == NULL) || (exp == NULL) || (list == NULL) || (len <= 0))
+        return(-1);
+    return(xmlExpGetLanguageInt(ctxt, exp, list, len, 0));
+}
+
+static int
+xmlExpGetStartInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, 
+                  const xmlChar**list, int len, int nb) {
+    int tmp, tmp2;
+tail:
+    switch (exp->type) {
+        case XML_EXP_FORBID:
+	    return(0);
+        case XML_EXP_EMPTY:
+	    return(0);
+        case XML_EXP_ATOM:
+	    for (tmp = 0;tmp < nb;tmp++)
+	        if (list[tmp] == exp->exp_str)
+		    return(0);
+            if (nb >= len)
+	        return(-2);
+	    list[nb++] = exp->exp_str;
+	    return(1);
+        case XML_EXP_COUNT:
+	    exp = exp->exp_left;
+	    goto tail;
+        case XML_EXP_SEQ:
+	    tmp = xmlExpGetStartInt(ctxt, exp->exp_left, list, len, nb);
+	    if (tmp < 0)
+	        return(tmp);
+	    if (IS_NILLABLE(exp->exp_left)) {
+		tmp2 = xmlExpGetStartInt(ctxt, exp->exp_right, list, len,
+					    nb + tmp);
+		if (tmp2 < 0)
+		    return(tmp2);
+		tmp += tmp2;
+	    }
+            return(tmp);
+        case XML_EXP_OR:
+	    tmp = xmlExpGetStartInt(ctxt, exp->exp_left, list, len, nb);
+	    if (tmp < 0)
+	        return(tmp);
+	    tmp2 = xmlExpGetStartInt(ctxt, exp->exp_right, list, len,
+	                                nb + tmp);
+	    if (tmp2 < 0)
+	        return(tmp2);
+            return(tmp + tmp2);
+    }
+    return(-1);
+}
+
+/**
+ * xmlExpGetStart:
+ * @ctxt: the expression context
+ * @exp: the expression
+ * @list: where to store the tokens
+ * @len: the allocated lenght of @list
+ *
+ * Find all the strings that appears at the start of the languages
+ * accepted by @exp and store them in @list. E.g. for (a, b) | c
+ * it will return the list [a, c]
+ *
+ * Returns the number of unique strings found, -1 in case of errors and
+ *         -2 if there is more than @len strings
+ */
+int
+xmlExpGetStart(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, 
+               const xmlChar**list, int len) {
+    if ((ctxt == NULL) || (exp == NULL) || (list == NULL) || (len <= 0))
+        return(-1);
+    return(xmlExpGetStartInt(ctxt, exp, list, len, 0));
+}
+
+/**
+ * xmlExpIsNillable:
+ * @exp: the expression
+ *
+ * Finds if the expression is nillable, i.e. if it accepts the empty sequqnce
+ *
+ * Returns 1 if nillable, 0 if not and -1 in case of error
+ */
+int
+xmlExpIsNillable(xmlExpNodePtr exp) {
+    if (exp == NULL)
+        return(-1);
+    return(IS_NILLABLE(exp) != 0);
+}
+
+static xmlExpNodePtr
+xmlExpStringDeriveInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, const xmlChar *str)
+{
+    xmlExpNodePtr ret;
+
+    switch (exp->type) {
+	case XML_EXP_EMPTY:
+	    return(forbiddenExp);
+	case XML_EXP_FORBID:
+	    return(forbiddenExp);
+	case XML_EXP_ATOM:
+	    if (exp->exp_str == str) {
+#ifdef DEBUG_DERIV
+		printf("deriv atom: equal => Empty\n");
+#endif
+	        ret = emptyExp;
+	    } else {
+#ifdef DEBUG_DERIV
+		printf("deriv atom: mismatch => forbid\n");
+#endif
+	        /* TODO wildcards here */
+		ret = forbiddenExp;
+	    }
+	    return(ret);
+	case XML_EXP_OR: {
+	    xmlExpNodePtr tmp;
+
+#ifdef DEBUG_DERIV
+	    printf("deriv or: => or(derivs)\n");
+#endif
+	    tmp = xmlExpStringDeriveInt(ctxt, exp->exp_left, str);
+	    if (tmp == NULL) {
+		return(NULL);
+	    }
+	    ret = xmlExpStringDeriveInt(ctxt, exp->exp_right, str);
+	    if (ret == NULL) {
+	        xmlExpFree(ctxt, tmp);
+		return(NULL);
+	    }
+            ret = xmlExpHashGetEntry(ctxt, XML_EXP_OR, tmp, ret,
+			     NULL, 0, 0);
+	    return(ret);
+	}
+	case XML_EXP_SEQ:
+#ifdef DEBUG_DERIV
+	    printf("deriv seq: starting with left\n");
+#endif
+	    ret = xmlExpStringDeriveInt(ctxt, exp->exp_left, str);
+	    if (ret == NULL) {
+	        return(NULL);
+	    } else if (ret == forbiddenExp) {
+	        if (IS_NILLABLE(exp->exp_left)) {
+#ifdef DEBUG_DERIV
+		    printf("deriv seq: left failed but nillable\n");
+#endif
+		    ret = xmlExpStringDeriveInt(ctxt, exp->exp_right, str);
+		}
+	    } else {
+#ifdef DEBUG_DERIV
+		printf("deriv seq: left match => sequence\n");
+#endif
+	        exp->exp_right->ref++;
+	        ret = xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, ret, exp->exp_right,
+		                         NULL, 0, 0);
+	    }
+	    return(ret);
+	case XML_EXP_COUNT: {
+	    int min, max;
+	    xmlExpNodePtr tmp;
+
+	    if (exp->exp_max == 0)
+		return(forbiddenExp);
+	    ret = xmlExpStringDeriveInt(ctxt, exp->exp_left, str);
+	    if (ret == NULL)
+	        return(NULL);
+	    if (ret == forbiddenExp) {
+#ifdef DEBUG_DERIV
+		printf("deriv count: pattern mismatch => forbid\n");
+#endif
+	        return(ret);
+	    }
+	    if (exp->exp_max == 1)
+		return(ret);
+	    if (exp->exp_max < 0) /* unbounded */
+		max = -1;
+	    else
+		max = exp->exp_max - 1;
+	    if (exp->exp_min > 0)
+		min = exp->exp_min - 1;
+	    else
+		min = 0;
+	    exp->exp_left->ref++;
+	    tmp = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, exp->exp_left, NULL,
+				     NULL, min, max);
+	    if (ret == emptyExp) {
+#ifdef DEBUG_DERIV
+		printf("deriv count: match to empty => new count\n");
+#endif
+	        return(tmp);
+	    }
+#ifdef DEBUG_DERIV
+	    printf("deriv count: match => sequence with new count\n");
+#endif
+	    return(xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, ret, tmp,
+	                              NULL, 0, 0));
+	}
+    }
+    return(NULL);
+}
+
+/**
+ * xmlExpStringDerive:
+ * @ctxt: the expression context
+ * @exp: the expression
+ * @str: the string
+ * @len: the string len in bytes if available
+ *
+ * Do one step of Brzozowski derivation of the expression @exp with
+ * respect to the input string
+ *
+ * Returns the resulting expression or NULL in case of internal error
+ */
+xmlExpNodePtr
+xmlExpStringDerive(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp,
+                   const xmlChar *str, int len) {
+    const xmlChar *input;
+
+    if ((exp == NULL) || (ctxt == NULL) || (str == NULL)) {
+        return(NULL);
+    }
+    /*
+     * check the string is in the dictionnary, if yes use an interned
+     * copy, otherwise we know it's not an acceptable input
+     */
+    input = xmlDictExists(ctxt->dict, str, len);
+    if (input == NULL) {
+        return(forbiddenExp);
+    }
+    return(xmlExpStringDeriveInt(ctxt, exp, input));
+}
+
+static int
+xmlExpCheckCard(xmlExpNodePtr exp, xmlExpNodePtr sub) {
+    int ret = 1;
+
+    if (sub->c_max == -1) {
+        if (exp->c_max != -1)
+	    ret = 0;
+    } else if ((exp->c_max >= 0) && (exp->c_max < sub->c_max)) {
+        ret = 0;
+    }
+#if 0
+    if ((IS_NILLABLE(sub)) && (!IS_NILLABLE(exp)))
+        ret = 0;
+#endif
+    return(ret);
+}
+
+static xmlExpNodePtr xmlExpExpDeriveInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp,
+                                        xmlExpNodePtr sub);
+/**
+ * xmlExpDivide:
+ * @ctxt: the expressions context
+ * @exp: the englobing expression
+ * @sub: the subexpression
+ * @mult: the multiple expression
+ * @remain: the remain from the derivation of the multiple
+ *
+ * Check if exp is a multiple of sub, i.e. if there is a finite number n
+ * so that sub{n} subsume exp
+ *
+ * Returns the multiple value if successful, 0 if it is not a multiple
+ *         and -1 in case of internel error.
+ */
+
+static int
+xmlExpDivide(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub,
+             xmlExpNodePtr *mult, xmlExpNodePtr *remain) {
+    int i;
+    xmlExpNodePtr tmp, tmp2;
+
+    if (mult != NULL) *mult = NULL;
+    if (remain != NULL) *remain = NULL;
+    if (exp->c_max == -1) return(0);
+    if (IS_NILLABLE(exp) && (!IS_NILLABLE(sub))) return(0);
+
+    for (i = 1;i <= exp->c_max;i++) {
+        sub->ref++;
+        tmp = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT,
+				 sub, NULL, NULL, i, i);
+	if (tmp == NULL) {
+	    return(-1);
+	}
+	if (!xmlExpCheckCard(tmp, exp)) {
+	    xmlExpFree(ctxt, tmp);
+	    continue;
+	}
+	tmp2 = xmlExpExpDeriveInt(ctxt, tmp, exp);
+	if (tmp2 == NULL) {
+	    xmlExpFree(ctxt, tmp);
+	    return(-1);
+	}
+	if ((tmp2 != forbiddenExp) && (IS_NILLABLE(tmp2))) {
+	    if (remain != NULL)
+	        *remain = tmp2;
+	    else
+	        xmlExpFree(ctxt, tmp2);
+	    if (mult != NULL)
+	        *mult = tmp;
+	    else
+	        xmlExpFree(ctxt, tmp);
+#ifdef DEBUG_DERIV
+	    printf("Divide succeeded %d\n", i);
+#endif
+	    return(i);
+	}
+	xmlExpFree(ctxt, tmp);
+	xmlExpFree(ctxt, tmp2);
+    }
+#ifdef DEBUG_DERIV
+    printf("Divide failed\n");
+#endif
+    return(0);
+}
+
+/**
+ * xmlExpExpDeriveInt:
+ * @ctxt: the expressions context
+ * @exp: the englobing expression
+ * @sub: the subexpression
+ *
+ * Try to do a step of Brzozowski derivation but at a higher level
+ * the input being a subexpression.
+ *
+ * Returns the resulting expression or NULL in case of internal error
+ */
+static xmlExpNodePtr
+xmlExpExpDeriveInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) {
+    xmlExpNodePtr ret, tmp, tmp2, tmp3;
+    const xmlChar **tab;
+    int len, i;
+
+    /*
+     * In case of equality and if the expression can only consume a finite
+     * amount, then the derivation is empty
+     */
+    if ((exp == sub) && (exp->c_max >= 0)) {
+#ifdef DEBUG_DERIV
+        printf("Equal(exp, sub) and finite -> Empty\n");
+#endif
+        return(emptyExp);
+    }
+    /*
+     * decompose sub sequence first
+     */
+    if (sub->type == XML_EXP_EMPTY) {
+#ifdef DEBUG_DERIV
+        printf("Empty(sub) -> Empty\n");
+#endif
+	exp->ref++;
+        return(exp);
+    }
+    if (sub->type == XML_EXP_SEQ) {
+#ifdef DEBUG_DERIV
+        printf("Seq(sub) -> decompose\n");
+#endif
+        tmp = xmlExpExpDeriveInt(ctxt, exp, sub->exp_left);
+	if (tmp == NULL)
+	    return(NULL);
+	if (tmp == forbiddenExp)
+	    return(tmp);
+	ret = xmlExpExpDeriveInt(ctxt, tmp, sub->exp_right);
+	xmlExpFree(ctxt, tmp);
+	return(ret);
+    }
+    if (sub->type == XML_EXP_OR) {
+#ifdef DEBUG_DERIV
+        printf("Or(sub) -> decompose\n");
+#endif
+        tmp = xmlExpExpDeriveInt(ctxt, exp, sub->exp_left);
+	if (tmp == forbiddenExp)
+	    return(tmp);
+	if (tmp == NULL)
+	    return(NULL);
+	ret = xmlExpExpDeriveInt(ctxt, exp, sub->exp_right);
+	if ((ret == NULL) || (ret == forbiddenExp)) {
+	    xmlExpFree(ctxt, tmp);
+	    return(ret);
+	}
+	return(xmlExpHashGetEntry(ctxt, XML_EXP_OR, tmp, ret, NULL, 0, 0));
+    }
+    if (!xmlExpCheckCard(exp, sub)) {
+#ifdef DEBUG_DERIV
+        printf("CheckCard(exp, sub) failed -> Forbid\n");
+#endif
+        return(forbiddenExp);
+    }
+    switch (exp->type) {
+        case XML_EXP_EMPTY:
+	    if (sub == emptyExp)
+	        return(emptyExp);
+#ifdef DEBUG_DERIV
+	    printf("Empty(exp) -> Forbid\n");
+#endif
+	    return(forbiddenExp);
+        case XML_EXP_FORBID:
+#ifdef DEBUG_DERIV
+	    printf("Forbid(exp) -> Forbid\n");
+#endif
+	    return(forbiddenExp);
+        case XML_EXP_ATOM:
+	    if (sub->type == XML_EXP_ATOM) {
+	        /* TODO: handle wildcards */
+	        if (exp->exp_str == sub->exp_str) {
+#ifdef DEBUG_DERIV
+		    printf("Atom match -> Empty\n");
+#endif
+		    return(emptyExp);
+                }
+#ifdef DEBUG_DERIV
+		printf("Atom mismatch -> Forbid\n");
+#endif
+	        return(forbiddenExp);
+	    }
+	    if ((sub->type == XML_EXP_COUNT) &&
+	        (sub->exp_max == 1) &&
+	        (sub->exp_left->type == XML_EXP_ATOM)) {
+	        /* TODO: handle wildcards */
+	        if (exp->exp_str == sub->exp_left->exp_str) {
+#ifdef DEBUG_DERIV
+		    printf("Atom match -> Empty\n");
+#endif
+		    return(emptyExp);
+		}
+#ifdef DEBUG_DERIV
+		printf("Atom mismatch -> Forbid\n");
+#endif
+	        return(forbiddenExp);
+	    }
+#ifdef DEBUG_DERIV
+	    printf("Compex exp vs Atom -> Forbid\n");
+#endif
+	    return(forbiddenExp);
+        case XML_EXP_SEQ:
+	    /* try to get the sequence consumed only if possible */
+	    if (xmlExpCheckCard(exp->exp_left, sub)) {
+		/* See if the sequence can be consumed directly */
+#ifdef DEBUG_DERIV
+		printf("Seq trying left only\n");
+#endif
+		ret = xmlExpExpDeriveInt(ctxt, exp->exp_left, sub);
+		if ((ret != forbiddenExp) && (ret != NULL)) {
+#ifdef DEBUG_DERIV
+		    printf("Seq trying left only worked\n");
+#endif
+		    /*
+		     * TODO: assumption here that we are determinist
+		     *       i.e. we won't get to a nillable exp left
+		     *       subset which could be matched by the right
+		     *       part too.
+		     * e.g.: (a | b)+,(a | c) and 'a+,a'
+		     */
+		    exp->exp_right->ref++;
+		    return(xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, ret,
+					      exp->exp_right, NULL, 0, 0));
+		}
+#ifdef DEBUG_DERIV
+	    } else {
+		printf("Seq: left too short\n");
+#endif
+	    }
+	    /* Try instead to decompose */
+	    if (sub->type == XML_EXP_COUNT) {
+		int min, max;
+
+#ifdef DEBUG_DERIV
+		printf("Seq: sub is a count\n");
+#endif
+	        ret = xmlExpExpDeriveInt(ctxt, exp->exp_left, sub->exp_left);
+		if (ret == NULL)
+		    return(NULL);
+		if (ret != forbiddenExp) {
+#ifdef DEBUG_DERIV
+		    printf("Seq , Count match on left\n");
+#endif
+		    if (sub->exp_max < 0)
+		        max = -1;
+	            else
+		        max = sub->exp_max -1;
+		    if (sub->exp_min > 0)
+		        min = sub->exp_min -1;
+		    else
+		        min = 0;
+		    exp->exp_right->ref++;
+		    tmp = xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, ret,
+		                             exp->exp_right, NULL, 0, 0);
+		    if (tmp == NULL)
+		        return(NULL);
+
+		    sub->exp_left->ref++;
+		    tmp2 = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT,
+				      sub->exp_left, NULL, NULL, min, max);
+		    if (tmp2 == NULL) {
+		        xmlExpFree(ctxt, tmp);
+			return(NULL);
+		    }
+		    ret = xmlExpExpDeriveInt(ctxt, tmp, tmp2);
+		    xmlExpFree(ctxt, tmp);
+		    xmlExpFree(ctxt, tmp2);
+		    return(ret);
+		}
+	    }
+	    /* we made no progress on structured operations */
+	    break;
+        case XML_EXP_OR:
+#ifdef DEBUG_DERIV
+	    printf("Or , trying both side\n");
+#endif
+	    ret = xmlExpExpDeriveInt(ctxt, exp->exp_left, sub);
+	    if (ret == NULL)
+	        return(NULL);
+	    tmp = xmlExpExpDeriveInt(ctxt, exp->exp_right, sub);
+	    if (tmp == NULL) {
+		xmlExpFree(ctxt, ret);
+	        return(NULL);
+	    }
+	    return(xmlExpHashGetEntry(ctxt, XML_EXP_OR, ret, tmp, NULL, 0, 0));
+        case XML_EXP_COUNT: {
+	    int min, max;
+
+	    if (sub->type == XML_EXP_COUNT) {
+	        /*
+		 * Try to see if the loop is completely subsumed
+		 */
+	        tmp = xmlExpExpDeriveInt(ctxt, exp->exp_left, sub->exp_left);
+		if (tmp == NULL)
+		    return(NULL);
+		if (tmp == forbiddenExp) {
+		    int mult;
+
+#ifdef DEBUG_DERIV
+		    printf("Count, Count inner don't subsume\n");
+#endif
+		    mult = xmlExpDivide(ctxt, sub->exp_left, exp->exp_left,
+		                        NULL, &tmp);
+		    if (mult <= 0) {
+#ifdef DEBUG_DERIV
+			printf("Count, Count not multiple => forbidden\n");
+#endif
+                        return(forbiddenExp);
+		    }
+		    if (sub->exp_max == -1) {
+		        max = -1;
+			if (exp->exp_max == -1) {
+			    if (exp->exp_min <= sub->exp_min * mult)
+			        min = 0;
+			    else
+			        min = exp->exp_min - sub->exp_min * mult;
+			} else {
+#ifdef DEBUG_DERIV
+			    printf("Count, Count finite can't subsume infinite\n");
+#endif
+                            xmlExpFree(ctxt, tmp);
+			    return(forbiddenExp);
+			}
+		    } else {
+			if (exp->exp_max == -1) {
+#ifdef DEBUG_DERIV
+			    printf("Infinite loop consume mult finite loop\n");
+#endif
+			    if (exp->exp_min > sub->exp_min * mult) {
+				max = -1;
+				min = exp->exp_min - sub->exp_min * mult;
+			    } else {
+				max = -1;
+				min = 0;
+			    }
+			} else {
+			    if (exp->exp_max < sub->exp_max * mult) {
+#ifdef DEBUG_DERIV
+				printf("loops max mult mismatch => forbidden\n");
+#endif
+				xmlExpFree(ctxt, tmp);
+				return(forbiddenExp);
+			    }
+			    if (sub->exp_max * mult > exp->exp_min)
+				min = 0;
+			    else
+				min = exp->exp_min - sub->exp_max * mult;
+			    max = exp->exp_max - sub->exp_max * mult;
+			}
+		    }
+		} else if (!IS_NILLABLE(tmp)) {
+		    /*
+		     * TODO: loop here to try to grow if working on finite
+		     *       blocks.
+		     */
+#ifdef DEBUG_DERIV
+		    printf("Count, Count remain not nillable => forbidden\n");
+#endif
+		    xmlExpFree(ctxt, tmp);
+		    return(forbiddenExp);
+		} else if (sub->exp_max == -1) {
+		    if (exp->exp_max == -1) {
+		        if (exp->exp_min <= sub->exp_min) {
+#ifdef DEBUG_DERIV
+			    printf("Infinite loops Okay => COUNT(0,Inf)\n");
+#endif
+                            max = -1;
+			    min = 0;
+			} else {
+#ifdef DEBUG_DERIV
+			    printf("Infinite loops min => Count(X,Inf)\n");
+#endif
+                            max = -1;
+			    min = exp->exp_min - sub->exp_min;
+			}
+		    } else if (exp->exp_min > sub->exp_min) {
+#ifdef DEBUG_DERIV
+			printf("loops min mismatch 1 => forbidden ???\n");
+#endif
+		        xmlExpFree(ctxt, tmp);
+		        return(forbiddenExp);
+		    } else {
+			max = -1;
+			min = 0;
+		    }
+		} else {
+		    if (exp->exp_max == -1) {
+#ifdef DEBUG_DERIV
+			printf("Infinite loop consume finite loop\n");
+#endif
+		        if (exp->exp_min > sub->exp_min) {
+			    max = -1;
+			    min = exp->exp_min - sub->exp_min;
+			} else {
+			    max = -1;
+			    min = 0;
+			}
+		    } else {
+		        if (exp->exp_max < sub->exp_max) {
+#ifdef DEBUG_DERIV
+			    printf("loops max mismatch => forbidden\n");
+#endif
+			    xmlExpFree(ctxt, tmp);
+			    return(forbiddenExp);
+			}
+			if (sub->exp_max > exp->exp_min)
+			    min = 0;
+			else
+			    min = exp->exp_min - sub->exp_max;
+			max = exp->exp_max - sub->exp_max;
+		    }
+		}
+#ifdef DEBUG_DERIV
+		printf("loops match => SEQ(COUNT())\n");
+#endif
+		exp->exp_left->ref++;
+		tmp2 = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, exp->exp_left,
+		                          NULL, NULL, min, max);
+		if (tmp2 == NULL) {
+		    return(NULL);
+		}
+                ret = xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, tmp, tmp2,
+		                         NULL, 0, 0);
+		return(ret);
+	    }
+	    tmp = xmlExpExpDeriveInt(ctxt, exp->exp_left, sub);
+	    if (tmp == NULL)
+		return(NULL);
+	    if (tmp == forbiddenExp) {
+#ifdef DEBUG_DERIV
+		printf("loop mismatch => forbidden\n");
+#endif
+		return(forbiddenExp);
+	    }
+	    if (exp->exp_min > 0)
+		min = exp->exp_min - 1;
+	    else
+		min = 0;
+	    if (exp->exp_max < 0)
+		max = -1;
+	    else
+		max = exp->exp_max - 1;
+
+#ifdef DEBUG_DERIV
+	    printf("loop match => SEQ(COUNT())\n");
+#endif
+	    exp->exp_left->ref++;
+	    tmp2 = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, exp->exp_left,
+				      NULL, NULL, min, max);
+	    if (tmp2 == NULL)
+		return(NULL);
+	    ret = xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, tmp, tmp2,
+				     NULL, 0, 0);
+	    return(ret);
+	}
+    }
+
+#ifdef DEBUG_DERIV
+    printf("Fallback to derivative\n");
+#endif
+    if (IS_NILLABLE(sub)) {
+        if (!(IS_NILLABLE(exp)))
+	    return(forbiddenExp);
+	else
+	    ret = emptyExp;
+    } else
+	ret = NULL;
+    /*
+     * here the structured derivation made no progress so
+     * we use the default token based derivation to force one more step
+     */
+    if (ctxt->tabSize == 0)
+        ctxt->tabSize = 40;
+
+    tab = (const xmlChar **) xmlMalloc(ctxt->tabSize *
+	                               sizeof(const xmlChar *));
+    if (tab == NULL) {
+	return(NULL);
+    }
+
+    /*
+     * collect all the strings accepted by the subexpression on input
+     */
+    len = xmlExpGetStartInt(ctxt, sub, tab, ctxt->tabSize, 0);
+    while (len < 0) {
+        const xmlChar **temp;
+	temp = (const xmlChar **) xmlRealloc(tab, ctxt->tabSize * 2 *
+	                                     sizeof(const xmlChar *));
+	if (temp == NULL) {
+	    xmlFree(tab);
+	    return(NULL);
+	}
+	tab = temp;
+	ctxt->tabSize *= 2;
+	len = xmlExpGetStartInt(ctxt, sub, tab, ctxt->tabSize, 0);
+    }
+    for (i = 0;i < len;i++) {
+        tmp = xmlExpStringDeriveInt(ctxt, exp, tab[i]);
+	if ((tmp == NULL) || (tmp == forbiddenExp)) {
+	    xmlExpFree(ctxt, ret);
+	    xmlFree(tab);
+	    return(tmp);
+	}
+	tmp2 = xmlExpStringDeriveInt(ctxt, sub, tab[i]);
+	if ((tmp2 == NULL) || (tmp2 == forbiddenExp)) {
+	    xmlExpFree(ctxt, tmp);
+	    xmlExpFree(ctxt, ret);
+	    xmlFree(tab);
+	    return(tmp);
+	}
+	tmp3 = xmlExpExpDeriveInt(ctxt, tmp, tmp2);
+	xmlExpFree(ctxt, tmp);
+	xmlExpFree(ctxt, tmp2);
+
+	if ((tmp3 == NULL) || (tmp3 == forbiddenExp)) {
+	    xmlExpFree(ctxt, ret);
+	    xmlFree(tab);
+	    return(tmp3);
+	}
+
+	if (ret == NULL)
+	    ret = tmp3;
+	else {
+	    ret = xmlExpHashGetEntry(ctxt, XML_EXP_OR, ret, tmp3, NULL, 0, 0);
+	    if (ret == NULL) {
+		xmlFree(tab);
+	        return(NULL);
+	    }
+	}
+    }
+    xmlFree(tab);
+    return(ret);
+}
+    
+/**
+ * xmlExpExpDerive:
+ * @ctxt: the expressions context
+ * @exp: the englobing expression
+ * @sub: the subexpression
+ *
+ * Evaluates the expression resulting from @exp consuming a sub expression @sub
+ * Based on algebraic derivation and sometimes direct Brzozowski derivation
+ * it usually tatkes less than linear time and can handle expressions generating
+ * infinite languages.
+ *
+ * Returns the resulting expression or NULL in case of internal error, the
+ *         result must be freed
+ */
+xmlExpNodePtr
+xmlExpExpDerive(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) {
+    if ((exp == NULL) || (ctxt == NULL) || (sub == NULL))
+        return(NULL);
+
+    /*
+     * O(1) speedups
+     */
+    if (IS_NILLABLE(sub) && (!IS_NILLABLE(exp))) {
+#ifdef DEBUG_DERIV
+	printf("Sub nillable and not exp : can't subsume\n");
+#endif
+        return(forbiddenExp);
+    }
+    if (xmlExpCheckCard(exp, sub) == 0) {
+#ifdef DEBUG_DERIV
+	printf("sub generate longuer sequances than exp : can't subsume\n");
+#endif
+        return(forbiddenExp);
+    }
+    return(xmlExpExpDeriveInt(ctxt, exp, sub));
+}
+
+/**
+ * xmlExpSubsume:
+ * @ctxt: the expressions context
+ * @exp: the englobing expression
+ * @sub: the subexpression
+ *
+ * Check whether @exp accepts all the languages accexpted by @sub
+ * the input being a subexpression.
+ *
+ * Returns 1 if true 0 if false and -1 in case of failure.
+ */
+int
+xmlExpSubsume(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) {
+    xmlExpNodePtr tmp;
+    
+    if ((exp == NULL) || (ctxt == NULL) || (sub == NULL))
+        return(-1);
+
+    /*
+     * TODO: speedup by checking the language of sub is a subset of the
+     *       language of exp
+     */
+    /*
+     * O(1) speedups
+     */
+    if (IS_NILLABLE(sub) && (!IS_NILLABLE(exp))) {
+#ifdef DEBUG_DERIV
+	printf("Sub nillable and not exp : can't subsume\n");
+#endif
+        return(0);
+    }
+    if (xmlExpCheckCard(exp, sub) == 0) {
+#ifdef DEBUG_DERIV
+	printf("sub generate longuer sequances than exp : can't subsume\n");
+#endif
+        return(0);
+    }
+    tmp = xmlExpExpDeriveInt(ctxt, exp, sub);
+#ifdef DEBUG_DERIV
+    printf("Result derivation :\n");
+    PRINT_EXP(tmp);
+#endif
+    if (tmp == NULL)
+        return(-1);
+    if (tmp == forbiddenExp)
+	return(0);
+    if (tmp == emptyExp)
+	return(1);
+    if ((tmp != NULL) && (IS_NILLABLE(tmp))) {
+        xmlExpFree(ctxt, tmp);
+        return(1);
+    }
+    xmlExpFree(ctxt, tmp);
+    return(0);
+}
+
+/************************************************************************
+ *									*
+ *			Parsing expression 				*
+ *									*
+ ************************************************************************/
+
+static xmlExpNodePtr xmlExpParseExpr(xmlExpCtxtPtr ctxt);
+
+#undef CUR
+#define CUR (*ctxt->cur)
+#undef NEXT
+#define NEXT ctxt->cur++;
+#undef IS_BLANK
+#define IS_BLANK(c) ((c == ' ') || (c == '\n') || (c == '\r') || (c == '\t'))
+#define SKIP_BLANKS while (IS_BLANK(*ctxt->cur)) ctxt->cur++;
+
+static int
+xmlExpParseNumber(xmlExpCtxtPtr ctxt) {
+    int ret = 0;
+
+    SKIP_BLANKS
+    if (CUR == '*') {
+	NEXT
+	return(-1);
+    }
+    if ((CUR < '0') || (CUR > '9'))
+        return(-1);
+    while ((CUR >= '0') && (CUR <= '9')) {
+        ret = ret * 10 + (CUR - '0');
+	NEXT
+    }
+    return(ret);
+}
+
+static xmlExpNodePtr
+xmlExpParseOr(xmlExpCtxtPtr ctxt) {
+    const char *base;
+    xmlExpNodePtr ret;
+    const xmlChar *val;
+
+    SKIP_BLANKS
+    base = ctxt->cur;
+    if (*ctxt->cur == '(') {
+        NEXT
+	ret = xmlExpParseExpr(ctxt);
+	SKIP_BLANKS
+	if (*ctxt->cur != ')') {
+	    fprintf(stderr, "unbalanced '(' : %s\n", base);
+	    xmlExpFree(ctxt, ret);
+	    return(NULL);
+	}
+	NEXT;
+	SKIP_BLANKS
+	goto parse_quantifier;
+    }
+    while ((CUR != 0) && (!(IS_BLANK(CUR))) && (CUR != '(') &&
+           (CUR != ')') && (CUR != '|') && (CUR != ',') && (CUR != '{') &&
+	   (CUR != '*') && (CUR != '+') && (CUR != '?') && (CUR != '}'))
+	NEXT;
+    val = xmlDictLookup(ctxt->dict, BAD_CAST base, ctxt->cur - base);
+    if (val == NULL)
+        return(NULL);
+    ret = xmlExpHashGetEntry(ctxt, XML_EXP_ATOM, NULL, NULL, val, 0, 0);
+    if (ret == NULL)
+        return(NULL);
+    SKIP_BLANKS
+parse_quantifier:
+    if (CUR == '{') {
+        int min, max;
+
+        NEXT
+	min = xmlExpParseNumber(ctxt);
+	if (min < 0) {
+	    xmlExpFree(ctxt, ret);
+	    return(NULL);
+	}
+	SKIP_BLANKS
+	if (CUR == ',') {
+	    NEXT
+	    max = xmlExpParseNumber(ctxt);
+	    SKIP_BLANKS
+	} else
+	    max = min;
+	if (CUR != '}') {
+	    xmlExpFree(ctxt, ret);
+	    return(NULL);
+	}
+        NEXT
+	ret = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, ret, NULL, NULL,
+	                         min, max);
+	SKIP_BLANKS
+    } else if (CUR == '?') {
+        NEXT
+	ret = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, ret, NULL, NULL,
+	                         0, 1);
+	SKIP_BLANKS
+    } else if (CUR == '+') {
+        NEXT
+	ret = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, ret, NULL, NULL,
+	                         1, -1);
+	SKIP_BLANKS
+    } else if (CUR == '*') {
+        NEXT
+	ret = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, ret, NULL, NULL,
+	                         0, -1);
+	SKIP_BLANKS
+    } 
+    return(ret);
+}
+
+
+static xmlExpNodePtr
+xmlExpParseSeq(xmlExpCtxtPtr ctxt) {
+    xmlExpNodePtr ret, right;
+
+    ret = xmlExpParseOr(ctxt);
+    SKIP_BLANKS
+    while (CUR == '|') {
+        NEXT
+	right = xmlExpParseOr(ctxt);
+	if (right == NULL) {
+	    xmlExpFree(ctxt, ret);
+	    return(NULL);
+	}
+	ret = xmlExpHashGetEntry(ctxt, XML_EXP_OR, ret, right, NULL, 0, 0);
+	if (ret == NULL)
+	    return(NULL);
+    }
+    return(ret);
+}
+
+static xmlExpNodePtr
+xmlExpParseExpr(xmlExpCtxtPtr ctxt) {
+    xmlExpNodePtr ret, right;
+
+    ret = xmlExpParseSeq(ctxt);
+    SKIP_BLANKS
+    while (CUR == ',') {
+        NEXT
+	right = xmlExpParseSeq(ctxt);
+	if (right == NULL) {
+	    xmlExpFree(ctxt, ret);
+	    return(NULL);
+	}
+	ret = xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, ret, right, NULL, 0, 0);
+	if (ret == NULL)
+	    return(NULL);
+    }
+    return(ret);
+}
+
+/**
+ * xmlExpParse:
+ * @ctxt: the expressions context
+ * @expr: the 0 terminated string
+ *
+ * Minimal parser for regexps, it understand the following constructs
+ *  - string terminals
+ *  - choice operator |
+ *  - sequence operator ,
+ *  - subexpressions (...)
+ *  - usual cardinality operators + * and ?
+ *  - finite sequences  { min, max }
+ *  - infinite sequences { min, * }
+ * There is minimal checkings made especially no checking on strings values
+ *
+ * Returns a new expression or NULL in case of failure
+ */
+xmlExpNodePtr
+xmlExpParse(xmlExpCtxtPtr ctxt, const char *expr) {
+    xmlExpNodePtr ret;
+
+    ctxt->expr = expr;
+    ctxt->cur = expr;
+
+    ret = xmlExpParseExpr(ctxt);
+    SKIP_BLANKS
+    if (*ctxt->cur != 0) {
+        xmlExpFree(ctxt, ret);
+        return(NULL);
+    }
+    return(ret);
+}
+
+static void
+xmlExpDumpInt(xmlBufferPtr buf, xmlExpNodePtr expr, int glob) {
+    xmlExpNodePtr c;
+
+    if (expr == NULL) return;
+    if (glob) xmlBufferWriteChar(buf, "(");
+    switch (expr->type) {
+        case XML_EXP_EMPTY:
+	    xmlBufferWriteChar(buf, "empty");
+	    break;
+        case XML_EXP_FORBID:
+	    xmlBufferWriteChar(buf, "forbidden");
+	    break;
+        case XML_EXP_ATOM:
+	    xmlBufferWriteCHAR(buf, expr->exp_str);
+	    break;
+        case XML_EXP_SEQ:
+	    c = expr->exp_left;
+	    if ((c->type == XML_EXP_SEQ) || (c->type == XML_EXP_OR))
+	        xmlExpDumpInt(buf, c, 1);
+	    else
+	        xmlExpDumpInt(buf, c, 0);
+	    xmlBufferWriteChar(buf, " , ");
+	    c = expr->exp_right;
+	    if ((c->type == XML_EXP_SEQ) || (c->type == XML_EXP_OR))
+	        xmlExpDumpInt(buf, c, 1);
+	    else
+	        xmlExpDumpInt(buf, c, 0);
+            break;
+        case XML_EXP_OR:
+	    c = expr->exp_left;
+	    if ((c->type == XML_EXP_SEQ) || (c->type == XML_EXP_OR))
+	        xmlExpDumpInt(buf, c, 1);
+	    else
+	        xmlExpDumpInt(buf, c, 0);
+	    xmlBufferWriteChar(buf, " | ");
+	    c = expr->exp_right;
+	    if ((c->type == XML_EXP_SEQ) || (c->type == XML_EXP_OR))
+	        xmlExpDumpInt(buf, c, 1);
+	    else
+	        xmlExpDumpInt(buf, c, 0);
+            break;
+        case XML_EXP_COUNT: {
+	    char rep[40];
+	    
+	    c = expr->exp_left;
+	    if ((c->type == XML_EXP_SEQ) || (c->type == XML_EXP_OR))
+	        xmlExpDumpInt(buf, c, 1);
+	    else
+	        xmlExpDumpInt(buf, c, 0);
+	    if ((expr->exp_min == 0) && (expr->exp_max == 1)) {
+		rep[0] = '?';
+		rep[1] = 0;
+	    } else if ((expr->exp_min == 0) && (expr->exp_max == -1)) {
+		rep[0] = '*';
+		rep[1] = 0;
+	    } else if ((expr->exp_min == 1) && (expr->exp_max == -1)) {
+		rep[0] = '+';
+		rep[1] = 0;
+	    } else if (expr->exp_max == expr->exp_min) {
+	        snprintf(rep, 39, "{%d}", expr->exp_min);
+	    } else if (expr->exp_max < 0) {
+	        snprintf(rep, 39, "{%d,inf}", expr->exp_min);
+	    } else {
+	        snprintf(rep, 39, "{%d,%d}", expr->exp_min, expr->exp_max);
+	    }
+	    rep[39] = 0;
+	    xmlBufferWriteChar(buf, rep);
+	    break;
+	}
+	default:
+	    fprintf(stderr, "Error in tree\n");
+    }
+    if (glob)
+        xmlBufferWriteChar(buf, ")");
+}
+/**
+ * xmlExpDump:
+ * @buf:  a buffer to receive the output
+ * @expr:  the compiled expression
+ *
+ * Serialize the expression as compiled to the buffer
+ */
+void
+xmlExpDump(xmlBufferPtr buf, xmlExpNodePtr expr) {
+    if ((buf == NULL) || (expr == NULL))
+        return;
+    xmlExpDumpInt(buf, expr, 0);
+}
+
+/**
+ * xmlExpMaxToken:
+ * @expr: a compiled expression
+ *
+ * Indicate the maximum number of input a expression can accept
+ *
+ * Returns the maximum length or -1 in case of error
+ */
+int
+xmlExpMaxToken(xmlExpNodePtr expr) {
+    if (expr == NULL)
+        return(-1);
+    return(expr->c_max);
+}
+
+/**
+ * xmlExpCtxtNbNodes:
+ * @ctxt: an expression context
+ *
+ * Debugging facility provides the number of allocated nodes at a that point
+ *
+ * Returns the number of nodes in use or -1 in case of error
+ */
+int
+xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt) {
+    if (ctxt == NULL)
+        return(-1);
+    return(ctxt->nb_nodes);
+}
+
+/**
+ * xmlExpCtxtNbCons:
+ * @ctxt: an expression context
+ *
+ * Debugging facility provides the number of allocated nodes over lifetime
+ *
+ * Returns the number of nodes ever allocated or -1 in case of error
+ */
+int
+xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt) {
+    if (ctxt == NULL)
+        return(-1);
+    return(ctxt->nb_cons);
+}
+
+#endif /* LIBXML_EXPR_ENABLED */
 #define bottom_xmlregexp
 #include "elfgcchack.h"
 #endif /* LIBXML_REGEXP_ENABLED */

Modified: packages/libxml2/trunk/xmlsave.c
===================================================================
--- packages/libxml2/trunk/xmlsave.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlsave.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -826,31 +826,33 @@
         cur->encoding = BAD_CAST ctxt->encoding;
 
     buf = ctxt->buf;
-    xmlOutputBufferWrite(buf, 14, "<?xml version=");
-    if (cur->version != NULL) 
-	xmlBufferWriteQuotedString(buf->buffer, cur->version);
-    else
-	xmlOutputBufferWrite(buf, 5, "\"1.0\"");
-    if (ctxt->encoding == NULL) {
-	if (cur->encoding != NULL)
-	    encoding = cur->encoding;
-	else if (cur->charset != XML_CHAR_ENCODING_UTF8)
-	    encoding = (const xmlChar *)
-	         xmlGetCharEncodingName((xmlCharEncoding) cur->charset);
+    if ((ctxt->options & XML_SAVE_NO_DECL) == 0) {
+	xmlOutputBufferWrite(buf, 14, "<?xml version=");
+	if (cur->version != NULL) 
+	    xmlBufferWriteQuotedString(buf->buffer, cur->version);
+	else
+	    xmlOutputBufferWrite(buf, 5, "\"1.0\"");
+	if (ctxt->encoding == NULL) {
+	    if (cur->encoding != NULL)
+		encoding = cur->encoding;
+	    else if (cur->charset != XML_CHAR_ENCODING_UTF8)
+		encoding = (const xmlChar *)
+		     xmlGetCharEncodingName((xmlCharEncoding) cur->charset);
+	}
+	if (encoding != NULL) {
+	    xmlOutputBufferWrite(buf, 10, " encoding=");
+	    xmlBufferWriteQuotedString(buf->buffer, (xmlChar *) encoding);
+	}
+	switch (cur->standalone) {
+	    case 0:
+		xmlOutputBufferWrite(buf, 16, " standalone=\"no\"");
+		break;
+	    case 1:
+		xmlOutputBufferWrite(buf, 17, " standalone=\"yes\"");
+		break;
+	}
+	xmlOutputBufferWrite(buf, 3, "?>\n");
     }
-    if (encoding != NULL) {
-        xmlOutputBufferWrite(buf, 10, " encoding=");
-	xmlBufferWriteQuotedString(buf->buffer, (xmlChar *) encoding);
-    }
-    switch (cur->standalone) {
-        case 0:
-	    xmlOutputBufferWrite(buf, 16, " standalone=\"no\"");
-	    break;
-        case 1:
-	    xmlOutputBufferWrite(buf, 17, " standalone=\"yes\"");
-	    break;
-    }
-    xmlOutputBufferWrite(buf, 3, "?>\n");
 
 #ifdef LIBXML_HTML_ENABLED
     dtd = xmlGetIntSubset(cur);
@@ -858,12 +860,6 @@
 	is_xhtml = xmlIsXHTML(dtd->SystemID, dtd->ExternalID);
 	if (is_xhtml < 0) is_xhtml = 0;
     }
-    if (is_xhtml) {
-	if (encoding != NULL)
-	    htmlSetMetaEncoding(cur, (const xmlChar *) ctxt->encoding);
-	else
-	    htmlSetMetaEncoding(cur, BAD_CAST "UTF-8");
-    }
 #endif
     if (cur->children != NULL) {
         xmlNodePtr child = cur->children;
@@ -1084,7 +1080,7 @@
  */
 static void
 xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-    int format;
+    int format, addmeta = 0;
     xmlNodePtr tmp;
     xmlChar *start, *end;
     xmlOutputBufferPtr buf;
@@ -1208,14 +1204,51 @@
     if (cur->properties != NULL)
         xhtmlAttrListDumpOutput(ctxt, cur->properties);
 
+	if ((cur->type == XML_ELEMENT_NODE) && 
+		(cur->parent != NULL) && 
+		(cur->parent->parent == (xmlNodePtr) cur->doc) && 
+		xmlStrEqual(cur->name, BAD_CAST"head") && 
+		xmlStrEqual(cur->parent->name, BAD_CAST"html")) {
+
+		tmp = cur->children;
+		while (tmp != NULL) {
+			if (xmlStrEqual(tmp->name, BAD_CAST"meta")) {
+				xmlChar *httpequiv;
+
+				httpequiv = xmlGetProp(tmp, BAD_CAST"http-equiv");
+				if (httpequiv != NULL) {
+					if (xmlStrcasecmp(httpequiv, BAD_CAST"Content-Type") == 0) {
+						xmlFree(httpequiv);
+						break;
+					}
+					xmlFree(httpequiv);
+				}
+			}
+			tmp = tmp->next;
+		}
+		if (tmp == NULL)
+			addmeta = 1;
+	}
+
     if ((cur->type == XML_ELEMENT_NODE) && (cur->children == NULL)) {
 	if (((cur->ns == NULL) || (cur->ns->prefix == NULL)) &&
-	    (xhtmlIsEmpty(cur) == 1)) {
+	    ((xhtmlIsEmpty(cur) == 1) && (addmeta == 0))) {
 	    /*
 	     * C.2. Empty Elements
 	     */
 	    xmlOutputBufferWrite(buf, 3, " />");
 	} else {
+		if (addmeta == 1) {
+			xmlOutputBufferWrite(buf, 1, ">");
+			xmlOutputBufferWriteString(buf,
+				"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=");
+			if (ctxt->encoding) {
+				xmlOutputBufferWriteString(buf, (const char *)ctxt->encoding);
+			} else {
+				xmlOutputBufferWrite(buf, 5, "UTF-8");
+			}
+			xmlOutputBufferWrite(buf, 3, "\" /");
+		}
 	    /*
 	     * C.3. Element Minimization and Empty Element Content
 	     */
@@ -1230,6 +1263,16 @@
 	return;
     }
     xmlOutputBufferWrite(buf, 1, ">");
+	if (addmeta == 1) {
+		xmlOutputBufferWriteString(buf,
+			"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=");
+		if (ctxt->encoding) {
+			xmlOutputBufferWriteString(buf, (const char *)ctxt->encoding);
+		} else {
+			xmlOutputBufferWrite(buf, 5, "UTF-8");
+		}
+		xmlOutputBufferWrite(buf, 4, "\" />");
+	}
     if ((cur->type != XML_ELEMENT_NODE) && (cur->content != NULL)) {
 	xmlOutputBufferWriteEscape(buf, cur->content, ctxt->escape);
     }
@@ -1830,15 +1873,6 @@
         is_xhtml = xmlIsXHTML(dtd->SystemID, dtd->ExternalID);
         if (is_xhtml < 0)
             is_xhtml = 0;
-        if ((is_xhtml) && (cur->parent == (xmlNodePtr) doc) &&
-            (cur->type == XML_ELEMENT_NODE) &&
-            (xmlStrEqual(cur->name, BAD_CAST "html"))) {
-            if (encoding != NULL)
-                htmlSetMetaEncoding((htmlDocPtr) doc,
-                                    (const xmlChar *) encoding);
-            else
-                htmlSetMetaEncoding((htmlDocPtr) doc, BAD_CAST "UTF-8");
-        }
     }
 
     if (is_xhtml)

Modified: packages/libxml2/trunk/xmlschemas.c
===================================================================
--- packages/libxml2/trunk/xmlschemas.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlschemas.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -66,10 +66,10 @@
 
 /* #define ENABLE_PARTICLE_RESTRICTION 1 */
 
+/* #define ENABLE_REDEFINE */
+
 #define DUMP_CONTENT_MODEL
 
-#define XML_SCHEMA_SAX_ENABLED
-
 #ifdef LIBXML_READER_ENABLED
 /* #define XML_SCHEMA_READER_ENABLED */
 #endif
@@ -100,8 +100,6 @@
     "attribute decl.";
 static const xmlChar *xmlSchemaElemDesAttrRef = (const xmlChar *)
     "attribute use";
-static const xmlChar *xmlSchemaElemDesCT = (const xmlChar *)
-    "complex type";
 static const xmlChar *xmlSchemaElemModelGrDef = (const xmlChar *)
     "model group";
 #if 0
@@ -199,19 +197,52 @@
 
 typedef struct _xmlSchemaItemList xmlSchemaItemList;
 typedef xmlSchemaItemList *xmlSchemaItemListPtr;
-
 struct _xmlSchemaItemList {
     void **items;  /* used for dynamic addition of schemata */
     int nbItems; /* used for dynamic addition of schemata */
     int sizeItems; /* used for dynamic addition of schemata */
 };
 
+/*
+typedef struct _xmlSchemaItemListChain xmlSchemaItemListChain;
+typedef xmlSchemaItemListChain xmlSchemaItemListChainPtr;
+struct _xmlSchemaItemListChain {
+    xmlSchemaItemListChainPtr next;
+    xmlSchemaItemListPtr list;
+}
+*/
+
+/*
+typedef struct _xmlSchemaItemListChain xmlSchemaItemListChain;
+typedef xmlSchemaItemListChain xmlSchemaItemListChainPtr;
+struct _xmlSchemaItemListChain {
+    xmlSchemaItemListChainPtr next;
+    xmlSchemaItemListPtr list;
+}
+*/
+
 typedef struct _xmlSchemaAbstractCtxt xmlSchemaAbstractCtxt;
 typedef xmlSchemaAbstractCtxt *xmlSchemaAbstractCtxtPtr;
 struct _xmlSchemaAbstractCtxt {
     int type;
 };
 
+/**
+ * xmlSchemaContainer: 
+ */
+typedef struct _xmlSchemaContainer xmlSchemaContainer;
+typedef xmlSchemaContainer *xmlSchemaContainerPtr;
+struct _xmlSchemaContainer {
+    xmlSchemaItemListPtr typeDefs;
+    xmlSchemaItemListPtr attrDecls;
+    xmlSchemaItemListPtr elemDecls;
+    xmlSchemaItemListPtr attrGroupDefs;
+    xmlSchemaItemListPtr modelGroupDefs;
+    xmlSchemaItemListPtr notationDecls;
+    xmlSchemaItemListPtr annotations;
+    xmlSchemaItemListPtr locals;
+};
+
 #define XML_SCHEMA_CTXT_PARSER 1
 #define XML_SCHEMA_CTXT_VALIDATOR 2
 
@@ -224,8 +255,8 @@
     int nberrors;
     xmlStructuredErrorFunc serror;
 
-    xmlSchemaPtr topschema;	/* The main schema */
-    xmlHashTablePtr namespaces;	/* Hash table of namespaces to schemas */
+    /* xmlSchemaPtr topschema;	 The main schema */
+    /* xmlHashTablePtr namespaces;	 Hash table of namespaces to schemas */
 
     xmlSchemaPtr schema;        /* The schema in use */
     const xmlChar *container;   /* the current element, group, ... */
@@ -258,6 +289,8 @@
     int nbLocalImports;
     xmlHashTablePtr substGroups;
     int isS4S;
+    int isRedefine;
+    xmlSchemaContainerPtr compContainer;
 };
 
 #define XML_SCHEMAS_ATTR_UNKNOWN 1
@@ -289,7 +322,27 @@
     xmlSchemaTypeType type;
 };
 
+#define XML_SCHEMA_SCHEMA_REF_IMPORT 1
+#define XML_SCHEMA_SCHEMA_REF_INCLUDE 2
+#define XML_SCHEMA_SCHEMA_REF_REDEFINE 3
+
+#define XML_SCHEMA_SCHEMA_REF_REL_CHILD 1
+#define XML_SCHEMA_SCHEMA_REF_REL_PARENT 2
 /**
+ * xmlSchemaSchemaRef: 
+ *
+ * Used to create a graph of schema relationships.
+ */
+typedef struct _xmlSchemaSchemaRef xmlSchemaSchemaRef;
+typedef xmlSchemaSchemaRef *xmlSchemaSchemaRefPtr;
+struct _xmlSchemaSchemaRef {
+    xmlSchemaSchemaRefPtr next;
+    int type; /* E.g. XML_SCHEMA_SCHEMA_REF_IMPORT */
+    int relation;    
+    xmlSchemaPtr schema;
+};
+
+/**
  * xmlSchemaAnnotItem:
  *
  * The abstract base type for annotated schema components.
@@ -462,6 +515,9 @@
 struct _xmlSchemaPSVIIDCNode {
     xmlNodePtr node;
     xmlSchemaPSVIIDCKeyPtr *keys;
+    int nodeLine;
+    int nodeQNameID;    
+
 };
 
 /**
@@ -552,14 +608,17 @@
  * Holds information of an element node.
  */
 struct _xmlSchemaNodeInfo {
+    int nodeType;
     xmlNodePtr node;
-    int nodeType;
+    int nodeLine;    
     const xmlChar *localName;
     const xmlChar *nsName;
     const xmlChar *value;
     xmlSchemaValPtr val; /* the pre-computed value if any */
     xmlSchemaTypePtr typeDef; /* the complex/simple type definition if any */
+
     int flags; /* combination of node info flags */
+
     int valNeeded;
     int normVal;
 
@@ -588,8 +647,9 @@
 typedef struct _xmlSchemaAttrInfo xmlSchemaAttrInfo;
 typedef xmlSchemaAttrInfo *xmlSchemaAttrInfoPtr;
 struct _xmlSchemaAttrInfo {
+    int nodeType;
     xmlNodePtr node;
-    int nodeType;
+    int nodeLine;    
     const xmlChar *localName;
     const xmlChar *nsName;
     const xmlChar *value;
@@ -674,6 +734,7 @@
     int sizeAttrInfos;
 
     int skipDepth;
+    xmlSchemaItemListPtr nodeQNames;
 };
 
 /*
@@ -722,6 +783,11 @@
 static int xmlSchemaParseInclude(xmlSchemaParserCtxtPtr ctxt,
                                  xmlSchemaPtr schema,
                                  xmlNodePtr node);
+#ifdef ENABLE_REDEFINE
+static int xmlSchemaParseRedefine(xmlSchemaParserCtxtPtr ctxt,
+                                 xmlSchemaPtr schema,
+                                 xmlNodePtr node);
+#endif
 static void
 xmlSchemaTypeFixup(xmlSchemaTypePtr typeDecl,
                    xmlSchemaParserCtxtPtr ctxt, const xmlChar * name);
@@ -796,6 +862,16 @@
 	    return(BAD_CAST "model group (all)");
 	case XML_SCHEMA_TYPE_PARTICLE:
 	    return(BAD_CAST "particle");
+	case XML_SCHEMA_TYPE_IDC_UNIQUE:
+	    return(BAD_CAST "IDC (unique)");
+	case XML_SCHEMA_TYPE_IDC_KEY:
+	    return(BAD_CAST "IDC (key)");
+	case XML_SCHEMA_TYPE_IDC_KEYREF:
+	    return(BAD_CAST "IDC (keyref)");
+	case XML_SCHEMA_TYPE_ANY:
+	    return(BAD_CAST "wildcard (any)");
+	case XML_SCHEMA_EXTRA_QNAMEREF:
+	    return(BAD_CAST "[helper component] QName reference");
 	default:
 	    return(BAD_CAST "Not a schema component");
     }
@@ -1560,9 +1636,10 @@
  * Handle a validation error
  */
 static void
-xmlSchemaErr3(xmlSchemaAbstractCtxtPtr ctxt,  
-	      int error, xmlNodePtr node, const char *msg,
-	      const xmlChar *str1, const xmlChar *str2, const xmlChar *str3)
+xmlSchemaErr3Line(xmlSchemaAbstractCtxtPtr ctxt,  
+	      int error, xmlNodePtr node, int line, const char *msg,
+	      const xmlChar *str1, const xmlChar *str2,
+	      const xmlChar *str3)
 {
     xmlStructuredErrorFunc schannel = NULL;
     xmlGenericErrorFunc channel = NULL;
@@ -1571,7 +1648,6 @@
     if (ctxt != NULL) {
 	if (ctxt->type == XML_SCHEMA_CTXT_VALIDATOR) {
 	    xmlSchemaValidCtxtPtr vctxt = (xmlSchemaValidCtxtPtr) ctxt;
-	    int line = 0;
 	    const char *file = NULL;
 
 	    vctxt->nberrors++;
@@ -1579,15 +1655,41 @@
 	    channel = vctxt->error;
 	    schannel = vctxt->serror;
 	    data = vctxt->userData;
-	    if ((node == NULL) && (vctxt->depth >= 0) &&
-		(vctxt->inode != NULL)) {
-		node = vctxt->inode->node;
-	    }
-	    if ((node == NULL) && (vctxt->parserCtxt != NULL) &&
-	        (vctxt->parserCtxt->input != NULL)) {
-		file = vctxt->parserCtxt->input->filename;
-		line = vctxt->parserCtxt->input->line;
-	    }
+
+	    /*
+	    * Error node. If we specify a line number, then
+	    * do not channel any node to the error function.
+	    */
+	    if (line == 0) {
+		if ((node == NULL) &&
+		    (vctxt->depth >= 0) &&
+		    (vctxt->inode != NULL)) {
+		    node = vctxt->inode->node;
+		}
+		/*
+		* Get filename and line if no node-tree.
+		*/
+		if ((node == NULL) &&
+		    (vctxt->parserCtxt != NULL) &&
+		    (vctxt->parserCtxt->input != NULL)) {
+		    file = vctxt->parserCtxt->input->filename;
+		    line = vctxt->parserCtxt->input->line;
+		}
+	    } else {
+		/*
+		* Override the given node's (if any) position
+		* and channel only the given line number.
+		*/
+		node = NULL;
+		/*
+		* Get filename.
+		*/
+		if (vctxt->doc != NULL)
+		    file = (const char *) vctxt->doc->URL;
+		else if ((vctxt->parserCtxt != NULL) &&
+		    (vctxt->parserCtxt->input != NULL))
+		    file = vctxt->parserCtxt->input->filename;
+	    }	       
 	    __xmlRaiseError(schannel, channel, data, ctxt,
 		node, XML_FROM_SCHEMASV,
 		error, XML_ERR_ERROR, file, line,
@@ -1613,7 +1715,27 @@
     }       
 }
 
+/**
+ * xmlSchemaErr3:
+ * @ctxt: the validation context
+ * @node: the context node
+ * @error: the error code
+ * @msg: the error message
+ * @str1: extra data
+ * @str2: extra data
+ * @str3: extra data
+ * 
+ * Handle a validation error
+ */
 static void
+xmlSchemaErr3(xmlSchemaAbstractCtxtPtr actxt,  
+	      int error, xmlNodePtr node, const char *msg,
+	      const xmlChar *str1, const xmlChar *str2, const xmlChar *str3)
+{
+    xmlSchemaErr3Line(actxt, error, node, 0, msg, str1, str2, str3);
+}
+
+static void
 xmlSchemaErr(xmlSchemaAbstractCtxtPtr actxt,
 	     int error, xmlNodePtr node, const char *msg,
 	     const xmlChar *str1, const xmlChar *str2)
@@ -1699,9 +1821,11 @@
 }
 
 static void
-xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr actxt,
+xmlSchemaInternalErr2(xmlSchemaAbstractCtxtPtr actxt,
 		     const char *funcName,
-		     const char *message)
+		     const char *message,
+		     const xmlChar *str1,
+		     const xmlChar *str2)
 {
     xmlChar *msg = NULL;
 
@@ -1713,16 +1837,35 @@
 
     if (actxt->type == XML_SCHEMA_CTXT_VALIDATOR)
 	xmlSchemaErr(actxt, XML_SCHEMAV_INTERNAL, NULL,
-	    (const char *) msg, NULL, NULL);
+	    (const char *) msg, str1, str2);
 
-    else if (actxt->type == XML_SCHEMA_CTXT_PARSER)
+    else if (actxt->type == XML_SCHEMA_CTXT_PARSER)	
 	xmlSchemaErr(actxt, XML_SCHEMAP_INTERNAL, NULL,
-	    (const char *) msg, NULL, NULL);
+	    (const char *) msg, str1, str2);
 
     FREE_AND_NULL(msg)
 }
 
 static void
+xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr actxt,
+		     const char *funcName,
+		     const char *message)
+{
+    xmlSchemaInternalErr2(actxt, funcName, message, NULL, NULL);
+}
+
+static void
+xmlSchemaPInternalErr(xmlSchemaParserCtxtPtr pctxt,
+		     const char *funcName,
+		     const char *message,
+		     const xmlChar *str1,
+		     const xmlChar *str2)
+{
+    xmlSchemaInternalErr2((xmlSchemaAbstractCtxtPtr) pctxt, funcName, message,
+	str1, str2);
+}
+
+static void
 xmlSchemaCustomErr(xmlSchemaAbstractCtxtPtr actxt,
 		   xmlParserErrors error,
 		   xmlNodePtr node,
@@ -1741,6 +1884,30 @@
     FREE_AND_NULL(msg)
 }
 
+static void
+xmlSchemaKeyrefErr(xmlSchemaValidCtxtPtr vctxt,
+		   xmlParserErrors error,
+		   xmlSchemaPSVIIDCNodePtr idcNode,
+		   xmlSchemaTypePtr type ATTRIBUTE_UNUSED,
+		   const char *message,
+		   const xmlChar *str1,
+		   const xmlChar *str2)
+{
+    xmlChar *msg = NULL, *qname = NULL;
+    
+    msg = xmlStrdup(BAD_CAST "Element '%s': ");        
+    msg = xmlStrcat(msg, (const xmlChar *) message);
+    msg = xmlStrcat(msg, BAD_CAST ".\n");
+    xmlSchemaErr3Line((xmlSchemaAbstractCtxtPtr) vctxt,
+	error, NULL, idcNode->nodeLine, (const char *) msg,
+	xmlSchemaFormatQName(&qname,
+	    vctxt->nodeQNames->items[idcNode->nodeQNameID +1],
+	    vctxt->nodeQNames->items[idcNode->nodeQNameID]), 
+	str1, str2);
+    FREE_AND_NULL(qname);
+    FREE_AND_NULL(msg);
+}
+
 static int
 xmlSchemaEvalErrorNodeType(xmlSchemaAbstractCtxtPtr actxt,
 			   xmlNodePtr node)
@@ -1879,7 +2046,7 @@
     xmlChar *str = NULL, *msg = NULL;
     xmlChar *localName, *nsName;
     const xmlChar *cur, *end;
-    int i;
+    int i, is_not;
     
     xmlSchemaFormatNodeForError(&msg, actxt, node);
     msg = xmlStrcat(msg, (const xmlChar *) message);
@@ -1898,6 +2065,16 @@
     	    
 	for (i = 0; i < nbval + nbneg; i++) {
 	    cur = values[i];
+	    if (cur == NULL)
+	        continue;
+	    if ((cur[0] == 'n') && (cur[1] == 'o') && (cur[2] == 't') &&
+	        (cur[3] == ' ')) {
+	        is_not = 1;
+		cur += 4;
+		str = xmlStrcat(str, BAD_CAST "##other");
+	    } else {
+	        is_not = 0;
+	    }
 	    /*
 	    * Get the local name.
 	    */
@@ -2088,6 +2265,7 @@
 #define VERROR_INT(func, msg) xmlSchemaInternalErr((xmlSchemaAbstractCtxtPtr) vctxt, func, msg);
 
 #define PERROR_INT(func, msg) xmlSchemaInternalErr((xmlSchemaAbstractCtxtPtr) pctxt, func, msg);
+#define PERROR_INT2(func, msg) xmlSchemaInternalErr((xmlSchemaAbstractCtxtPtr) ctxt, func, msg);
 
 #define AERROR_INT(func, msg) xmlSchemaInternalErr(actxt, func, msg);
 
@@ -2537,8 +2715,10 @@
 	else
 	    xmlSchemaPErr(ctxt, node, error, (const char *) msg, NULL, NULL);
     } else {
+	msg = xmlStrcat(msg, BAD_CAST message);
+	msg = xmlStrcat(msg, BAD_CAST ".\n");
 	xmlSchemaPErrExt(ctxt, node, error, NULL, NULL, NULL,
-	     "%s%s.\n", msg, BAD_CAST message, str1, str2, NULL);
+	     (const char*) msg, str1, str2, NULL, NULL, NULL);
     }
     /* Cleanup. */    
     FREE_AND_NULL(msg)
@@ -2711,7 +2891,7 @@
 }
 
 static xmlSchemaItemListPtr
-xmlSchemaNewItemList(void)
+xmlSchemaItemListCreate(void)
 {
     xmlSchemaItemListPtr ret;
 
@@ -2725,7 +2905,99 @@
     return (ret);
 }
 
+static void
+xmlSchemaItemListClear(xmlSchemaItemListPtr list)
+{
+    if (list->items != NULL) {
+	xmlFree(list->items);
+	list->items = NULL;
+    }
+    list->nbItems = 0;
+    list->sizeItems = 0;
+}
+
+static int
+xmlSchemaItemListAdd(xmlSchemaItemListPtr list, void *item)
+{
+    if (list->items == NULL) {
+	list->items = (void **) xmlMalloc(
+	    20 * sizeof(void *));
+	if (list->items == NULL) {
+	    xmlSchemaPErrMemory(NULL, "allocating new item list", NULL);
+	    return(-1);
+	}
+	list->sizeItems = 20;
+    } else if (list->sizeItems <= list->nbItems) {
+	list->sizeItems *= 2;
+	list->items = (void **) xmlRealloc(list->items,
+	    list->sizeItems * sizeof(void *));
+	if (list->items == NULL) {
+	    xmlSchemaPErrMemory(NULL, "growing item list", NULL);
+	    list->sizeItems = 0;
+	    return(-1);
+	}
+    }
+    /* ((xmlSchemaBasicItemPtr *) list->items)[list->nbItems++] = (void *) item; */
+    list->items[list->nbItems++] = item;
+    return(0);
+}
+
 /**
+ * xmlSchemaItemListFree:
+ * @annot:  a schema type structure
+ *
+ * Deallocate a annotation structure
+ */
+static void
+xmlSchemaItemListFree(xmlSchemaItemListPtr list)
+{
+    if (list == NULL)
+	return;
+    if (list->items != NULL)
+	xmlFree(list->items);
+    xmlFree(list);
+}
+
+static xmlSchemaContainerPtr
+xmlSchemaContainerCreate(void)
+{
+    xmlSchemaContainerPtr ret;
+
+    ret = (xmlSchemaContainerPtr) xmlMalloc(sizeof(xmlSchemaContainer));
+    if (ret == NULL) {
+	xmlSchemaPErrMemory(NULL, "allocating component container",
+	    NULL);
+	return(NULL);
+    }
+    memset(ret, 0, sizeof(xmlSchemaContainer));
+    return(ret);
+}
+
+static void
+xmlSchemaContainerFree(xmlSchemaContainerPtr cont)
+{
+    if (cont == NULL)
+	return;
+    if (cont->typeDefs != NULL)
+	xmlSchemaItemListFree(cont->typeDefs);
+    if (cont->attrDecls != NULL)
+	xmlSchemaItemListFree(cont->attrDecls);
+    if (cont->elemDecls != NULL)
+	xmlSchemaItemListFree(cont->elemDecls);
+    if (cont->attrGroupDefs != NULL)
+	xmlSchemaItemListFree(cont->attrGroupDefs);
+    if (cont->modelGroupDefs != NULL)
+	xmlSchemaItemListFree(cont->modelGroupDefs);
+    if (cont->notationDecls != NULL)
+	xmlSchemaItemListFree(cont->notationDecls);
+    if (cont->annotations != NULL)
+	xmlSchemaItemListFree(cont->annotations);
+    if (cont->locals != NULL)
+	xmlSchemaItemListFree(cont->locals);
+    xmlFree(cont);
+}
+
+/**
  * xmlSchemaAddElementSubstitutionMember:
  * @pctxt:  a schema parser context
  * @head:  the head of the substitution group
@@ -2763,7 +3035,7 @@
 		NULL);
 	    return (-1);
 	}
-	substGroup->members = xmlSchemaNewItemList();
+	substGroup->members = xmlSchemaItemListCreate();
 	if (substGroup->members == NULL) {
 	    xmlFree(substGroup);
 	    return (-1);
@@ -2835,22 +3107,6 @@
 }
 
 /**
- * xmlSchemaFreeItemList:
- * @annot:  a schema type structure
- *
- * Deallocate a annotation structure
- */
-static void
-xmlSchemaFreeItemList(xmlSchemaItemListPtr list)
-{
-    if (list == NULL)
-	return;
-    if (list->items != NULL)
-	xmlFree(list->items);
-    xmlFree(list);
-}
-
-/**
  * xmlSchemaFreeAnnot:
  * @annot:  a schema type structure
  *
@@ -2861,7 +3117,17 @@
 {
     if (annot == NULL)
         return;
-    xmlFree(annot);
+    if (annot->next == NULL) {
+	xmlFree(annot);
+    } else {
+	xmlSchemaAnnotPtr prev;
+
+	do {
+	    prev = annot;
+	    annot = annot->next;
+	    xmlFree(prev);
+	} while (annot != NULL);
+    }
 }
 
 /**
@@ -3043,7 +3309,7 @@
     if (item == NULL)
 	return;
     if (item->members != NULL)
-	xmlSchemaFreeItemList(item->members);
+	xmlSchemaItemListFree(item->members);
     xmlFree(item);
 }
 
@@ -3051,39 +3317,15 @@
 xmlSchemaAddVolatile(xmlSchemaPtr schema,
 		     xmlSchemaBasicItemPtr item)
 {
-    xmlSchemaItemListPtr list;
-
     if (schema->volatiles == NULL) {
-	schema->volatiles = (void *) xmlSchemaNewItemList();
+	schema->volatiles = (void *) xmlSchemaItemListCreate();
 	if (schema->volatiles == NULL) {
 	    xmlSchemaPErrMemory(NULL,
 		"allocating list of volatiles", NULL);
 	    return (-1);
 	}
     }
-    list = (xmlSchemaItemListPtr) schema->volatiles;
-    if (list->items == NULL) {
-	list->items = (void **) xmlMalloc(
-	    20 * sizeof(xmlSchemaBasicItemPtr));
-	if (list->items == NULL) {
-	    xmlSchemaPErrMemory(NULL,
-		"allocating new volatile item buffer", NULL);
-	    return (-1);
-	}
-	list->sizeItems = 20;
-    } else if (list->sizeItems <= list->nbItems) {
-	list->sizeItems *= 2;
-	list->items = (void **) xmlRealloc(list->items,
-	    list->sizeItems * sizeof(xmlSchemaTypePtr));
-	if (list->items == NULL) {
-	    xmlSchemaPErrMemory(NULL,
-		"growing volatile item buffer", NULL);
-	    list->sizeItems = 0;
-	    return (-1);
-	}
-    }
-    ((xmlSchemaBasicItemPtr *) list->items)[list->nbItems++] = (void *) item;
-    return (0);
+    return(xmlSchemaItemListAdd((xmlSchemaItemListPtr) schema->volatiles, item));
 }
 
 /**
@@ -3218,6 +3460,9 @@
         }
     }
     if (type->type != XML_SCHEMA_TYPE_BASIC) {
+	/*
+	* TODO: Why is this restricted to non built-in types?
+	*/
 	if (type->attributeUses != NULL)
 	    xmlSchemaFreeAttributeUseList(type->attributeUses);
     }
@@ -3333,7 +3578,7 @@
 		}
 	    }
 	}
-	xmlSchemaFreeItemList(list);
+	xmlSchemaItemListFree(list);
     }
 }
 /**
@@ -3894,36 +4139,20 @@
  */
 static xmlSchemaElementPtr
 xmlSchemaGetElem(xmlSchemaPtr schema, const xmlChar * name,
-                 const xmlChar * namespace)
+                 const xmlChar * nsName)
 {
     xmlSchemaElementPtr ret;
 
     if ((name == NULL) || (schema == NULL))
         return (NULL);
 
-        ret = xmlHashLookup2(schema->elemDecl, name, namespace);
+        ret = xmlHashLookup2(schema->elemDecl, name, nsName);
         if ((ret != NULL) &&
 	    (ret->flags & XML_SCHEMAS_ELEM_GLOBAL)) {
             return (ret);
     } else
 	ret = NULL;
-    /*
-     * This one was removed, since top level element declarations have
-     * the target namespace specified in targetNamespace of the <schema>
-     * information element, even if elementFormDefault is "unqualified".
-     */
 
-    /* else if ((schema->flags & XML_SCHEMAS_QUALIF_ELEM) == 0) {
-        if (xmlStrEqual(namespace, schema->targetNamespace))
-	    ret = xmlHashLookup2(schema->elemDecl, name, NULL);
-	else
-	    ret = xmlHashLookup2(schema->elemDecl, name, namespace);
-        if ((ret != NULL) &&
-	    ((level == 0) || (ret->flags & XML_SCHEMAS_ELEM_TOPLEVEL))) {
-            return (ret);
-	}
-    */
-
     /*
     * Removed since imported components will be hold by the main schema only.
     *
@@ -3963,18 +4192,25 @@
  */
 static xmlSchemaTypePtr
 xmlSchemaGetType(xmlSchemaPtr schema, const xmlChar * name,
-                 const xmlChar * namespace)
+                 const xmlChar * nsName)
 {
     xmlSchemaTypePtr ret;
 
     if (name == NULL)
         return (NULL);
     if (schema != NULL) {
-        ret = xmlHashLookup2(schema->typeDecl, name, namespace);
-        if ((ret != NULL) && (ret->flags & XML_SCHEMAS_TYPE_GLOBAL))
+        ret = xmlHashLookup2(schema->typeDecl, name, nsName);
+        if ((ret != NULL) && (ret->flags & XML_SCHEMAS_TYPE_GLOBAL)) {	    
+	    if (ret->redef != NULL) {
+		/*
+		* Return the last redefinition.
+		*/
+		return(ret->redef);
+	    }
             return (ret);
+	}
     }
-    ret = xmlSchemaGetPredefinedType(name, namespace);
+    ret = xmlSchemaGetPredefinedType(name, nsName);
     if (ret != NULL)
 	return (ret);
     /*
@@ -3994,14 +4230,14 @@
     */
 #ifdef DEBUG
     if (ret == NULL) {
-        if (namespace == NULL)
+        if (nsName == NULL)
             fprintf(stderr, "Unable to lookup type %s", name);
         else
             fprintf(stderr, "Unable to lookup type %s:%s", name,
-                    namespace);
+                    nsName);
     }
 #endif
-    return (ret);
+    return (NULL);
 }
 
 /**
@@ -4548,8 +4784,8 @@
  */
 static xmlSchemaTypePtr
 xmlSchemaAddType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
-                 const xmlChar * name, const xmlChar * namespace,
-		 xmlNodePtr node)
+                 const xmlChar * name, const xmlChar * nsName,
+		 xmlNodePtr node, int topLevel)
 {
     xmlSchemaTypePtr ret = NULL;
     int val;
@@ -4557,12 +4793,6 @@
     if ((ctxt == NULL) || (schema == NULL) || (name == NULL))
         return (NULL);
 
-#ifdef DEBUG
-    fprintf(stderr, "Adding type %s\n", name);
-    if (namespace != NULL)
-	fprintf(stderr, "  target namespace %s\n", namespace);
-#endif
-
     if (schema->typeDecl == NULL)
         schema->typeDecl = xmlHashCreateDict(10, ctxt->dict);
     if (schema->typeDecl == NULL)
@@ -4576,25 +4806,37 @@
     memset(ret, 0, sizeof(xmlSchemaType));
     ret->name = xmlDictLookup(ctxt->dict, name, -1);
     ret->redef = NULL;
-    val = xmlHashAddEntry2(schema->typeDecl, name, namespace, ret);
+    val = xmlHashAddEntry2(schema->typeDecl, name, nsName, ret);
     if (val != 0) {
-        if (ctxt->includes == 0) {
-	    xmlSchemaPCustomErr(ctxt,
-		XML_SCHEMAP_REDEFINED_TYPE,
-		NULL, NULL, node,
-		"A global type definition with the name '%s' does already exist", name);
+	if (! ctxt->isRedefine) {
+	    xmlChar *str = NULL;
+	    if (topLevel) {
+		xmlSchemaPCustomErr(ctxt,
+		    XML_SCHEMAP_REDEFINED_TYPE,
+		    NULL, NULL, node,
+		    "A global type definition with the name '%s' does "
+		    "already exist",
+		    xmlSchemaFormatQName(&str, nsName, name));
+	    } else {
+		xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_INTERNAL,
+		    NULL, NULL, node, "Internal error: xmlSchemaAddType, "
+		    "local type '%s' has a duplicate",
+		    xmlSchemaFormatQName(&str, nsName, name));
+	    }
 	    xmlFree(ret);
+	    FREE_AND_NULL(str);
 	    return (NULL);
 	} else {
 	    xmlSchemaTypePtr prev;
 
-	    prev = xmlHashLookup2(schema->typeDecl, name, namespace);
+	    /*
+	    * REDEFINE: Add a redefinition.
+	    */
+	    TODO
+	    prev = xmlHashLookup2(schema->typeDecl, name, nsName);
 	    if (prev == NULL) {
-		xmlSchemaPErr(ctxt, (xmlNodePtr) ctxt->doc,
-		    XML_ERR_INTERNAL_ERROR,
-		    "Internal error: xmlSchemaAddType, on type "
-		    "'%s'.\n",
-		    name, NULL);
+		PERROR_INT2("xmlSchemaAddType", "hash list didn't return "
+		    "a type component, but should");
 		xmlFree(ret);
 		return (NULL);
 	    }
@@ -4977,7 +5219,7 @@
 	return (-1);
 
     if (!strchr((char *) value, ':')) {
-	ns = xmlSearchNs(attr->doc, attr->parent, 0);
+	ns = xmlSearchNs(attr->doc, attr->parent, NULL);
 	if (ns)
 	    *uri = xmlDictLookup(ctxt->dict, ns->href, -1);
 	else if (schema->flags & XML_SCHEMAS_INCLUDING_CONVERT_NS) {
@@ -8048,6 +8290,7 @@
     xmlNodePtr child = NULL;
     const xmlChar *attrValue = NULL;
     xmlAttrPtr attr;
+    int hasRestriction = 0;
 
     if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
         return (NULL);
@@ -8071,6 +8314,18 @@
 	    if (ctxt->isS4S) {
 		xmlSchemaTypePtr biType;
 
+		if (ctxt->isRedefine) {
+		    /*
+		    * REDEFINE: Disallow redefinition of built-in-types.
+		    * TODO: It seems that the spec does not say anything
+		    * about this case.
+		    */
+		    xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_SRC_REDEFINE,
+			NULL, NULL, node,
+			"Redefinition of built-in simple types is not "
+			"supported", NULL);
+		    return(NULL);
+		}
 		biType = xmlSchemaGetPredefinedType(attrValue, xmlSchemaNs);
 		if (biType != NULL)
 		    return (biType);
@@ -8085,7 +8340,8 @@
 	* Parse as local simple type definition.
 	*/
         snprintf(buf, 39, "#ST%d", ctxt->counter++ + 1);
-	type = xmlSchemaAddType(ctxt, schema, (const xmlChar *)buf, NULL, node);
+	type = xmlSchemaAddType(ctxt, schema, (const xmlChar *)buf, NULL,
+	    node, 0);
 	if (type == NULL)
 	    return (NULL);
 	type->node = node;
@@ -8115,7 +8371,8 @@
 	*
 	* Note that attrValue is the value of the attribute "name" here.
 	*/
-	type = xmlSchemaAddType(ctxt, schema, attrValue, schema->targetNamespace, node);
+	type = xmlSchemaAddType(ctxt, schema, attrValue,
+	    schema->targetNamespace, node, 1);
 	if (type == NULL)
 	    return (NULL);
 	type->node = node;
@@ -8186,9 +8443,10 @@
 	xmlSchemaPContentErr(ctxt, XML_SCHEMAP_S4S_ELEM_MISSING,
 	    NULL, type, node, child, NULL,
 	    "(annotation?, (restriction | list | union))");
-    } else if (IS_SCHEMA(child, "restriction")) {
+    } else if (IS_SCHEMA(child, "restriction")) {	
         xmlSchemaParseRestriction(ctxt, schema, child,
-		XML_SCHEMA_TYPE_SIMPLE);
+	    XML_SCHEMA_TYPE_SIMPLE);	
+	hasRestriction = 1;	
         child = child->next;
     } else if (IS_SCHEMA(child, "list")) {
         xmlSchemaParseList(ctxt, schema, child);
@@ -8202,9 +8460,21 @@
 	    NULL, type, node, child, NULL,
 	    "(annotation?, (restriction | list | union))");
     }
+    /*
+    * REDEFINE: SPEC src-redefine (5)
+    * "Within the [children], each <simpleType> must have a
+    * <restriction> among its [children] ... the ·actual value· of whose
+    * base [attribute] must be the same as the ·actual value· of its own
+    * name attribute plus target namespace;"
+    */
+    if (topLevel && ctxt->isRedefine && (! hasRestriction)) {
+	xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_SRC_REDEFINE,
+	    NULL, NULL, node, "This is a redefinition, thus the "
+	    "<simpleType> must have a <restriction> child", NULL);
+    }
+
     ctxt->parentItem = oldParentItem;
     ctxt->ctxtType = oldCtxtType;
-
     return (type);
 }
 
@@ -8476,73 +8746,6 @@
 }
 
 
-/**
- * xmlSchemaImportSchema
- *
- * @ctxt:  a schema validation context
- * @schemaLocation:  an URI defining where to find the imported schema
- *
- * import a XML schema
- * *WARNING* this interface is highly subject to change
- *
- * Returns -1 in case of error and 1 in case of success.
- */
-#if 0
-static xmlSchemaImportPtr
-xmlSchemaImportSchema(xmlSchemaParserCtxtPtr ctxt,
-                      const xmlChar *schemaLocation)
-{
-    xmlSchemaImportPtr import;
-    xmlSchemaParserCtxtPtr newctxt;
-
-    newctxt = (xmlSchemaParserCtxtPtr) xmlMalloc(sizeof(xmlSchemaParserCtxt));
-    if (newctxt == NULL) {
-        xmlSchemaPErrMemory(ctxt, "allocating schema parser context",
-                            NULL);
-        return (NULL);
-    }
-    memset(newctxt, 0, sizeof(xmlSchemaParserCtxt));
-    /* Keep the same dictionnary for parsing, really */
-    xmlDictReference(ctxt->dict);
-    newctxt->dict = ctxt->dict;
-    newctxt->includes = 0;
-    newctxt->URL = xmlDictLookup(newctxt->dict, schemaLocation, -1);
-
-    xmlSchemaSetParserErrors(newctxt, ctxt->error, ctxt->warning,
-	                     ctxt->userData);
-
-    import = (xmlSchemaImport*) xmlMalloc(sizeof(xmlSchemaImport));
-    if (import == NULL) {
-        xmlSchemaPErrMemory(NULL, "allocating imported schema",
-                            NULL);
-	xmlSchemaFreeParserCtxt(newctxt);
-        return (NULL);
-    }
-
-    memset(import, 0, sizeof(xmlSchemaImport));
-    import->schemaLocation = xmlDictLookup(ctxt->dict, schemaLocation, -1);
-    import->schema = xmlSchemaParse(newctxt);
-
-    if (import->schema == NULL) {
-        /* FIXME use another error enum here ? */
-        xmlSchemaPErr(ctxt, NULL, XML_SCHEMAP_INTERNAL,
-	              "Failed to import schema from location \"%s\".\n",
-		      schemaLocation, NULL);
-
-	xmlSchemaFreeParserCtxt(newctxt);
-	/* The schemaLocation is held by the dictionary.
-	if (import->schemaLocation != NULL)
-	    xmlFree((xmlChar *)import->schemaLocation);
-	*/
-	xmlFree(import);
-	return NULL;
-    }
-
-    xmlSchemaFreeParserCtxt(newctxt);
-    return import;
-}
-#endif
-
 static void
 xmlSchemaClearSchemaDefaults(xmlSchemaPtr schema)
 {
@@ -8679,7 +8882,11 @@
 	    xmlSchemaParseInclude(ctxt, schema, child);
 	    ctxt->includes--;
 	} else if (IS_SCHEMA(child, "redefine")) {
+#ifdef ENABLE_REDEFINE
+	    xmlSchemaParseRedefine(ctxt, schema, child);
+#else
 	    TODO
+#endif
 	}
 	child = child->next;
     }
@@ -8756,6 +8963,49 @@
     return (ret);
 }
 
+#ifdef ENABLE_REDEFINE
+static xmlSchemaSchemaRefPtr
+xmlSchemaSchemaRefCreate(void)
+{
+    xmlSchemaSchemaRefPtr ret;
+
+    ret = (xmlSchemaSchemaRefPtr) xmlMalloc(sizeof(xmlSchemaSchemaRef));
+    if (ret == NULL) {
+	xmlSchemaPErrMemory(NULL, "allocating schema reference", NULL);
+	return(NULL);
+    }
+    memset(ret, 0, sizeof(xmlSchemaSchemaRef));
+    return(ret);
+}
+
+static void
+xmlSchemaSchemaRefFree(xmlSchemaSchemaRefPtr ref)
+{
+    xmlFree(ref);
+}
+#endif
+
+static xmlSchemaParserCtxtPtr
+xmlSchemaParserCtxtCreate(void)
+{
+    xmlSchemaParserCtxtPtr ret;
+
+    ret = (xmlSchemaParserCtxtPtr) xmlMalloc(sizeof(xmlSchemaParserCtxt));
+    if (ret == NULL) {
+        xmlSchemaPErrMemory(NULL, "allocating schema parser context",
+                            NULL);
+        return (NULL);
+    }
+    memset(ret, 0, sizeof(xmlSchemaParserCtxt));
+    ret->type = XML_SCHEMA_CTXT_PARSER;
+    ret->compContainer = xmlSchemaContainerCreate();
+    if (ret->compContainer == NULL) {
+	xmlSchemaFreeParserCtxt(ret);
+	return(NULL);
+    }
+    return(ret);
+}
+
 /**
  * xmlSchemaNewParserCtxtUseDict:
  * @URL:  the location of the schema
@@ -8770,18 +9020,10 @@
 xmlSchemaNewParserCtxtUseDict(const char *URL, xmlDictPtr dict)
 {
     xmlSchemaParserCtxtPtr ret;
-    /*
-    if (URL == NULL)
-        return (NULL);
-	*/
 
-    ret = (xmlSchemaParserCtxtPtr) xmlMalloc(sizeof(xmlSchemaParserCtxt));
-    if (ret == NULL) {
-        xmlSchemaPErrMemory(NULL, "allocating schema parser context",
-                            NULL);
+    ret = xmlSchemaParserCtxtCreate();
+    if (ret == NULL)        
         return (NULL);
-    }
-    memset(ret, 0, sizeof(xmlSchemaParserCtxt));
     ret->dict = dict;
     xmlDictReference(dict);    
     if (URL != NULL)
@@ -9053,14 +9295,17 @@
     oldURL = pctxt->URL;
     /* TODO: Is using the doc->URL here correct? */
     pctxt->URL = node->doc->URL;
+
     oldLocImps = pctxt->localImports;
     pctxt->localImports = NULL;
     oldNumLocImps = pctxt->nbLocalImports;
     pctxt->nbLocalImports = 0;
     oldSizeLocImps = pctxt->sizeLocalImports;
     pctxt->sizeLocalImports = 0;
+
     oldFlags = schema->flags;
     oldIsS4S = pctxt->isS4S;
+
     xmlSchemaClearSchemaDefaults(schema);
     oldTNS = schema->targetNamespace;
     schema->targetNamespace = targetNamespace;
@@ -9103,7 +9348,7 @@
  * not valid and -1 in case of an internal error.
  */
 static int
-xmlSchemaParseImport(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
+xmlSchemaParseImport(xmlSchemaParserCtxtPtr pctxt, xmlSchemaPtr schema,
                      xmlNodePtr node)
 {
     xmlNodePtr child;
@@ -9114,7 +9359,7 @@
     xmlDocPtr doc;
     int ret = 0;
 
-    if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
+    if ((pctxt == NULL) || (schema == NULL) || (node == NULL))
         return (-1);
 
     /*
@@ -9126,12 +9371,12 @@
 	    if ((!xmlStrEqual(attr->name, BAD_CAST "id")) &&
 		(!xmlStrEqual(attr->name, BAD_CAST "namespace")) &&
 		(!xmlStrEqual(attr->name, BAD_CAST "schemaLocation"))) {
-		xmlSchemaPIllegalAttrErr(ctxt,
+		xmlSchemaPIllegalAttrErr(pctxt,
 		    XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
 		    NULL, NULL, attr);
 	    }
 	} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
-	    xmlSchemaPIllegalAttrErr(ctxt,
+	    xmlSchemaPIllegalAttrErr(pctxt,
 		XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
 		NULL, NULL, attr);
 	}
@@ -9140,26 +9385,26 @@
     /*
     * Extract and validate attributes.
     */
-    if (xmlSchemaPValAttr(ctxt, NULL, NULL, node,
+    if (xmlSchemaPValAttr(pctxt, NULL, NULL, node,
 	"namespace", xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYURI),
 	&namespaceName) != 0) {
-	xmlSchemaPSimpleTypeErr(ctxt,
-	    XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI,
+	xmlSchemaPSimpleTypeErr(pctxt,
+	    XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
 	    NULL, node,
 	    xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYURI),
 	    NULL, namespaceName, NULL, NULL, NULL);
-	return (XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI);
+	return (pctxt->err);
     }
 
-    if (xmlSchemaPValAttr(ctxt, NULL, NULL, node,
+    if (xmlSchemaPValAttr(pctxt, NULL, NULL, node,
 	"schemaLocation", xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYURI),
 	&schemaLocation) != 0) {
-	xmlSchemaPSimpleTypeErr(ctxt,
-	    XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI,
+	xmlSchemaPSimpleTypeErr(pctxt,
+	    XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
 	    NULL, node,
 	    xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYURI),
 	    NULL, namespaceName, NULL, NULL, NULL);
-	return (XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI);
+	return (pctxt->err);
     }
     /*
     * And now for the children...
@@ -9173,8 +9418,8 @@
         child = child->next;
     }
     if (child != NULL) {
-	xmlSchemaPContentErr(ctxt,
-	    XML_SCHEMAP_UNKNOWN_IMPORT_CHILD,
+	xmlSchemaPContentErr(pctxt,
+	    XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
 	    NULL, NULL, node, child, NULL,
 	    "(annotation?)");
     }
@@ -9188,13 +9433,13 @@
 	* targetNamespace [attribute].
 	*/
 	if (xmlStrEqual(schema->targetNamespace, namespaceName)) {
-	    xmlSchemaPCustomErr(ctxt,
+	    xmlSchemaPCustomErr(pctxt,
 		XML_SCHEMAP_SRC_IMPORT_1_1,
 		NULL, NULL, node,
 		"The value of the attribute 'namespace' must not match "
 		"the target namespace '%s' of the importing schema",
 		schema->targetNamespace);
-	    return (XML_SCHEMAP_SRC_IMPORT_1_1);
+	    return (pctxt->err);
 	}
     } else {
 	/*
@@ -9202,34 +9447,36 @@
 	* <schema> must have a targetNamespace [attribute].
 	*/
 	if (schema->targetNamespace == NULL) {
-	    xmlSchemaPCustomErr(ctxt,
+	    xmlSchemaPCustomErr(pctxt,
 		XML_SCHEMAP_SRC_IMPORT_1_2,
 		NULL, NULL, node,
 		"The attribute 'namespace' must be existent if "
 		"the importing schema has no target namespace",
 		NULL);
-	    return (XML_SCHEMAP_SRC_IMPORT_1_2);
+	    return (pctxt->err);
 	}
     }
     /*
     * Add the namespace to the list of locally imported namespace.
+    * TODO: This could be removed if the schema-graph is ready. I.e.
+    *       use the graph for this info instead.
     */
-    if (ctxt->localImports == NULL) {
-	ctxt->localImports = (const xmlChar **) xmlMalloc(10 *
+    if (pctxt->localImports == NULL) {
+	pctxt->localImports = (const xmlChar **) xmlMalloc(10 *
 	    sizeof(const xmlChar*));
-	ctxt->sizeLocalImports = 10;
-	ctxt->nbLocalImports = 0;
-    } else if (ctxt->sizeLocalImports <= ctxt->nbLocalImports) {
-	ctxt->sizeLocalImports *= 2;
-	ctxt->localImports = (const xmlChar **) xmlRealloc(
-	    (xmlChar **) ctxt->localImports,
-	    ctxt->sizeLocalImports * sizeof(const xmlChar*));
+	pctxt->sizeLocalImports = 10;
+	pctxt->nbLocalImports = 0;
+    } else if (pctxt->sizeLocalImports <= pctxt->nbLocalImports) {
+	pctxt->sizeLocalImports *= 2;
+	pctxt->localImports = (const xmlChar **) xmlRealloc(
+	    (xmlChar **) pctxt->localImports,
+	    pctxt->sizeLocalImports * sizeof(const xmlChar*));
     }
-    ctxt->localImports[ctxt->nbLocalImports++] = namespaceName;
+    pctxt->localImports[pctxt->nbLocalImports++] = namespaceName;
     /*
     * Locate and aquire the schema document.
     */
-    ret = xmlSchemaAcquireSchemaDoc((xmlSchemaAbstractCtxtPtr) ctxt,
+    ret = xmlSchemaAcquireSchemaDoc((xmlSchemaAbstractCtxtPtr) pctxt,
 	schema, node, namespaceName,
 	schemaLocation, &doc, &targetNamespace, 0);
     if (ret != 0) {
@@ -9237,7 +9484,7 @@
 	    xmlFreeDoc(doc);
 	return (ret);
     } else if (doc != NULL) {
-       	xmlSchemaParseForImpInc(ctxt, schema, targetNamespace,
+       	xmlSchemaParseForImpInc(pctxt, schema, targetNamespace,
 	    xmlDocGetRootElement(doc));
     }
 
@@ -9245,127 +9492,39 @@
 }
 
 /**
- * xmlSchemaParseInclude:
- * @ctxt:  a schema validation context
+ * xmlSchemaParseIncludedDoc:
+ * @pctxt:  a schema validation context
  * @schema:  the schema being built
  * @node:  a subtree containing XML Schema informations
  *
- * parse a XML schema Include definition
+ * Parse an included (and to-be-redefined) XML schema document.
  *
- * Returns -1 in case of error, 0 if the declaration is improper and
- *         1 in case of success.
+ * Returns 0 on success, a positive error code on errors and
+ *         -1 in case of an internal or API error.
  */
 static int
-xmlSchemaParseInclude(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema,
-                      xmlNodePtr node)
+xmlSchemaParseIncludedDoc(xmlSchemaParserCtxtPtr pctxt, xmlSchemaPtr schema,
+			  xmlNodePtr node, const xmlChar *schemaLocation,
+			  int *located)
 {
-    xmlNodePtr child = NULL;
-    const xmlChar *schemaLocation, *targetNamespace;
+    const xmlChar *targetNamespace;
     xmlDocPtr doc = NULL;
     xmlNodePtr root = NULL;
     xmlSchemaIncludePtr include = NULL;
     int wasConvertingNs = 0;
-    xmlAttrPtr attr;
     xmlParserCtxtPtr parserCtxt;
 
-
-    if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
-        return (-1);
-
+    if (located == NULL)
+	return(-1);
+    (*located) = 0;
     /*
-    * Check for illegal attributes.
-    */
-    attr = node->properties;
-    while (attr != NULL) {
-	if (attr->ns == NULL) {
-	    if ((!xmlStrEqual(attr->name, BAD_CAST "id")) &&
-		(!xmlStrEqual(attr->name, BAD_CAST "schemaLocation"))) {
-		xmlSchemaPIllegalAttrErr(ctxt,
-		    XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
-		    NULL, NULL, attr);
-	    }
-	} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
-	    xmlSchemaPIllegalAttrErr(ctxt,
-		XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
-		NULL, NULL, attr);
-	}
-	attr = attr->next;
-    }
-    /*
-    * Extract and validate attributes.
-    */
-    xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
-    /*
-    * Preliminary step, extract the URI-Reference for the include and
-    * make an URI from the base.
-    */
-    attr = xmlSchemaGetPropNode(node, "schemaLocation");
-    if (attr != NULL) {
-        xmlChar *base = NULL;
-        xmlChar *uri = NULL;
-
-	if (xmlSchemaPValAttrNode(ctxt, NULL, NULL, attr,
-	    xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYURI), &schemaLocation) != 0)
-	    goto exit_invalid;
-	base = xmlNodeGetBase(node->doc, node);
-	if (base == NULL) {
-	    uri = xmlBuildURI(schemaLocation, node->doc->URL);
-	} else {
-	    uri = xmlBuildURI(schemaLocation, base);
-	    xmlFree(base);
-	}
-	if (uri == NULL) {
-	    xmlSchemaPErr(ctxt,
-		node,
-		XML_SCHEMAP_INTERNAL,
-		"Internal error: xmlSchemaParseInclude, "
-		"could not build an URI from the schemaLocation.\n",
-		NULL, NULL);
-	    goto exit_failure;
-	}
-	schemaLocation = xmlDictLookup(ctxt->dict, uri, -1);
-	xmlFree(uri);
-    } else {
-	xmlSchemaPMissingAttrErr(ctxt,
-	    XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI,
-	    NULL, node, "schemaLocation", NULL);
-	goto exit_invalid;
-    }
-    /*
-    * And now for the children...
-    */
-    child = node->children;
-    while (IS_SCHEMA(child, "annotation")) {
-        /*
-         * the annotations here are simply discarded ...
-	 * TODO: really?
-         */
-        child = child->next;
-    }
-    if (child != NULL) {
-	xmlSchemaPContentErr(ctxt,
-	    XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD,
-	    NULL, NULL, node, child, NULL,
-	    "(annotation?)");
-    }
-    /*
-    * Report self-inclusion.
-    */
-    if (xmlStrEqual(schemaLocation, ctxt->URL)) {
-	xmlSchemaPCustomErr(ctxt,
-	    XML_SCHEMAP_SRC_INCLUDE,
-	    NULL, NULL, node,
-	    "The schema document '%s' cannot include itself.",
-	    schemaLocation);
-	return (XML_SCHEMAP_SRC_INCLUDE);
-    }
-    /*
     * Check if this one was already processed to avoid incorrect
     * duplicate component errors and infinite circular inclusion.
     */
     include = schema->includes;
     while (include != NULL) {
 	if (xmlStrEqual(include->schemaLocation, schemaLocation)) {
+	    (*located) = 1;
 	    targetNamespace = include->origTargetNamespace;
 	    if (targetNamespace == NULL) {
 		/*
@@ -9376,7 +9535,7 @@
 		    include->targetNamespace)) {
 		    goto check_targetNamespace;
 		}
-	    } else {
+	    } else {		
 		goto check_targetNamespace;
 	    }
 	}
@@ -9393,60 +9552,50 @@
 	goto exit_failure;
     }
 
-    if ((ctxt->dict != NULL) && (parserCtxt->dict != NULL)) {
+    if ((pctxt->dict != NULL) && (parserCtxt->dict != NULL)) {
 	xmlDictFree(parserCtxt->dict);
-	parserCtxt->dict = ctxt->dict;
+	parserCtxt->dict = pctxt->dict;
 	xmlDictReference(parserCtxt->dict);
     }
 
     doc = xmlCtxtReadFile(parserCtxt, (const char *) schemaLocation,
 	    NULL, SCHEMAS_PARSE_OPTIONS);
     xmlFreeParserCtxt(parserCtxt);
-    if (doc == NULL) {
-	/*
-	* TODO: It is not an error for the ·actual value· of the
-	* schemaLocation [attribute] to fail to resolve it all, in which
-	* case no corresponding inclusion is performed.
-	* So do we need a warning report here?
-	*/
-	xmlSchemaPCustomErr(ctxt,
-	    XML_SCHEMAP_FAILED_LOAD,
-	    NULL, NULL, node,
-	    "Failed to load the document '%s' for inclusion", schemaLocation);
-	goto exit_invalid;
+    if (doc == NULL) {			
+	goto exit_not_located;
     }
-
+    (*located) = 1;
     /*
      * Then extract the root of the schema
      */
     root = xmlDocGetRootElement(doc);
     if (root == NULL) {
-	xmlSchemaPCustomErr(ctxt,
+	xmlSchemaPCustomErr(pctxt,
 	    XML_SCHEMAP_NOROOT,
 	    NULL, NULL, node,
 	    "The included document '%s' has no document "
 	    "element", schemaLocation);
-	goto exit_invalid;
+	goto exit_error;
     }
 
     /*
      * Remove all the blank text nodes
      */
-    xmlSchemaCleanupDoc(ctxt, root);
+    xmlSchemaCleanupDoc(pctxt, root);
 
     /*
      * Check the schemas top level element
      */
     if (!IS_SCHEMA(root, "schema")) {
-	xmlSchemaPCustomErr(ctxt,
+	xmlSchemaPCustomErr(pctxt,
 	    XML_SCHEMAP_NOT_SCHEMA,
 	    NULL, NULL, node,
 	    "The document '%s' to be included is not a schema document",
 	    schemaLocation);
-	goto exit_invalid;
+	goto exit_error;
     }
 
-    targetNamespace = xmlSchemaGetProp(ctxt, root, "targetNamespace");
+    targetNamespace = xmlSchemaGetProp(pctxt, root, "targetNamespace");
     /*
     * 2.1 SII has a targetNamespace [attribute], and its ·actual
     * value· is identical to the ·actual value· of the targetNamespace
@@ -9455,22 +9604,22 @@
 check_targetNamespace:
     if (targetNamespace != NULL) {
 	if (schema->targetNamespace == NULL) {
-	    xmlSchemaPCustomErr(ctxt,
+	    xmlSchemaPCustomErr(pctxt,
 		XML_SCHEMAP_SRC_INCLUDE,
 		NULL, NULL, node,
 		"The target namespace of the included schema "
 		"'%s' has to be absent, since the including schema "
 		"has no target namespace",
 		schemaLocation);
-	    goto exit_invalid;
+	    goto exit_error;
 	} else if (!xmlStrEqual(targetNamespace, schema->targetNamespace)) {
-	    xmlSchemaPCustomErrExt(ctxt,
+	    xmlSchemaPCustomErrExt(pctxt,
 		XML_SCHEMAP_SRC_INCLUDE,
 		NULL, NULL, node,
 		"The target namespace '%s' of the included schema '%s' "
 		"differs from '%s' of the including schema",
 		targetNamespace, schemaLocation, schema->targetNamespace);
-	    goto exit_invalid;
+	    goto exit_error;
 	}
     } else if (schema->targetNamespace != NULL) {
 	if ((schema->flags & XML_SCHEMAS_INCLUDING_CONVERT_NS) == 0) {
@@ -9491,13 +9640,14 @@
     * the moment.
     * TODO: Check when the namespace in wildcards for chameleons needs
     * to be converted: before we built wildcard intersections or after.
+    *   Answer: after!
     */
     /*
     * Register the include.
     */
     include = (xmlSchemaIncludePtr) xmlMalloc(sizeof(xmlSchemaInclude));
     if (include == NULL) {
-        xmlSchemaPErrMemory(ctxt, "allocating include entry", NULL);
+        xmlSchemaPErrMemory(pctxt, "allocating include entry", NULL);
 	goto exit_failure;
     }
     memset(include, 0, sizeof(xmlSchemaInclude));
@@ -9529,7 +9679,7 @@
     /*
     * Compile the included schema.
     */
-    xmlSchemaParseForImpInc(ctxt, schema, schema->targetNamespace, root);
+    xmlSchemaParseForImpInc(pctxt, schema, schema->targetNamespace, root);
 
 exit:
     /*
@@ -9538,16 +9688,19 @@
     if ((wasConvertingNs == 0) &&
 	(schema->flags & XML_SCHEMAS_INCLUDING_CONVERT_NS))
 	schema->flags ^= XML_SCHEMAS_INCLUDING_CONVERT_NS;
-    return (1);
+    return (0);
 
-exit_invalid:
+exit_error:
     if (doc != NULL) {
 	if (include != NULL)
 	    include->doc = NULL;
 	xmlFreeDoc(doc);
     }
-    return (ctxt->err);
+    return (pctxt->err);
 
+exit_not_located:
+    return(0);
+
 exit_failure:
     if (doc != NULL) {
 	if (include != NULL)
@@ -9557,6 +9710,259 @@
     return (-1);
 }
 
+
+static int
+xmlSchemaParseIncludeOrRedefineAttrs(xmlSchemaParserCtxtPtr pctxt,
+				     xmlSchemaPtr schema,
+				     xmlNodePtr node,
+				     xmlChar **schemaLocation,
+				     int isRedefine)
+{
+    xmlAttrPtr attr;
+
+    if ((pctxt == NULL) || (schema == NULL) || (node == NULL) ||
+	(schemaLocation == NULL))
+        return (-1);
+
+    *schemaLocation = NULL;
+    /*
+    * Check for illegal attributes.
+    * Applies for both <include> and <redefine>.
+    */
+    attr = node->properties;
+    while (attr != NULL) {
+	if (attr->ns == NULL) {
+	    if ((!xmlStrEqual(attr->name, BAD_CAST "id")) &&
+		(!xmlStrEqual(attr->name, BAD_CAST "schemaLocation"))) {
+		xmlSchemaPIllegalAttrErr(pctxt,
+		    XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+		    NULL, NULL, attr);
+	    }
+	} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
+	    xmlSchemaPIllegalAttrErr(pctxt,
+		XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+		NULL, NULL, attr);
+	}
+	attr = attr->next;
+    }
+    xmlSchemaPValAttrID(pctxt, NULL, NULL, node, BAD_CAST "id");
+    /*
+    * Preliminary step, extract the URI-Reference and make an URI
+    * from the base.
+    */
+    /*
+    * Attribute "schemaLocation" is mandatory.
+    */
+    attr = xmlSchemaGetPropNode(node, "schemaLocation");
+    if (attr != NULL) {
+        xmlChar *base = NULL;
+        xmlChar *uri = NULL;
+
+	if (xmlSchemaPValAttrNode(pctxt, NULL, NULL, attr,
+	    xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYURI),
+	    (const xmlChar **) schemaLocation) != 0)
+	    goto exit_error;
+	base = xmlNodeGetBase(node->doc, node);
+	if (base == NULL) {
+	    uri = xmlBuildURI(*schemaLocation, node->doc->URL);
+	} else {
+	    uri = xmlBuildURI(*schemaLocation, base);
+	    xmlFree(base);
+	}
+	if (uri == NULL) {
+	    PERROR_INT("xmlSchemaParseIncludeOrRedefine",
+		"could not build an URI from the schemaLocation")
+	    goto exit_failure;
+	}
+	(*schemaLocation) = (xmlChar *) xmlDictLookup(pctxt->dict, uri, -1);
+	xmlFree(uri);
+    } else {
+	xmlSchemaPMissingAttrErr(pctxt,
+	    XML_SCHEMAP_S4S_ATTR_MISSING,
+	    NULL, node, "schemaLocation", NULL);
+	goto exit_error;
+    }
+    /*
+    * Report self-inclusion and self-redefinition.
+    */
+    if (xmlStrEqual(*schemaLocation, pctxt->URL)) {
+	if (isRedefine) {
+	    xmlSchemaPCustomErr(pctxt,
+		XML_SCHEMAP_SRC_REDEFINE,
+		NULL, NULL, node,
+		"The schema document '%s' cannot redefine itself.",
+		*schemaLocation);	    
+	} else {
+	    xmlSchemaPCustomErr(pctxt,
+		XML_SCHEMAP_SRC_INCLUDE,
+		NULL, NULL, node,
+		"The schema document '%s' cannot include itself.",
+		*schemaLocation);
+	}
+	goto exit_error;
+    }
+    
+    return(0);
+exit_error:
+    return(pctxt->err);
+exit_failure:
+    return(-1);
+}
+
+static int
+xmlSchemaParseIncludeOrRedefine(xmlSchemaParserCtxtPtr pctxt,
+				xmlSchemaPtr schema,
+				xmlNodePtr node,
+				int isRedefine)
+{
+    xmlNodePtr child = NULL;
+    const xmlChar *schemaLocation = NULL;
+    int res = 0, located = 0, hasRedefinitions = 0;
+
+    if ((pctxt == NULL) || (schema == NULL) || (node == NULL))
+        return (-1);
+
+    /*
+    * Parse attributes. Note that the returned schemaLocation will
+    * be already converted to an absolute URI.
+    */
+    res = xmlSchemaParseIncludeOrRedefineAttrs(pctxt, schema,
+	node, (xmlChar **) (&schemaLocation), isRedefine);
+    if (res != 0)
+	return(res);
+
+    /*
+    * Include the schema.
+    */
+    res = xmlSchemaParseIncludedDoc(pctxt, schema, node,
+	schemaLocation, &located);
+    if (res != 0)
+	return(res);
+        
+    /*
+    * And now for the children...
+    */
+    child = node->children;
+    
+    if (isRedefine) {
+	/*
+	* Parse (simpleType | complexType | group | attributeGroup))*
+	*/
+	pctxt->isRedefine = 1;
+	while (IS_SCHEMA(child, "annotation") ||
+	    IS_SCHEMA(child, "simpleType") ||
+	    IS_SCHEMA(child, "complexType") ||
+	    IS_SCHEMA(child, "group") ||
+	    IS_SCHEMA(child, "attributeGroup")) {
+	    if (IS_SCHEMA(child, "annotation")) {
+		/*
+		* TODO: discard or not?
+		*/
+	    } else if (IS_SCHEMA(child, "simpleType")) {		
+		xmlSchemaParseSimpleType(pctxt, schema, child, 1);
+	    } else if (IS_SCHEMA(child, "complexType")) {
+		xmlSchemaParseComplexType(pctxt, schema, child, 1);
+		hasRedefinitions = 1;
+	    } else if (IS_SCHEMA(child, "group")) {
+		TODO
+		hasRedefinitions = 1;
+		/* xmlSchemaParseModelGroupDefinition(pctxt, schema, child); */
+	    } else if (IS_SCHEMA(child, "attributeGroup")) {
+		TODO
+		hasRedefinitions = 1;
+		/* xmlSchemaParseAttributeGroup(pctxt, schema, child, 1); */
+	    }
+	    child = child->next;
+	}
+	pctxt->isRedefine = 0;
+    } else {
+	if (IS_SCHEMA(child, "annotation")) {
+	    /*
+	    * TODO: discard or not?
+	    */
+	    child = child->next;
+	}
+    }    
+    if (child != NULL) {
+	res = XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED;
+	if (isRedefine) {
+	    xmlSchemaPContentErr(pctxt,
+		res,
+		NULL, NULL, node, child, NULL,
+		"(annotation | (simpleType | complexType | group | attributeGroup))*");
+	} else {
+	     xmlSchemaPContentErr(pctxt,
+		res,
+		NULL, NULL, node, child, NULL,
+		"(annotation?)");
+	}	
+    }
+    if (!located) {
+	/*
+	* TODO: This is all *not* yet OK, since we get a !located if the
+	* document was not an XML document as well :-(
+	*/
+	if (!isRedefine) {	
+	    /*
+	    * WARNING for <include>:
+	    * We will raise an error if the schema cannot be located
+	    * for inclusions, since the that was the feedback from the
+	    * schema people. I.e. the following spec piece will *not* be
+	    * satisfied:
+	    * SPEC src-include: "It is not an error for the ·actual value· of the
+	    * schemaLocation [attribute] to fail to resolve it all, in which
+	    * case no corresponding inclusion is performed.
+	    * So do we need a warning report here?"
+	    */
+	    res = XML_SCHEMAP_SRC_INCLUDE;
+	    xmlSchemaPCustomErr(pctxt, res,
+		NULL, NULL, node,
+		"Failed to load the document '%s' for inclusion",
+		schemaLocation);
+	} else if (hasRedefinitions) {
+	    /*
+	    * SPEC src-redefine (1)
+	    * "If there are any element information items among the [children]
+	    * other than <annotation> then the ·actual value· of the
+	    * schemaLocation [attribute] must successfully resolve."
+	    * TODO: Ask the WG if a the location has to resolve here as well!
+	    */
+	    res = XML_SCHEMAP_SRC_REDEFINE;
+	    xmlSchemaPCustomErr(pctxt, res,
+		NULL, NULL, node,
+		"Failed to load the document '%s' for redefinition",
+		schemaLocation);
+	}
+    }
+    return(res);
+}
+
+#ifdef ENABLE_REDEFINE
+static int
+xmlSchemaParseRedefine(xmlSchemaParserCtxtPtr pctxt, xmlSchemaPtr schema,
+                       xmlNodePtr node)
+{
+    int res;
+
+    res = xmlSchemaParseIncludeOrRedefine(pctxt, schema, node, 1);
+    if (res != 0)
+	return(res);
+    return(0);
+}
+#endif
+
+static int
+xmlSchemaParseInclude(xmlSchemaParserCtxtPtr pctxt, xmlSchemaPtr schema,
+                       xmlNodePtr node)
+{
+    int res;
+
+    res = xmlSchemaParseIncludeOrRedefine(pctxt, schema, node, 0);
+    if (res != 0)
+	return(res);
+    return(0);
+}
+
 /**
  * xmlSchemaParseModelGroup:
  * @ctxt:  a schema validation context
@@ -9805,22 +10211,54 @@
     */
     xmlSchemaPValAttrID(ctxt, NULL, NULL, node, BAD_CAST "id");
     /*
-    * Attribute "base" - mandatory if inside a complex type.
+    * Attribute 
     */
     /*
-    * SPEC (1.2) "otherwise (<restriction> has no <simpleType> "
+    * Extract the base type. The "base" attribute is mandatory if inside
+    * a complex type or if redefining.
+    *
+    * SPEC (1.2) "...otherwise (<restriction> has no <simpleType> "
     * among its [children]), the simple type definition which is
     * the {content type} of the type definition ·resolved· to by
     * the ·actual value· of the base [attribute]"
     */
-    if ((xmlSchemaPValAttrQName(ctxt, schema,
+    if (xmlSchemaPValAttrQName(ctxt, schema,
 	NULL, NULL, node, "base",
-	&(type->baseNs), &(type->base)) == 0) &&
-	(type->base == NULL) &&
-	(type->type == XML_SCHEMA_TYPE_COMPLEX)) {
-	xmlSchemaPMissingAttrErr(ctxt,
-	    XML_SCHEMAP_S4S_ATTR_MISSING,
-	    type, node, "base", NULL);
+	&(type->baseNs), &(type->base)) == 0)
+    {
+	if ((type->base == NULL) && (type->type == XML_SCHEMA_TYPE_COMPLEX)) {
+	    xmlSchemaPMissingAttrErr(ctxt,
+		XML_SCHEMAP_S4S_ATTR_MISSING,
+		type, node, "base", NULL);
+	} else if ((ctxt->isRedefine) &&
+	    (type->flags & XML_SCHEMAS_TYPE_GLOBAL))
+	{
+	    if (type->base == NULL) {
+		xmlSchemaPMissingAttrErr(ctxt,
+		    XML_SCHEMAP_S4S_ATTR_MISSING,
+		    type, node, "base", NULL);
+	    } else if ((! xmlStrEqual(type->base, type->name)) ||
+		(! xmlStrEqual(type->baseNs, type->targetNamespace)))
+	    {
+		xmlChar *str1 = NULL, *str2 = NULL;
+		/*
+		* REDEFINE: SPEC src-redefine (5)
+		* "Within the [children], each <simpleType> must have a
+		* <restriction> among its [children] ... the ·actual value· of
+		* whose base [attribute] must be the same as the ·actual value·
+		* of its own name attribute plus target namespace;"
+		*/
+		xmlSchemaPCustomErrExt(ctxt, XML_SCHEMAP_SRC_REDEFINE,
+		    NULL, NULL, node, "This is a redefinition, but the QName "
+		    "value '%s' of the 'base' attribute does not match the "
+		    "type's designation '%s'",
+		    xmlSchemaFormatQName(&str1, type->baseNs, type->base),
+		    xmlSchemaFormatQName(&str1, type->targetNamespace,
+			type->name), NULL);
+		FREE_AND_NULL(str1);
+		FREE_AND_NULL(str2);
+	    }
+	}		
     }
     /*
     * And now for the children...
@@ -10174,14 +10612,17 @@
  */
 static int
 xmlSchemaParseSimpleContent(xmlSchemaParserCtxtPtr ctxt,
-                            xmlSchemaPtr schema, xmlNodePtr node)
+                            xmlSchemaPtr schema, xmlNodePtr node,
+			    int *hasRestrictionOrExtension)
 {
     xmlSchemaTypePtr type;
     xmlNodePtr child = NULL;
     xmlAttrPtr attr;
 
-    if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
+    if ((ctxt == NULL) || (schema == NULL) || (node == NULL) ||
+	(hasRestrictionOrExtension == NULL))
         return (-1);
+    *hasRestrictionOrExtension = 0;
     /* Not a component, don't create it. */
     type = ctxt->ctxtType;
     type->contentType = XML_SCHEMA_CONTENT_SIMPLE;
@@ -10218,13 +10659,27 @@
 	    xmlSchemaParseAnnotation(ctxt, schema, child));
         child = child->next;
     }
+    if (child == NULL) {
+	xmlSchemaPContentErr(ctxt,
+	    XML_SCHEMAP_S4S_ELEM_MISSING,
+	    NULL, NULL, node, NULL, NULL,
+	    "(annotation?, (restriction | extension))");	
+    }
+    if (child == NULL) {
+	xmlSchemaPContentErr(ctxt,
+	    XML_SCHEMAP_S4S_ELEM_MISSING,
+	    NULL, NULL, node, NULL, NULL,
+	    "(annotation?, (restriction | extension))");	
+    }
     if (IS_SCHEMA(child, "restriction")) {
         xmlSchemaParseRestriction(ctxt, schema, child,
 	    XML_SCHEMA_TYPE_SIMPLE_CONTENT);
+	(*hasRestrictionOrExtension) = 1;
         child = child->next;
     } else if (IS_SCHEMA(child, "extension")) {
         xmlSchemaParseExtension(ctxt, schema, child,
 	    XML_SCHEMA_TYPE_SIMPLE_CONTENT);
+	(*hasRestrictionOrExtension) = 1;
         child = child->next;
     }
     if (child != NULL) {
@@ -10249,14 +10704,17 @@
  */
 static int
 xmlSchemaParseComplexContent(xmlSchemaParserCtxtPtr ctxt,
-                             xmlSchemaPtr schema, xmlNodePtr node)
+                             xmlSchemaPtr schema, xmlNodePtr node,
+			     int *hasRestrictionOrExtension)
 {
     xmlSchemaTypePtr type;
     xmlNodePtr child = NULL;
     xmlAttrPtr attr;
 
-    if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
+    if ((ctxt == NULL) || (schema == NULL) || (node == NULL) ||
+	(hasRestrictionOrExtension == NULL))
         return (-1);
+    *hasRestrictionOrExtension = 0;
     /* Not a component, don't create it. */
     type = ctxt->ctxtType;
     /*
@@ -10298,13 +10756,27 @@
 	    xmlSchemaParseAnnotation(ctxt, schema, child));
         child = child->next;
     }
+    if (child == NULL) {
+	xmlSchemaPContentErr(ctxt,
+	    XML_SCHEMAP_S4S_ELEM_MISSING,
+	    NULL, NULL, node, NULL,
+	    NULL, "(annotation?, (restriction | extension))");
+    }
+    if (child == NULL) {
+	xmlSchemaPContentErr(ctxt,
+	    XML_SCHEMAP_S4S_ELEM_MISSING,
+	    NULL, NULL, node, NULL,
+	    NULL, "(annotation?, (restriction | extension))");
+    }
     if (IS_SCHEMA(child, "restriction")) {
         xmlSchemaParseRestriction(ctxt, schema, child,
 	    XML_SCHEMA_TYPE_COMPLEX_CONTENT);
+	(*hasRestrictionOrExtension) = 1;
         child = child->next;
     } else if (IS_SCHEMA(child, "extension")) {
         xmlSchemaParseExtension(ctxt, schema, child,
 	    XML_SCHEMA_TYPE_COMPLEX_CONTENT);
+	(*hasRestrictionOrExtension) = 1;
         child = child->next;
     }
     if (child != NULL) {
@@ -10336,9 +10808,8 @@
     const xmlChar *oldcontainer, *name = NULL;
     xmlAttrPtr attr;
     const xmlChar *attrValue;
-    xmlChar *des = NULL; /* The reported designation. */
     char buf[40];
-    int final = 0, block = 0;
+    int final = 0, block = 0, hasRestrictionOrExtension = 0;
 
 
     if ((ctxt == NULL) || (schema == NULL) || (node == NULL))
@@ -10353,10 +10824,10 @@
 		XML_SCHEMAP_S4S_ATTR_MISSING, NULL, node, "name", NULL);
 	    return (NULL);
 	} else if (xmlSchemaPValAttrNode(ctxt,
-	    (xmlChar **) &xmlSchemaElemDesCT, NULL, attr,
+	    NULL, NULL, attr,
 	    xmlSchemaGetBuiltInType(XML_SCHEMAS_NCNAME), &name) != 0) {
 	    return (NULL);
-	}
+	}	
     }
 
     if (topLevel == 0) {
@@ -10364,7 +10835,8 @@
 	* Parse as local complex type definition.
 	*/
         snprintf(buf, 39, "#CT%d", ctxt->counter++ + 1);
-	type = xmlSchemaAddType(ctxt, schema, (const xmlChar *)buf, NULL, node);
+	type = xmlSchemaAddType(ctxt, schema, (const xmlChar *)buf, NULL,
+	    node, 0);
 	if (type == NULL)
 	    return (NULL);
 	name = type->name;
@@ -10377,7 +10849,8 @@
 	/*
 	* Parse as global complex type definition.
 	*/
-	type = xmlSchemaAddType(ctxt, schema, name, schema->targetNamespace, node);
+	type = xmlSchemaAddType(ctxt, schema, name, schema->targetNamespace,
+	    node, 1);
 	if (type == NULL)
 	    return (NULL);
 	type->node = node;
@@ -10401,7 +10874,7 @@
 		/*
 		* Attribute "mixed".
 		*/
-		if (xmlSchemaPGetBoolNodeValue(ctxt, &des, type,
+		if (xmlSchemaPGetBoolNodeValue(ctxt, NULL, type,
 		    (xmlNodePtr) attr))
 		    type->flags |= XML_SCHEMAS_TYPE_MIXED;
 	    } else if (topLevel) {
@@ -10414,7 +10887,7 @@
 		    /*
 		    * Attribute "abstract".
 		    */
-		    if (xmlSchemaPGetBoolNodeValue(ctxt, &des, type,
+		    if (xmlSchemaPGetBoolNodeValue(ctxt, NULL, type,
 			(xmlNodePtr) attr))
 			type->flags |= XML_SCHEMAS_TYPE_ABSTRACT;
 		} else if (xmlStrEqual(attr->name, BAD_CAST "final")) {
@@ -10458,17 +10931,17 @@
 		} else {
 			xmlSchemaPIllegalAttrErr(ctxt,
 			    XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
-			    &des, type, attr);
+			    NULL, type, attr);
 		}
 	    } else {
 		xmlSchemaPIllegalAttrErr(ctxt,
 		    XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
-		    &des, type, attr);
+		    NULL, type, attr);
 	    }
 	} else if (xmlStrEqual(attr->ns->href, xmlSchemaNs)) {
 	    xmlSchemaPIllegalAttrErr(ctxt,
 		XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
-		&des, type, attr);
+		NULL, type, attr);
 	}
 	attr = attr->next;
     }
@@ -10503,20 +10976,28 @@
     ctxt->ctxtType = type;
     if (IS_SCHEMA(child, "simpleContent")) {
 	/*
+	* <complexType><simpleContent>...
 	* 3.4.3 : 2.2
 	* Specifying mixed='true' when the <simpleContent>
 	* alternative is chosen has no effect
 	*/
 	if (type->flags & XML_SCHEMAS_TYPE_MIXED)
 	    type->flags ^= XML_SCHEMAS_TYPE_MIXED;
-        xmlSchemaParseSimpleContent(ctxt, schema, child);
+        xmlSchemaParseSimpleContent(ctxt, schema, child,
+	    &hasRestrictionOrExtension);
         child = child->next;
     } else if (IS_SCHEMA(child, "complexContent")) {
+	/*
+	* <complexType><complexContent>...
+	*/
 	type->contentType = XML_SCHEMA_CONTENT_EMPTY;
-        xmlSchemaParseComplexContent(ctxt, schema, child);
+        xmlSchemaParseComplexContent(ctxt, schema, child,
+	    &hasRestrictionOrExtension);
         child = child->next;
     } else {
 	/*
+	* E.g <complexType><sequence>... or <complexType><attribute>... etc.
+	*
 	* SPEC
 	* "...the third alternative (neither <simpleContent> nor
 	* <complexContent>) is chosen. This case is understood as shorthand
@@ -10563,12 +11044,20 @@
     if (child != NULL) {
 	xmlSchemaPContentErr(ctxt,
 	    XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
-	    &des, type, node, child,
+	    NULL, type, node, child,
 	    NULL, "(annotation?, (simpleContent | complexContent | "
 	    "((group | all | choice | sequence)?, ((attribute | "
 	    "attributeGroup)*, anyAttribute?))))");
     }
-    FREE_AND_NULL(des);
+    /*
+    * REDEFINE: SPEC src-redefine (5)
+    */
+    if (topLevel && ctxt->isRedefine && (! hasRestrictionOrExtension)) {
+	xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_SRC_REDEFINE,
+	    NULL, NULL, node, "This is a redefinition, thus the "
+	    "<complexType> must have a <restriction> or <extension> "
+	    "grand-child", NULL);
+    }
     ctxt->container = oldcontainer;
     ctxt->ctxtType = ctxtType;
     return (type);
@@ -10605,6 +11094,9 @@
     ctxt->isS4S = 0;
     if (IS_SCHEMA(node, "schema")) {
 	xmlSchemaImportPtr import;
+#ifdef ENABLE_REDEFINE
+	xmlSchemaSchemaRefPtr ref;
+#endif
 
         schema = xmlSchemaNewSchema(ctxt);
         if (schema == NULL)
@@ -10632,14 +11124,23 @@
 	* if all schemata are constructed dynamically fired by the
 	* instance or if the schema to be used was specified via
 	* the API.
+	* TODO
 	*/
+#ifdef ENABLE_REDEFINE
+	ref = xmlSchemaSchemaRefCreate();
+	if (ref == NULL) {	    
+	    xmlSchemaFree(schema);
+	    schema = NULL;
+	    return NULL;
+	}
+	ref->schema = schema;
+#endif
+
 	import = xmlSchemaAddImport(ctxt, &(schema->schemasImports),
 	    schema->targetNamespace);
 	if (import == NULL) {
-	    xmlSchemaPCustomErr(ctxt, XML_SCHEMAP_FAILED_BUILD_IMPORT,
-		NULL, NULL, (xmlNodePtr) ctxt->doc,
-		"Internal error: xmlSchemaParseSchema, "
-		"failed to add an import entry", NULL);
+	    xmlSchemaPInternalErr(ctxt, "xmlSchemaParseSchema",
+		"failed to add an import entry", NULL, NULL);		
 	    xmlSchemaFree(schema);
 	    schema = NULL;
 	    return (NULL);
@@ -10764,14 +11265,9 @@
     if (URL == NULL)
         return (NULL);
 
-    ret = (xmlSchemaParserCtxtPtr) xmlMalloc(sizeof(xmlSchemaParserCtxt));
-    if (ret == NULL) {
-        xmlSchemaPErrMemory(NULL, "allocating schema parser context",
-                            NULL);
-        return (NULL);
-    }
-    memset(ret, 0, sizeof(xmlSchemaParserCtxt));
-    ret->type = XML_SCHEMA_CTXT_PARSER;
+    ret = xmlSchemaParserCtxtCreate();
+    if (ret == NULL)
+	return(NULL);
     ret->dict = xmlDictCreate();
     ret->URL = xmlDictLookup(ret->dict, (const xmlChar *) URL, -1);
     ret->includes = 0;
@@ -10795,17 +11291,12 @@
 
     if ((buffer == NULL) || (size <= 0))
         return (NULL);
-
-    ret = (xmlSchemaParserCtxtPtr) xmlMalloc(sizeof(xmlSchemaParserCtxt));
-    if (ret == NULL) {
-        xmlSchemaPErrMemory(NULL, "allocating schema parser context",
-                            NULL);
-        return (NULL);
-    }
-    memset(ret, 0, sizeof(xmlSchemaParserCtxt));
+    ret = xmlSchemaParserCtxtCreate();
+    if (ret == NULL)
+	return(NULL);
     ret->buffer = buffer;
     ret->size = size;
-    ret->dict = xmlDictCreate();
+    ret->dict = xmlDictCreate();    
     return (ret);
 }
 
@@ -10825,14 +11316,9 @@
 
     if (doc == NULL)
       return (NULL);
-
-    ret = (xmlSchemaParserCtxtPtr) xmlMalloc(sizeof(xmlSchemaParserCtxt));
-    if (ret == NULL) {
-      xmlSchemaPErrMemory(NULL, "allocating schema parser context",
-			  NULL);
-      return (NULL);
-    }
-    memset(ret, 0, sizeof(xmlSchemaParserCtxt));
+    ret = xmlSchemaParserCtxtCreate();
+    if (ret == NULL)
+	return(NULL);
     ret->doc = doc;
     ret->dict = xmlDictCreate();
     /* The application has responsibility for the document */
@@ -10866,6 +11352,7 @@
     if (ctxt->substGroups != NULL)
 	xmlHashFree(ctxt->substGroups,
 	    (xmlHashDeallocator) xmlSchemaFreeSubstGroup);
+    xmlSchemaContainerFree(ctxt->compContainer);    
     xmlDictFree(ctxt->dict);
     xmlFree(ctxt);
 }
@@ -10878,11 +11365,10 @@
 
 static void
 xmlSchemaBuildContentModelForSubstGroup(xmlSchemaParserCtxtPtr pctxt,
-					xmlSchemaParticlePtr particle)
+	xmlSchemaParticlePtr particle, int counter, xmlAutomataStatePtr end)
 {
-    xmlAutomataStatePtr start;
+    xmlAutomataStatePtr start, tmp;
     xmlSchemaElementPtr elemDecl, member;
-    xmlAutomataStatePtr end;
     xmlSchemaSubstGroupPtr substGroup;
     int i;
 
@@ -10891,7 +11377,8 @@
     * Wrap the substitution group with a CHOICE.
     */
     start = pctxt->state;
-    end = xmlAutomataNewState(pctxt->am);
+    if (end == NULL)
+	end = xmlAutomataNewState(pctxt->am);
     substGroup = xmlSchemaGetElementSubstitutionGroup(pctxt, elemDecl);
     if (substGroup == NULL) {
 	xmlSchemaPErr(pctxt, GET_NODE(particle),
@@ -10901,10 +11388,25 @@
 	    "available.\n", elemDecl->name, NULL);
 	return;
     }
-    if (particle->maxOccurs == 1) {
+    if (counter >= 0) {
 	/*
 	* NOTE that we put the declaration in, even if it's abstract,
 	*/
+	tmp = xmlAutomataNewCountedTrans(pctxt->am, start, NULL, counter);
+        xmlAutomataNewTransition2(pctxt->am, tmp, end,
+	            elemDecl->name, elemDecl->targetNamespace, elemDecl);
+	/*
+	* Add subst. group members.
+	*/
+	for (i = 0; i < substGroup->members->nbItems; i++) {
+	    member = (xmlSchemaElementPtr) substGroup->members->items[i];
+            xmlAutomataNewTransition2(pctxt->am, tmp, end,
+		               member->name, member->targetNamespace, member);
+	}
+    } else if (particle->maxOccurs == 1) {
+	/*
+	* NOTE that we put the declaration in, even if it's abstract,
+	*/
 	xmlAutomataNewEpsilon(pctxt->am,
 	    xmlAutomataNewTransition2(pctxt->am,
 	    start, NULL,
@@ -10914,14 +11416,12 @@
 	*/
 	for (i = 0; i < substGroup->members->nbItems; i++) {
 	    member = (xmlSchemaElementPtr) substGroup->members->items[i];
-	    xmlAutomataNewEpsilon(pctxt->am,
-		xmlAutomataNewTransition2(pctxt->am,
-		start, NULL,
-		member->name, member->targetNamespace, member),
-		end);
+	    tmp = xmlAutomataNewOnceTrans2(pctxt->am, start, NULL,
+		               member->name, member->targetNamespace,
+			       1, 1, member);
+	    xmlAutomataNewEpsilon(pctxt->am, tmp, end);
 	}
     } else {
-	int counter;
 	xmlAutomataStatePtr hop;
 	int maxOccurs = particle->maxOccurs == UNBOUNDED ?
 	    UNBOUNDED : particle->maxOccurs - 1;
@@ -10938,8 +11438,8 @@
 	    elemDecl->name, elemDecl->targetNamespace, elemDecl),
 	    hop);
 	/*
-	* Add subst. group members.
-	*/
+	 * Add subst. group members.
+	 */
 	for (i = 0; i < substGroup->members->nbItems; i++) {
 	    member = (xmlSchemaElementPtr) substGroup->members->items[i];
 	    xmlAutomataNewEpsilon(pctxt->am,
@@ -10965,7 +11465,7 @@
 	/*
 	* Substitution groups.
 	*/
-	xmlSchemaBuildContentModelForSubstGroup(ctxt, particle);
+	xmlSchemaBuildContentModelForSubstGroup(ctxt, particle, -1, NULL);
     } else {
 	xmlSchemaElementPtr elemDecl;
 	xmlAutomataStatePtr start;
@@ -10977,8 +11477,9 @@
 	if (particle->maxOccurs == 1) {
 	    start = ctxt->state;
 	    ctxt->state = xmlAutomataNewTransition2(ctxt->am, start, NULL,
-		elemDecl->name, elemDecl->targetNamespace, elemDecl);
-	} else if ((particle->maxOccurs >= UNBOUNDED) && (particle->minOccurs < 2)) {
+		    elemDecl->name, elemDecl->targetNamespace, elemDecl);
+	} else if ((particle->maxOccurs >= UNBOUNDED) &&
+	           (particle->minOccurs < 2)) {
 	    /* Special case. */
 	    start = ctxt->state;
 	    ctxt->state = xmlAutomataNewTransition2(ctxt->am, start, NULL,
@@ -11013,22 +11514,16 @@
  * Generate the automata sequence needed for that type
  */
 static void
-xmlSchemaBuildAContentModel(xmlSchemaParserCtxtPtr ctxt,
+xmlSchemaBuildAContentModel(xmlSchemaParserCtxtPtr pctxt,
 			    xmlSchemaParticlePtr particle,
                             const xmlChar * name)
 {
     if (particle == NULL) {
-	xmlSchemaPErr(ctxt, NULL,
-	    XML_SCHEMAP_INTERNAL,
-	    "Internal error: xmlSchemaBuildAContentModel, "
-	    "particle is NULL.\n", NULL, NULL);
+	PERROR_INT("xmlSchemaBuildAContentModel", "particle is NULL");	    
 	return;
     }
     if (particle->children == NULL) {
-	xmlSchemaPErr(ctxt, GET_NODE(particle),
-	    XML_SCHEMAP_INTERNAL,
-	    "Internal error: xmlSchemaBuildAContentModel, "
-	    "no term on particle.\n", NULL, NULL);
+	PERROR_INT("xmlSchemaBuildAContentModel", "no term on particle");
 	return;
     }
 
@@ -11040,8 +11535,8 @@
 
 	    wild = (xmlSchemaWildcardPtr) particle->children;
 
-	    start = ctxt->state;
-	    end = xmlAutomataNewState(ctxt->am);
+	    start = pctxt->state;
+	    end = xmlAutomataNewState(pctxt->am);
 
 	    if (particle->maxOccurs == 1) {
 		if (wild->any == 1) {
@@ -11050,43 +11545,32 @@
 		    *
 		    * 1. the {"*", "*"} for elements in a namespace.
 		    */
-		    ctxt->state =
-			xmlAutomataNewTransition2(ctxt->am,
+		    pctxt->state =
+			xmlAutomataNewTransition2(pctxt->am,
 			start, NULL, BAD_CAST "*", BAD_CAST "*", wild);
-		    xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
+		    xmlAutomataNewEpsilon(pctxt->am, pctxt->state, end);
 		    /*
 		    * 2. the {"*"} for elements in no namespace.
 		    */
-		    ctxt->state =
-			xmlAutomataNewTransition2(ctxt->am,
+		    pctxt->state =
+			xmlAutomataNewTransition2(pctxt->am,
 			start, NULL, BAD_CAST "*", NULL, wild);
-		    xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
+		    xmlAutomataNewEpsilon(pctxt->am, pctxt->state, end);
 
 		} else if (wild->nsSet != NULL) {
 		    ns = wild->nsSet;
 		    do {
-			ctxt->state = start;
-			ctxt->state = xmlAutomataNewTransition2(ctxt->am,
-			    ctxt->state, NULL, BAD_CAST "*", ns->value, wild);
-			xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
+			pctxt->state = start;
+			pctxt->state = xmlAutomataNewTransition2(pctxt->am,
+			    pctxt->state, NULL, BAD_CAST "*", ns->value, wild);
+			xmlAutomataNewEpsilon(pctxt->am, pctxt->state, end);
 			ns = ns->next;
 		    } while (ns != NULL);
 
 		} else if (wild->negNsSet != NULL) {
-
-		    /*
-		    * Lead nodes with the negated namespace to the sink-state
-		    * {"*", "##other"}.
-		    */
-		    ctxt->state = xmlAutomataNewTransition2(ctxt->am, start, NULL,
-			BAD_CAST "*", wild->negNsSet->value, wild);
-		    /*
-		    * Open a door for nodes with any other namespace
-		    * {"*", "*"}
-		    */
-		    ctxt->state = xmlAutomataNewTransition2(ctxt->am,
-			start, NULL, BAD_CAST "*", BAD_CAST "*", wild);
-		    xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
+		    pctxt->state = xmlAutomataNewNegTrans(pctxt->am,
+			start, end, BAD_CAST "*", wild->negNsSet->value,
+			wild);
 		}
 	    } else {
 		int counter;
@@ -11096,48 +11580,43 @@
 		int minOccurs =
 		    particle->minOccurs < 1 ? 0 : particle->minOccurs - 1;
 
-		counter = xmlAutomataNewCounter(ctxt->am, minOccurs, maxOccurs);
-		hop = xmlAutomataNewState(ctxt->am);
+		counter = xmlAutomataNewCounter(pctxt->am, minOccurs, maxOccurs);
+		hop = xmlAutomataNewState(pctxt->am);
 		if (wild->any == 1) {
-		    ctxt->state =
-			xmlAutomataNewTransition2(ctxt->am,
+		    pctxt->state =
+			xmlAutomataNewTransition2(pctxt->am,
 			start, NULL, BAD_CAST "*", BAD_CAST "*", wild);
-		    xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
-		    ctxt->state =
-			xmlAutomataNewTransition2(ctxt->am,
+		    xmlAutomataNewEpsilon(pctxt->am, pctxt->state, hop);
+		    pctxt->state =
+			xmlAutomataNewTransition2(pctxt->am,
 			start, NULL, BAD_CAST "*", NULL, wild);
-		    xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
+		    xmlAutomataNewEpsilon(pctxt->am, pctxt->state, hop);
 		} else if (wild->nsSet != NULL) {
 		    ns = wild->nsSet;
 		    do {
-			ctxt->state =
-			    xmlAutomataNewTransition2(ctxt->am,
+			pctxt->state =
+			    xmlAutomataNewTransition2(pctxt->am,
 				start, NULL, BAD_CAST "*", ns->value, wild);
-			xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
+			xmlAutomataNewEpsilon(pctxt->am, pctxt->state, hop);
 			ns = ns->next;
 		    } while (ns != NULL);
 
 		} else if (wild->negNsSet != NULL) {
-		    xmlAutomataStatePtr deadEnd;
-
-		    deadEnd = xmlAutomataNewState(ctxt->am);
-		    ctxt->state = xmlAutomataNewTransition2(ctxt->am,
-			start, deadEnd, BAD_CAST "*", wild->negNsSet->value, wild);
-		    ctxt->state = xmlAutomataNewTransition2(ctxt->am,
-			start, NULL, BAD_CAST "*", BAD_CAST "*", wild);
-		    xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
+		    pctxt->state = xmlAutomataNewNegTrans(pctxt->am,
+			start, hop, BAD_CAST "*", wild->negNsSet->value,
+			wild);
 		}
-		xmlAutomataNewCountedTrans(ctxt->am, hop, start, counter);
-		xmlAutomataNewCounterTrans(ctxt->am, hop, end, counter);
+		xmlAutomataNewCountedTrans(pctxt->am, hop, start, counter);
+		xmlAutomataNewCounterTrans(pctxt->am, hop, end, counter);
 	    }
 	    if (particle->minOccurs == 0) {
-		xmlAutomataNewEpsilon(ctxt->am, start, end);
+		xmlAutomataNewEpsilon(pctxt->am, start, end);
 	    }
-	    ctxt->state = end;
+	    pctxt->state = end;
             break;
 	}
         case XML_SCHEMA_TYPE_ELEMENT:
-	    xmlSchemaBuildContentModelForElement(ctxt, particle);
+	    xmlSchemaBuildContentModelForElement(pctxt, particle);
 	    break;
         case XML_SCHEMA_TYPE_SEQUENCE:{
                 xmlSchemaTreeItemPtr sub;
@@ -11149,50 +11628,61 @@
                 if ((particle->minOccurs == 1) && (particle->maxOccurs == 1)) {
                     sub = particle->children->children;
                     while (sub != NULL) {
-                        xmlSchemaBuildAContentModel(ctxt,
+                        xmlSchemaBuildAContentModel(pctxt,
 			    (xmlSchemaParticlePtr) sub, name);
                         sub = sub->next;
                     }
                 } else {
-                    xmlAutomataStatePtr oldstate = ctxt->state;
+                    xmlAutomataStatePtr oldstate = pctxt->state;
 
                     if (particle->maxOccurs >= UNBOUNDED) {
                         if (particle->minOccurs > 1) {
                             xmlAutomataStatePtr tmp;
                             int counter;
 
-                            ctxt->state = xmlAutomataNewEpsilon(ctxt->am,
+                            pctxt->state = xmlAutomataNewEpsilon(pctxt->am,
 				oldstate, NULL);
-                            oldstate = ctxt->state;
+                            oldstate = pctxt->state;
 
-                            counter = xmlAutomataNewCounter(ctxt->am,
+                            counter = xmlAutomataNewCounter(pctxt->am,
 				particle->minOccurs - 1, UNBOUNDED);
 
                             sub = particle->children->children;
                             while (sub != NULL) {
-                                xmlSchemaBuildAContentModel(ctxt,
+                                xmlSchemaBuildAContentModel(pctxt,
 				    (xmlSchemaParticlePtr) sub, name);
                                 sub = sub->next;
                             }
-                            tmp = ctxt->state;
-                            xmlAutomataNewCountedTrans(ctxt->am, tmp,
+                            tmp = pctxt->state;
+                            xmlAutomataNewCountedTrans(pctxt->am, tmp,
                                                        oldstate, counter);
-                            ctxt->state =
-                                xmlAutomataNewCounterTrans(ctxt->am, tmp,
+                            pctxt->state =
+                                xmlAutomataNewCounterTrans(pctxt->am, tmp,
                                                            NULL, counter);
 
                         } else {
+                            pctxt->state = xmlAutomataNewEpsilon(pctxt->am,
+				oldstate, NULL);
+                            oldstate = pctxt->state;
+
 			    sub = particle->children->children;
                             while (sub != NULL) {
-                                xmlSchemaBuildAContentModel(ctxt,
+                                xmlSchemaBuildAContentModel(pctxt,
 				    (xmlSchemaParticlePtr) sub, name);
                                 sub = sub->next;
                             }
-                            xmlAutomataNewEpsilon(ctxt->am, ctxt->state,
+                            xmlAutomataNewEpsilon(pctxt->am, pctxt->state,
                                                   oldstate);
+			    /*
+			     * epsilon needed to block previous trans from
+			     * being allowed to enter back from another
+			     * construct
+			     */
+			    pctxt->state = xmlAutomataNewEpsilon(pctxt->am,
+						pctxt->state, NULL);
                             if (particle->minOccurs == 0) {
-                                xmlAutomataNewEpsilon(ctxt->am,
-				    oldstate, ctxt->state);
+                                xmlAutomataNewEpsilon(pctxt->am,
+				    oldstate, pctxt->state);
                             }
                         }
                     } else if ((particle->maxOccurs > 1)
@@ -11200,40 +11690,40 @@
                         xmlAutomataStatePtr tmp;
                         int counter;
 
-                        ctxt->state = xmlAutomataNewEpsilon(ctxt->am,
+                        pctxt->state = xmlAutomataNewEpsilon(pctxt->am,
 			    oldstate, NULL);
-                        oldstate = ctxt->state;
+                        oldstate = pctxt->state;
 
-                        counter = xmlAutomataNewCounter(ctxt->am,
+                        counter = xmlAutomataNewCounter(pctxt->am,
 			    particle->minOccurs - 1,
 			    particle->maxOccurs - 1);
 
                         sub = particle->children->children;
                         while (sub != NULL) {
-                            xmlSchemaBuildAContentModel(ctxt,
+                            xmlSchemaBuildAContentModel(pctxt,
 				(xmlSchemaParticlePtr) sub, name);
                             sub = sub->next;
                         }
-                        tmp = ctxt->state;
-                        xmlAutomataNewCountedTrans(ctxt->am,
+                        tmp = pctxt->state;
+                        xmlAutomataNewCountedTrans(pctxt->am,
 			    tmp, oldstate, counter);
-                        ctxt->state =
-                            xmlAutomataNewCounterTrans(ctxt->am, tmp, NULL,
+                        pctxt->state =
+                            xmlAutomataNewCounterTrans(pctxt->am, tmp, NULL,
                                                        counter);
                         if (particle->minOccurs == 0) {
-                            xmlAutomataNewEpsilon(ctxt->am,
-				oldstate, ctxt->state);
+                            xmlAutomataNewEpsilon(pctxt->am,
+				oldstate, pctxt->state);
                         }
                     } else {
                         sub = particle->children->children;
                         while (sub != NULL) {
-                            xmlSchemaBuildAContentModel(ctxt,
+                            xmlSchemaBuildAContentModel(pctxt,
 				(xmlSchemaParticlePtr) sub, name);
                             sub = sub->next;
                         }
                         if (particle->minOccurs == 0) {
-                            xmlAutomataNewEpsilon(ctxt->am, oldstate,
-                                                  ctxt->state);
+                            xmlAutomataNewEpsilon(pctxt->am, oldstate,
+                                                  pctxt->state);
                         }
                     }
                 }
@@ -11243,8 +11733,8 @@
                 xmlSchemaTreeItemPtr sub;
                 xmlAutomataStatePtr start, end;
 
-                start = ctxt->state;
-                end = xmlAutomataNewState(ctxt->am);
+                start = pctxt->state;
+                end = xmlAutomataNewState(pctxt->am);
 
                 /*
                  * iterate over the subtypes and remerge the end with an
@@ -11253,15 +11743,15 @@
                 if (particle->maxOccurs == 1) {
 		    sub = particle->children->children;
                     while (sub != NULL) {
-                        ctxt->state = start;
-                        xmlSchemaBuildAContentModel(ctxt,
+                        pctxt->state = start;
+                        xmlSchemaBuildAContentModel(pctxt,
 			    (xmlSchemaParticlePtr) sub, name);
-                        xmlAutomataNewEpsilon(ctxt->am, ctxt->state, end);
+                        xmlAutomataNewEpsilon(pctxt->am, pctxt->state, end);
                         sub = sub->next;
                     }
                 } else {
                     int counter;
-                    xmlAutomataStatePtr hop;
+                    xmlAutomataStatePtr hop, base;
                     int maxOccurs = particle->maxOccurs == UNBOUNDED ?
                         UNBOUNDED : particle->maxOccurs - 1;
                     int minOccurs =
@@ -11272,27 +11762,26 @@
                      * which went through the choice.
                      */
                     counter =
-                        xmlAutomataNewCounter(ctxt->am, minOccurs,
-                                              maxOccurs);
-                    hop = xmlAutomataNewState(ctxt->am);
+                        xmlAutomataNewCounter(pctxt->am, minOccurs, maxOccurs);
+                    hop = xmlAutomataNewState(pctxt->am);
+                    base = xmlAutomataNewState(pctxt->am);
 
 		    sub = particle->children->children;
                     while (sub != NULL) {
-                        ctxt->state = start;
-                        xmlSchemaBuildAContentModel(ctxt,
+                        pctxt->state = base;
+                        xmlSchemaBuildAContentModel(pctxt,
 			    (xmlSchemaParticlePtr) sub, name);
-                        xmlAutomataNewEpsilon(ctxt->am, ctxt->state, hop);
+                        xmlAutomataNewEpsilon(pctxt->am, pctxt->state, hop);
                         sub = sub->next;
                     }
-                    xmlAutomataNewCountedTrans(ctxt->am, hop, start,
-                                               counter);
-                    xmlAutomataNewCounterTrans(ctxt->am, hop, end,
-                                               counter);
+                    xmlAutomataNewEpsilon(pctxt->am, start, base);
+		    xmlAutomataNewCountedTrans(pctxt->am, hop, base, counter);
+                    xmlAutomataNewCounterTrans(pctxt->am, hop, end, counter);
                 }
                 if (particle->minOccurs == 0) {
-                    xmlAutomataNewEpsilon(ctxt->am, start, end);
+                    xmlAutomataNewEpsilon(pctxt->am, start, end);
                 }
-                ctxt->state = end;
+                pctxt->state = end;
                 break;
             }
         case XML_SCHEMA_TYPE_ALL:{
@@ -11304,16 +11793,14 @@
 		sub = (xmlSchemaParticlePtr) particle->children->children;
                 if (sub == NULL)
                     break;
-                start = ctxt->state;
+                start = pctxt->state;
                 while (sub != NULL) {
-                    ctxt->state = start;
+                    pctxt->state = start;
 
 		    elemDecl = (xmlSchemaElementPtr) sub->children;
 		    if (elemDecl == NULL) {
-			xmlSchemaPErr(ctxt, NULL,
-			    XML_SCHEMAP_INTERNAL,
-			    "Internal error: xmlSchemaBuildAContentModel, "
-			    "<element> particle a NULL term.\n", NULL, NULL);
+			PERROR_INT("xmlSchemaBuildAContentModel",
+			    "<element> particle has no term");
 			return;
 		    };
 		    /*
@@ -11322,37 +11809,59 @@
 		    * already ensured during the parse of the content of
 		    * <all>.
 		    */
-                    if ((sub->minOccurs == 1) &&
-			(sub->maxOccurs == 1)) {
-                        xmlAutomataNewOnceTrans2(ctxt->am, ctxt->state,
-                                                ctxt->state,
-						elemDecl->name,
-						elemDecl->targetNamespace,
-						1, 1, elemDecl);
-                    } else if ((sub->minOccurs == 0) &&
-			(sub->maxOccurs == 1)) {
+		    if (elemDecl->flags & XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD) {
+			int counter;
 
-                        xmlAutomataNewCountTrans2(ctxt->am, ctxt->state,
-                                                 ctxt->state,
-						 elemDecl->name,
-						 elemDecl->targetNamespace,
-                                                 0,
-                                                 1,
-                                                 elemDecl);
-                    }
+		        /*
+			 * This is an abstract group, we need to share
+			 * the same counter for all the element transitions
+			 * derived from the group
+			 */
+			counter = xmlAutomataNewCounter(pctxt->am,
+			                   sub->minOccurs, sub->maxOccurs);
+			xmlSchemaBuildContentModelForSubstGroup(pctxt,
+					   sub, counter, pctxt->state);
+		    } else {
+			if ((sub->minOccurs == 1) &&
+			    (sub->maxOccurs == 1)) {
+			    xmlAutomataNewOnceTrans2(pctxt->am, pctxt->state,
+						    pctxt->state,
+						    elemDecl->name,
+						    elemDecl->targetNamespace,
+						    1, 1, elemDecl);
+			} else if ((sub->minOccurs == 0) &&
+			    (sub->maxOccurs == 1)) {
+
+			    xmlAutomataNewCountTrans2(pctxt->am, pctxt->state,
+						     pctxt->state,
+						     elemDecl->name,
+						     elemDecl->targetNamespace,
+						     0,
+						     1,
+						     elemDecl);
+			}
+		    }
                     sub = (xmlSchemaParticlePtr) sub->next;
                 }
                 lax = particle->minOccurs == 0;
-                ctxt->state =
-                    xmlAutomataNewAllTrans(ctxt->am, ctxt->state, NULL, lax);
+                pctxt->state =
+                    xmlAutomataNewAllTrans(pctxt->am, pctxt->state, NULL, lax);
                 break;
             }
+	case XML_SCHEMA_TYPE_GROUP:
+	    /*
+	    * If we hit a model group definition, then this means that
+	    * it was empty, thus was not substituted for the containing
+	    * model group. Just do nothing in this case.
+	    */
+	    break;
         default:
-            xmlGenericError(xmlGenericErrorContext,
-		"Internal error: xmlSchemaBuildAContentModel, found "
-		"unexpected term of type %d in content model of complex "
-		"type '%s'.\n",
-		particle->children->type, name);
+	    xmlSchemaPInternalErr(pctxt, "xmlSchemaBuildAContentModel",
+		"found unexpected term of type '%s' in content model of complex "
+		"type '%s'",
+		xmlSchemaCompTypeToString(particle->children->type), name);
+	    xmlGenericError(xmlGenericErrorContext,
+                    "Unexpected type: %d\n", particle->children->type);
             return;
     }
 }
@@ -12748,7 +13257,7 @@
 			    * declaration}'s {value constraint} .
 			    */
 			    xmlSchemaGetEffectiveValueConstraint(base->attr,
-				&effFixed, &bEffValue, 0);
+				&effFixed, &bEffValue, NULL);
 			    /*
 			    * 2.1.3 ... one of the following must be true
 			    *
@@ -12760,7 +13269,7 @@
 				const xmlChar *rEffValue = NULL;
 				
 				xmlSchemaGetEffectiveValueConstraint(base->attr,
-				    &effFixed, &rEffValue, 0);
+				    &effFixed, &rEffValue, NULL);
 				    /*
 				    * 2.1.3.2 R's ·effective value constraint· is
 				    * fixed with the same string as B's.
@@ -13258,8 +13767,14 @@
 	((item->type != XML_SCHEMA_TYPE_COMPLEX) &&
 	(item->type != XML_SCHEMA_TYPE_SIMPLE)))
 	return;
-    xmlSchemaCheckTypeDefCircularInternal(ctxt, item, item->baseType);
-
+    if (item->redef != NULL) {
+	xmlSchemaTypePtr cur = item;
+	do {
+	    xmlSchemaCheckTypeDefCircularInternal(ctxt, cur, cur->baseType);
+	    cur = cur->redef;
+	} while (cur != NULL);
+    } else
+	xmlSchemaCheckTypeDefCircularInternal(ctxt, item, item->baseType);
 }
 
 /**
@@ -14298,7 +14813,7 @@
     * SPEC (1) "If the {base type definition} is a complex type definition,
     * then all of the following must be true:"
     */
-    if (base->type == XML_SCHEMA_TYPE_COMPLEX) {
+    if (IS_COMPLEX_TYPE(base)) {
 	/*
 	* SPEC (1.1) "The {final} of the {base type definition} must not
 	* contain extension."
@@ -15619,7 +16134,7 @@
 	    res = xmlSchemaCompareValues(fmininc->val, bfmaxinc->val);
 	    if (res == -2)
 		goto internal_error;
-	    if (res == -1) {
+	    if (res == 1) {
 		xmlSchemaDeriveFacetErr(pctxt, fmininc, bfmaxinc, -1, 1, 1);
 	    }
 	}
@@ -16036,7 +16551,7 @@
 		snprintf(buf, 29, "#scST%d", ++(pctxt->counter));
 		tmpname = xmlDictLookup(pctxt->dict, BAD_CAST buf, -1);
 		content = xmlSchemaAddType(pctxt,
-		    pctxt->schema, tmpname, tmpname, type->node);
+		    pctxt->schema, tmpname, tmpname, type->node, 0);
 		if (content == NULL)
 		    return;
 		/*
@@ -18355,8 +18870,6 @@
     return (ret);
 }
 
-#define VAL_CREATE_DICT if (vctxt->dict == NULL) vctxt->dict = xmlDictCreate();
-
 static const xmlChar *
 xmlSchemaLookupNamespace(xmlSchemaValidCtxtPtr vctxt,
 			 const xmlChar *prefix)
@@ -18392,7 +18905,6 @@
 	if (nsName != NULL) {
 	    const xmlChar *ret;
 
-	    VAL_CREATE_DICT;
 	    ret = xmlDictLookup(vctxt->dict, nsName, -1);
 	    xmlFree(nsName);
 	    return (ret);
@@ -18488,6 +19000,34 @@
     return (ret);
 }
 
+static int
+xmlSchemaVAddNodeQName(xmlSchemaValidCtxtPtr vctxt,
+		       const xmlChar* lname,
+		       const xmlChar* nsname)
+{
+    int i;
+
+    lname = xmlDictLookup(vctxt->dict, lname, -1);
+    if (lname == NULL)
+	return(-1);
+    if (nsname != NULL) {
+	nsname = xmlDictLookup(vctxt->dict, nsname, -1);
+	if (nsname == NULL)
+	    return(-1);
+    }
+    for (i = 0; i < vctxt->nodeQNames->nbItems; i += 2) {
+	if ((vctxt->nodeQNames->items [i] == lname) &&
+	    (vctxt->nodeQNames->items[i +1] == nsname))
+	    /* Already there */
+	    return(i);
+    }
+    /* Add new entry. */
+    i = vctxt->nodeQNames->nbItems;
+    xmlSchemaItemListAdd(vctxt->nodeQNames, (void *) lname);
+    xmlSchemaItemListAdd(vctxt->nodeQNames, (void *) nsname);
+    return(i);
+}
+
 /************************************************************************
  * 									*
  *  Validation of identity-constraints (IDC)                            *
@@ -19056,6 +19596,32 @@
 }
 
 /**
+ * xmlSchemaXPathPop:
+ * @vctxt: the WXS validation context
+ *
+ * Pops all XPath states.
+ *
+ * Returns 0 on success and -1 on internal errors.
+ */
+static int
+xmlSchemaXPathPop(xmlSchemaValidCtxtPtr vctxt)
+{
+    xmlSchemaIDCStateObjPtr sto;
+    int res;
+
+    if (vctxt->xpathStates == NULL)
+	return(0);
+    sto = vctxt->xpathStates;
+    do {
+	res = xmlStreamPop((xmlStreamCtxtPtr) sto->xpathCtxt);
+	if (res == -1)
+	    return (-1);
+	sto = sto->next;
+    } while (sto != NULL);
+    return(0);
+}
+
+/**
  * xmlSchemaXPathProcessHistory:
  * @vctxt: the WXS validation context
  * @type: the simple/complex type of the current node if any at all
@@ -19399,7 +19965,7 @@
 		*keySeq = NULL;
 		return(-1);
 	    }	
-	    memset(ntItem, 0, sizeof(xmlSchemaPSVIIDCNode));		
+	    memset(ntItem, 0, sizeof(xmlSchemaPSVIIDCNode));
 	    
 	    /* 
 	    * Store the node-table item on global list.
@@ -19411,11 +19977,27 @@
 		    *keySeq = NULL;
 		    return (-1);
 		}
+		ntItem->nodeQNameID = -1;
+	    } else {
+		/*
+		* Save a cached QName for this node on the IDC node, to be
+		* able to report it, even if the node is not saved.
+		*/
+		ntItem->nodeQNameID = xmlSchemaVAddNodeQName(vctxt,
+		    vctxt->inode->localName, vctxt->inode->nsName);
+		if (ntItem->nodeQNameID == -1) {
+		    xmlFree(ntItem);
+		    xmlFree(*keySeq);
+		    *keySeq = NULL;
+		    return (-1);		    
+		}
 	    }
 	    /*
-	    * Init the node-table item. Consume the key-sequence.
+	    * Init the node-table item: Save the node, position and
+	    * consume the key-sequence.
 	    */
 	    ntItem->node = vctxt->node;
+	    ntItem->nodeLine = vctxt->inode->nodeLine;
 	    ntItem->keys = *keySeq;
 	    *keySeq = NULL;
 	    if (xmlSchemaIDCAppendNodeTableItem(bind, ntItem) == -1) {		    
@@ -19886,6 +20468,7 @@
 	    int i, j, k, res;
 	    xmlSchemaPSVIIDCKeyPtr *refKeys, *keys;
 	    xmlSchemaPSVIIDCKeyPtr refKey, key;
+	    xmlSchemaPSVIIDCNodePtr refNode = NULL;
 
 	    /*
 	    * Find the referred key/unique.
@@ -19903,8 +20486,9 @@
 	    */
 	    for (i = 0; i < refbind->nbNodes; i++) {
 		res = 0;
-		if (bind != NULL) {		    
-		    refKeys = refbind->nodeTable[i]->keys;
+		refNode = refbind->nodeTable[i];
+		if (bind != NULL) {
+		    refKeys = refNode->keys;
 		    for (j = 0; j < bind->nbNodes; j++) {
 			keys = bind->nodeTable[j]->keys;
 			for (k = 0; k < bind->definition->nbFields; k++) {
@@ -19928,9 +20512,8 @@
 		}
 		if (res == 0) {
 		    xmlChar *str = NULL, *strB = NULL;
-		    /* TODO: Report the key-sequence. */
-		    xmlSchemaCustomErr((xmlSchemaAbstractCtxtPtr) vctxt,
-			XML_SCHEMAV_CVC_IDC, NULL,
+		    xmlSchemaKeyrefErr(vctxt,
+			XML_SCHEMAV_CVC_IDC, refNode,
 			(xmlSchemaTypePtr) refbind->definition,
 			"No match found for key-sequence %s of key "
 			"reference '%s'",
@@ -20011,8 +20594,9 @@
 static int
 xmlSchemaValidatorPushAttribute(xmlSchemaValidCtxtPtr vctxt,
 			xmlNodePtr attrNode,
+			int nodeLine,
 			const xmlChar *localName,
-			const xmlChar *nsName,
+			const xmlChar *nsName,			
 			int ownedNames,
 			xmlChar *value,
 			int ownedValue)
@@ -20026,6 +20610,7 @@
 	return (-1);
     }
     attr->node = attrNode;
+    attr->nodeLine = nodeLine;
     attr->state = XML_SCHEMAS_ATTR_UNKNOWN;
     attr->localName = localName;
     attr->nsName = nsName;
@@ -20859,7 +21444,6 @@
 	* string.
 	*/
 	local = xmlSplitQName2(value, &prefix);
-	VAL_CREATE_DICT;
 	if (local == NULL)
 	    *localName = xmlDictLookup(vctxt->dict, value, -1);
 	else {
@@ -21715,7 +22299,8 @@
 		    "calling xmlSchemaXPathEvaluate()");
 		goto internal_error;
 	    }
-	}
+	} else if (vctxt->xpathStates != NULL)
+	    xmlSchemaXPathPop(vctxt);
     }
 
     /*
@@ -21802,41 +22387,6 @@
 	return (-1);
     }
     *skip = 0;
-    if (wild->negNsSet != NULL) {
-	/*
-	* URGENT VAL TODO: Fix the content model to reject
-	* "##other" wildcards.
-	*/
-	if (xmlSchemaCheckCVCWildcardNamespace(wild,
-	    vctxt->inode->nsName) != 0) {
-	    if ((wild->minOccurs == 1) && (wild->maxOccurs == 1)) {
-		xmlSchemaNodeInfoPtr pinode = vctxt->elemInfos[vctxt->depth -1];
-		/*
-		* VAL TODO: Workaround possible *only* if minOccurs and
-		* maxOccurs are 1.
-		*/
-		xmlSchemaComplexTypeErr((xmlSchemaAbstractCtxtPtr) vctxt,
-		    /* VAL TODO: error code? */
-		    XML_SCHEMAV_ELEMENT_CONTENT, NULL,
-		    (xmlSchemaTypePtr) wild,
-		    "This element is not accepted by the wildcard",
-		    0, 0, NULL);
-		vctxt->skipDepth = vctxt->depth;
-		if ((pinode->flags &
-		    XML_SCHEMA_ELEM_INFO_ERR_BAD_CONTENT) == 0)
-		    pinode->flags |= XML_SCHEMA_ELEM_INFO_ERR_BAD_CONTENT;
-		vctxt->inode->flags |= XML_SCHEMA_NODE_INFO_ERR_NOT_EXPECTED;
-		return (XML_SCHEMAV_ELEMENT_CONTENT);
-	    }
-	    if (wild->processContents == XML_SCHEMAS_ANY_SKIP) {
-		*skip = 1;
-		return (0);
-	    }
-	    vctxt->inode->typeDef =
-		xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
-	    return (0);
-	}
-    }
     if (wild->processContents == XML_SCHEMAS_ANY_SKIP) {
 	/*
 	* URGENT VAL TODO: Either we need to position the stream to the
@@ -23179,7 +23729,6 @@
  * 									*
  ************************************************************************/
 
-#ifdef XML_SCHEMA_SAX_ENABLED
 /*
 * Process text content.
 */
@@ -23278,6 +23827,10 @@
 	goto internal_error;
     }
     ielem = vctxt->inode;
+    /*
+    * TODO: Is this OK?
+    */
+    ielem->nodeLine = xmlSAX2GetLineNumber(vctxt->parserCtxt);
     ielem->localName = localname;
     ielem->nsName = URI;
     ielem->flags |= XML_SCHEMA_ELEM_INFO_EMPTY;
@@ -23345,8 +23898,11 @@
 	    */	 
 	    value = xmlStrndup(attributes[j+3],
 		attributes[j+4] - attributes[j+3]);
+	    /*
+	    * TODO: Set the node line.
+	    */
 	    ret = xmlSchemaValidatorPushAttribute(vctxt,
-		NULL, attributes[j], attributes[j+2], 0,
+		NULL, ielem->nodeLine, attributes[j], attributes[j+2], 0,
 		value, 1);
 	    if (ret == -1) {
 		VERROR_INT("xmlSchemaSAXHandleStartElementNs",
@@ -23419,7 +23975,6 @@
     xmlStopParser(vctxt->parserCtxt);
     return;
 }
-#endif
 
 /************************************************************************
  * 									*
@@ -23447,6 +24002,8 @@
     }
     memset(ret, 0, sizeof(xmlSchemaValidCtxt));
     ret->type = XML_SCHEMA_CTXT_VALIDATOR;
+    ret->dict = xmlDictCreate();
+    ret->nodeQNames = xmlSchemaItemListCreate();
     ret->schema = schema;
     return (ret);
 }
@@ -23524,7 +24081,11 @@
 		break;
 	    xmlSchemaClearElemInfo(ei);
 	}
-    }
+    }    
+    xmlSchemaItemListClear(vctxt->nodeQNames);
+    /* Recreate the dict. */
+    xmlDictFree(vctxt->dict);
+    vctxt->dict = xmlDictCreate();
 }
 
 /**
@@ -23602,6 +24163,8 @@
 	}
 	xmlFree(ctxt->elemInfos);
     }
+    if (ctxt->nodeQNames != NULL)
+	xmlSchemaItemListFree(ctxt->nodeQNames);
     if (ctxt->dict != NULL)
 	xmlDictFree(ctxt->dict);
     xmlFree(ctxt);
@@ -23648,6 +24211,26 @@
 }
 
 /**
+ * xmlSchemaSetValidStructuredErrors:
+ * @ctxt:  a schema validation context
+ * @serror:  the structured error function
+ * @ctx: the functions context
+ *
+ * Set the structured error callback
+ */
+void
+xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt,
+								  xmlStructuredErrorFunc serror, void *ctx)
+{
+    if (ctxt == NULL)
+        return;
+	ctxt->serror = serror;
+    ctxt->error = NULL;
+    ctxt->warning = NULL;
+    ctxt->userData = ctx;
+}
+
+/**
  * xmlSchemaGetValidErrors:
  * @ctxt:	a XML-Schema validation context
  * @err: the error function result
@@ -23758,6 +24341,7 @@
 		goto internal_error;
 	    ielem = vctxt->inode;
 	    ielem->node = node;
+	    ielem->nodeLine = node->line;
 	    ielem->localName = node->name;
 	    if (node->ns != NULL)
 		ielem->nsName = node->ns->href;
@@ -23777,6 +24361,11 @@
 			nsName = NULL;
 		    ret = xmlSchemaValidatorPushAttribute(vctxt,
 			(xmlNodePtr) attr,
+			/* 
+			* Note that we give it the line number of the
+			* parent element.
+			*/
+			ielem->nodeLine,
 			attr->name, nsName, 0,
 			xmlNodeListGetString(attr->doc, attr->children, 1), 1);
 		    if (ret == -1) {
@@ -24246,24 +24835,24 @@
  * Varargs error callbacks to the user application, harder ...
  */
 
-static void
-warningSplit(void *ctx, const char *msg, ...) {
+static void XMLCDECL
+warningSplit(void *ctx, const char *msg ATTRIBUTE_UNUSED, ...) {
     xmlSchemaSAXPlugPtr ctxt = (xmlSchemaSAXPlugPtr) ctx;
     if ((ctxt != NULL) && (ctxt->user_sax != NULL) &&
         (ctxt->user_sax->warning != NULL)) {
 	TODO
     }
 }
-static void
-errorSplit(void *ctx, const char *msg, ...) {
+static void XMLCDECL
+errorSplit(void *ctx, const char *msg ATTRIBUTE_UNUSED, ...) {
     xmlSchemaSAXPlugPtr ctxt = (xmlSchemaSAXPlugPtr) ctx;
     if ((ctxt != NULL) && (ctxt->user_sax != NULL) &&
         (ctxt->user_sax->error != NULL)) {
 	TODO
     }
 }
-static void
-fatalErrorSplit(void *ctx, const char *msg, ...) {
+static void XMLCDECL
+fatalErrorSplit(void *ctx, const char *msg ATTRIBUTE_UNUSED, ...) {
     xmlSchemaSAXPlugPtr ctxt = (xmlSchemaSAXPlugPtr) ctx;
     if ((ctxt != NULL) && (ctxt->user_sax != NULL) &&
         (ctxt->user_sax->fatalError != NULL)) {
@@ -24643,7 +25232,6 @@
                       const char * filename,
 		      int options ATTRIBUTE_UNUSED)
 {
-#ifdef XML_SCHEMA_SAX_ENABLED
     int ret;
     xmlParserInputBufferPtr input;
 
@@ -24657,9 +25245,6 @@
     ret = xmlSchemaValidateStream(ctxt, input, XML_CHAR_ENCODING_NONE,
 	NULL, NULL);    
     return (ret);
-#else
-    return (-1);
-#endif /* XML_SCHEMA_SAX_ENABLED */
 }
 
 #define bottom_xmlschemas

Modified: packages/libxml2/trunk/xmlschemastypes.c
===================================================================
--- packages/libxml2/trunk/xmlschemastypes.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlschemastypes.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -319,6 +319,63 @@
 }
 
 /*
+* WARNING: Those type reside normally in xmlschemas.c but are
+* redefined here locally in oder of being able to use them for xs:anyType-
+* TODO: Remove those definition if we move the types to a header file.
+* TODO: Always keep those structs up-to-date with the originals.
+*/
+#define UNBOUNDED (1 << 30)
+
+typedef struct _xmlSchemaTreeItem xmlSchemaTreeItem;
+typedef xmlSchemaTreeItem *xmlSchemaTreeItemPtr;
+struct _xmlSchemaTreeItem {
+    xmlSchemaTypeType type;
+    xmlSchemaAnnotPtr annot;
+    xmlSchemaTreeItemPtr next;
+    xmlSchemaTreeItemPtr children;
+};
+
+typedef struct _xmlSchemaParticle xmlSchemaParticle;
+typedef xmlSchemaParticle *xmlSchemaParticlePtr;
+struct _xmlSchemaParticle {
+    xmlSchemaTypeType type;
+    xmlSchemaAnnotPtr annot;
+    xmlSchemaTreeItemPtr next;
+    xmlSchemaTreeItemPtr children;
+    int minOccurs;
+    int maxOccurs;
+    xmlNodePtr node;
+};
+
+typedef struct _xmlSchemaModelGroup xmlSchemaModelGroup;
+typedef xmlSchemaModelGroup *xmlSchemaModelGroupPtr;
+struct _xmlSchemaModelGroup {
+    xmlSchemaTypeType type;
+    xmlSchemaAnnotPtr annot;
+    xmlSchemaTreeItemPtr next;
+    xmlSchemaTreeItemPtr children;
+    xmlNodePtr node;
+};
+
+static xmlSchemaParticlePtr
+xmlSchemaAddParticle(void)
+{
+    xmlSchemaParticlePtr ret = NULL;
+
+    ret = (xmlSchemaParticlePtr)
+	xmlMalloc(sizeof(xmlSchemaParticle));
+    if (ret == NULL) {
+	xmlSchemaTypeErrMemory(NULL, "allocating particle component");
+	return (NULL);
+    }
+    memset(ret, 0, sizeof(xmlSchemaParticle));
+    ret->type = XML_SCHEMA_TYPE_PARTICLE;
+    ret->minOccurs = 1;
+    ret->maxOccurs = 1;
+    return (ret);
+}
+
+/*
  * xmlSchemaInitTypes:
  *
  * Initialize the default XML Schemas type library
@@ -339,16 +396,60 @@
 						     NULL);
     xmlSchemaTypeAnyTypeDef->baseType = xmlSchemaTypeAnyTypeDef;
     xmlSchemaTypeAnyTypeDef->contentType = XML_SCHEMA_CONTENT_MIXED;
+    /*
+    * Init the content type.
+    */
+    xmlSchemaTypeAnyTypeDef->contentType = XML_SCHEMA_CONTENT_MIXED;    
     {
+	xmlSchemaParticlePtr particle;
+	xmlSchemaModelGroupPtr sequence;
 	xmlSchemaWildcardPtr wild;
-
+	/* First particle. */
+	particle = xmlSchemaAddParticle();
+	if (particle == NULL)
+	    return;
+	xmlSchemaTypeAnyTypeDef->subtypes = (xmlSchemaTypePtr) particle;
+	/* Sequence model group. */
+	sequence = (xmlSchemaModelGroupPtr)
+	    xmlMalloc(sizeof(xmlSchemaModelGroup));
+	if (sequence == NULL) {
+	    xmlSchemaTypeErrMemory(NULL, "allocating model group component");
+	    return;
+	}
+	memset(sequence, 0, sizeof(xmlSchemaModelGroup));
+	sequence->type = XML_SCHEMA_TYPE_SEQUENCE;	
+	particle->children = (xmlSchemaTreeItemPtr) sequence;
+	/* Second particle. */
+	particle = xmlSchemaAddParticle();
+	if (particle == NULL)
+	    return;
+	particle->minOccurs = 0;
+	particle->maxOccurs = UNBOUNDED;
+	sequence->children = (xmlSchemaTreeItemPtr) particle;
+	/* The wildcard */
 	wild = (xmlSchemaWildcardPtr) xmlMalloc(sizeof(xmlSchemaWildcard));
 	if (wild == NULL) {
-	    xmlSchemaTypeErrMemory(NULL, "could not create an attribute wildcard on anyType");
+	    xmlSchemaTypeErrMemory(NULL, "allocating wildcard component");
 	    return;
 	}
 	memset(wild, 0, sizeof(xmlSchemaWildcard));
+	wild->type = XML_SCHEMA_TYPE_ANY;
 	wild->any = 1;
+	wild->minOccurs = 1;
+	wild->maxOccurs = 1;
+	wild->processContents = XML_SCHEMAS_ANY_LAX;	
+	particle->children = (xmlSchemaTreeItemPtr) wild;    
+	/*
+	* Create the attribute wildcard.
+	*/
+	wild = (xmlSchemaWildcardPtr) xmlMalloc(sizeof(xmlSchemaWildcard));
+	if (wild == NULL) {
+	    xmlSchemaTypeErrMemory(NULL, "could not create an attribute "
+		"wildcard on anyType");
+	    return;
+	}
+	memset(wild, 0, sizeof(xmlSchemaWildcard));
+	wild->any = 1;
 	wild->processContents = XML_SCHEMAS_ANY_LAX;
 	wild->minOccurs = 1;
 	wild->maxOccurs = 1;
@@ -519,7 +620,24 @@
 xmlSchemaCleanupTypes(void) {
     if (xmlSchemaTypesInitialized == 0)
 	return;
-    xmlSchemaFreeWildcard(xmlSchemaTypeAnyTypeDef->attributeWildcard);
+    /*
+    * Free xs:anyType.
+    */
+    {
+	xmlSchemaParticlePtr particle;
+	/* Attribute wildcard. */
+	xmlSchemaFreeWildcard(xmlSchemaTypeAnyTypeDef->attributeWildcard);
+	/* Content type. */
+	particle = (xmlSchemaParticlePtr) xmlSchemaTypeAnyTypeDef->subtypes;
+	/* Wildcard. */
+	xmlSchemaFreeWildcard((xmlSchemaWildcardPtr) 
+	    particle->children->children->children);
+	xmlFree((xmlSchemaParticlePtr) particle->children->children);
+	/* Sequence model group. */
+	xmlFree((xmlSchemaModelGroupPtr) particle->children);
+	xmlFree((xmlSchemaParticlePtr) particle);
+	xmlSchemaTypeAnyTypeDef->subtypes = NULL;	
+    }
     xmlHashFree(xmlSchemaTypesBank, (xmlHashDeallocator) xmlSchemaFreeType);
     xmlSchemaTypesInitialized = 0;
 }
@@ -2133,7 +2251,7 @@
                 unsigned int len, neg = 0;
 		xmlChar cval[25];
 		xmlChar *cptr = cval;
-		int dec = -1;
+		unsigned int dec = ~0u;
 
                 if (cur == NULL)
                     goto return1;
@@ -2166,7 +2284,9 @@
 			    *cptr++ = *cur++;
 			    len++;
 			} else if (*cur == '.') {
-			    if (dec != -1)
+			    if (len == 0)
+			        len++;
+			    if (dec != ~0u)
 				goto return1;	/* multiple decimal points */
 			    cur++;
 			    if ((*cur == 0) && (cur -1 == value))
@@ -2193,8 +2313,8 @@
 			/*
 		 	* If a mixed decimal, get rid of trailing zeroes
 		 	*/
-			if (dec != -1) {
-			    while ((len > dec) && (cptr > cval) &&
+			if (dec != ~0u) {
+			    while ((len > dec) && (cptr > cval) &&
 				(*(cptr-1) == '0')) {
 				cptr--;
 				len--;
@@ -2216,7 +2336,7 @@
 			if (len == 0)
 			    len++;
                         v->value.decimal.sign = neg;
-			if (dec == -1) {
+			if (dec == ~0u) {
 			    v->value.decimal.frac = 0;
 			    v->value.decimal.total = len;
 			} else {
@@ -4685,6 +4805,8 @@
                         return(1);
                     else if (ret == 0)
                         return(0);
+		    else
+		        return(-1);
                 }
                 else if (x->value.base64.total > y->value.base64.total)
                     return(1);

Modified: packages/libxml2/trunk/xmlstring.c
===================================================================
--- packages/libxml2/trunk/xmlstring.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlstring.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -533,7 +533,7 @@
  *
  * Returns the number of characters written to @buf or -1 if an error occurs.
  */
-int 
+int XMLCDECL 
 xmlStrPrintf(xmlChar *buf, int len, const xmlChar *msg, ...) {
     va_list args;
     int ret;

Modified: packages/libxml2/trunk/xmlunicode.c
===================================================================
--- packages/libxml2/trunk/xmlunicode.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlunicode.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -926,8 +926,8 @@
     {0x205f, 0x205f}, {0x3000, 0x3000} };
 static xmlChRangeGroup xmlZG = {9,0,xmlZS,NULL};
 
-xmlUnicodeNameTable xmlUnicodeBlockTbl = {xmlUnicodeBlocks, 128};
-xmlUnicodeNameTable xmlUnicodeCatTbl = {xmlUnicodeCats, 36};
+static xmlUnicodeNameTable xmlUnicodeBlockTbl = {xmlUnicodeBlocks, 128};
+static xmlUnicodeNameTable xmlUnicodeCatTbl = {xmlUnicodeCats, 36};
 
 /**
  * xmlUnicodeLookup:

Modified: packages/libxml2/trunk/xmlwriter.c
===================================================================
--- packages/libxml2/trunk/xmlwriter.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xmlwriter.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -739,7 +739,7 @@
         return -1;
     }
 
-    p->name = 0;
+    p->name = NULL;
     p->state = XML_TEXTWRITER_COMMENT;
 
     xmlListPushFront(writer->nodes, p);
@@ -825,7 +825,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
                                 const char *format, ...)
 {
@@ -1018,7 +1018,7 @@
     if ((writer == NULL) || (name == NULL) || (*name == '\0'))
         return -1;
 
-    buf = 0;
+    buf = NULL;
     if (prefix != 0) {
         buf = xmlStrdup(prefix);
         buf = xmlStrcat(buf, BAD_CAST ":");
@@ -1200,7 +1200,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer, const char *format,
                             ...)
 {
@@ -1326,7 +1326,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatString(xmlTextWriterPtr writer, const char *format,
                                ...)
 {
@@ -1745,7 +1745,7 @@
     if ((writer == NULL) || (name == NULL) || (*name == '\0'))
         return -1;
 
-    buf = 0;
+    buf = NULL;
     if (prefix != 0) {
         buf = xmlStrdup(prefix);
         buf = xmlStrcat(buf, BAD_CAST ":");
@@ -1887,7 +1887,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
                                   const xmlChar * name, const char *format,
                                   ...)
@@ -1982,7 +1982,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
                                     const xmlChar * prefix,
                                     const xmlChar * name,
@@ -2063,7 +2063,7 @@
     if ((writer == NULL) || (name == NULL) || (*name == '\0'))
         return -1;
 
-    buf = 0;
+    buf = NULL;
     if (prefix != NULL) {
         buf = xmlStrdup(prefix);
         buf = xmlStrcat(buf, BAD_CAST ":");
@@ -2078,7 +2078,7 @@
     sum += count;
 
     if (namespaceURI != NULL) {
-        buf = 0;
+        buf = NULL;
         buf = xmlStrdup(BAD_CAST "xmlns");
         if (prefix != NULL) {
             buf = xmlStrcat(buf, BAD_CAST ":");
@@ -2104,7 +2104,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
                                 const xmlChar * name, const char *format,
                                 ...)
@@ -2199,7 +2199,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
                                   const xmlChar * prefix,
                                   const xmlChar * name,
@@ -2444,7 +2444,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer, const xmlChar * target,
                            const char *format, ...)
 {
@@ -2587,7 +2587,7 @@
         return -1;
     }
 
-    p->name = 0;
+    p->name = NULL;
     p->state = XML_TEXTWRITER_CDATA;
 
     xmlListPushFront(writer->nodes, p);
@@ -2653,7 +2653,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer, const char *format,
                               ...)
 {
@@ -2959,7 +2959,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
                             const xmlChar * name,
                             const xmlChar * pubid,
@@ -3203,7 +3203,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
                                    const xmlChar * name,
                                    const char *format, ...)
@@ -3440,7 +3440,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
                                    const xmlChar * name,
                                    const char *format, ...)
@@ -3697,7 +3697,7 @@
  *
  * Returns the bytes written (may be 0 because of buffering) or -1 in case of error
  */
-int
+int XMLCDECL
 xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
                                           int pe,
                                           const xmlChar * name,

Modified: packages/libxml2/trunk/xpath.c
===================================================================
--- packages/libxml2/trunk/xpath.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xpath.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -89,7 +89,7 @@
 double xmlXPathNAN = 0;
 double xmlXPathPINF = 1;
 double xmlXPathNINF = -1;
-double xmlXPathNZERO = 0;
+static double xmlXPathNZERO = 0; /* not exported from headers */
 static int xmlXPathInitialized = 0;
 
 /**
@@ -189,6 +189,15 @@
  *									*
  ************************************************************************/
 
+/**
+ * XP_ERRORNULL:
+ * @X:  the error code
+ *
+ * Macro to raise an XPath error and return NULL.
+ */
+#define XP_ERRORNULL(X)							\
+    { xmlXPathErr(ctxt, X); return(NULL); }
+
 /*
  * The array xmlXPathErrorMessages corresponds to the enum xmlXPathError
  */
@@ -1116,20 +1125,20 @@
  *
  * Returns the XPath object just removed
  */
-extern xmlXPathObjectPtr
+xmlXPathObjectPtr
 valuePop(xmlXPathParserContextPtr ctxt)
 {
     xmlXPathObjectPtr ret;
 
     if ((ctxt == NULL) || (ctxt->valueNr <= 0))
-        return (0);
+        return (NULL);
     ctxt->valueNr--;
     if (ctxt->valueNr > 0)
         ctxt->value = ctxt->valueTab[ctxt->valueNr - 1];
     else
         ctxt->value = NULL;
     ret = ctxt->valueTab[ctxt->valueNr];
-    ctxt->valueTab[ctxt->valueNr] = 0;
+    ctxt->valueTab[ctxt->valueNr] = NULL;
     return (ret);
 }
 /**
@@ -1141,7 +1150,7 @@
  *
  * returns the number of items on the value stack
  */
-extern int
+int
 valuePush(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr value)
 {
     if ((ctxt == NULL) || (value == NULL)) return(-1);
@@ -1391,26 +1400,17 @@
 	} else if (number == ((int) number)) {
 	    char work[30];
 	    char *ptr, *cur;
-	    int res, value = (int) number;
+	    int value = (int) number;
 
             ptr = &buffer[0];
-	    if (value < 0) {
-		*ptr++ = '-';
-		value = -value;
-	    }
 	    if (value == 0) {
 		*ptr++ = '0';
 	    } else {
+		snprintf(work, 29, "%d", value);
 		cur = &work[0];
-		while (value != 0) {
-		    res = value % 10;
-		    value = value / 10;
-		    *cur++ = '0' + res;
+		while ((*cur) && (ptr - buffer < buffersize)) {
+		    *ptr++ = *cur++;
 		}
-		cur--;
-		while ((cur >= &work[0]) && (ptr - buffer < buffersize)) {
-		    *ptr++ = *cur--;
-		}
 	    }
 	    if (ptr - buffer < buffersize) {
 		*ptr = 0;
@@ -4577,6 +4577,9 @@
 			ret = 1;
 			break;
 		    }
+		} else {	/* NaN is unequal to any value */
+		    if (neq)
+			ret = 1;
 		}
 	    }
 	}
@@ -7571,7 +7574,7 @@
 	    
 	    buffer = (xmlChar *) xmlMallocAtomic(max * sizeof(xmlChar));
 	    if (buffer == NULL) {
-		XP_ERROR0(XPATH_MEMORY_ERROR);
+		XP_ERRORNULL(XPATH_MEMORY_ERROR);
 	    }
 	    memcpy(buffer, buf, len);
 	    while ((IS_LETTER(c)) || (IS_DIGIT(c)) || /* test bigname.xml */
@@ -7584,7 +7587,7 @@
 		    buffer = (xmlChar *) xmlRealloc(buffer,
 			                            max * sizeof(xmlChar));
 		    if (buffer == NULL) {
-			XP_ERROR0(XPATH_MEMORY_ERROR);
+			XP_ERRORNULL(XPATH_MEMORY_ERROR);
 		    }
 		}
 		COPY_BUF(l,buffer,len,c);
@@ -7820,7 +7823,7 @@
 	while ((IS_CHAR_CH(CUR)) && (CUR != '"'))
 	    NEXT;
 	if (!IS_CHAR_CH(CUR)) {
-	    XP_ERROR0(XPATH_UNFINISHED_LITERAL_ERROR);
+	    XP_ERRORNULL(XPATH_UNFINISHED_LITERAL_ERROR);
 	} else {
 	    ret = xmlStrndup(q, CUR_PTR - q);
 	    NEXT;
@@ -7831,13 +7834,13 @@
 	while ((IS_CHAR_CH(CUR)) && (CUR != '\''))
 	    NEXT;
 	if (!IS_CHAR_CH(CUR)) {
-	    XP_ERROR0(XPATH_UNFINISHED_LITERAL_ERROR);
+	    XP_ERRORNULL(XPATH_UNFINISHED_LITERAL_ERROR);
 	} else {
 	    ret = xmlStrndup(q, CUR_PTR - q);
 	    NEXT;
         }
     } else {
-	XP_ERROR0(XPATH_START_LITERAL_ERROR);
+	XP_ERRORNULL(XPATH_START_LITERAL_ERROR);
     }
     return(ret);
 }
@@ -7924,6 +7927,9 @@
     PUSH_LONG_EXPR(XPATH_OP_VARIABLE, 0, 0, 0,
 	           name, prefix);
     SKIP_BLANKS;
+    if ((ctxt->context != NULL) && (ctxt->context->flags & XML_XPATH_NOVAR)) {
+	XP_ERROR(XPATH_UNDEF_VARIABLE_ERROR);
+    }
 }
 
 /**
@@ -8647,7 +8653,7 @@
     if (name == NULL)
 	name = xmlXPathParseNCName(ctxt);
     if (name == NULL) {
-	XP_ERROR0(XPATH_EXPR_ERROR);
+	XP_ERRORNULL(XPATH_EXPR_ERROR);
     }
 
     blanks = IS_BLANK_CH(CUR);
@@ -8668,7 +8674,7 @@
 	else {
 	    if (name != NULL)
 		xmlFree(name);
-	    XP_ERROR0(XPATH_EXPR_ERROR);
+	    XP_ERRORNULL(XPATH_EXPR_ERROR);
 	}
 
 	*test = NODE_TEST_TYPE;
@@ -8683,7 +8689,7 @@
 	    name = NULL;
 	    if (CUR != ')') {
 		name = xmlXPathParseLiteral(ctxt);
-		CHECK_ERROR 0;
+		CHECK_ERROR NULL;
 		*test = NODE_TEST_PI;
 		SKIP_BLANKS;
 	    }
@@ -8691,7 +8697,7 @@
 	if (CUR != ')') {
 	    if (name != NULL)
 		xmlFree(name);
-	    XP_ERROR0(XPATH_UNCLOSED_ERROR);
+	    XP_ERRORNULL(XPATH_UNCLOSED_ERROR);
 	}
 	NEXT;
 	return(name);
@@ -8729,7 +8735,7 @@
 
 	name = xmlXPathParseNCName(ctxt);
 	if (name == NULL) {
-	    XP_ERROR0(XPATH_EXPR_ERROR);
+	    XP_ERRORNULL(XPATH_EXPR_ERROR);
 	}
     }
     return(name);
@@ -8919,10 +8925,18 @@
 
 	CHECK_ERROR;
 
+	type = (xmlXPathTypeVal) 0;
+	test = (xmlXPathTestVal) 0;
 	name = xmlXPathCompNodeTest(ctxt, &test, &type, &prefix, name);
 	if (test == 0)
 	    return;
 
+        if ((prefix != NULL) && (ctxt->context != NULL) &&
+	    (ctxt->context->flags & XML_XPATH_CHECKNS)) {
+	    if (xmlXPathNsLookup(ctxt->context, prefix) == NULL) {
+		xmlXPathErr(ctxt, XPATH_UNDEF_PREFIX_ERROR);
+	    }
+	}
 #ifdef DEBUG_STEP
 	xmlGenericError(xmlGenericErrorContext,
 		"Basis : computing new set\n");
@@ -10983,7 +10997,7 @@
  */
 static xmlXPathObjectPtr
 xmlXPathRunStreamEval(xmlXPathContextPtr ctxt, xmlPatternPtr comp) {
-    int max_depth;
+    int max_depth, min_depth;
     int from_root;
     int ret, depth;
     xmlNodePtr cur = NULL, limit = NULL;
@@ -10999,6 +11013,9 @@
         return(NULL);
     if (max_depth == -2)
         max_depth = 10000;
+    min_depth = xmlPatternMinDepth(comp);
+    if (min_depth == -1)
+        return(NULL);
     from_root = xmlPatternFromRoot(comp);
     if (from_root < 0)
         return(NULL);
@@ -11010,13 +11027,20 @@
     if (retval == NULL)
         return(NULL);
     
-    if ((from_root) && (max_depth == 0)) {
-	xmlXPathNodeSetAddUnique(retval->nodesetval, (xmlNodePtr) ctxt->doc);
+    /*
+     * handle the special cases of / amd . being matched
+     */
+    if (min_depth == 0) {
+	if (from_root) {
+	    xmlXPathNodeSetAddUnique(retval->nodesetval, (xmlNodePtr) ctxt->doc);
+	} else {
+	    xmlXPathNodeSetAddUnique(retval->nodesetval, ctxt->node);
+	}
+    }
+    if (max_depth == 0) {
 	return(retval);
-    } else if (max_depth == 0) {
-	xmlXPathNodeSetAddUnique(retval->nodesetval, ctxt->node);
-	return(retval);
     }
+
     if (from_root) {
         cur = (xmlNodePtr)ctxt->doc;
     } else if (ctxt->node != NULL) {
@@ -11381,7 +11405,7 @@
     if( pctxt->error != XPATH_EXPRESSION_OK )
     {
         xmlXPathFreeParserContext(pctxt);
-        return (0);
+        return(NULL);
     }
 
     if (*pctxt->cur != 0) {

Modified: packages/libxml2/trunk/xpointer.c
===================================================================
--- packages/libxml2/trunk/xpointer.c	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xpointer.c	2005-09-05 17:42:20 UTC (rev 466)
@@ -2412,7 +2412,7 @@
 	if (pos + bytes >= len) {
 	    bytes -= (len - pos);
 	    cur = xmlXPtrAdvanceNode(cur, NULL);
-	    cur = 0;
+	    pos = 0;
 	} else if (pos + bytes < len) {
 	    pos += bytes;
 	    *node = cur;

Modified: packages/libxml2/trunk/xstc/Makefile.in
===================================================================
--- packages/libxml2/trunk/xstc/Makefile.in	2005-09-05 17:11:44 UTC (rev 465)
+++ packages/libxml2/trunk/xstc/Makefile.in	2005-09-05 17:42:20 UTC (rev 466)
@@ -154,6 +154,7 @@
 TEST_REGEXPS = @TEST_REGEXPS@
 TEST_SAX = @TEST_SAX@
 TEST_SCHEMAS = @TEST_SCHEMAS@
+TEST_SCHEMATRON = @TEST_SCHEMATRON@
 TEST_THREADS = @TEST_THREADS@
 TEST_VALID = @TEST_VALID@
 TEST_VTIME = @TEST_VTIME@
@@ -189,6 +190,7 @@
 WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
 WITH_SAX1 = @WITH_SAX1@
 WITH_SCHEMAS = @WITH_SCHEMAS@
+WITH_SCHEMATRON = @WITH_SCHEMATRON@
 WITH_THREADS = @WITH_THREADS@
 WITH_TREE = @WITH_TREE@
 WITH_TRIO = @WITH_TRIO@




More information about the debian-xml-sgml-commit mailing list