A convenience class to handle simple transformations. The JAXP TrAX classes
have more bells and whistles and can be used with
JDOMSource and
JDOMResult for advanced uses. This class handles the common case and
presents a simple interface. XSLTransformer is thread safe and may be
used from multiple threads.
XSLTransformer transformer = new XSLTransformer("file.xsl");
Document x2 = transformer.transform(x); // x is a Document
Document y2 = transformer.transform(y); // y is a Document
JDOM relies on TrAX to perform the transformation.
The
javax.xml.transform.TransformerFactory
Java system property
determines which XSLT engine TrAX uses. Its value should be
the fully qualified name of the implementation of the abstract
javax.xml.transform.TransformerFactory
class.
Values of this property for popular XSLT processors include:
- Saxon 6.x:
com.icl.saxon.TransformerFactoryImpl
- Saxon 7.x:
net.sf.saxon.TransformerFactoryImpl
- Xalan:
org.apache.xalan.processor.TransformerFactoryImpl
- jd.xslt:
jd.xml.xslt.trax.TransformerFactoryImpl
- Oracle:
oracle.xml.jaxp.JXSAXTransformerFactory
This property can be set in all the usual ways a Java system property
can be set. TrAX picks from them in this order:
- Invoking
System.setProperty( "javax.xml.transform.TransformerFactory",
"classname
")
- The value specified at the command line using the
-Djavax.xml.transform.TransformerFactory=
classname
option to the java interpreter
- The class named in the
lib/jaxp.properties
properties file
in the JRE directory, in a line like this one:
javax.xml.parsers.DocumentBuilderFactory=classname
- The class named in the
META-INF/services/javax.xml.transform.TransformerFactory
file
in the JAR archives available to the runtime
- Finally, if all of the above options fail,
a default implementation is chosen. In Sun's JDK 1.4, this is
Xalan 2.2d10.