org.cdmckay.coffeedom.transform
Class XSLTransformer

java.lang.Object
  extended by org.cdmckay.coffeedom.transform.XSLTransformer

public class XSLTransformer
extends Object

A convenience class to handle simple transformations. The JAXP TrAX classes have more bells and whistles and can be used with CoffeeDOMSource and CoffeeDOMResult 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

CoffeeDOM 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:

This property can be set in all the usual ways a Java system property can be set. TrAX picks from them in this order:

  1. Invoking System.setProperty( "javax.xml.transform.TransformerFactory", "classname")
  2. The value specified at the command line using the -Djavax.xml.transform.TransformerFactory=classname option to the java interpreter
  3. 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
  4. The class named in the META-INF/services/javax.xml.transform.TransformerFactory file in the JAR archives available to the runtime
  5. Finally, if all of the above options fail, a default implementation is chosen. In Sun's JDK 1.4, this is Xalan 2.2d10.

Author:
Jason Hunter, Elliotte Rusty Harold

Constructor Summary
XSLTransformer(Document stylesheet)
           This will create a new XSLTransformer by reading the stylesheet from the specified Document.
XSLTransformer(File stylesheet)
           This will create a new XSLTransformer by reading the stylesheet from the specified File.
XSLTransformer(InputStream stylesheet)
           This will create a new XSLTransformer by reading the stylesheet from the specified InputStream.
XSLTransformer(Reader stylesheet)
           This will create a new XSLTransformer by reading the stylesheet from the specified Reader.
XSLTransformer(String stylesheetSystemId)
          Creates a transformer for a given stylesheet system id.
 
Method Summary
 CoffeeDOMFactory getFactory()
          Returns the custom CoffeeDOMFactory used to build the transformation result.
 void setFactory(CoffeeDOMFactory factory)
          Sets a custom CoffeeDOMFactory to use when building the transformation result.
 Document transform(Document inputDoc)
          Transforms the given document to an output document.
 Document transform(Document inputDoc, EntityResolver resolver)
          Transforms the given document to an output document.
 List transform(List<Content> inputNodes)
          Transforms the given input nodes to a list of output nodes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XSLTransformer

public XSLTransformer(String stylesheetSystemId)
               throws XSLTransformException
Creates a transformer for a given stylesheet system id.

Parameters:
stylesheetSystemId - source stylesheet as a Source object
Throws:
XSLTransformException - if there's a problem in the TrAX back-end

XSLTransformer

public XSLTransformer(InputStream stylesheet)
               throws XSLTransformException

This will create a new XSLTransformer by reading the stylesheet from the specified InputStream.

Parameters:
stylesheet - InputStream from which the stylesheet is read.
Throws:
XSLTransformException - when an IOException, format error, or something else prevents the stylesheet from being compiled

XSLTransformer

public XSLTransformer(Reader stylesheet)
               throws XSLTransformException

This will create a new XSLTransformer by reading the stylesheet from the specified Reader.

Parameters:
stylesheet - Reader from which the stylesheet is read.
Throws:
XSLTransformException - when an IOException, format error, or something else prevents the stylesheet from being compiled

XSLTransformer

public XSLTransformer(File stylesheet)
               throws XSLTransformException

This will create a new XSLTransformer by reading the stylesheet from the specified File.

Parameters:
stylesheet - File from which the stylesheet is read.
Throws:
XSLTransformException - when an IOException, format error, or something else prevents the stylesheet from being compiled

XSLTransformer

public XSLTransformer(Document stylesheet)
               throws XSLTransformException

This will create a new XSLTransformer by reading the stylesheet from the specified Document.

Parameters:
stylesheet - Document containing the stylesheet.
Throws:
XSLTransformException - when the supplied Document is not syntactically correct XSLT
Method Detail

transform

public List transform(List<Content> inputNodes)
               throws XSLTransformException
Transforms the given input nodes to a list of output nodes.

Parameters:
inputNodes - input nodes
Returns:
transformed output nodes
Throws:
XSLTransformException - if there's a problem in the transformation

transform

public Document transform(Document inputDoc)
                   throws XSLTransformException
Transforms the given document to an output document.

Parameters:
inputDoc - input document
Returns:
transformed output document
Throws:
XSLTransformException - if there's a problem in the transformation

transform

public Document transform(Document inputDoc,
                          EntityResolver resolver)
                   throws XSLTransformException
Transforms the given document to an output document.

Parameters:
inputDoc - input document
resolver - entity resolver for the input document
Returns:
transformed output document
Throws:
XSLTransformException - if there's a problem in the transformation

setFactory

public void setFactory(CoffeeDOMFactory factory)
Sets a custom CoffeeDOMFactory to use when building the transformation result. Use a custom factory to build the tree with your own subclasses of the CoffeeDOM classes.

Parameters:
factory - the custom CoffeeDOMFactory to use or null to use the default CoffeeDOM classes.
See Also:
getFactory()

getFactory

public CoffeeDOMFactory getFactory()
Returns the custom CoffeeDOMFactory used to build the transformation result.

Returns:
the custom CoffeeDOMFactory used to build the transformation result or null if the default CoffeeDOM classes are being used.
See Also:
setFactory(org.cdmckay.coffeedom.CoffeeDOMFactory)


Copyright © 2011. All Rights Reserved.