XSLT/XML Transformation using Java Translets

S

SG

Translets "are precompiled XSL documents that are optimized and
converted into simple Java classes. When you compile your application
Java files, you compile your XSL files into Java class files. During
runtime, you can load translets like any regular Java class and
perform XSL transformations over and over again.

The syntax checking and parsing of XSL documents are done when the XSL
files are compiled. The transformation therefore takes only as long as
the compiled code takes to execute, which improves performance
multiple folds.

The downside to using XSL is that "it can take a considerable amount
of time and reduce performance. The time needed to parse XML and XSL
documents is directly proportional to the size of the documents. Each
transformation requires the XML and XSL documents to be loaded, syntax
checked, and parsed." I recommends using translets for the following
reasons.

I had written an application (<a href="http://www.simplygites.com"
title="www.simplygites.com">SimplyGites</a>) using standard XSL / XML
transformation and experienced some very slow server-side
transformation on the very complex screens with large amounts of xml.
Timings showed these problem screens took 2-3 seconds to transform,
which was totally unacceptable non-functional requirements.

I considered rewriting these screens as JSP or PHP, then I discovered
Translets. And wow what a discovery the timings for these pages now
compiled as Translets(java classes) are amazing in comparison to the
original timings ? I now have them transforming in 500ms (all now
under 1 second).

I would recommend anyone using XSL/XML transformation to use
Translets, these have now been running tried and tested on the <a
href="http://www.simplygites.com"
title="www.simplygites.com">SimplyGites</a> for the past 6months.

Technolgies used:
IBM WebShpere
Java
JAXP 1.3

Required Jars
xsltc.jar
runtime.jar
BCEL.jar
JLex.jar
java_cup.jar
regexp.jar
xml-dtm.jar

For more information see http://xml.apache.org/xalan-j/xsltc_usage.html

I hope this helps anyone that has XML/XSLT performance issues.

Mark
MB Computer Ltd
www.simplygites.com
 
T

Thomas Hawtin

SG said:
I had written an application (<a href="http://www.simplygites.com"
title="www.simplygites.com">SimplyGites</a>) using standard XSL / XML
transformation and experienced some very slow server-side
transformation on the very complex screens with large amounts of xml.
Timings showed these problem screens took 2-3 seconds to transform,
which was totally unacceptable non-functional requirements.

What typically happens when you use XSLT is that the stylesheet is
compiled to byte code and then executed. Compiling to byte code and
loading is expensive. However, if you keep
javax.xml.transform.Transformer objects across all uses of the same
stylesheet, then it only needs to be compiled once. The advantage of
translets is a reduced start up time (and a XSLT implementation known at
compile time).

Tom Hawtin
 
M

Mike Schilling

Thomas Hawtin said:
What typically happens when you use XSLT is that the stylesheet is
compiled to byte code and then executed.

That's true in the default XSLT implementation in Sun's JRE, starting with
1.5. (I hadn't realized that before; thanks, Thomas, for pointing it out.)
It may not be true in other JREs, so another advantage of using translets
explicitly is ensuring that compiled transformations are used in all
environments.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top