net.sf.saxon

Class PreparedStylesheet

public class PreparedStylesheet extends Object implements Templates, Serializable

This PreparedStylesheet class represents a Stylesheet that has been prepared for execution (or "compiled").
Constructor Summary
protected PreparedStylesheet(Configuration config, CompilerInfo info)
Constructor - deliberately protected
Method Summary
static PreparedStylesheetcompile(Source source, Configuration config, CompilerInfo info)
Factory method to make a PreparedStylesheet
voidexplain(ExpressionPresenter presenter)
Produce an XML representation of the compiled and optimized stylesheet
static SourcegetAssociatedStylesheet(Configuration config, Source source, String media, String title, 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.
PreparedStylesheetgetCachedStylesheet(String href, String baseURI)
Get a "next in chain" stylesheet.
CompilerInfogetCompilerInfo()
Get the CompilerInfo containing details of XSLT compilation options
ConfigurationgetConfiguration()
Get the configuration in which this stylesheet is compiled
DecimalFormatManagergetDecimalFormatManager()
Get the DecimalFormatManager which handles decimal-format definitions
intgetErrorCount()
Get the number of errors reported so far
ExecutablegetExecutable()
Get the associated executable
PropertiesgetOutputProperties()
Get the properties for xsl:output.
StyleNodeFactorygetStyleNodeFactory()
Get the StyleNodeFactory in use.
NamePoolgetTargetNamePool()
Get the name pool in use.
booleanisCompileWithTracing()
Determine whether trace hooks are included in the compiled code.
DocumentImplloadStylesheetModule(Source styleSource, StyleNodeFactory nodeFactory)
Build the tree representation of a stylesheet module
TransformernewTransformer()
Make a Transformer from this Templates object.
protected voidprepare(Source styleSource)
Prepare a stylesheet from a Source document
voidputCachedStylesheet(String href, String baseURI, PreparedStylesheet pss)
Save a "next in chain" stylesheet in compiled form, so that it can be reused repeatedly.
voidreportError(TransformerException err)
Report a compile time error.
voidreportWarning(TransformerException err)
Report a compile time warning.
voidsetConfiguration(Configuration config)
Set the configuration in which this stylesheet is compiled.
voidsetDecimalFormatManager(DecimalFormatManager dfm)
Set the DecimalFormatManager which handles decimal-format definitions
protected voidsetStylesheetDocument(DocumentImpl doc, StyleNodeFactory snFactory)
Create a PreparedStylesheet from a supplied DocumentInfo Note: the document must have been built using the StyleNodeFactory
voidsetTargetNamePool(NamePool pool)
Set the name pool

Constructor Detail

PreparedStylesheet

protected PreparedStylesheet(Configuration config, CompilerInfo info)
Constructor - deliberately protected

Parameters: config The Configuration set up by the TransformerFactory info Compilation options

Method Detail

compile

public static PreparedStylesheet compile(Source source, Configuration config, CompilerInfo info)
Factory method to make a PreparedStylesheet

Parameters: source the source of this principal stylesheet module config the Saxon configuration info compile-time options for this stylesheet compilation

Returns: the prepared stylesheet

explain

public void explain(ExpressionPresenter presenter)
Produce an XML representation of the compiled and optimized stylesheet

Parameters: presenter defines the destination and format of the output

getAssociatedStylesheet

public static Source getAssociatedStylesheet(Configuration config, Source source, String media, String title, 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. Note that it is possible to return several stylesheets, in which case they are applied as if they were a list of imports or cascades.

Parameters: config The Saxon Configuration 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). title The value of the title attribute to match. May be null. charset The value of the charset attribute to match. May be null.

Returns: A Source object suitable for passing to the TransformerFactory.

Throws: TransformerConfigurationException if any problems occur

getCachedStylesheet

public PreparedStylesheet getCachedStylesheet(String href, String baseURI)
Get a "next in chain" stylesheet. This method is intended for internal use.

Parameters: href the relative URI of the next-in-chain stylesheet baseURI the baseURI against which this relativeURI is to be resolved

Returns: the cached stylesheet if present in the cache, or null if not

getCompilerInfo

public CompilerInfo getCompilerInfo()
Get the CompilerInfo containing details of XSLT compilation options

Returns: the CompilerInfo containing compilation options

Since: 9.2

getConfiguration

public Configuration getConfiguration()
Get the configuration in which this stylesheet is compiled

Returns: the configuration in which this stylesheet is compiled

getDecimalFormatManager

public DecimalFormatManager getDecimalFormatManager()
Get the DecimalFormatManager which handles decimal-format definitions

Returns: the DecimalFormatManager containing the named xsl:decimal-format definitions

getErrorCount

public int getErrorCount()
Get the number of errors reported so far

Returns: the number of errors reported

getExecutable

public Executable getExecutable()
Get the associated executable

Returns: the Executable for this stylesheet

getOutputProperties

public Properties getOutputProperties()
Get the properties for xsl:output. JAXP method. The object returned will be a clone of the internal values, and thus it can be mutated without mutating the Templates object, and then handed in to the process method.

In Saxon, the properties object is a new, empty, Properties object that is backed by the live properties to supply default values for missing properties. This means that the property values must be read using the getProperty() method. Calling the get() method on the underlying Hashtable will return null.

In Saxon 8.x, this method gets the output properties for the unnamed output format in the stylesheet.

Returns: A Properties object reflecting the output properties defined for the default (unnamed) output format in the stylesheet. It may be mutated and supplied to the setOutputProperties() method of the Transformer, without affecting other transformations that use the same stylesheet.

See Also: javax.xml.transform.Transformer#setOutputProperties

getStyleNodeFactory

public StyleNodeFactory getStyleNodeFactory()
Get the StyleNodeFactory in use. The StyleNodeFactory determines which subclass of StyleElement to use for each element node in the stylesheet tree.

Returns: the StyleNodeFactory

getTargetNamePool

public NamePool getTargetNamePool()
Get the name pool in use. This is the namepool used for names that need to be accessible at runtime, notably the names used in XPath expressions in the stylesheet.

Returns: the name pool in use

isCompileWithTracing

public boolean isCompileWithTracing()
Determine whether trace hooks are included in the compiled code.

Returns: true if trace hooks are included, false if not.

Since: 8.9

loadStylesheetModule

public DocumentImpl loadStylesheetModule(Source styleSource, StyleNodeFactory nodeFactory)
Build the tree representation of a stylesheet module

Parameters: styleSource the source of the module nodeFactory the StyleNodeFactory used for creating element nodes in the tree

Returns: the root Document node of the tree containing the stylesheet module

Throws: XPathException if XML parsing or tree construction fails

newTransformer

public Transformer newTransformer()
Make a Transformer from this Templates object.

Returns: the new Transformer (always a Controller)

See Also: Controller

prepare

protected void prepare(Source styleSource)
Prepare a stylesheet from a Source document

Parameters: styleSource the source document containing the stylesheet

Throws: TransformerConfigurationException if compilation of the stylesheet fails for any reason

putCachedStylesheet

public void putCachedStylesheet(String href, String baseURI, PreparedStylesheet pss)
Save a "next in chain" stylesheet in compiled form, so that it can be reused repeatedly. This method is intended for internal use.

Parameters: href the relative URI of the stylesheet baseURI the base URI against which the relative URI is resolved pss the prepared stylesheet object to be cached

reportError

public void reportError(TransformerException err)
Report a compile time error. This calls the errorListener to output details of the error, and increments an error count.

Parameters: err the exception containing details of the error

Throws: TransformerException if the ErrorListener decides that the error should be reported

reportWarning

public void reportWarning(TransformerException err)
Report a compile time warning. This calls the errorListener to output details of the warning.

Parameters: err an exception holding details of the warning condition to be reported

setConfiguration

public void setConfiguration(Configuration config)
Set the configuration in which this stylesheet is compiled. Intended for internal use.

Parameters: config the configuration to be used.

setDecimalFormatManager

public void setDecimalFormatManager(DecimalFormatManager dfm)
Set the DecimalFormatManager which handles decimal-format definitions

Parameters: dfm the DecimalFormatManager containing the named xsl:decimal-format definitions

setStylesheetDocument

protected void setStylesheetDocument(DocumentImpl doc, StyleNodeFactory snFactory)
Create a PreparedStylesheet from a supplied DocumentInfo Note: the document must have been built using the StyleNodeFactory

Parameters: doc the document containing the stylesheet module snFactory the StyleNodeFactory used to build the tree

Throws: XPathException if the document supplied is not a stylesheet

setTargetNamePool

public void setTargetNamePool(NamePool pool)
Set the name pool

Parameters: pool the name pool