preparing 2.4.17 release updated and rebuilt the docs fixed a comment
* configure.in: preparing 2.4.17 release
* doc/*: updated and rebuilt the docs
* xpath.c: fixed a comment
* python/libxml.c: fixed a possible reentrancy problem
Daniel
diff --git a/doc/xml.html b/doc/xml.html
index f3062be..7fd713d 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -3,7 +3,7 @@
<html>
<head>
<title>The XML C library for Gnome</title>
- <meta name="GENERATOR" content="amaya V5.0">
+ <meta name="GENERATOR" content="amaya 5.1">
<meta http-equiv="Content-Type" content="text/html">
</head>
@@ -32,8 +32,8 @@
href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></li>
<li>XML Base: <a
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a></li>
- <li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a>
- : Uniform Resource Identifiers <a
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a> :
+ Uniform Resource Identifiers <a
href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a></li>
<li>XML Path Language (XPath) 1.0: <a
href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath</a></li>
@@ -64,10 +64,10 @@
href="http://www.w3.org/TR/DOM-Level-2-Core/">http://www.w3.org/TR/DOM-Level-2-Core/</a>
it doesn't implement the API itself, gdome2 does this in top of
libxml2</li>
- <li><a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC 959</a>
- : libxml implements a basic FTP client code</li>
- <li><a href="http://www.cis.ohio-state.edu/rfc/rfc1945.txt">RFC 1945</a>
- : HTTP/1.0, again a basic HTTP client code</li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC 959</a> :
+ libxml implements a basic FTP client code</li>
+ <li><a href="http://www.cis.ohio-state.edu/rfc/rfc1945.txt">RFC 1945</a> :
+ HTTP/1.0, again a basic HTTP client code</li>
<li>SAX: a minimal SAX implementation compatible with early expat
versions</li>
<li>DocBook SGML v4: libxml2 includes a hackish parser to transition to
@@ -80,11 +80,10 @@
<p>Separate documents:</p>
<ul>
- <li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a>
- providing an implementation of XSLT 1.0 and extensions on top of
- libxml2</li>
+ <li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a> providing an
+ implementation of XSLT 1.0 and extensions on top of libxml2</li>
<li><a href="http://www.cs.unibo.it/~casarini/gdome2/">the gdome2 page</a>
- : a standard DOM2 implementation based on libxml2</li>
+ : a standard DOM2 implementation based on libxml2</li>
</ul>
<h2><a name="Introducti">Introduction</a></h2>
@@ -158,8 +157,7 @@
<li>Unless you are forced to because your application links with a Gnome
library requiring it, <strong><span style="background-color: #FF0000">Do
Not Use libxml1</span></strong>, use libxml2</li>
- <li><em>Where can I get libxml</em>
- ?
+ <li><em>Where can I get libxml</em> ?
<p>The original distribution comes from <a
href="ftp://rpmfind.net/pub/libxml/">rpmfind.net</a> or <a
href="ftp://ftp.gnome.org/pub/GNOME/stable/sources/libxml/">gnome.org</a></p>
@@ -228,8 +226,8 @@
<p>However if found at configuration time libxml will detect and use the
following libs:</p>
<ul>
- <li><a href="http://www.info-zip.org/pub/infozip/zlib/">libz</a>
- : a highly portable and available widely compression library</li>
+ <li><a href="http://www.info-zip.org/pub/infozip/zlib/">libz</a> : a
+ highly portable and available widely compression library</li>
<li>iconv: a powerful character encoding conversion library. It's
included by default on recent glibc libraries, so it doesn't need to
be installed specifically on linux. It seems it's now <a
@@ -351,9 +349,8 @@
</li>
<li><a
href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=gnome-xml">Browse
- the libxml source</a>
- , I try to write code as clean and documented as possible, so
- looking at it may be helpful</li>
+ the libxml source</a> , I try to write code as clean and documented
+ as possible, so looking at it may be helpful</li>
</ul>
</li>
<li>What about C++ ?
@@ -401,8 +398,7 @@
internationalization support</a></li>
<li>This page provides a global overview and <a href="example.html">some
examples</a> on how to use libxml.</li>
- <li><a href="mailto:james@daa.com.au">James Henstridge</a>
- wrote <a
+ <li><a href="mailto:james@daa.com.au">James Henstridge</a> wrote <a
href="http://www.daa.com.au/~james/gnome/xml-sax/xml-sax.html">some nice
documentation</a> explaining how to use the libxml SAX interface.</li>
<li>George Lebl wrote <a
@@ -546,12 +542,17 @@
<p>Items floating around but not actively worked on, get in touch with me if
you want to test those</p>
<ul>
- <li>Implementing <a href="http://xmlsoft.org/XSLT">XSLT</a>, this is done
- as a separate C library on top of libxml called libxslt</li>
<li>Finishing up <a href="http://www.w3.org/TR/xptr">XPointer</a> and <a
href="http://www.w3.org/TR/xinclude">XInclude</a></li>
- <li>(seeems working but delayed from release) parsing/import of Docbook
- SGML docs</li>
+</ul>
+
+<h3>2.4.17: Mar 8 2002</h3>
+<ul>
+ <li>a lot of bug fixes, including "namespace nodes have no parents in
+ XPath"</li>
+ <li>fixed/improved the Python wrappers, added more examples and more
+ regression tests, XPath extension functions can now return node-sets</li>
+ <li>added the XML Canonalization support from Aleksey Sanin</li>
</ul>
<h3>2.4.16: Feb 20 2002</h3>
@@ -1314,8 +1315,8 @@
order to get updates to this list or to discuss the specific topic of libxml2
or libxslt wrappers or bindings:</p>
<ul>
- <li><a href="mailto:ari@lusis.org">Ari Johnson</a>
- provides a C++ wrapper for libxml:<br>
+ <li><a href="mailto:ari@lusis.org">Ari Johnson</a> provides a C++ wrapper
+ for libxml:<br>
Website: <a
href="http://lusis.org/~ari/xml++/">http://lusis.org/~ari/xml++/</a><br>
Download: <a
@@ -1324,12 +1325,12 @@
based on the gdome2 </a>bindings maintained by Tobias Peters.</li>
<li><a
href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">Matt
- Sergeant</a>
- developped <a href="http://axkit.org/download/">XML::LibXSLT</a>, a perl
- wrapper for libxml2/libxslt as part of the <a
- href="http://axkit.com/">AxKit XML application server</a></li>
- <li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a>
- provides and earlier version of the libxml/libxslt <a
+ Sergeant</a> developped <a
+ href="http://axkit.org/download/">XML::LibXSLT</a>, a perl wrapper for
+ libxml2/libxslt as part of the <a href="http://axkit.com/">AxKit XML
+ application server</a></li>
+ <li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a> provides and
+ earlier version of the libxml/libxslt <a
href="http://www.rexx.com/~dkuhlman">wrappers for Python</a></li>
<li>Petr Kozelka provides <a
href="http://sourceforge.net/projects/libxml2-pas">Pascal units to glue
@@ -1339,31 +1340,33 @@
libxml2 bindings are also available in Ruby through the <a
href="http://libgdome-ruby.berlios.de/">libgdome-ruby</a> module
maintained by Tobias Peters.</li>
- <li>Steve Ball and contributors maintains
- <a href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
- Tcl</a>
- <li>There is support for libxml2 in the DOM module of PHP.
+ <li>Steve Ball and contributors maintains <a
+ href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
+ Tcl</a></li>
+ <li>There is support for libxml2 in the DOM module of PHP.</li>
</ul>
<p>The distribution includes a set of Python bindings, which are garanteed to
be maintained as part of the library in the future, though the Python
interface have not yet reached the maturity of the C API.</p>
-<p>To install the Python bindings there are 2 options:
+
+<p>To install the Python bindings there are 2 options:</p>
<ul>
-<li> If you use an RPM based distribution, simply install the
-<a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-python"
->libxml2-python RPM</a> (and if needed the
-<a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxslt-python"
->libxslt-python RPM</a>).
-<li> Otherwise use the <a href="ftp://xmlsoft.org/python/">libxml2-python
-module distribution</a> corresponding to your installed version of libxml2
-and libxslt. Note that to install it you will need both libxml2 and libxslt
-installed and run "python setup.py build install" in the module tree.
+ <li>If you use an RPM based distribution, simply install the <a
+ href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-python">libxml2-python
+ RPM</a> (and if needed the <a
+ href="http://rpmfind.net/linux/rpm2html/search.php?query=libxslt-python">libxslt-python
+ RPM</a>).</li>
+ <li>Otherwise use the <a href="ftp://xmlsoft.org/python/">libxml2-python
+ module distribution</a> corresponding to your installed version of
+ libxml2 and libxslt. Note that to install it you will need both libxml2
+ and libxslt installed and run "python setup.py build install" in the
+ module tree.</li>
</ul>
-<p>The distribution
-includes a set of examples and regression tests for the python bindings in
-the <code>python/tests</code> directory. Here are some excepts from those
-tests:</p>
+
+<p>The distribution includes a set of examples and regression tests for the
+python bindings in the <code>python/tests</code> directory. Here are some
+excepts from those tests:</p>
<h3>tst.py:</h3>
@@ -1389,18 +1392,15 @@
prefix is removed and the casing convention are kept). All node seen at the
binding level share the same subset of accesors:</p>
<ul>
- <li><code>name</code>
- : returns the node name</li>
- <li><code>type</code>
- : returns a string indicating the node typ<code>e</code></li>
- <li><code>content</code>
- : returns the content of the node, it is based on xmlNodeGetContent() and
- hence is recursive.</li>
- <li><code>parent</code>
- , <code>children</code>, <code>last</code>, <code>next</code>,
- <code>prev</code>, <code>doc</code>, <code>properties</code>: pointing to
- the associated element in the tree, those may return None in case no such
- link exists.</li>
+ <li><code>name</code> : returns the node name</li>
+ <li><code>type</code> : returns a string indicating the node
+ typ<code>e</code></li>
+ <li><code>content</code> : returns the content of the node, it is based on
+ xmlNodeGetContent() and hence is recursive.</li>
+ <li><code>parent</code> , <code>children</code>, <code>last</code>,
+ <code>next</code>, <code>prev</code>, <code>doc</code>,
+ <code>properties</code>: pointing to the associated element in the tree,
+ those may return None in case no such link exists.</li>
</ul>
<p>Also note the need to explicitely deallocate documents with freeDoc() .
@@ -1600,8 +1600,7 @@
<p>last but not least, all tests starts with the following prologue:</p>
<pre>#memory debug specific
-libxml2.debugMemory(1)
-</pre>
+libxml2.debugMemory(1)</pre>
<p>and ends with the following epilogue:</p>
<pre>#memory debug specific
@@ -1990,11 +1989,11 @@
debugging, analysis or to implement a specific behaviour on memory management
(like on embedded systems). Two function calls are available to do so:</p>
<ul>
- <li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemGet ()</a>
- which return the current set of functions in use by the parser</li>
+ <li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemGet
+ ()</a> which return the current set of functions in use by the parser</li>
<li><a
href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemSetup()</a>
- which allow to set up a new set of memory allocation functions</li>
+ which allow to set up a new set of memory allocation functions</li>
</ul>
<p>Of course a call to xmlMemSetup() should probably be done before calling
@@ -2010,15 +2009,13 @@
reuse the parser immediately:</p>
<ul>
<li><a href="http://xmlsoft.org/html/libxml-parser.html">xmlCleanupParser
- ()</a>
- is a centralized routine to free the parsing states. Note that it won't
- deallocate any produced tree if any (use the xmlFreeDoc() and related
- routines for this).</li>
+ ()</a> is a centralized routine to free the parsing states. Note that it
+ won't deallocate any produced tree if any (use the xmlFreeDoc() and
+ related routines for this).</li>
<li><a href="http://xmlsoft.org/html/libxml-parser.html">xmlInitParser
- ()</a>
- is the dual routine allowing to preallocate the parsing state which can
- be useful for example to avoid initialization reentrancy problems when
- using libxml in multithreaded applications</li>
+ ()</a> is the dual routine allowing to preallocate the parsing state
+ which can be useful for example to avoid initialization reentrancy
+ problems when using libxml in multithreaded applications</li>
</ul>
<p>Generally xmlCleanupParser() is safe, if needed the state will be rebuild
@@ -2035,15 +2032,14 @@
<ul>
<li><a
href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMallocLoc()</a>
- <a
+ <a
href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlReallocLoc()</a>
and <a
href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemStrdupLoc()</a>
are the memory debugging replacement allocation routines</li>
<li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemoryDump
- ()</a>
- dumps all the informations about the allocated memory block lefts in the
- <code>.memdump</code> file</li>
+ ()</a> dumps all the informations about the allocated memory block lefts
+ in the <code>.memdump</code> file</li>
</ul>
<p>When developping libxml memory debug is enabled, the tests programs call
@@ -2548,6 +2544,7 @@
+
} </pre>
</li>
<li>And then use it to save the document:
@@ -2623,9 +2620,8 @@
James Clark. This is relatively old and not the preferred mode of
operation of libxml.</li>
<li><a href="http://www.oasis-open.org/committees/entity/spec.html">XML
- Catalogs</a>
- is far more flexible, more recent, uses an XML syntax and should scale
- quite better. This is the default option of libxml.</li>
+ Catalogs</a> is far more flexible, more recent, uses an XML syntax and
+ should scale quite better. This is the default option of libxml.</li>
</ul>
<p></p>
@@ -3674,38 +3670,36 @@
patches, Gary Pennington worked on the validation API, threading support
and Solaris port.</li>
<li>John Fleck helps maintaining the documentation and man pages.</li>
- <li><a href="mailto:ari@lusis.org">Ari Johnson</a>
- provides a C++ wrapper for libxml:<br>
+ <li><a href="mailto:ari@lusis.org">Ari Johnson</a> provides a C++ wrapper
+ for libxml:<br>
Website: <a
href="http://lusis.org/~ari/xml++/">http://lusis.org/~ari/xml++/</a><br>
Download: <a
href="http://lusis.org/~ari/xml++/libxml++.tar.gz">http://lusis.org/~ari/xml++/libxml++.tar.gz</a></li>
- <li><a href="mailto:izlatkovic@daenet.de">Igor Zlatkovic</a>
- is now the maintainer of the Windows port, <a
+ <li><a href="mailto:izlatkovic@daenet.de">Igor Zlatkovic</a> is now the
+ maintainer of the Windows port, <a
href="http://www.fh-frankfurt.de/~igor/projects/libxml/index.html">he
provides binaries</a></li>
- <li><a href="mailto:Gary.Pennington@sun.com">Gary Pennington</a>
- provides <a href="http://garypennington.net/libxml2/">Solaris
- binaries</a></li>
+ <li><a href="mailto:Gary.Pennington@sun.com">Gary Pennington</a> provides
+ <a href="http://garypennington.net/libxml2/">Solaris binaries</a></li>
<li><a
href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">Matt
- Sergeant</a>
- developped <a href="http://axkit.org/download/">XML::LibXSLT</a>, a perl
- wrapper for libxml2/libxslt as part of the <a
- href="http://axkit.com/">AxKit XML application server</a></li>
- <li><a href="mailto:fnatter@gmx.net">Felix Natter</a>
- and <a href="mailto:geertk@ai.rug.nl">Geert Kloosterman</a> provide <a
+ Sergeant</a> developped <a
+ href="http://axkit.org/download/">XML::LibXSLT</a>, a perl wrapper for
+ libxml2/libxslt as part of the <a href="http://axkit.com/">AxKit XML
+ application server</a></li>
+ <li><a href="mailto:fnatter@gmx.net">Felix Natter</a> and <a
+ href="mailto:geertk@ai.rug.nl">Geert Kloosterman</a> provide <a
href="libxml-doc.el">an emacs module</a> to lookup libxml(2) functions
documentation</li>
- <li><a href="mailto:sherwin@nlm.nih.gov">Ziying Sherwin</a>
- provided <a href="http://xmlsoft.org/messages/0488.html">man
- pages</a></li>
+ <li><a href="mailto:sherwin@nlm.nih.gov">Ziying Sherwin</a> provided <a
+ href="http://xmlsoft.org/messages/0488.html">man pages</a></li>
<li>there is a module for <a
href="http://acs-misc.sourceforge.net/nsxml.html">libxml/libxslt support
in OpenNSD/AOLServer</a></li>
- <li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a>
- provides libxml/libxslt <a href="http://www.rexx.com/~dkuhlman">wrappers
- for Python</a></li>
+ <li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a> provides
+ libxml/libxslt <a href="http://www.rexx.com/~dkuhlman">wrappers for
+ Python</a></li>
<li>Petr Kozelka provides <a
href="http://sourceforge.net/projects/libxml2-pas">Pascal units to glue
libxml2</a> with Kylix and Delphi and other Pascal compilers</li>