Package net.sf.saxon

Class PreparedStylesheet

java.lang.Object
net.sf.saxon.PreparedStylesheet
All Implemented Interfaces:
Serializable, Templates

public class PreparedStylesheet extends Object implements Templates, Serializable
This PreparedStylesheet class represents a Stylesheet that has been prepared for execution (or "compiled").
See Also:
  • Constructor Details

    • PreparedStylesheet

      protected PreparedStylesheet(Configuration config, CompilerInfo info)
      Constructor: deliberately protected
      Parameters:
      config - The Configuration set up by the TransformerFactory
  • Method Details

    • newTransformer

      public Transformer newTransformer()
      Make a Transformer from this Templates object.
      Specified by:
      newTransformer in interface Templates
      Returns:
      the new Transformer (always a Controller)
      See Also:
    • setConfiguration

      public void setConfiguration(Configuration config)
    • getConfiguration

      public Configuration getConfiguration()
    • setTargetNamePool

      public void setTargetNamePool(NamePool pool)
      Set the name pool
    • 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
    • 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
    • prepare

      protected void prepare(Source styleSource) throws TransformerConfigurationException
      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
    • loadStylesheetModule

      public static DocumentImpl loadStylesheetModule(Source styleSource, Configuration config, NamePool localNamePool, StyleNodeFactory nodeFactory) throws XPathException
      Build the tree representation of a stylesheet module
      Parameters:
      styleSource - the source of the module
      config - the Configuration of the transformation factory
      localNamePool - the namepool used during compilation
      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
    • loadCompiledStylesheet

      public static PreparedStylesheet loadCompiledStylesheet(Configuration config, String fileName) throws IOException, ClassNotFoundException
      Load a PreparedStylesheet from a compiled stylesheet stored in a file.
      Parameters:
      config - The Configuration. This method changes the NamePool used by this configuration to be the NamePool that was stored with the compiled stylesheet. The method must therefore not be used in a multi-threaded environment where the Configuration (and NamePool) are shared between multiple concurrent transformations.
      fileName - The name of the file containing the compiled stylesheet (which is just the Java serialization of a PreparedStylesheet object).
      Returns:
      the PreparedStylesheet, which can be used in JAXP interfaces as the Templates object
      Throws:
      IOException
      ClassNotFoundException
    • loadCompiledStylesheet

      public static PreparedStylesheet loadCompiledStylesheet(Configuration config, ObjectInputStream ois) throws IOException, ClassNotFoundException
      Load a PreparedStylesheet from a compiled stylesheet stored in a file.
      Parameters:
      config - The Configuration. This method changes the NamePool used by this configuration to be the NamePool that was stored with the compiled stylesheet. The method must therefore not be used in a multi-threaded environment where the Configuration (and NamePool) are shared between multiple concurrent transformations.
      ois - The ObjectInputStream containing the compiled stylesheet (which is just the Java serialization of a PreparedStylesheet object).
      Returns:
      the PreparedStylesheet, which can be used in JAXP interfaces as the Templates object
      Throws:
      IOException
      ClassNotFoundException
    • setStylesheetDocument

      protected void setStylesheetDocument(DocumentImpl doc, StyleNodeFactory snFactory) throws XPathException
      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
    • 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.

      Specified by:
      getOutputProperties in interface Templates
      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:
    • reportError

      public void reportError(TransformerException err) throws TransformerException
      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
    • getErrorCount

      public int getErrorCount()
      Get the number of errors reported so far
      Returns:
      the number of errors 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
    • getCachedStylesheet

      public PreparedStylesheet getCachedStylesheet(String href, String baseURI)
      Get a "next in chain" stylesheet
    • putCachedStylesheet

      public void putCachedStylesheet(String href, String baseURI, PreparedStylesheet pss)
    • getURIResolver

      public URIResolver getURIResolver()
    • getErrorListener

      public ErrorListener getErrorListener()