com.icl.saxon.style

Class XSLStyleSheet

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

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.

Field Summary

Fields inherited from class com.icl.saxon.style.StyleElement

REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FORWARDS_COMPATIBLE, attributeSets, extensionNamespaces, reportingCircumstances, staticContext, validationError, version

Fields inherited from class com.icl.saxon.tree.ElementWithAttributes

attributeList, namespaceList

Fields inherited from class com.icl.saxon.tree.ElementImpl

nameCode, root

Fields inherited from class com.icl.saxon.tree.ParentNodeImpl

sequence

Fields inherited from class com.icl.saxon.tree.NodeImpl

emptyArray, index, parent

Fields inherited from class com.icl.saxon.om.AbstractNode

NODE_LETTER

Fields inherited from interface com.icl.saxon.om.NodeInfo

ATTRIBUTE, COMMENT, ELEMENT, NAMESPACE, NODE, NONE, NUMBER_OF_TYPES, PI, ROOT, TEXT

Method Summary

void
allocateLocalSlots(int n)
Ensure there is enuogh space for local variables or parameters in any template
int
allocateSlotNumber()
Allocate a slot number for a global variable or parameter
void
gatherOutputProperties(Properties details)
Update an output properties object using the xsl:output elements in the stylesheet.
DecimalFormatManager
getDecimalFormatManager()
Get the DecimalFormatManager which handles decimal-format definitions
Class
getExternalJavaClass(String uri)
Get a Java class for a given namespace URI, if possible.
XSLStyleSheet
getImporter()
Get the StyleSheet that included or imported this one.
KeyManager
getKeyManager()
Get the KeyManager which handles key definitions
int
getMinImportPrecedence()
Get the minimum import precedence of this stylesheet, that is, the lowest precedence of any stylesheet imported by this one
protected short
getNamespaceAlias(short uriCode)
Get the declared namespace alias for a given namespace URI code if there is one.
int
getPrecedence()
Get the import precedence of this stylesheet
PreparedStyleSheet
getPreparedStyleSheet()
Get the owning PreparedStyleSheet object
PreviewManager
getPreviewManager()
Get the PreviewManager which handles saxon:preview element definitions
RuleManager
getRuleManager()
Get the RuleManager which handles template rules
protected Mode
getStripperRules()
Get the rules determining which nodes are to be stripped from the tree
Vector
getTopLevel()
Get the top level elements in this stylesheet, after applying include/import
protected boolean
hasNamespaceAliases()
void
initialiseBindery(Bindery bindery)
Allocate space in bindery for all the variables needed This has to be done early to accommodate preview mode
Stripper
newStripper()
Create a Stripper which handles whitespace stripping definitions
void
prepareAttributes()
Prepare the attributes on the stylesheet element
void
preprocess()
Preprocess does all the processing possible before the source document is available.
void
process(Context context)
Process() is called once the source document is available.
void
processAllAttributes()
Process the attributes of every node in the stylesheet
protected void
processVersionAttribute(int nc)
Process the version attribute - mandatory on this element (but checked elsewhere)
void
setImporter(XSLStyleSheet importer)
Set the StyleSheet that included or imported this one.
void
setMinImportPrecedence(int precedence)
Set the minimum import precedence of this stylesheet, that is, the lowest precedence of any stylesheet imported by this one
void
setPrecedence(int prec)
Set the import precedence of this stylesheet
void
setPreparedStyleSheet(PreparedStyleSheet sheet)
Create link to the owning PreparedStyleSheet object
void
setPreviewManager(PreviewManager pm)
Set the preview manager
void
setWasIncluded()
Indicate that this stylesheet was included (by its "importer") using an xsl:include statement as distinct from xsl:import
void
spliceIncludes()
Process xsl:include and xsl:import elements.
boolean
stripsWhitespace()
Determine whether this stylesheet does any whitespace stripping
void
updateOutputProperties(Properties details, Context context)
Update an output properties object using the xsl:output elements in the stylesheet.
void
validate()
Validate this element
boolean
wasIncluded()
Determine whether this stylesheet was included (by its "importer") using an xsl:include statement as distinct from xsl:import.

Methods inherited from class com.icl.saxon.style.StyleElement

bindVariable, checkEmpty, checkNotTopLevel, checkTopLevel, checkUnknownAttribute, checkWithinTemplate, compileError, compileError, definesExcludedNamespace, definesExtensionElement, doesPostProcessing, fallbackProcessing, findAttributeSets, forwardsCompatibleModeIsEnabled, getContainingStyleSheet, getPrecedence, getPreparedStyleSheet, getPrincipalStyleSheet, getStandardNames, getStyleSheetFunction, getVariableBinding, getVariableNames, getVersion, handleSortKeys, isExcludedNamespace, isExtensionNamespace, isInstruction, isTopLevel, makeAttributeValueTemplate, makeExpression, makePattern, mayContainTemplateBody, prepareAttributes, preprocess, process, processAllAttributes, processAttributeSets, processAttributes, processChildren, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, reportAbsence, setValidationError, styleError, styleError, substituteFor, validate, validateChildren, validateSubtree

Methods inherited from class com.icl.saxon.tree.ElementWithAttributes

addNamespaceNodes, copy, getAttribute, getAttributeList, getAttributeNS, getAttributeNode, getAttributeNodeNS, getAttributeValue, getAttributeValue, getAttributeValue, getAttributes, getLength, getNamedItem, getNamedItemNS, getNamespaceCodes, getPrefixForURI, getURICodeForPrefix, hasAttribute, hasAttributeNS, hasAttributes, initialise, item, outputNamespaceNodes, removeAttribute, removeAttributeNS, removeAttributeNode, removeNamedItem, removeNamedItemNS, setAttribute, setAttributeNS, setAttributeNode, setAttributeNodeNS, setNamedItem, setNamedItemNS, setNamespaceDeclarations

Methods inherited from class com.icl.saxon.tree.ElementImpl

addNamespaceNodes, copy, copy, generateId, getAttributeList, getAttributeValue, getBaseURI, getDocumentRoot, getLineNumber, getNameCode, getNodeType, getPrefixForURI, getSystemId, getURICodeForPrefix, initialise, makeNameCode, outputNamespaceNodes, setAttribute, setLineNumber, setNameCode, setSystemId

Methods inherited from class com.icl.saxon.tree.ParentNodeImpl

addChild, compact, copyStringValue, dropChildren, enumerateChildren, getChildNodes, getFirstChild, getLastChild, getNodeValue, getNthChild, getSequenceNumber, getStringValue, hasChildNodes, removeChild, renumberChildren, useChildrenArray

Methods inherited from class com.icl.saxon.tree.NodeImpl

compareOrder, generateId, getAttributeValue, getAttributeValue, getAttributes, getBaseURI, getChildNodes, getDisplayName, getDocumentElement, getDocumentRoot, getEnumeration, getFingerprint, getFirstChild, getLastChild, getLineNumber, getLocalName, getNameCode, getNamePool, getNextInDocument, getNextSibling, getOriginatingNode, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getSequenceNumber, getSystemId, getURI, hasAttributes, hasChildNodes, isSameNodeInfo, outputNamespaceNodes, removeNode, setSystemId

Methods inherited from class com.icl.saxon.om.AbstractNode

appendChild, appendData, cloneNode, compareDocumentPosition, compareOrder, copyStringValue, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, generateId, getAttribute, getAttributeNS, getAttributeNode, getAttributeNodeNS, getAttributeValue, getAttributeValue, getAttributes, getBaseURI, getChildNodes, getColumnNumber, getData, getDisplayName, getDoctype, getDocumentElement, getDocumentRoot, getElementById, getElementsByTagName, getElementsByTagNameNS, getEnumeration, getFeature, getFingerprint, getFirstChild, getImplementation, getLastChild, getLength, getLineNumber, getLocalName, getName, getNameCode, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOriginatingNode, getOwnerDocument, getOwnerElement, getParent, getParentNode, getPrefix, getPreviousSibling, getPublicId, getSchemaTypeInfo, getSpecified, getSystemId, getTagName, getTextContent, getURI, getUserData, getValue, getWholeText, hasAttribute, hasAttributeNS, hasAttributes, hasChildNodes, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isId, isSameNode, isSameNodeInfo, isSupported, lookupNamespaceURI, lookupPrefix, normalize, outputNamespaceNodes, removeAttribute, removeAttributeNS, removeAttributeNode, removeChild, replaceChild, replaceData, replaceWholeText, setAttributeNS, setAttributeNode, setAttributeNodeNS, setData, setIdAttribute, setIdAttributeNS, setIdAttributeNode, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports

Method Details

allocateLocalSlots

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

allocateSlotNumber

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

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.

getDecimalFormatManager

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

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.

getImporter

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

getKeyManager

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

getMinImportPrecedence

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

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

getPrecedence

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

getPreparedStyleSheet

public PreparedStyleSheet getPreparedStyleSheet()
Get the owning PreparedStyleSheet object
Overrides:
getPreparedStyleSheet in interface StyleElement

getPreviewManager

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

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

getTopLevel

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

hasNamespaceAliases

protected boolean hasNamespaceAliases()

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

newStripper

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

prepareAttributes

public void prepareAttributes()
            throws TransformerConfigurationException
Prepare the attributes on the stylesheet element
Overrides:
prepareAttributes in interface StyleElement

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 interface StyleElement

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
Overrides:
process in interface StyleElement

processAllAttributes

public void processAllAttributes()
            throws TransformerConfigurationException
Process the attributes of every node in the stylesheet
Overrides:
processAllAttributes in interface StyleElement

processVersionAttribute

protected void processVersionAttribute(int nc)
Process the version attribute - mandatory on this element (but checked elsewhere)
Overrides:
processVersionAttribute in interface StyleElement

setImporter

public void setImporter(XSLStyleSheet importer)
Set the StyleSheet that included or imported 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

setPrecedence

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

setPreparedStyleSheet

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

setPreviewManager

public void setPreviewManager(PreviewManager pm)
Set the preview manager

setWasIncluded

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

spliceIncludes

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

stripsWhitespace

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

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.

validate

public void validate()
            throws TransformerConfigurationException
Validate this element
Overrides:
validate in interface StyleElement

wasIncluded

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