An instance of this abstract class represents
a document "transformation engine"
such as an XSLT processor. A transformerFactory is
used to create TRansformer objects that perform
document transformations, and can also be used to process
transformation instructions (such as XSLT stylesheets) into compiled
Templates objects.
Obtain a transformerFactory instance by calling
the static newInstance( ) method.
newInstance( ) returns an instance of the default
implementation for your Java installation, or, if the system property
javax.xml.transform.TransformerFactory is set,
then it returns an instance of the implementation class named by that
property. The default TRansformerFactory
implementation provided with the Java distribution transforms XML
documents using
XSL
stylesheets.
You can configure a transformerFactory instance by
calling setErrorListener(
) and setURIResolver(
) to specify an ErrorListener object and
a URIResolver object to be used by the factory
when reading and parsing XSL stylesheets. The setAttribute(
)
and getAttribute( )
methods can be used to set and query implementation-dependent
attributes of the transformation engine. The default engine supplied
by Sun does not define any attributes. The getFeature(
) method is used to test whether the factory supports a
given feature. For uniqueness, feature names are expressed as URIs,
and each of the Source and
Result implementations defined in the three
subpackages of this package define a FEATURE
constant that specifies a URL that you can use to test whether a
transformerFactory supports that particular
Source or Result type.
Once you have obtained and configured your
TRansformerFactory object, you can use it in
several ways. If you call the newtransformer(
) method that takes no
arguments, you'll obtain a
transformer object that transforms the format or
representation of an XML document without transforming its content.
For example, you could use a transformer created
in this way to transform a DOM tree (represented by a
javax.xml.transform.dom.DOMSource object) to a
stream of XML text stored in a file named by a
javax.xml.transform.stream.StreamResult.
Another way to use a transformerFactory is to call
the newTemplates(
) method, passing in a
Source object that represents an XSL stylesheet.
This produces a
Templates object, which you can use to obtain a
transformer object that applies the stylesheet to
transform document content. Alternatively, if you do not plan to
create more than one transformer object from the
Templates object, you can combine the two steps
and simply pass the Source object representing the
stylesheet to the one-argument version of newtransformer(
).
XML documents may include references to
XSL stylesheets in the form
of an xml-stylesheet processing instruction. The
getAssociatedStylesheet( ) method reads the XML
document represented by a Source object and
returns a new Source object that represents the
stylesheet (or the concatenation of all the stylesheets) contained in
that document that match the media, title, and charset constraints
defined by the other three parameters (which may be null). If you
want to process an XML document using the stylesheet that it defines
itself, use this method to obtain a Source object
that you can pass to newtransformer( ) to create
the transformer object that you can use to
transform the document.
transformerFactory implementations are not
typically threadsafe.
public abstract class TransformerFactory {
// Protected Constructors
protected TransformerFactory( );
// Public Class Methods
public static TransformerFactory newInstance( )
throws TransformerFactoryConfigurationError;
// Public Instance Methods
public abstract Source getAssociatedStylesheet(Source source, String media,
String title, String charset)
throws TransformerConfigurationException;
public abstract Object getAttribute(String name);
public abstract ErrorListener getErrorListener( );
public abstract boolean getFeature(String name);
public abstract URIResolver getURIResolver( );
public abstract Templates newTemplates(Source source)
throws TransformerConfigurationException;
public abstract Transformer newTransformer( ) throws TransformerConfigurationException;
public abstract Transformer newTransformer(Source source)
throws TransformerConfigurationException;
public abstract void setAttribute(String name, Object value);
public abstract void setErrorListener(ErrorListener listener);
5.0 public abstract void setFeature(String name, boolean value)
throws TransformerConfigurationException;
public abstract void setURIResolver(URIResolver resolver);
}