Class XSLStyleSheet

All Implemented Interfaces:
NodeInfo, DOMLocator, Source, SourceLocator, Element, NamedNodeMap, Node, Locator

public class XSLStyleSheet extends StyleElement
An xsl:stylesheet or xsl:transform element in the stylesheet.
Note this element represents a stylesheet module, not necessarily the whole stylesheet.
  • Constructor Details

    • XSLStyleSheet

      public XSLStyleSheet()
  • Method Details

    • setPreparedStyleSheet

      public void setPreparedStyleSheet(PreparedStyleSheet sheet)
      Create link to the owning PreparedStyleSheet object
    • getPreparedStyleSheet

      public PreparedStyleSheet getPreparedStyleSheet()
      Get the owning PreparedStyleSheet object
      Overrides:
      getPreparedStyleSheet in class StyleElement
      Returns:
      the PreparedStyleSheet to which this stylesheet element belongs
    • getRuleManager

      public RuleManager getRuleManager()
      Get the RuleManager which handles template rules
    • getStripperRules

      protected Mode getStripperRules()
      Get the rules determining which nodes are to be stripped from the tree
    • newStripper

      public Stripper newStripper()
      Create a Stripper which handles whitespace stripping definitions
    • stripsWhitespace

      public boolean stripsWhitespace()
      Determine whether this stylesheet does any whitespace stripping
    • getKeyManager

      public KeyManager getKeyManager()
      Get the KeyManager which handles key definitions
    • getDecimalFormatManager

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

      public PreviewManager getPreviewManager()
      Get the PreviewManager which handles saxon:preview element definitions
      Returns:
      null if there are no saxon:preview elements
    • setPreviewManager

      public void setPreviewManager(PreviewManager pm)
      Set the preview manager
    • setPrecedence

      public void setPrecedence(int prec)
      Set the import precedence of this stylesheet
    • getPrecedence

      public int getPrecedence()
      Get the import precedence of this stylesheet
      Overrides:
      getPrecedence in class StyleElement
    • getMinImportPrecedence

      public int getMinImportPrecedence()
      Get the minimum import precedence of this stylesheet, that is, the lowest precedence of any stylesheet imported by this one
    • setMinImportPrecedence

      public void setMinImportPrecedence(int precedence)
      Set the minimum import precedence of this stylesheet, that is, the lowest precedence of any stylesheet imported by this one
    • setImporter

      public void setImporter(XSLStyleSheet importer)
      Set the StyleSheet that included or imported this one.
    • getImporter

      public XSLStyleSheet getImporter()
      Get the StyleSheet that included or imported this one.
      Returns:
      null if this is the principal stylesheet
    • setWasIncluded

      public void setWasIncluded()
      Indicate that this stylesheet was included (by its "importer") using an xsl:include statement as distinct from xsl:import
    • wasIncluded

      public boolean wasIncluded()
      Determine whether this stylesheet was included (by its "importer") using an xsl:include statement as distinct from xsl:import.
    • getTopLevel

      public Vector getTopLevel()
      Get the top level elements in this stylesheet, after applying include/import
    • allocateSlotNumber

      public int allocateSlotNumber()
      Allocate a slot number for a global variable or parameter
    • allocateLocalSlots

      public void allocateLocalSlots(int n)
      Ensure there is enuogh space for local variables or parameters in any template
    • prepareAttributes

      public void prepareAttributes() throws TransformerConfigurationException
      Prepare the attributes on the stylesheet element
      Specified by:
      prepareAttributes in class StyleElement
      Throws:
      TransformerConfigurationException
    • processVersionAttribute

      protected void processVersionAttribute(int nc)
      Process the version attribute - mandatory on this element (but checked elsewhere)
      Overrides:
      processVersionAttribute in class StyleElement
      Parameters:
      nc - the name code of the attribute required
    • getNamespaceAlias

      protected short getNamespaceAlias(short uriCode)
      Get the declared namespace alias for a given namespace URI code if there is one. If there is more than one, we get the last.
      Parameters:
      uriCode - The code of the uri used in the stylesheet.
      Returns:
      The code of the result uri to be used: return the stylesheet uri unchanged if no alias is defined
    • validate

      public void validate() throws TransformerConfigurationException
      Validate this element
      Overrides:
      validate in class StyleElement
      Throws:
      TransformerConfigurationException
    • preprocess

      public void preprocess() throws TransformerConfigurationException
      Preprocess does all the processing possible before the source document is available. It is done once per stylesheet, so the stylesheet can be reused for multiple source documents.
      Overrides:
      preprocess in class StyleElement
      Throws:
      TransformerConfigurationException
    • spliceIncludes

      public void spliceIncludes() throws TransformerConfigurationException
      Process xsl:include and xsl:import elements.
      Throws:
      TransformerConfigurationException
    • hasNamespaceAliases

      protected boolean hasNamespaceAliases()
    • processAllAttributes

      public void processAllAttributes() throws TransformerConfigurationException
      Process the attributes of every node in the stylesheet
      Overrides:
      processAllAttributes in class StyleElement
      Throws:
      TransformerConfigurationException
    • initialiseBindery

      public void initialiseBindery(Bindery bindery)
      Allocate space in bindery for all the variables needed This has to be done early to accommodate preview mode
    • gatherOutputProperties

      public void gatherOutputProperties(Properties details)
      Update an output properties object using the xsl:output elements in the stylesheet. This method can be called before the source document is available; all properties will be returned as written, with attribute value templates and namespace prefixes unexpanded, and no validation performed.
    • updateOutputProperties

      public void updateOutputProperties(Properties details, Context context) throws TransformerException
      Update an output properties object using the xsl:output elements in the stylesheet. Note, as xsl:output now allows attribute value templates, this cannot be called until the source document is available.
      Throws:
      TransformerException
    • getExternalJavaClass

      public Class getExternalJavaClass(String uri) throws TransformerException
      Get a Java class for a given namespace URI, if possible. return null if none is found.
      Throws:
      TransformerException - if a class is found but cannot be loaded
    • process

      public void process(Context context) throws TransformerException
      Process() is called once the source document is available. It activates those top-level stylesheet elements that were not dealt with at preprocessing stage, notably global variables and parameters, and xsl:output elements
      Specified by:
      process in class StyleElement
      Parameters:
      context - The context in the source XML document, giving access to the current node, the current variables, etc.
      Throws:
      TransformerException