
  * Supported commands                                       XML::XSLT Homepage
  * Action!
  * Script options
                             XSLT
  * Download
  * Bugs                     You wrote some XML, and have a XSL Template. You want to use this on your
  * What's Next              website, but want to use Perl with your webserver. No Problem!
  * Links
                                  Remember that this project is Work in Progress! Rome wasn't build in one
                                  day! Any comment is welcome! Any programming effort as well! This modules
 Send comment and bugs to:        *is* great stuff, but it isn't finished yet! However, if you need a xsl
       Geert Josten and           command urgently, please email us your request and place it in our high
      Egon Willighagen            priority to-do list.

 last modified on January                                                                                 Egon
 25th 2000.
                             XML::XSLT will convert the XML doc on basis of the template. It is written in
   -----------------------   Perl and works. Not all xsl commands are implemented yet. Nor is it fast. But
                             meanwhile it works: watch it in action. At this moment we need a lot of input. So
 XSA doc: xslt-parser.xsa.   try this script and give us your comment on it. Missing/needed xsl elements,
 ----------------------------bugs, anything...

 Join our mailing list!      This document gives some explanation on this project. Other Stuff to read is the
 Enter your email address    Specification of XSLT and the XSL(T)-by-example page (see links). Below, given is
 below,                      a list of XSLT-command's that are supported.
 then click the 'Join List'
 button:                     Supported XSLT commands
     [Image]
                             The list of commands that are supported by XML::XSLT has been moved to the online
 Powered by ListBot          manpage. To see what to upcoming version has to offer, have a look at the manpage
                             of the next version.
 This discussion list is
 archived at                 Action!
 http://xmlxslt.listbot.com/.
                             Oke, let's see it work. The script takes a project name <project>. The files
                             <project>.xml and <project>.xsl are read and converted to an internal object tree
                             with XML::DOM. Then the XSL template is parsed against the XML tree, which
                             results in a new doc that is redirected to STDOUT. That's all.

                             Ofcourse, it need not be HTML. With XSLT you can convert any XML document with
                             any XSL doc you like.

                             NB! These are the updated examples. They only work with version 0.13 or higher.

                             This is the CML project:

                                * This project makes old CML files of the Dictionary on Organic Chemistry
                                  conform the newest CML DTD.
                                * 91-22-5.cml (old cml file)
                                * cml2cml.xsl (for cml to cml conversion)
                                * resulting 91-22-5.xml
                                * Please note that is you use IE 5.0 to view the result you it gets parsed by
                                  the IE XSL parser for a XML2HTML conversion due to the xsl stylesheet below.
                                  If so, use right mouse button and view source to see the underlying xml file
                                  when viewing the xml file with the stylesheet.
                                * cml.xsl
                                * The rest of the new CML files are served at the Dictionary on Organic
                                  Chemistry project as Physical Properties (example) and at xmltree.com.

                             The Agenda project:

                                * agenda.dtd
                                * agenda.xml
                                * agenda.xsl
                                * agenda.html

                             Script options

                             The script can be used as an CGI script, but also as a command-line utility. Also
                             accepts a XSL Template other than <project>.xsl. These behaviours are selected
                             with some options. Run xslt-parser without options or parameters at the
                             commandline to view its syntax.

                             the -n option
                             When a script is to be used with a web-server, its output must be preceeded with
                             a Content-type line. The xslt-parser script does this by default. It can be
                             turned off with the -n(oweb) option.

                             the -s option
                             By default the script uses the <project>.xsl XSLT template. With the
                             -s(tylesheet) <template.xsl> option other templates can be used.

                             Download

                             The latest release is v0.21 which needs as always testing (see changelog and
                             manpage). Required are the modules XML::Parser (version 2.23 or higher) and
                             XML::DOM (version 1.25 or higher) which can be obtained from CPAN. Our module
                             also depends on the module LWP::UserAgent as was pointed out by a user. This
                             module can also be downloaded from CPAN.

                             A changelog is also available. Older version can be downloaded from this page.

                             Bugs

                                * xsl:template matching is improved, but predicates are not supported yet
                                * xsl:value-of selecting is limited, no functions are supported (not even
                                  name() or position())

                             Submit new bugs at the on-line bug-report list here!

                             What's Next?

                             To do:

                                * parser options stating how to process comments, pi's and cdata
                                * better document source detection (preferable fully automatic)
                                * proper implementation of xsl:param/xsl:variable/xsl:with-param
                                * mode attribute support for xsl:template and xsl:apply-templates
                                * SVC file
                                * debugging ofcourse
                                * integration of the new XPath module (?)
                                * implementation of predicate testing in template matches and node-set
                                  selections
                                * implementation of function support in value selections
                                * and at the end full support of XSL-T

                             Links

                             XSL-T

                                * http://msdn.microsoft.com/msdn-online/workshop/xml/xslguide/patterns-xsl.asp
                                * http://www.xmlsoftware.com/articles/xsl-by-example.html
                                * http://www.xml.com/xml/pub/1999/04/holman/xsl.html
                                * W3C Recommendation on XSL Transform
                                * XSLT engines at XMLSoftware.com
                                * XMLInfo on XSL
                                * XSL Maillinglist

                             Other

                                * Perl and XML
                                * XML::Parser
                                * W3C Recommendation on DOM
                                * PerlMonth article on XML::DOM
