project::xslt4exml
|
overview
|
|
|
This is an
implementation of the most useful aspects of XSLT, developed specifically
using and for the intention of being used in conjunction with the Electric XML product
from The Mind Electric (http://www.themindelectric.com).
TME have implemented a
'fast, useful subset' of a full XML parser under the 80/20 ethos of only implementing
what was most frequently used, guided by a need for fast execution, and usability
of the API. This project builds on that - and applies a similar ethos
to implementing a 'fast, useful subset' of the XSLT standard, with EXML at its core
for XML parsing, manipulation, and creation.
This project
is generously hosted by Sourceforge.
|
compatibility
|
|
|
Release 1.3.0
is essentially the same as 1.2.1 but with some minor modifications so that
it is compatible with with EXML6.0. The key differences are in the
manner in which XPath objects are instantiated with cache and namespace context
support.
Release 1.2.1 works fine with EXML version 5.0 as the changes noted in the
release note below have in fact being rolled into the core EXML classes, and
so xslt4exml will interoperate without modification.
Watch this site
for news and info regarding the iminent next release!
The EXML project is
also open sourced under the Electric XML
Licence (http://www.themindelectric.com/exml/license-EXML.html). |
usage
|
|
|
When using
EXML as an XML parser, with integrated DOM2 support, an EXML-parsed Document
may be passed to any DOM-compliant XSL engine (such as Xalan) in order to
execute any required transformations. This XSL engine (XSLT4EXML) is
written using EXML APIs natively, so receives a performance boost due to EXML’s
fast parsing and manipulation capabilities, as well as being implemented specifically
to execute quickly and efficiently. Initial benchmarking shows a significant
head start (order of magnitude is common) on transforming XML when compared
to Xalan, for instance, even when EXML is doing all the parsing.
|
technical requirements
|
|
|
The project
technical requirements are as follows:
- Java2 (jdk1.4 used during development)
- EXML version
5.0 (with release 1.2.1)
- EXML version 6.0 (with release 1.3.0)
- Implemented to
the TRaX standard
(javax.xml.transform) aspect of JAXP.
|
issues
|
|
|
By
the fact that this project is based on implementing a 'subset' of XSLT (and
XPath), you may find that your stylesheets wont run without some form of
modification; especially if you're using complex XPath expressions (Electric
XPath can't deal with much of that anyway, so you probably won't be). However
you might be pleased to know that this initial release has a good go at implementing
pretty much all of the XSLT/XPath functions, and the xsl:if (and xsl:when)
test supports compound expressions. Please see what happens and respond
to the appropriate fora, and i'll try to improve things.
Please also note that with EXML6.0 supporting the Jaxen XPath implementation,
a future release of this project should be able to take advantage of this
by deferring all XPath support to the Jaxen implementation where it makes
sense in terms of the play-off between inline implmentation (for performance)
versus widespread XPath support.
|
licence
|
|
|
This
project is licenced under the LGPL (Library
'lesser' General Public Licence) source approved licence.
|
download
|
|
|
Please
download the appropriate EXML sourcecode, then install xslt4exml from the
following list of downloads:
The public release of this code available at SourceForge:
|
release notes
|
|
|
The
following release notes are currently available:
|
support
|
|
|
This
being an open source project; the usual disclaimers appy (ie use at your
own risk if it breaks fix it etc etc etc...). Please feel free to patch
up the code yourself; if you're interested get in touch at the Sourceforge site and
perhaps think about becoming a developer yourself. Please also refer
to the fora on
the sourceforge website,
and the TME
support group on yahoo.
|