mirror of
https://github.com/darlinghq/darling-libxslt.git
synced 2024-12-02 08:56:24 +00:00
upon suggestion of Marc-Andre Lemburg, make the misdetection of libxml2
* configure.in: upon suggestion of Marc-Andre Lemburg, make the misdetection of libxml2 python bindings a warning only Daniel
This commit is contained in:
parent
393fd55ec8
commit
c66126835d
@ -1,3 +1,8 @@
|
||||
Thu Aug 1 14:29:11 CEST 2002 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* configure.in: upon suggestion of Marc-Andre Lemburg, make
|
||||
the misdetection of libxml2 python bindings a warning only
|
||||
|
||||
Sun Jul 21 19:10:00 HKT 2002 William Brack <wbrack@mmm.com.hk>
|
||||
|
||||
* xsltInternals.h/xslt.c/transform.c and pattern.c: fixed
|
||||
|
@ -155,10 +155,10 @@ except: print 0"`
|
||||
then
|
||||
echo Found libxml2-python module
|
||||
else
|
||||
echo Missing libxml2-python
|
||||
echo Warning: Missing libxml2-python
|
||||
fi
|
||||
fi
|
||||
if test "$PYTHON_VERSION" != "" -a "$LIBXML2_PYTHON" = "1"
|
||||
if test "$PYTHON_VERSION" != ""
|
||||
then
|
||||
if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
|
||||
-d $with_python/lib/python$PYTHON_VERSION/site-packages
|
||||
|
12
doc/API.html
12
doc/API.html
@ -83,12 +83,12 @@ of libxslt/xsltproc.c and the <a href="tutorial/libxslttutorial.html">tutorial
|
||||
<ol>
|
||||
<li>configure the parser for XSLT:
|
||||
<p>xmlSubstituteEntitiesDefault(1);</p>
|
||||
<p>xmlLoadExtDtdDefaultValue = 1;</p>
|
||||
</li>
|
||||
<li>parse the stylesheet with xsltParseStylesheetFile()</li>
|
||||
<li>parse the document with xmlParseFile()</li>
|
||||
<li>apply the stylesheet using xsltApplyStylesheet()</li>
|
||||
<li>save the result using xsltSaveResultToFile() if needed set
|
||||
<p>xmlLoadExtDtdDefaultValue = 1;</p>
|
||||
</li>
|
||||
<li>parse the stylesheet with xsltParseStylesheetFile()</li>
|
||||
<li>parse the document with xmlParseFile()</li>
|
||||
<li>apply the stylesheet using xsltApplyStylesheet()</li>
|
||||
<li>save the result using xsltSaveResultToFile() if needed set
|
||||
xmlIndentTreeOutput to 1</li>
|
||||
</ol>
|
||||
<p>Steps 2,3, and 5 will probably need to be changed depending on you
|
||||
|
18
doc/FAQ.html
18
doc/FAQ.html
@ -75,21 +75,23 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
</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">
|
||||
<ol><li>
|
||||
<ol>
|
||||
<li>
|
||||
<em>passing parameters on the xsltproc command line doesn't work</em>
|
||||
<p><em>xsltproc --param test alpha foo.xsl foo.xml</em></p>
|
||||
<p><em>the param does not get passed and ends up as ""</em></p>
|
||||
<p>In a nutshell do a double escaping at the shell prompt:</p>
|
||||
<p>xsltproc --param test "'alpha'" foo.xsl foo.xml</p>
|
||||
<p>i.e. the string value is surrounded by " and ' then terminated by '
|
||||
<p><em>the param does not get passed and ends up as ""</em></p>
|
||||
<p>In a nutshell do a double escaping at the shell prompt:</p>
|
||||
<p>xsltproc --param test "'alpha'" foo.xsl foo.xml</p>
|
||||
<p>i.e. the string value is surrounded by " and ' then terminated by '
|
||||
and ". Libxslt interpret the parameter values as XPath expressions, so
|
||||
the string -><code>alpha</code><- is intepreted as the node set
|
||||
matching this string. You really want -><code>'alpha'</code><- to
|
||||
be passed to the processor. And to allow this you need to escape the
|
||||
quotes at the shell level using -><code>"'alpha'"</code><- .</p>
|
||||
<p>or use</p>
|
||||
<p>xsltproc --stringparam test alpha foo.xsl foo.xml</p>
|
||||
</li></ol>
|
||||
<p>or use</p>
|
||||
<p>xsltproc --stringparam test alpha foo.xsl foo.xml</p>
|
||||
</li>
|
||||
</ol>
|
||||
<p><a href="bugs.html">Daniel Veillard</a></p>
|
||||
</td></tr></table></td></tr></table></td></tr></table></td>
|
||||
</tr></table></td></tr></table>
|
||||
|
@ -81,18 +81,18 @@ useful resources:</p>
|
||||
<li>I strongly suggest to subscribe to <a href="http://www.mulberrytech.com/xsl/xsl-list">XSL-list</a>, check <a href="http://www.biglist.com/lists/xsl-list/archives/">the XSL-list
|
||||
archives</a>
|
||||
</li>
|
||||
<li>The <a href="http://www.dpawson.co.uk/xsl/xslfaq.html">XSL FAQ</a>.</li>
|
||||
<li>The <a href="http://www.nwalsh.com/docs/tutorials/xsl/xsl/slides.html">tutorial</a>
|
||||
<li>The <a href="http://www.dpawson.co.uk/xsl/xslfaq.html">XSL FAQ</a>.</li>
|
||||
<li>The <a href="http://www.nwalsh.com/docs/tutorials/xsl/xsl/slides.html">tutorial</a>
|
||||
written by Paul Grosso and Norman Walsh is a very good on-line
|
||||
introdution to the language.</li>
|
||||
<li>The <a href="http://www.zvon.org/xxl/XSLTutorial/Books/Book1/index.html">only
|
||||
<li>The <a href="http://www.zvon.org/xxl/XSLTutorial/Books/Book1/index.html">only
|
||||
Zvon XSLT tutorial</a> details a lot of constructs with examples.</li>
|
||||
<li>
|
||||
<li>
|
||||
<a href="http://www.jenitennison.com/xslt/index.html">Jeni Tennison's
|
||||
XSLT</a> pages provide links to a lot of answers</li>
|
||||
<li>the <a href="http://incrementaldevelopment.com/xsltrick/">Gallery of
|
||||
<li>the <a href="http://incrementaldevelopment.com/xsltrick/">Gallery of
|
||||
XSLT Tricks</a> provides non-standard use case of XSLT</li>
|
||||
<li>And I suggest to buy Michael Kay "XSLT Programmer's Reference" book
|
||||
<li>And I suggest to buy Michael Kay "XSLT Programmer's Reference" book
|
||||
published by <a href="http://www.wrox.com/">Wrox</a> if you plan to work
|
||||
seriously with XSLT in the future.</li>
|
||||
</ul>
|
||||
@ -115,16 +115,16 @@ really appreciated!).</p>
|
||||
<ul>
|
||||
<li>make sure you are <a href="ftp://xmlsoft.org/">using a recent
|
||||
version</a>, and that the problem still shows up in those</li>
|
||||
<li>check the <a href="http://mail.gnome.org/archives/xslt/">list
|
||||
<li>check the <a href="http://mail.gnome.org/archives/xslt/">list
|
||||
archives</a> to see if the problem was reported already, in this case
|
||||
there is probably a fix available, similarly check the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">registered
|
||||
open bugs</a>
|
||||
</li>
|
||||
<li>make sure you can reproduce the bug with xsltproc, a very useful thing
|
||||
<li>make sure you can reproduce the bug with xsltproc, a very useful thing
|
||||
to do is run the transformation with -v argument and redirect the
|
||||
standard error to a file, then search in this file for the transformation
|
||||
logs just preceding the possible problem</li>
|
||||
<li>Please send the command showing the error as well as the input and
|
||||
<li>Please send the command showing the error as well as the input and
|
||||
stylesheet (as an attachment)</li>
|
||||
</ul>
|
||||
<p>Of course, bugs reports with a suggested patch for fixing them will
|
||||
|
@ -78,34 +78,34 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<ul>
|
||||
<li>Bjorn Reese is the author of the number support and worked on the
|
||||
XSLTMark support</li>
|
||||
<li>William Brack was an early adopted, contributed a number of patches and
|
||||
<li>William Brack was an early adopted, contributed a number of patches and
|
||||
spent quite some time debugging non-trivial problems in early versions of
|
||||
libxslt</li>
|
||||
<li>
|
||||
<li>
|
||||
<a href="mailto:igor@stud.fh-frankfurt.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>Thomas Broyer provided a lot of suggestions, and drafted most of the
|
||||
<li>Thomas Broyer provided a lot of suggestions, and drafted most of the
|
||||
extension API</li>
|
||||
<li>John Fleck maintains <a href="tutorial/libxslttutorial.html">a tutorial
|
||||
<li>John Fleck maintains <a href="tutorial/libxslttutorial.html">a tutorial
|
||||
for libxslt</a>
|
||||
</li>
|
||||
<li>
|
||||
<li>
|
||||
<a href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">Matt
|
||||
Sergeant</a> developed <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>there is a module for <a href="http://acs-misc.sourceforge.net/nsxml.html">libxml/libxslt support
|
||||
<li>there is a module for <a href="http://acs-misc.sourceforge.net/nsxml.html">libxml/libxslt support
|
||||
in OpenNSD/AOLServer</a>
|
||||
</li>
|
||||
<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>Steve Ball and contributors maintains <a href="http://tclxml.sourceforge.net/">libxml2</a> and <a href="http://tclxml.sourceforge.net/tclxslt.html">libxslt</a> bindings
|
||||
<li>Steve Ball and contributors maintains <a href="http://tclxml.sourceforge.net/">libxml2</a> and <a href="http://tclxml.sourceforge.net/tclxslt.html">libxslt</a> bindings
|
||||
for Tcl</li>
|
||||
</ul>
|
||||
<p>I'm still waiting for someone to contribute a simple XSLT processing
|
||||
|
@ -86,39 +86,39 @@ few pointers and informations which may be helpful:</p>
|
||||
<li>The <a href="http://www.oasis-open.org/committees/docbook/">DocBook
|
||||
homepage at Oasis</a> you should find pointers there on all the lastest
|
||||
versions of the DTDs and XSLT stylesheets</li>
|
||||
<li>
|
||||
<li>
|
||||
<a href="http://www.docbook.org/">DocBook: The Definitive Guide</a> is
|
||||
the official reference documentation for DocBook.</li>
|
||||
<li>
|
||||
<li>
|
||||
<a href="https://sourceforge.net/docman/index.php?group_id=21935">DocBook
|
||||
Open Repository</a> contains a lot of informations about DocBook</li>
|
||||
<li>Here is a <a href="/buildDocBookCatalog">shell script</a> to generate
|
||||
<li>Here is a <a href="/buildDocBookCatalog">shell script</a> to generate
|
||||
XML Catalogs for DocBook 4.1.2 . If it can write to the /etc/xml/
|
||||
directory, it will set-up /etc/xml/catalog and /etc/xml/docbook based on
|
||||
the resources found on the system. Otherwise it will just create
|
||||
~/xmlcatalog and ~/dbkxmlcatalog and doing:
|
||||
<p><code>export XMLCATALOG=$HOME/xmlcatalog</code></p>
|
||||
<p>should allow to process DocBook documentations without requiring
|
||||
<p>should allow to process DocBook documentations without requiring
|
||||
network accesses for the DTd or stylesheets</p>
|
||||
</li>
|
||||
<li>I have uploaded <a href="ftp://xmlsoft.org/test/dbk412catalog.tar.gz">a
|
||||
</li>
|
||||
<li>I have uploaded <a href="ftp://xmlsoft.org/test/dbk412catalog.tar.gz">a
|
||||
small tarball</a> containing XML Catalogs for DocBook 4.1.2 which seems
|
||||
to work fine for me too</li>
|
||||
<li>Informations on installing a <a href="http://ourworld.compuserve.com/homepages/hoenicka_markus/cygc2057.html">Windows
|
||||
<li>Informations on installing a <a href="http://ourworld.compuserve.com/homepages/hoenicka_markus/cygc2057.html">Windows
|
||||
DocBook processing setup</a> based on Cygwin (using the binaries from the
|
||||
official Windows port should be possible too)</li>
|
||||
<li>Alexander Kirillov's page on <a href="http://www.math.sunysb.edu/~kirillov/dbxml/">Using DocBook XML
|
||||
<li>Alexander Kirillov's page on <a href="http://www.math.sunysb.edu/~kirillov/dbxml/">Using DocBook XML
|
||||
4.1.2</a> (RPM packages)</li>
|
||||
<li>Tim Waugh's <a href="http://cyberelk.net/tim/xmlto/">xmlto front-end
|
||||
<li>Tim Waugh's <a href="http://cyberelk.net/tim/xmlto/">xmlto front-end
|
||||
conversion script</a>
|
||||
</li>
|
||||
<li>Linux Documentation Project <a href="http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/">
|
||||
<li>Linux Documentation Project <a href="http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/">
|
||||
DocBook-Install-mini-HOWTO</a>
|
||||
</li>
|
||||
<li>ScrollKeeper the open documentation cataloging project has a <a href="http://scrollkeeper.sourceforge.net/docbook.shtml">DocBook
|
||||
<li>ScrollKeeper the open documentation cataloging project has a <a href="http://scrollkeeper.sourceforge.net/docbook.shtml">DocBook
|
||||
section</a>
|
||||
</li>
|
||||
<li>Dan York presentation on <a href="http://www.lodestar2.com/people/dyork/talks/2001/xugo/docbook/index.html">Publishing
|
||||
<li>Dan York presentation on <a href="http://www.lodestar2.com/people/dyork/talks/2001/xugo/docbook/index.html">Publishing
|
||||
using DocBook XML</a>
|
||||
</li>
|
||||
</ul>
|
||||
@ -132,13 +132,13 @@ again:</p>
|
||||
XML Catalogs pointing to a local installation of the DTD of DocBook.
|
||||
Check the <a href="http://xmlsoft.org/catalog.html">XML Catalog page</a>
|
||||
to understand more on this subject.</li>
|
||||
<li>before processing a new document, use the command
|
||||
<li>before processing a new document, use the command
|
||||
<p><code>xmllint --valid --noout path_to_document</code></p>
|
||||
<p>to make sure that your input is valid DocBook. And fixes the errors
|
||||
<p>to make sure that your input is valid DocBook. And fixes the errors
|
||||
before processing further. Note that XSLT processing may work correctly
|
||||
with some forms of validity errors left, but in general it can give
|
||||
troubles on output.</p>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
<p><a href="bugs.html">Daniel Veillard</a></p>
|
||||
</td></tr></table></td></tr></table></td></tr></table></td>
|
||||
|
@ -80,9 +80,9 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<li>Check the <a href="html/libxslt-lib.html#LIBXSLT-LIB">API
|
||||
documentation</a> automatically extracted from code comments (using <a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=gtk-doc">gtk
|
||||
doc</a>).</li>
|
||||
<li>Look at the <a href="http://mail.gnome.org/archives/xslt/">mailing-list
|
||||
<li>Look at the <a href="http://mail.gnome.org/archives/xslt/">mailing-list
|
||||
archive</a>.</li>
|
||||
<li>Of course since libxslt is based on libxml, it's a good idea to at
|
||||
<li>Of course since libxslt is based on libxml, it's a good idea to at
|
||||
least read <a href="http://xmlsoft.org/">libxml description</a>
|
||||
</li>
|
||||
</ol>
|
||||
|
@ -95,10 +95,12 @@ platform, get in touch with me to upload the package. I will keep them in the
|
||||
</p>
|
||||
<p>Libxslt is also available from CVS:</p>
|
||||
<ul>
|
||||
<li><p>The <a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=libxslt">Gnome
|
||||
CVS base</a>. Check the <a href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
|
||||
page; the CVS module is <b>libxslt</b>.</p></li>
|
||||
<li>
|
||||
<p>The <a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=libxslt">Gnome
|
||||
CVS base</a>. Check the <a href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
|
||||
page; the CVS module is <b>libxslt</b>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="ftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gz">daily snapshots
|
||||
from CVS</a> are also provided</li>
|
||||
</ul>
|
||||
|
@ -78,24 +78,24 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<h3>Table of content</h3>
|
||||
<ul>
|
||||
<li><a href="extensions.html#Introducti">Introduction</a></li>
|
||||
<li><a href="extensions.html#Basics">Basics</a></li>
|
||||
<li><a href="extensions.html#Keep">Extension modules</a></li>
|
||||
<li><a href="extensions.html#Registerin">Registering a module</a></li>
|
||||
<li><a href="extensions.html#module">Loading a module</a></li>
|
||||
<li><a href="extensions.html#Registerin1">Registering an extension
|
||||
<li><a href="extensions.html#Basics">Basics</a></li>
|
||||
<li><a href="extensions.html#Keep">Extension modules</a></li>
|
||||
<li><a href="extensions.html#Registerin">Registering a module</a></li>
|
||||
<li><a href="extensions.html#module">Loading a module</a></li>
|
||||
<li><a href="extensions.html#Registerin1">Registering an extension
|
||||
function</a></li>
|
||||
<li><a href="extensions.html#Implementi">Implementing an extension
|
||||
<li><a href="extensions.html#Implementi">Implementing an extension
|
||||
function</a></li>
|
||||
<li><a href="extensions.html#Examples">Examples for extension
|
||||
<li><a href="extensions.html#Examples">Examples for extension
|
||||
functions</a></li>
|
||||
<li><a href="extensions.html#Registerin2">Registering an extension
|
||||
<li><a href="extensions.html#Registerin2">Registering an extension
|
||||
element</a></li>
|
||||
<li><a href="extensions.html#Implementi1">Implementing an extension
|
||||
<li><a href="extensions.html#Implementi1">Implementing an extension
|
||||
element</a></li>
|
||||
<li><a href="extensions.html#Example">Example for extension
|
||||
<li><a href="extensions.html#Example">Example for extension
|
||||
elements</a></li>
|
||||
<li><a href="extensions.html#shutdown">The shutdown of a module</a></li>
|
||||
<li><a href="extensions.html#Future">Future work</a></li>
|
||||
<li><a href="extensions.html#shutdown">The shutdown of a module</a></li>
|
||||
<li><a href="extensions.html#Future">Future work</a></li>
|
||||
</ul>
|
||||
<h3><a name="Introducti1">Introduction</a></h3>
|
||||
<p>This document describes the work needed to write extensions to the
|
||||
@ -110,7 +110,7 @@ two <a href="http://www.w3.org/TR/xslt">ways to extend an XSLT engine</a>:</p>
|
||||
<ul>
|
||||
<li>providing <a href="http://www.w3.org/TR/xslt">new extension
|
||||
functions</a> which can be called from XPath expressions</li>
|
||||
<li>providing <a href="http://www.w3.org/TR/xslt">new extension
|
||||
<li>providing <a href="http://www.w3.org/TR/xslt">new extension
|
||||
elements</a> which can be inserted in stylesheets</li>
|
||||
</ul>
|
||||
<p>In both cases the extensions need to be associated to a new namespace,
|
||||
@ -133,8 +133,8 @@ element.</p>
|
||||
<p>And extension module is defined by 3 objects:</p>
|
||||
<ul>
|
||||
<li>the namespace name associated</li>
|
||||
<li>an initialization function</li>
|
||||
<li>a shutdown function</li>
|
||||
<li>an initialization function</li>
|
||||
<li>a shutdown function</li>
|
||||
</ul>
|
||||
<h3><a name="Registerin">Registering a module</a></h3>
|
||||
<p>Currently a libxslt module has to be compiled within the application using
|
||||
@ -174,10 +174,10 @@ typedef void *(*xsltExtInitFunction)(xsltTransformContextPtr ctxt,
|
||||
<li>the function gets passed the namespace name URI as an argument, this
|
||||
allow a single function to provide the initialization for multiple
|
||||
logical modules</li>
|
||||
<li>it also gets passed a transformation context, the initialization is
|
||||
<li>it also gets passed a transformation context, the initialization is
|
||||
done at run time before any processing occurs on the stylesheet but it
|
||||
will be invoked separately each time for each transformation</li>
|
||||
<li>it returns a pointer, this can be used to store module specific
|
||||
<li>it returns a pointer, this can be used to store module specific
|
||||
informations which can be retrieved later when a function or an element
|
||||
from the extension are used, an obvious example is a connection to a
|
||||
database which should be kept and reused along the transformation. NULL
|
||||
@ -188,7 +188,7 @@ typedef void *(*xsltExtInitFunction)(xsltTransformContextPtr ctxt,
|
||||
<ul>
|
||||
<li>prepare the context for this module (like opening the database
|
||||
connection)</li>
|
||||
<li>register the extensions specific to this module</li>
|
||||
<li>register the extensions specific to this module</li>
|
||||
</ul>
|
||||
<h3><a name="Registerin1">Registering an extension function</a></h3>
|
||||
<p>There is a single call to do this registration:</p>
|
||||
@ -222,8 +222,8 @@ find one from the other:</p>
|
||||
<pre>xsltTransformContextPtr
|
||||
xsltXPathGetTransformContext
|
||||
(xmlXPathParserContextPtr ctxt);</pre>
|
||||
</li>
|
||||
<li>The <code>xmlXPathContextPtr</code> associated to an
|
||||
</li>
|
||||
<li>The <code>xmlXPathContextPtr</code> associated to an
|
||||
<code>xsltTransformContext</code> is stored in the <code>xpathCtxt</code>
|
||||
field.</li>
|
||||
</ul>
|
||||
@ -260,7 +260,7 @@ registering the module.</p>
|
||||
<li>push the return value on the stack using <code>valuePush(ctxt,
|
||||
obj)</code>
|
||||
</li>
|
||||
<li>deallocate the parameters passed to the function using
|
||||
<li>deallocate the parameters passed to the function using
|
||||
<code>xmlXPathFreeObject(obj)</code>
|
||||
</li>
|
||||
</ul>
|
||||
@ -420,11 +420,11 @@ close the connection to the database to keep the same example.</p>
|
||||
<p>Well some of the pieces missing:</p>
|
||||
<ul>
|
||||
<li>a way to load shared libraries to instanciate new modules</li>
|
||||
<li>a better detection of extension function usage and their registration
|
||||
<li>a better detection of extension function usage and their registration
|
||||
without having to use the extension prefix which ought to be reserved to
|
||||
element extensions.</li>
|
||||
<li>more examples</li>
|
||||
<li>implementations of the <a href="http://www.exslt.org/">EXSLT</a> common
|
||||
<li>more examples</li>
|
||||
<li>implementations of the <a href="http://www.exslt.org/">EXSLT</a> common
|
||||
extension libraries, Thomas Broyer nearly finished implementing them.</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
@ -80,14 +80,14 @@ subscribe to the mailing-list as explained before, check the <a href="http://mai
|
||||
database:</a>:</p>
|
||||
<ol>
|
||||
<li>provide patches when you find problems</li>
|
||||
<li>provide the diffs when you port libxslt to a new platform. They may not
|
||||
<li>provide the diffs when you port libxslt to a new platform. They may not
|
||||
be integrated in all cases but help pinpointing portability problems
|
||||
and</li>
|
||||
<li>provide documentation fixes (either as patches to the code comments or
|
||||
<li>provide documentation fixes (either as patches to the code comments or
|
||||
as HTML diffs).</li>
|
||||
<li>provide new documentations pieces (translations, examples, etc ...)</li>
|
||||
<li>Check the TODO file and try to close one of the items</li>
|
||||
<li>take one of the points raised in the archive or the bug database and
|
||||
<li>provide new documentations pieces (translations, examples, etc ...)</li>
|
||||
<li>Check the TODO file and try to close one of the items</li>
|
||||
<li>take one of the points raised in the archive or the bug database and
|
||||
provide a fix. <a href="mailto:daniel@veillard.com">Get in touch with me
|
||||
</a>before to avoid synchronization problems and check that the suggested
|
||||
fix will fit in nicely :-)</li>
|
||||
|
@ -88,8 +88,8 @@ reused in commercial applications (see the <a href="intro.html">intro</a>)</p>
|
||||
<li>John Fleck wrote <a href="tutorial/libxslttutorial.html">a tutorial for
|
||||
libxslt</a>
|
||||
</li>
|
||||
<li><a href="xsltproc.html">xsltproc user manual</a></li>
|
||||
<li><a href="http://xmlsoft.org/">the libxml documentation</a></li>
|
||||
<li><a href="xsltproc.html">xsltproc user manual</a></li>
|
||||
<li><a href="http://xmlsoft.org/">the libxml documentation</a></li>
|
||||
</ul>
|
||||
<p>
|
||||
<p><a href="bugs.html">Daniel Veillard</a></p>
|
||||
|
@ -78,22 +78,22 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<h3>Table of contents</h3>
|
||||
<ul>
|
||||
<li><a href="internals.html#Introducti">Introduction</a></li>
|
||||
<li><a href="internals.html#Basics">Basics</a></li>
|
||||
<li><a href="internals.html#Keep">Keep it simple stupid</a></li>
|
||||
<li><a href="internals.html#libxml">The libxml nodes</a></li>
|
||||
<li><a href="internals.html#XSLT">The XSLT processing steps</a></li>
|
||||
<li><a href="internals.html#XSLT1">The XSLT stylesheet compilation</a></li>
|
||||
<li><a href="internals.html#XSLT2">The XSLT template compilation</a></li>
|
||||
<li><a href="internals.html#processing">The processing itself</a></li>
|
||||
<li><a href="internals.html#XPath">XPath expressions compilation</a></li>
|
||||
<li><a href="internals.html#XPath1">XPath interpretation</a></li>
|
||||
<li><a href="internals.html#Descriptio">Description of XPath
|
||||
<li><a href="internals.html#Basics">Basics</a></li>
|
||||
<li><a href="internals.html#Keep">Keep it simple stupid</a></li>
|
||||
<li><a href="internals.html#libxml">The libxml nodes</a></li>
|
||||
<li><a href="internals.html#XSLT">The XSLT processing steps</a></li>
|
||||
<li><a href="internals.html#XSLT1">The XSLT stylesheet compilation</a></li>
|
||||
<li><a href="internals.html#XSLT2">The XSLT template compilation</a></li>
|
||||
<li><a href="internals.html#processing">The processing itself</a></li>
|
||||
<li><a href="internals.html#XPath">XPath expressions compilation</a></li>
|
||||
<li><a href="internals.html#XPath1">XPath interpretation</a></li>
|
||||
<li><a href="internals.html#Descriptio">Description of XPath
|
||||
Objects</a></li>
|
||||
<li><a href="internals.html#XPath3">XPath functions</a></li>
|
||||
<li><a href="internals.html#stack">The variables stack frame</a></li>
|
||||
<li><a href="internals.html#Extension">Extension support</a></li>
|
||||
<li><a href="internals.html#Futher">Further reading</a></li>
|
||||
<li><a href="internals.html#TODOs">TODOs</a></li>
|
||||
<li><a href="internals.html#XPath3">XPath functions</a></li>
|
||||
<li><a href="internals.html#stack">The variables stack frame</a></li>
|
||||
<li><a href="internals.html#Extension">Extension support</a></li>
|
||||
<li><a href="internals.html#Futher">Further reading</a></li>
|
||||
<li><a href="internals.html#TODOs">TODOs</a></li>
|
||||
</ul>
|
||||
<h3><a name="Introducti2">Introduction</a></h3>
|
||||
<p>This document describes the processing of <a href="http://xmlsoft.org/XSLT/">libxslt</a>, the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the <a href="http://www.gnome.org/">Gnome</a> project.</p>
|
||||
@ -107,10 +107,10 @@ stylesheet document and generates an output document:</p>
|
||||
the following operations:</p>
|
||||
<ul>
|
||||
<li>parsing files</li>
|
||||
<li>building the in-memory DOM structure associated with the documents
|
||||
<li>building the in-memory DOM structure associated with the documents
|
||||
handled</li>
|
||||
<li>the XPath implementation</li>
|
||||
<li>serializing back the result document to XML and HTML. (Text is handled
|
||||
<li>the XPath implementation</li>
|
||||
<li>serializing back the result document to XML and HTML. (Text is handled
|
||||
directly.)</li>
|
||||
</ul>
|
||||
<h3><a name="Keep1">Keep it simple stupid</a></h3>
|
||||
@ -129,7 +129,7 @@ stylesheets. In general the implementation of libxslt follows the following
|
||||
pattern:</p>
|
||||
<ul>
|
||||
<li>KISS (keep it simple stupid)</li>
|
||||
<li>when there is a clear bottleneck optimize on top of this simple
|
||||
<li>when there is a clear bottleneck optimize on top of this simple
|
||||
framework and refine only as much as is needed to reach the expected
|
||||
result</li>
|
||||
</ul>
|
||||
@ -148,19 +148,19 @@ variations depending on the node type:</p>
|
||||
indicates the kind of node it represents, the most common ones are:</p>
|
||||
<ul>
|
||||
<li>document nodes</li>
|
||||
<li>element nodes</li>
|
||||
<li>text nodes</li>
|
||||
<li>element nodes</li>
|
||||
<li>text nodes</li>
|
||||
</ul>
|
||||
<p>For the XSLT processing, entity nodes should not be generated (i.e. they
|
||||
should be replaced by their content). Most nodes also contains the following
|
||||
"navigation" informations:</p>
|
||||
<ul>
|
||||
<li>the containing <strong>doc</strong>ument</li>
|
||||
<li>the <strong>parent</strong> node</li>
|
||||
<li>the first <strong>children</strong> node</li>
|
||||
<li>the <strong>last</strong> children node</li>
|
||||
<li>the <strong>prev</strong>ious sibling</li>
|
||||
<li>the following sibling (<strong>next</strong>)</li>
|
||||
<li>the <strong>parent</strong> node</li>
|
||||
<li>the first <strong>children</strong> node</li>
|
||||
<li>the <strong>last</strong> children node</li>
|
||||
<li>the <strong>prev</strong>ious sibling</li>
|
||||
<li>the following sibling (<strong>next</strong>)</li>
|
||||
</ul>
|
||||
<p>Elements nodes carries the list of attributes in the properties, an
|
||||
attribute itself holds the navigation pointers and the children list (the
|
||||
@ -176,21 +176,21 @@ used by the application to hold specific data on this node.</p>
|
||||
level:</p>
|
||||
<ol>
|
||||
<li>parse the stylesheet and generate a DOM tree</li>
|
||||
<li>take the stylesheet tree and build a compiled version of it (the
|
||||
<li>take the stylesheet tree and build a compiled version of it (the
|
||||
compilation phase)</li>
|
||||
<li>take the input and generate a DOM tree</li>
|
||||
<li>process the stylesheet against the input tree and generate an output
|
||||
<li>take the input and generate a DOM tree</li>
|
||||
<li>process the stylesheet against the input tree and generate an output
|
||||
tree</li>
|
||||
<li>serialize the output tree</li>
|
||||
<li>serialize the output tree</li>
|
||||
</ol>
|
||||
<p>A few things should be noted here:</p>
|
||||
<ul>
|
||||
<li>the steps 1/ 3/ and 5/ are optional</li>
|
||||
<li>the stylesheet obtained at 2/ can be reused by multiple processing 4/
|
||||
<li>the stylesheet obtained at 2/ can be reused by multiple processing 4/
|
||||
(and this should also work in threaded programs)</li>
|
||||
<li>the tree provided in 2/ should never be freed using xmlFreeDoc, but by
|
||||
<li>the tree provided in 2/ should never be freed using xmlFreeDoc, but by
|
||||
freeing the stylesheet.</li>
|
||||
<li>the input tree 4/ is not modified except the _private field which may
|
||||
<li>the input tree 4/ is not modified except the _private field which may
|
||||
be used for labelling keys if used by the stylesheet</li>
|
||||
</ul>
|
||||
<h3><a name="XSLT1">The XSLT stylesheet compilation</a></h3>
|
||||
@ -267,22 +267,22 @@ applying the following algorithm:</p>
|
||||
hash table, walking the hash list until the node satisfies all the steps
|
||||
of the pattern, then checking the appropriate(s) global templates to see
|
||||
if there isn't a higher priority rule to apply</li>
|
||||
<li>If there is no template, apply the default rule (recurse on the
|
||||
<li>If there is no template, apply the default rule (recurse on the
|
||||
children)</li>
|
||||
<li>else walk the content list of the selected templates, for each of them:
|
||||
<li>else walk the content list of the selected templates, for each of them:
|
||||
<ul>
|
||||
<li>if the node is in the XSLT namespace then the node has a _private
|
||||
field pointing to the preprocessed values, jump to the specific
|
||||
code</li>
|
||||
<li>if the node is in an extension namespace, look up the associated
|
||||
<li>if the node is in an extension namespace, look up the associated
|
||||
behavior</li>
|
||||
<li>otherwise copy the node.</li>
|
||||
</ul>
|
||||
<li>otherwise copy the node.</li>
|
||||
</ul>
|
||||
<p>The closure is usually done through the XSLT
|
||||
<strong>apply-templates</strong> construct recursing by applying the
|
||||
adequate template on the input node children or on the result of an
|
||||
associated XPath selection lookup.</p>
|
||||
</li>
|
||||
</li>
|
||||
</ol>
|
||||
<p>Note that large parts of the input tree may not be processed by a given
|
||||
stylesheet and that on the opposite some may be processed multiple times.
|
||||
@ -292,15 +292,15 @@ logic. <strong>xsltApplyStylesheet()</strong> is the entry point, it
|
||||
allocates an xsltTransformContext containing the following:</p>
|
||||
<ul>
|
||||
<li>a pointer to the stylesheet being processed</li>
|
||||
<li>a stack of templates</li>
|
||||
<li>a stack of variables and parameters</li>
|
||||
<li>an XPath context</li>
|
||||
<li>the template mode</li>
|
||||
<li>current document</li>
|
||||
<li>current input node</li>
|
||||
<li>current selected node list</li>
|
||||
<li>the current insertion points in the output document</li>
|
||||
<li>a couple of hash tables for extension elements and functions</li>
|
||||
<li>a stack of templates</li>
|
||||
<li>a stack of variables and parameters</li>
|
||||
<li>an XPath context</li>
|
||||
<li>the template mode</li>
|
||||
<li>current document</li>
|
||||
<li>current input node</li>
|
||||
<li>current selected node list</li>
|
||||
<li>the current insertion points in the output document</li>
|
||||
<li>a couple of hash tables for extension elements and functions</li>
|
||||
</ul>
|
||||
<p>Then a new document gets allocated (HTML or XML depending on the type of
|
||||
output), the user parameters and global variables and parameters are
|
||||
@ -335,7 +335,7 @@ containing the parsed expression tree, for example the expression:</p>
|
||||
<p>This can be tested using the <code>testXPath</code> command (in the
|
||||
libxml codebase) using the <code>--tree</code> option.</p>
|
||||
<p>Again, the KISS approach is used. No optimization is done. This could be
|
||||
an interesting thing to add. <a href="http://www-106.ibm.com/developerworks/library/x-xslt2/?dwzone=x?open&l=132%2ct=gr%2c+p=saxon">Michael
|
||||
an interesting thing to add. <a href="http://www-106.ibm.com/developerworks/library/x-xslt2/?dwzone=x?open&l=132%2ct=gr%2c%2Bp=saxon">Michael
|
||||
Kay describes</a> a lot of possible and interesting optimizations done in
|
||||
Saxon which would be possible at this level. I'm unsure they would provide
|
||||
much gain since the expressions tends to be relatively simple in general and
|
||||
@ -354,13 +354,13 @@ transformation the context is maintained within the XSLT context. Its content
|
||||
follows the requirements from the XPath specification:</p>
|
||||
<ul>
|
||||
<li>the current document</li>
|
||||
<li>the current node</li>
|
||||
<li>a hash table of defined variables (but not used by XSLT)</li>
|
||||
<li>a hash table of defined functions</li>
|
||||
<li>the proximity position (the place of the node in the current node
|
||||
<li>the current node</li>
|
||||
<li>a hash table of defined variables (but not used by XSLT)</li>
|
||||
<li>a hash table of defined functions</li>
|
||||
<li>the proximity position (the place of the node in the current node
|
||||
list)</li>
|
||||
<li>the context size (the size of the current node list)</li>
|
||||
<li>the array of namespace declarations in scope (there also is a namespace
|
||||
<li>the context size (the size of the current node list)</li>
|
||||
<li>the array of namespace declarations in scope (there also is a namespace
|
||||
hash table but it is not used in the XSLT transformation).</li>
|
||||
</ul>
|
||||
<p>For the purpose of XSLT an <strong>extra</strong> pointer has been added
|
||||
@ -403,17 +403,17 @@ the stack).</p>
|
||||
<ul>
|
||||
<li>check <code>nargs</code> for proper handling of errors or functions
|
||||
with variable numbers of parameters</li>
|
||||
<li>pop the parameters from the stack using <code>obj =
|
||||
<li>pop the parameters from the stack using <code>obj =
|
||||
valuePop(ctxt);</code>
|
||||
</li>
|
||||
<li>do the function specific computation</li>
|
||||
<li>push the result parameter on the stack using <code>valuePush(ctxt,
|
||||
<li>do the function specific computation</li>
|
||||
<li>push the result parameter on the stack using <code>valuePush(ctxt,
|
||||
res);</code>
|
||||
</li>
|
||||
<li>free up the input parameters with
|
||||
<li>free up the input parameters with
|
||||
<code>xmlXPathFreeObject(obj);</code>
|
||||
</li>
|
||||
<li>return</li>
|
||||
<li>return</li>
|
||||
</ul>
|
||||
<p>Sometime the work can be done directly by modifying in-situ the top object
|
||||
on the stack <code>ctxt->value</code>.</p>
|
||||
@ -435,7 +435,7 @@ the code will be stable. <span style="background-color: #FF0000">TODO</span>
|
||||
<p>There is a separate document explaining <a href="extensions.html">how the
|
||||
extension support works</a>.</p>
|
||||
<h3><a name="Futher">Further reading</a></h3>
|
||||
<p>Michael Kay wrote <a href="http://www-106.ibm.com/developerworks/library/x-xslt2/?dwzone=x?open&l=132%2ct=gr%2c+p=saxon">a
|
||||
<p>Michael Kay wrote <a href="http://www-106.ibm.com/developerworks/library/x-xslt2/?dwzone=x?open&l=132%2ct=gr%2c%2Bp=saxon">a
|
||||
really interesting article on Saxon internals</a> and the work he did on
|
||||
performance issues. I wishes I had read it before starting libxslt design (I
|
||||
would probably have avoided a few mistakes and progressed faster). A lot of
|
||||
@ -452,11 +452,11 @@ for output should be added directly to libxml).</p>
|
||||
especially:</p>
|
||||
<ul>
|
||||
<li>static slot allocation on the stack frame</li>
|
||||
<li>specific boolean interpretation of an XPath expression</li>
|
||||
<li>some of the sorting optimization</li>
|
||||
<li>Lazy evaluation of location path. (this may require more changes but
|
||||
<li>specific boolean interpretation of an XPath expression</li>
|
||||
<li>some of the sorting optimization</li>
|
||||
<li>Lazy evaluation of location path. (this may require more changes but
|
||||
sounds really interesting. XT does this too.)</li>
|
||||
<li>Optimization of an expression tree (This could be done as a completely
|
||||
<li>Optimization of an expression tree (This could be done as a completely
|
||||
independent module.)</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
@ -81,15 +81,15 @@ the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the
|
||||
<p>Here are some key points about libxslt:</p>
|
||||
<ul>
|
||||
<li>Libxslt is a C implementation</li>
|
||||
<li>Libxslt is based on libxml for XML parsing, tree manipulation and XPath
|
||||
<li>Libxslt is based on libxml for XML parsing, tree manipulation and XPath
|
||||
support</li>
|
||||
<li>It is written in plain C, making as few assumptions as possible, and
|
||||
<li>It is written in plain C, making as few assumptions as possible, and
|
||||
sticking closely to ANSI C/POSIX for easy embedding. Should works on
|
||||
Linux/Unix/Windows.</li>
|
||||
<li>This library is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
|
||||
<li>This library is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
|
||||
Licence</a>
|
||||
</li>
|
||||
<li>Though not designed primarily with performances in mind, libxslt seems
|
||||
<li>Though not designed primarily with performances in mind, libxslt seems
|
||||
to be a relatively fast processor.</li>
|
||||
</ul>
|
||||
<p><a href="bugs.html">Daniel Veillard</a></p>
|
||||
|
270
doc/news.html
270
doc/news.html
@ -80,12 +80,12 @@ for a really accurate description</h3>
|
||||
<h3>1.0.19: July 6 2002</h3>
|
||||
<ul>
|
||||
<li>EXSLT: dynamic functions and date support bug fixes (Mark Vakoc)</li>
|
||||
<li>xsl:number fix: Richard Jinks</li>
|
||||
<li>xsl:format-numbers fix: Ken Neighbors</li>
|
||||
<li>document('') fix: bug pointed by Eric van der Vlist</li>
|
||||
<li>xsl:message with terminate="yes" fixes: William Brack</li>
|
||||
<li>xsl:sort order support added: Ken Neighbors</li>
|
||||
<li>a few other bug fixes, some of them requiring the latest version of
|
||||
<li>xsl:number fix: Richard Jinks</li>
|
||||
<li>xsl:format-numbers fix: Ken Neighbors</li>
|
||||
<li>document('') fix: bug pointed by Eric van der Vlist</li>
|
||||
<li>xsl:message with terminate="yes" fixes: William Brack</li>
|
||||
<li>xsl:sort order support added: Ken Neighbors</li>
|
||||
<li>a few other bug fixes, some of them requiring the latest version of
|
||||
libxml2</li>
|
||||
</ul>
|
||||
<h3>1.0.18: May 27 2002</h3>
|
||||
@ -94,317 +94,317 @@ for a really accurate description</h3>
|
||||
(DocBook), xsl:include crash (Igor), documentation (Christian Cornelssen,
|
||||
Charles Bozeman and Geert Kloosterman), element-available (Richard
|
||||
Jinks)</li>
|
||||
<li>xsltproc can now list teh registered extensions thanks to Mark
|
||||
<li>xsltproc can now list teh registered extensions thanks to Mark
|
||||
Vakoc</li>
|
||||
<li>there is a new API to save directly to a string
|
||||
<li>there is a new API to save directly to a string
|
||||
xsltSaveResultToString() by Morus Walter</li>
|
||||
<li>specific error registration function for the python API</li>
|
||||
<li>specific error registration function for the python API</li>
|
||||
</ul>
|
||||
<h3>1.0.17: April 29 2002</h3>
|
||||
<ul>
|
||||
<li>cleanup in code, XSLT debugger support and Makefiles for Windows by
|
||||
Igor</li>
|
||||
<li>a C++ portability fix by Mark Vakoc</li>
|
||||
<li>EXSLT date improvement and regression tests by Charles Bozeman</li>
|
||||
<li>attempt to fix a bug in xsltProcessUserParamInternal</li>
|
||||
<li>a C++ portability fix by Mark Vakoc</li>
|
||||
<li>EXSLT date improvement and regression tests by Charles Bozeman</li>
|
||||
<li>attempt to fix a bug in xsltProcessUserParamInternal</li>
|
||||
</ul>
|
||||
<h3>1.0.16: April 15 2002</h3>
|
||||
<ul>
|
||||
<li>Bug fixes: strip-space, URL in HTML output, error when xsltproc can't
|
||||
save</li>
|
||||
<li>portability fixes: OSF/1, IEEE on alphas, Windows, Python bindings</li>
|
||||
<li>portability fixes: OSF/1, IEEE on alphas, Windows, Python bindings</li>
|
||||
</ul>
|
||||
<h3>1.0.15: Mar 25 2002</h3>
|
||||
<ul>
|
||||
<li>Bugfixes: XPath, python Makefile, recursive attribute sets, @foo[..]
|
||||
templates</li>
|
||||
<li>Debug of memory alocation with valgind</li>
|
||||
<li>serious profiling leading to significant improvement for DocBook
|
||||
<li>Debug of memory alocation with valgind</li>
|
||||
<li>serious profiling leading to significant improvement for DocBook
|
||||
processing</li>
|
||||
<li>revamp of the Windows build</li>
|
||||
<li>revamp of the Windows build</li>
|
||||
</ul>
|
||||
<h3>1.0.14: Mar 18 2002</h3>
|
||||
<ul>
|
||||
<li>Improvement in the XPath engine (libxml2-2.4.18)</li>
|
||||
<li>Nasty bug fix related to exslt:node-set</li>
|
||||
<li>Fixed the python Makefiles, cleanup of doc comments, Windows
|
||||
<li>Nasty bug fix related to exslt:node-set</li>
|
||||
<li>Fixed the python Makefiles, cleanup of doc comments, Windows
|
||||
portability fixes</li>
|
||||
</ul>
|
||||
<h3>1.0.13: Mar 8 2002</h3>
|
||||
<ul>
|
||||
<li>a number of bug fixes including "namespace node have no parents"</li>
|
||||
<li>Improvement of the Python bindings</li>
|
||||
<li>Charles Bozeman provided fixes and regression tests for exslt date
|
||||
<li>Improvement of the Python bindings</li>
|
||||
<li>Charles Bozeman provided fixes and regression tests for exslt date
|
||||
functions.</li>
|
||||
</ul>
|
||||
<h3>1.0.12: Feb 11 2002</h3>
|
||||
<ul>
|
||||
<li>Fixed the makefiles especially the python module ones</li>
|
||||
<li>half a dozen bugs fixes including 2 old ones</li>
|
||||
<li>half a dozen bugs fixes including 2 old ones</li>
|
||||
</ul>
|
||||
<h3>1.0.11: Feb 8 2002</h3>
|
||||
<ul>
|
||||
<li>Change of Licence to the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
|
||||
Licence</a>
|
||||
</li>
|
||||
<li>Added a beta version of the Python bindings, including support to
|
||||
<li>Added a beta version of the Python bindings, including support to
|
||||
extend the engine with functions written in Python</li>
|
||||
<li>A number of bug fixes</li>
|
||||
<li>Charlie Bozeman provided more EXSLT functions</li>
|
||||
<li>Portability fixes</li>
|
||||
<li>A number of bug fixes</li>
|
||||
<li>Charlie Bozeman provided more EXSLT functions</li>
|
||||
<li>Portability fixes</li>
|
||||
</ul>
|
||||
<h3>1.0.10: Jan 14 2002</h3>
|
||||
<ul>
|
||||
<li>Windows fixes for Win32 from Igor</li>
|
||||
<li>Fixed the Solaris compilation trouble (Albert)</li>
|
||||
<li>Documentation changes and updates: John Fleck</li>
|
||||
<li>Added a stringparam option to avoid escaping hell at the shell
|
||||
<li>Fixed the Solaris compilation trouble (Albert)</li>
|
||||
<li>Documentation changes and updates: John Fleck</li>
|
||||
<li>Added a stringparam option to avoid escaping hell at the shell
|
||||
level</li>
|
||||
<li>A few bug fixes</li>
|
||||
<li>A few bug fixes</li>
|
||||
</ul>
|
||||
<h3>1.0.9: Dec 7 2001</h3>
|
||||
<ul>
|
||||
<li>Makefile patches from Peter Williams</li>
|
||||
<li>attempt to fix the compilation problem associated to prelinking</li>
|
||||
<li>obsoleted libxsltbreakpoint now deprecated and frozen to 1.0.8 API</li>
|
||||
<li>xsltproc return codes are now significant, John Fleck updated the
|
||||
<li>attempt to fix the compilation problem associated to prelinking</li>
|
||||
<li>obsoleted libxsltbreakpoint now deprecated and frozen to 1.0.8 API</li>
|
||||
<li>xsltproc return codes are now significant, John Fleck updated the
|
||||
documentation</li>
|
||||
<li>patch to allow as much as 40 steps in patterns (Marc Tardif), should be
|
||||
<li>patch to allow as much as 40 steps in patterns (Marc Tardif), should be
|
||||
made dynamic really</li>
|
||||
<li>fixed a bug raised by Nik Clayton when using doctypes with HTML
|
||||
<li>fixed a bug raised by Nik Clayton when using doctypes with HTML
|
||||
output</li>
|
||||
<li>patches from Keith Isdale to interface with xsltdebugger</li>
|
||||
<li>patches from Keith Isdale to interface with xsltdebugger</li>
|
||||
</ul>
|
||||
<h3>1.0.8: Nov 26 2001</h3>
|
||||
<ul>
|
||||
<li>fixed an annoying header problem, removed a few bugs and some code
|
||||
cleanup</li>
|
||||
<li>patches for Windows and update of Windows Makefiles by Igor</li>
|
||||
<li>OpenVMS port instructions from John A Fotheringham</li>
|
||||
<li>fixed some Makefiles annoyance and libraries prelinking
|
||||
<li>patches for Windows and update of Windows Makefiles by Igor</li>
|
||||
<li>OpenVMS port instructions from John A Fotheringham</li>
|
||||
<li>fixed some Makefiles annoyance and libraries prelinking
|
||||
informations</li>
|
||||
</ul>
|
||||
<h3>1.0.7: Nov 10 2001</h3>
|
||||
<ul>
|
||||
<li>remove a compilation problem with LIBXSLT_PUBLIC</li>
|
||||
<li>Finishing the integration steps for Keith Isdale debugger</li>
|
||||
<li>fixes the handling of indent="no" on HTML output</li>
|
||||
<li>fixes on the configure script and RPM spec file</li>
|
||||
<li>Finishing the integration steps for Keith Isdale debugger</li>
|
||||
<li>fixes the handling of indent="no" on HTML output</li>
|
||||
<li>fixes on the configure script and RPM spec file</li>
|
||||
</ul>
|
||||
<h3>1.0.6: Oct 30 2001</h3>
|
||||
<ul>
|
||||
<li>bug fixes on number formatting (Thomas), date/time functions (Bruce
|
||||
Miller)</li>
|
||||
<li>update of the Windows Makefiles (Igor)</li>
|
||||
<li>fixed DOCTYPE generation rules for HTML output (me)</li>
|
||||
<li>update of the Windows Makefiles (Igor)</li>
|
||||
<li>fixed DOCTYPE generation rules for HTML output (me)</li>
|
||||
</ul>
|
||||
<h3>1.0.5: Oct 10 2001</h3>
|
||||
<ul>
|
||||
<li>some portability fixes, including Windows makefile updates from
|
||||
Igor</li>
|
||||
<li>fixed a dozen bugs on XSLT and EXSLT (me and Thomas Broyer)</li>
|
||||
<li>support for Saxon's evaluate and expressions extensions added (initial
|
||||
<li>fixed a dozen bugs on XSLT and EXSLT (me and Thomas Broyer)</li>
|
||||
<li>support for Saxon's evaluate and expressions extensions added (initial
|
||||
contribution from Darren Graves)</li>
|
||||
<li>better handling of XPath evaluation errors</li>
|
||||
<li>better handling of XPath evaluation errors</li>
|
||||
</ul>
|
||||
<h3>1.0.4: Sep 12 2001</h3>
|
||||
<ul>
|
||||
<li>Documentation updates from John fleck</li>
|
||||
<li>bug fixes (DocBook FO generation should be fixed) and portability
|
||||
<li>bug fixes (DocBook FO generation should be fixed) and portability
|
||||
improvements</li>
|
||||
<li>Thomas Broyer improved the existing EXSLT support and added String,
|
||||
<li>Thomas Broyer improved the existing EXSLT support and added String,
|
||||
Time and Date core functions support</li>
|
||||
</ul>
|
||||
<h3>1.0.3: Aug 23 2001</h3>
|
||||
<ul>
|
||||
<li>XML Catalog support see the doc</li>
|
||||
<li>New NaN/Infinity floating point code</li>
|
||||
<li>A few bug fixes</li>
|
||||
<li>New NaN/Infinity floating point code</li>
|
||||
<li>A few bug fixes</li>
|
||||
</ul>
|
||||
<h3>1.0.2: Aug 15 2001</h3>
|
||||
<ul>
|
||||
<li>lot of bug fixes, increased the testsuite</li>
|
||||
<li>a large chunk of EXSLT is implemented</li>
|
||||
<li>improvements on the extension framework</li>
|
||||
<li>documentation improvements</li>
|
||||
<li>Windows MSC projects files should be up-to-date</li>
|
||||
<li>handle attributes inherited from the DTD by default</li>
|
||||
<li>a large chunk of EXSLT is implemented</li>
|
||||
<li>improvements on the extension framework</li>
|
||||
<li>documentation improvements</li>
|
||||
<li>Windows MSC projects files should be up-to-date</li>
|
||||
<li>handle attributes inherited from the DTD by default</li>
|
||||
</ul>
|
||||
<h3>1.0.1: July 24 2001</h3>
|
||||
<ul>
|
||||
<li>initial EXSLT framework</li>
|
||||
<li>better error reporting</li>
|
||||
<li>fixed the profiler on Windows</li>
|
||||
<li>bug fixes</li>
|
||||
<li>better error reporting</li>
|
||||
<li>fixed the profiler on Windows</li>
|
||||
<li>bug fixes</li>
|
||||
</ul>
|
||||
<h3>1.0.0: July 10 2001</h3>
|
||||
<ul>
|
||||
<li>a lot of cleanup, a lot of regression tests added or fixed</li>
|
||||
<li>added a documentation for <a href="extensions.html">writing
|
||||
<li>added a documentation for <a href="extensions.html">writing
|
||||
extensions</a>
|
||||
</li>
|
||||
<li>fixed some variable evaluation problems (with William)</li>
|
||||
<li>added profiling of stylesheet execution accessible as the xsltproc
|
||||
<li>fixed some variable evaluation problems (with William)</li>
|
||||
<li>added profiling of stylesheet execution accessible as the xsltproc
|
||||
--profile option</li>
|
||||
<li>fixed element-available() and the implementation of the various
|
||||
<li>fixed element-available() and the implementation of the various
|
||||
chunking methods present, Norm Walsh provided a lot of feedback</li>
|
||||
<li>exclude-result-prefixes and namespaces output should now work as
|
||||
<li>exclude-result-prefixes and namespaces output should now work as
|
||||
expected</li>
|
||||
<li>added support of embedded stylesheet as described in section 2.7 of the
|
||||
<li>added support of embedded stylesheet as described in section 2.7 of the
|
||||
spec</li>
|
||||
</ul>
|
||||
<h3>0.14.0: July 5 2001</h3>
|
||||
<ul>
|
||||
<li>lot of bug fixes, and code cleanup</li>
|
||||
<li>completion of the little XSLT-1.0 features left unimplemented</li>
|
||||
<li>Added and implemented the extension API suggested by Thomas Broyer</li>
|
||||
<li>the Windows MSC environment should be complete</li>
|
||||
<li>tested and optimized with a really large document (DocBook Definitive
|
||||
<li>completion of the little XSLT-1.0 features left unimplemented</li>
|
||||
<li>Added and implemented the extension API suggested by Thomas Broyer</li>
|
||||
<li>the Windows MSC environment should be complete</li>
|
||||
<li>tested and optimized with a really large document (DocBook Definitive
|
||||
Guide) libxml/libxslt should really be faster on serious workloads</li>
|
||||
</ul>
|
||||
<h3>0.13.0: June 26 2001</h3>
|
||||
<ul>
|
||||
<li>lots of cleanups</li>
|
||||
<li>fixed a C++ compilation problem</li>
|
||||
<li>couple of fixes to xsltSaveTo()</li>
|
||||
<li>try to fix Docbook-xslt-1.4 and chunking, updated the regression test
|
||||
<li>fixed a C++ compilation problem</li>
|
||||
<li>couple of fixes to xsltSaveTo()</li>
|
||||
<li>try to fix Docbook-xslt-1.4 and chunking, updated the regression test
|
||||
with them</li>
|
||||
<li>fixed pattern compilation and priorities problems</li>
|
||||
<li>Patches for Windows and MSC project mostly contributed by Yon Derek</li>
|
||||
<li>update to the Tutorial by John Fleck</li>
|
||||
<li>William fixed bugs in templates and for-each functions</li>
|
||||
<li>added a new interface xsltRunStylesheet() for a more flexible output
|
||||
<li>fixed pattern compilation and priorities problems</li>
|
||||
<li>Patches for Windows and MSC project mostly contributed by Yon Derek</li>
|
||||
<li>update to the Tutorial by John Fleck</li>
|
||||
<li>William fixed bugs in templates and for-each functions</li>
|
||||
<li>added a new interface xsltRunStylesheet() for a more flexible output
|
||||
(incomplete), added -o option to xsltproc</li>
|
||||
</ul>
|
||||
<h3>0.12.0: June 18 2001</h3>
|
||||
<ul>
|
||||
<li>fixed a dozen of bugs reported</li>
|
||||
<li>HTML generation should be quite better (requires libxml-2.3.11 upgrade
|
||||
<li>HTML generation should be quite better (requires libxml-2.3.11 upgrade
|
||||
too)</li>
|
||||
<li>William fixed some problems with document()</li>
|
||||
<li>Fix namespace nodes selection and copy (requires libxml-2.3.11 upgrade
|
||||
<li>William fixed some problems with document()</li>
|
||||
<li>Fix namespace nodes selection and copy (requires libxml-2.3.11 upgrade
|
||||
too)</li>
|
||||
<li>John Fleck added a<a href="tutorial/libxslttutorial.html">
|
||||
<li>John Fleck added a<a href="tutorial/libxslttutorial.html">
|
||||
tutorial</a>
|
||||
</li>
|
||||
<li>Fixes for namespace handling when evaluating variables</li>
|
||||
<li>XInclude global flag added to process XInclude on document() if
|
||||
<li>Fixes for namespace handling when evaluating variables</li>
|
||||
<li>XInclude global flag added to process XInclude on document() if
|
||||
requested</li>
|
||||
<li>made xsltproc --version more detailed</li>
|
||||
<li>made xsltproc --version more detailed</li>
|
||||
</ul>
|
||||
<h3>0.11.0: June 1 2001</h3>
|
||||
<p>Mostly a bug fix release.</p>
|
||||
<ul>
|
||||
<li>integration of catalogs from xsltproc</li>
|
||||
<li>added --version to xsltproc for bug reporting</li>
|
||||
<li>fixed errors when handling ID in external parsed entities</li>
|
||||
<li>document() should hopefully work correctly but ...</li>
|
||||
<li>fixed bug with PI and comments processing</li>
|
||||
<li>William fixed the XPath string functions when using unicode</li>
|
||||
<li>added --version to xsltproc for bug reporting</li>
|
||||
<li>fixed errors when handling ID in external parsed entities</li>
|
||||
<li>document() should hopefully work correctly but ...</li>
|
||||
<li>fixed bug with PI and comments processing</li>
|
||||
<li>William fixed the XPath string functions when using unicode</li>
|
||||
</ul>
|
||||
<h3>0.10.0: May 19 2001</h3>
|
||||
<ul>
|
||||
<li>cleanups to make stylesheet read-only (not 100% complete)</li>
|
||||
<li>fixed URI resolution in document()</li>
|
||||
<li>force all XPath expression to be compiled at stylesheet parsing time,
|
||||
<li>fixed URI resolution in document()</li>
|
||||
<li>force all XPath expression to be compiled at stylesheet parsing time,
|
||||
even if unused ...</li>
|
||||
<li>Fixed HTML default output detection</li>
|
||||
<li>Fixed double attribute generation #54446</li>
|
||||
<li>Fixed {{ handling in attributes #54451</li>
|
||||
<li>More tests and speedups for DocBook document transformations</li>
|
||||
<li>Fixed a really bad race like bug in xsltCopyTreeList()</li>
|
||||
<li>added a documentation on the libxslt internals</li>
|
||||
<li>William Brack and Bjorn Reese improved format-number()</li>
|
||||
<li>Fixed multiple sort, it should really work now</li>
|
||||
<li>added a --docbook option for SGML DocBook input (hackish)</li>
|
||||
<li>a number of other bug fixes and regression test added as people were
|
||||
<li>Fixed HTML default output detection</li>
|
||||
<li>Fixed double attribute generation #54446</li>
|
||||
<li>Fixed {{ handling in attributes #54451</li>
|
||||
<li>More tests and speedups for DocBook document transformations</li>
|
||||
<li>Fixed a really bad race like bug in xsltCopyTreeList()</li>
|
||||
<li>added a documentation on the libxslt internals</li>
|
||||
<li>William Brack and Bjorn Reese improved format-number()</li>
|
||||
<li>Fixed multiple sort, it should really work now</li>
|
||||
<li>added a --docbook option for SGML DocBook input (hackish)</li>
|
||||
<li>a number of other bug fixes and regression test added as people were
|
||||
submitting them</li>
|
||||
</ul>
|
||||
<h3>0.9.0: May 3 2001</h3>
|
||||
<ul>
|
||||
<li>lot of various bugfixes, extended the regression suite</li>
|
||||
<li>xsltproc should work with multiple params</li>
|
||||
<li>added an option to use xsltproc with HTML input</li>
|
||||
<li>improved the stylesheet compilation, processing of complex stylesheets
|
||||
<li>xsltproc should work with multiple params</li>
|
||||
<li>added an option to use xsltproc with HTML input</li>
|
||||
<li>improved the stylesheet compilation, processing of complex stylesheets
|
||||
should be faster</li>
|
||||
<li>using the same stylesheet for concurrent processing on multithreaded
|
||||
<li>using the same stylesheet for concurrent processing on multithreaded
|
||||
programs should work now</li>
|
||||
<li>fixed another batch of namespace handling problems</li>
|
||||
<li>Implemented multiple level of sorting</li>
|
||||
<li>fixed another batch of namespace handling problems</li>
|
||||
<li>Implemented multiple level of sorting</li>
|
||||
</ul>
|
||||
<h3>0.8.0: Apr 22 2001</h3>
|
||||
<ul>
|
||||
<li>fixed ansidecl.h problem</li>
|
||||
<li>fixed unparsed-entity-uri() and generate-id()</li>
|
||||
<li>sort semantic fixes and priority prob from William M. Brack</li>
|
||||
<li>fixed namespace handling problems in XPath expression computations
|
||||
<li>fixed unparsed-entity-uri() and generate-id()</li>
|
||||
<li>sort semantic fixes and priority prob from William M. Brack</li>
|
||||
<li>fixed namespace handling problems in XPath expression computations
|
||||
(requires libxml-2.3.7)</li>
|
||||
<li>fixes to current() and key()</li>
|
||||
<li>other, smaller fixes, lots of testing with N Walsh DocBook HTML
|
||||
<li>fixes to current() and key()</li>
|
||||
<li>other, smaller fixes, lots of testing with N Walsh DocBook HTML
|
||||
stylesheets</li>
|
||||
</ul>
|
||||
<h3>0.7.0: Apr 10 2001</h3>
|
||||
<ul>
|
||||
<li>cleanup using stricter compiler flags</li>
|
||||
<li>command line parameter passing</li>
|
||||
<li>fix to xsltApplyTemplates from William M. Brack</li>
|
||||
<li>added the XSLTMark in the regression tests as well as document()</li>
|
||||
<li>command line parameter passing</li>
|
||||
<li>fix to xsltApplyTemplates from William M. Brack</li>
|
||||
<li>added the XSLTMark in the regression tests as well as document()</li>
|
||||
</ul>
|
||||
<h3>0.6.0: Mar 22 2001</h3>
|
||||
<ul>
|
||||
<li>another beta</li>
|
||||
<li>requires 2.3.5, which provide XPath expression compilation support</li>
|
||||
<li>document() extension should function properly</li>
|
||||
<li>fixed a number or reported bugs</li>
|
||||
<li>requires 2.3.5, which provide XPath expression compilation support</li>
|
||||
<li>document() extension should function properly</li>
|
||||
<li>fixed a number or reported bugs</li>
|
||||
</ul>
|
||||
<h3>0.5.0: Mar 10 2001</h3>
|
||||
<ul>
|
||||
<li>fifth beta</li>
|
||||
<li>some optimization work, for the moment 2 XSLT transform cannot use the
|
||||
<li>some optimization work, for the moment 2 XSLT transform cannot use the
|
||||
same stylesheet at the same time (to be fixed)</li>
|
||||
<li>fixed problems with handling of tree results</li>
|
||||
<li>fixed a reported strip-spaces problem</li>
|
||||
<li>added more reported/fixed bugs to the test suite</li>
|
||||
<li>incorporated William M. Brack fix for imports and global variables as
|
||||
<li>fixed problems with handling of tree results</li>
|
||||
<li>fixed a reported strip-spaces problem</li>
|
||||
<li>added more reported/fixed bugs to the test suite</li>
|
||||
<li>incorporated William M. Brack fix for imports and global variables as
|
||||
well as patch for with-param support in apply-templates</li>
|
||||
<li>a bug fix on for-each</li>
|
||||
<li>a bug fix on for-each</li>
|
||||
</ul>
|
||||
<h3>0.4.0: Mar 1 2001</h3>
|
||||
<ul>
|
||||
<li>fourth beta test, released at the same time of libxml2-2.3.3</li>
|
||||
<li>bug fixes</li>
|
||||
<li>some optimization</li>
|
||||
<li>started implement extension support, not finished</li>
|
||||
<li>implemented but not tested multiple file output</li>
|
||||
<li>bug fixes</li>
|
||||
<li>some optimization</li>
|
||||
<li>started implement extension support, not finished</li>
|
||||
<li>implemented but not tested multiple file output</li>
|
||||
</ul>
|
||||
<h3>0.3.0: Feb 24 2001</h3>
|
||||
<ul>
|
||||
<li>third beta test, released at the same time of libxml2-2.3.2</li>
|
||||
<li>lot of bug fixes</li>
|
||||
<li>some optimization</li>
|
||||
<li>added DocBook XSL based testsuite</li>
|
||||
<li>lot of bug fixes</li>
|
||||
<li>some optimization</li>
|
||||
<li>added DocBook XSL based testsuite</li>
|
||||
</ul>
|
||||
<h3>0.2.0: Feb 15 2001</h3>
|
||||
<ul>
|
||||
<li>second beta version, released at the same time as libxml2-2.3.1</li>
|
||||
<li>getting close to feature completion, lot of bug fixes, some in the HTML
|
||||
<li>getting close to feature completion, lot of bug fixes, some in the HTML
|
||||
and XPath support of libxml</li>
|
||||
<li>start becoming usable for real work. This version can now regenerate
|
||||
<li>start becoming usable for real work. This version can now regenerate
|
||||
the XML 2e HTML from the original XML sources and the associated
|
||||
stylesheets (in <a href="http://www.w3.org/TR/REC-xml#b4d250b6c21">section I of the XML
|
||||
REC</a>)</li>
|
||||
<li>Still misses extension element/function/prefixes support. Support of
|
||||
<li>Still misses extension element/function/prefixes support. Support of
|
||||
key() and document() is not complete</li>
|
||||
</ul>
|
||||
<h3>0.1.0: Feb 8 2001</h3>
|
||||
<ul>
|
||||
<li>first beta version, released at the same time as libxml2-2.3.0</li>
|
||||
<li>lots of bug fixes, first "testing" version, but incomplete</li>
|
||||
<li>lots of bug fixes, first "testing" version, but incomplete</li>
|
||||
</ul>
|
||||
<h3>0.0.1: Jan 25 2001</h3>
|
||||
<ul>
|
||||
<li>first alpha version released at the same time as libxml2-2.2.12</li>
|
||||
<li>Framework in place, should work on simple examples, but far from being
|
||||
<li>Framework in place, should work on simple examples, but far from being
|
||||
feature complete</li>
|
||||
</ul>
|
||||
<p><a href="bugs.html">Daniel Veillard</a></p>
|
||||
|
@ -87,16 +87,16 @@ or libxslt wrappers or bindings:</p>
|
||||
and 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>
|
||||
<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
|
||||
<li>Petr Kozelka provides <a href="http://sourceforge.net/projects/libxml2-pas">Pascal units to glue
|
||||
libxml2</a> with Kylix, Delphi and other Pascal compilers</li>
|
||||
<li>Wai-Sun "Squidster" Chia provides <a href="http://www.rubycolor.org/arc/redist/">bindings for Ruby</a> and
|
||||
<li>Wai-Sun "Squidster" Chia provides <a href="http://www.rubycolor.org/arc/redist/">bindings for Ruby</a> and
|
||||
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
|
||||
<li>Steve Ball and contributors maintains <a href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
|
||||
Tcl</a>
|
||||
</li>
|
||||
</ul>
|
||||
@ -109,7 +109,7 @@ interface have not yet reached the maturity of the C API.</p>
|
||||
<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 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
|
||||
<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
|
||||
@ -139,17 +139,17 @@ in that example and how is the processing done:</p>
|
||||
<li>
|
||||
<code>styledoc</code> : is a libxml2 document tree. It is obtained by
|
||||
parsing the XML file "test.xsl" containing the stylesheet.</li>
|
||||
<li>
|
||||
<li>
|
||||
<code>style</code> : this is a precompiled stylesheet ready to be used
|
||||
by the following transformations (note the plural form, multiple
|
||||
transformations can resuse the same stylesheet).</li>
|
||||
<li>
|
||||
<li>
|
||||
<code>doc</code> : this is the document to apply the transformation to.
|
||||
In this case it is simply generated by parsing it from a file but any
|
||||
other processing is possible as long as one get a libxml2 Doc. Note that
|
||||
HTML tree are suitable for XSLT processing in libxslt. This is actually
|
||||
how this page is generated !</li>
|
||||
<li>
|
||||
<li>
|
||||
<code>result</code> : this is a document generated by applying the
|
||||
stylesheet to the document. Note that some of the stylesheet informations
|
||||
may be related to the serialization of that document and as in this
|
||||
@ -217,11 +217,11 @@ string with libxml2. Note how this stylesheet:</p>
|
||||
<ul>
|
||||
<li>Uses a global parameter <code>bar</code>
|
||||
</li>
|
||||
<li>Reference the extension function f</li>
|
||||
<li>how the Namespace name "http://example.com/foo" has to be bound to a
|
||||
<li>Reference the extension function f</li>
|
||||
<li>how the Namespace name "http://example.com/foo" has to be bound to a
|
||||
prefix</li>
|
||||
<li>how that prefix is excluded from the output</li>
|
||||
<li>how the function is called from the select</li>
|
||||
<li>how that prefix is excluded from the output</li>
|
||||
<li>how the function is called from the select</li>
|
||||
</ul>
|
||||
<pre>style = libxslt.parseStylesheetDoc(styledoc)
|
||||
doc = libxml2.parseDoc("<doc/>")
|
||||
|
Loading…
Reference in New Issue
Block a user