public class SaxonTransformerFactory extends javax.xml.transform.sax.SAXTransformerFactory implements Configuration.ApiProvider
Although the class is public, it is not intended to be used directly by applications;
applications should normally invoke the subclass TransformerFactoryImpl
.
The system property that determines which Factory implementation to create is named "javax.xml.transform.TransformerFactory". This property names a concrete subclass of the TransformerFactory abstract class. If the property is not defined, a platform default is be used.
This implementation class implements the abstract methods on both the javax.xml.transform.TransformerFactory and javax.xml.transform.sax.SAXTransformerFactory classes.
Since Saxon 9.6, the JAXP transformation interface is re-implemented as a layer on top of the s9api interface. This will affect applications that attempt to down-cast from JAXP interfaces to the underlying implementation classes.
Constructor and Description |
---|
SaxonTransformerFactory()
Default constructor.
|
SaxonTransformerFactory(Configuration config)
Construct a TransformerFactory using an existing Configuration.
|
Modifier and Type | Method and Description |
---|---|
javax.xml.transform.Source |
getAssociatedStylesheet(javax.xml.transform.Source source,
java.lang.String media,
java.lang.String title,
java.lang.String charset)
Get the stylesheet specification(s) associated
via the xml-stylesheet processing instruction (see
http://www.w3.org/TR/xml-stylesheet/) with the document
document specified in the source parameter, and that match
the given criteria.
|
java.lang.Object |
getAttribute(java.lang.String name)
Allows the user to retrieve specific attributes on the underlying
implementation.
|
Configuration |
getConfiguration()
Get the configuration.
|
javax.xml.transform.ErrorListener |
getErrorListener()
Get the error event handler for the TransformerFactory.
|
boolean |
getFeature(java.lang.String name)
Look up the value of a feature.
|
Processor |
getProcessor()
Get the underlying s9api Processor.
|
javax.xml.transform.URIResolver |
getURIResolver()
Get the object that is used by default during the transformation
to resolve URIs used in document(), xsl:import, or xsl:include.
|
javax.xml.transform.Templates |
newTemplates(javax.xml.transform.Source source)
Process the Source into a Templates object, which is a
a compiled representation of the source.
|
javax.xml.transform.Templates |
newTemplates(javax.xml.transform.Source source,
CompilerInfo info)
Process the Source into a Templates object, which is a
a compiled representation of the source.
|
javax.xml.transform.sax.TemplatesHandler |
newTemplatesHandler()
Get a TemplatesHandler object that can process SAX
ContentHandler events into a Templates object.
|
javax.xml.transform.Transformer |
newTransformer()
Create a new Transformer object that performs a copy
of the source to the result.
|
javax.xml.transform.Transformer |
newTransformer(javax.xml.transform.Source source)
Process the Source into a Transformer object.
|
javax.xml.transform.sax.TransformerHandler |
newTransformerHandler()
Get a TransformerHandler object that can process SAX
ContentHandler events into a Result.
|
javax.xml.transform.sax.TransformerHandler |
newTransformerHandler(javax.xml.transform.Source src)
Get a TransformerHandler object that can process SAX
ContentHandler events into a Result, based on the transformation
instructions specified by the argument.
|
javax.xml.transform.sax.TransformerHandler |
newTransformerHandler(javax.xml.transform.Templates templates)
Get a TransformerHandler object that can process SAX
ContentHandler events into a Result, based on the Templates argument.
|
org.xml.sax.XMLFilter |
newXMLFilter(javax.xml.transform.Source src)
Create an XMLFilter that uses the given Source as the
transformation instructions.
|
org.xml.sax.XMLFilter |
newXMLFilter(javax.xml.transform.Templates templates)
Create an XMLFilter, based on the Templates argument..
|
void |
setAttribute(java.lang.String name,
java.lang.Object value)
Allows the user to set specific attributes on the underlying
implementation.
|
void |
setConfiguration(Configuration config)
Set the configuration.
|
void |
setErrorListener(javax.xml.transform.ErrorListener listener)
Set the error event listener for the TransformerFactory, which
is used for the processing of transformation instructions,
and not for the transformation itself.
|
void |
setFeature(java.lang.String name,
boolean value)
Set a feature for this
TransformerFactory and Transformer s
or Template s created by this factory. |
void |
setURIResolver(javax.xml.transform.URIResolver resolver)
Set an object that is used by default during the transformation
to resolve URIs used in xsl:import, or xsl:include.
|
public SaxonTransformerFactory()
public SaxonTransformerFactory(Configuration config)
config
- the Saxon configurationpublic void setConfiguration(Configuration config)
FeatureKeys.CONFIGURATION
config
- the Saxon configurationpublic Configuration getConfiguration()
FeatureKeys.CONFIGURATION
This is a trapdoor method that provides access to underlying implementation details that
may change in subsequent Saxon releases.public javax.xml.transform.Transformer newTransformer(javax.xml.transform.Source source) throws javax.xml.transform.TransformerConfigurationException
newTransformer
in class javax.xml.transform.TransformerFactory
source
- An object that holds a URI, input stream, etc. of the stylesheet
used to perform the transformation.javax.xml.transform.TransformerConfigurationException
- May throw this during the parse
when it is constructing the Templates object and fails.public javax.xml.transform.Transformer newTransformer()
newTransformer
in class javax.xml.transform.TransformerFactory
public javax.xml.transform.Templates newTemplates(javax.xml.transform.Source source) throws javax.xml.transform.TransformerConfigurationException
newTemplates
in class javax.xml.transform.TransformerFactory
source
- An object that holds a URL, input stream, etc.javax.xml.transform.TransformerConfigurationException
- May throw this during the parse when it
is constructing the Templates object and fails.public javax.xml.transform.Templates newTemplates(javax.xml.transform.Source source, CompilerInfo info) throws javax.xml.transform.TransformerConfigurationException
source
- An object that holds a URL, input stream, etc.info
- compile-time options for this stylesheet compilationjavax.xml.transform.TransformerConfigurationException
- May throw this during the parse when it
is constructing the Templates object and fails.public javax.xml.transform.Source getAssociatedStylesheet(javax.xml.transform.Source source, java.lang.String media, java.lang.String title, java.lang.String charset) throws javax.xml.transform.TransformerConfigurationException
getAssociatedStylesheet
in class javax.xml.transform.TransformerFactory
source
- The XML source document.media
- The media attribute to be matched. May be null, in which
case the prefered templates will be used (i.e. alternate = no).
Note that Saxon does not implement the complex CSS3-based syntax for
media queries. By default, the media value is simply ignored. An algorithm for
comparing the requested media with the declared media can be defined using
the method Configuration.setMediaQueryEvaluator(Comparator)
.title
- The value of the title attribute to match. May be null.charset
- The value of the charset attribute to match. May be null.javax.xml.transform.TransformerConfigurationException
- if any problems occurpublic void setURIResolver(javax.xml.transform.URIResolver resolver)
setURIResolver
in class javax.xml.transform.TransformerFactory
resolver
- An object that implements the URIResolver interface,
or null.public javax.xml.transform.URIResolver getURIResolver()
getURIResolver
in class javax.xml.transform.TransformerFactory
public boolean getFeature(java.lang.String name)
The feature name is any absolute URI.
getFeature
in class javax.xml.transform.TransformerFactory
name
- The feature name, which is an absolute URI.public void setAttribute(java.lang.String name, java.lang.Object value) throws java.lang.IllegalArgumentException
Note: setting configuration properties using the method
Configuration.setConfigurationProperty(Feature, Object)
is more efficient, and gives better type safety.
setAttribute
in class javax.xml.transform.TransformerFactory
name
- The name of the attribute. This must be one of the constants
defined in class FeatureKeys
.value
- The value of the attribute.java.lang.IllegalArgumentException
- thrown if Saxon
doesn't recognize the attribute.FeatureKeys
public java.lang.Object getAttribute(java.lang.String name) throws java.lang.IllegalArgumentException
getAttribute
in class javax.xml.transform.TransformerFactory
name
- The name of the attribute. This must be one of the constants
defined in class FeatureKeys
.java.lang.IllegalArgumentException
- thrown if the underlying
implementation doesn't recognize the attribute.public void setErrorListener(javax.xml.transform.ErrorListener listener) throws java.lang.IllegalArgumentException
This method is defined in JAXP but its use with Saxon is deprecated, because the errorListener will be shared by all stylesheet compilations running under this factory, which may be operating concurrently in different threads.
setErrorListener
in class javax.xml.transform.TransformerFactory
listener
- The new error listener.java.lang.IllegalArgumentException
- if listener is null.public javax.xml.transform.ErrorListener getErrorListener()
getErrorListener
in class javax.xml.transform.TransformerFactory
public javax.xml.transform.sax.TransformerHandler newTransformerHandler(javax.xml.transform.Source src) throws javax.xml.transform.TransformerConfigurationException
newTransformerHandler
in class javax.xml.transform.sax.SAXTransformerFactory
src
- The Source of the transformation instructions.javax.xml.transform.TransformerConfigurationException
- If for some reason the
TransformerHandler can not be created.public javax.xml.transform.sax.TransformerHandler newTransformerHandler(javax.xml.transform.Templates templates) throws javax.xml.transform.TransformerConfigurationException
newTransformerHandler
in class javax.xml.transform.sax.SAXTransformerFactory
templates
- The compiled transformation instructions.javax.xml.transform.TransformerConfigurationException
- If for some reason the
TransformerHandler can not be created.public javax.xml.transform.sax.TransformerHandler newTransformerHandler()
newTransformerHandler
in class javax.xml.transform.sax.SAXTransformerFactory
public javax.xml.transform.sax.TemplatesHandler newTemplatesHandler()
newTemplatesHandler
in class javax.xml.transform.sax.SAXTransformerFactory
public org.xml.sax.XMLFilter newXMLFilter(javax.xml.transform.Source src) throws javax.xml.transform.TransformerConfigurationException
newXMLFilter
in class javax.xml.transform.sax.SAXTransformerFactory
src
- The Source of the transformation instructions.javax.xml.transform.TransformerConfigurationException
- If for some reason the
XMLFilter cannot be created.public org.xml.sax.XMLFilter newXMLFilter(javax.xml.transform.Templates templates) throws javax.xml.transform.TransformerConfigurationException
newXMLFilter
in class javax.xml.transform.sax.SAXTransformerFactory
templates
- The compiled transformation instructions.javax.xml.transform.TransformerConfigurationException
- if (for example) the templates
object was not created by Saxon.public void setFeature(java.lang.String name, boolean value) throws javax.xml.transform.TransformerConfigurationException
Set a feature for this TransformerFactory
and Transformer
s
or Template
s created by this factory.
Feature names are fully qualified URI
s.
Implementations may define their own features.
An TransformerConfigurationException
is thrown if this TransformerFactory
or the
Transformer
s or Template
s it creates cannot support the feature.
It is possible for an TransformerFactory
to expose a feature value but be unable to change its state.
All implementations are required to support the FEATURE_SECURE_PROCESSING feature. When the feature is:
true
: the implementation will limit XML processing to conform to implementation limits
and behave in a secure fashion as defined by the implementation.
Examples include resolving user defined style sheets and functions.
If XML processing is limited for security reasons, it will be reported via a call to the registered
ErrorListener.fatalError(javax.xml.transform.TransformerException exception)
.
See setErrorListener(javax.xml.transform.ErrorListener listener)
. In the Saxon implementation,
this option causes calls on extension functions and extensions instructions to be disabled, and also
disables the use of xsl:result-document to write to secondary output destinations.
false
: the implementation will processing XML according to the XML specifications without
regard to possible implementation limits.
setFeature
in class javax.xml.transform.TransformerFactory
name
- Feature name.value
- Is feature state true
or false
.javax.xml.transform.TransformerConfigurationException
- if this TransformerFactory
or the Transformer
s or Template
s it creates cannot support this feature.java.lang.NullPointerException
- If the name
parameter is null.public Processor getProcessor()
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.