com.icl.saxon.style
Class XSLTemplate

java.lang.Object
  extended bycom.icl.saxon.om.AbstractNode
      extended bycom.icl.saxon.tree.NodeImpl
          extended bycom.icl.saxon.tree.ParentNodeImpl
              extended bycom.icl.saxon.tree.ElementImpl
                  extended bycom.icl.saxon.tree.ElementWithAttributes
                      extended bycom.icl.saxon.style.StyleElement
                          extended bycom.icl.saxon.style.XSLTemplate
All Implemented Interfaces:
DOMLocator, org.w3c.dom.Element, org.xml.sax.Locator, org.w3c.dom.NamedNodeMap, org.w3c.dom.Node, NodeHandler, NodeInfo, Source, SourceLocator
Direct Known Subclasses:
SAXONHandler

public class XSLTemplate
extends StyleElement
implements NodeHandler

An xsl:template element in the style sheet.


Field Summary
protected  Pattern match
           
protected  int modeNameCode
           
protected  boolean needsStackFrame
           
protected  double priority
           
protected  boolean prioritySpecified
           
protected  Procedure procedure
           
protected  int templateFingerprint
           
 
Fields inherited from class com.icl.saxon.style.StyleElement
attributeSets, extensionNamespaces, REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FORWARDS_COMPATIBLE, 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, 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 org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Fields inherited from interface com.icl.saxon.om.NodeInfo
ATTRIBUTE, COMMENT, ELEMENT, NAMESPACE, NODE, NONE, NUMBER_OF_TYPES, PI, ROOT, TEXT
 
Constructor Summary
XSLTemplate()
           
 
Method Summary
 Binding bindVariable(int fingerprint)
          Disallow variable references in the match pattern
protected  void expand(Context context)
          Expand the template.
 int getMinImportPrecedence()
           
 Procedure getProcedure()
          Get associated Procedure (for details of stack frame)
 int getTemplateFingerprint()
          Return the fingerprint for the name of this template
 boolean mayContainTemplateBody()
          Determine whether this type of element is allowed to contain a template-body
 boolean needsStackFrame()
          Optimization hint to allow a handler to declare that it needs no stack space for local variables and parameters
 void prepareAttributes()
          Set the attribute list for the element.
 void preprocess()
          Preprocess: this registers the template with the rule manager, and ensures space is available for local variables
 void process(Context context)
          Process template.
 void start(NodeInfo e, Context context)
          Process a node in the source document.
protected  void traceExpand(Context context)
          Expand the template, with tracing.
 void validate()
          Check that the element is valid.
 
Methods inherited from class com.icl.saxon.style.StyleElement
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, processAllAttributes, processAttributes, processAttributeSets, processChildren, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, reportAbsence, setValidationError, styleError, styleError, substituteFor, validateChildren, validateSubtree
 
Methods inherited from class com.icl.saxon.tree.ElementWithAttributes
addNamespaceNodes, copy, getAttribute, getAttributeList, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributeValue, getAttributeValue, getAttributeValue, getLength, getNamedItem, getNamedItemNS, getNamespaceCodes, getPrefixForURI, getURICodeForPrefix, hasAttribute, hasAttributeNS, hasAttributes, initialise, item, outputNamespaceNodes, removeAttribute, removeAttributeNode, removeAttributeNS, removeNamedItem, removeNamedItemNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setNamedItem, setNamedItemNS, setNamespaceDeclarations
 
Methods inherited from class com.icl.saxon.tree.ElementImpl
addChild, compact, copy, copyStringValue, dropChildren, enumerateChildren, generateId, getBaseURI, getChildNodes, getDocumentRoot, getFirstChild, getLastChild, getLineNumber, getNameCode, getNodeType, getNodeValue, getNthChild, getSequenceNumber, getStringValue, getSystemId, hasChildNodes, makeNameCode, removeChild, renumberChildren, setLineNumber, setNameCode, setSystemId, useChildrenArray
 
Methods inherited from class com.icl.saxon.tree.NodeImpl
compareOrder, getDisplayName, getDocumentElement, getEnumeration, getFingerprint, getLocalName, getNamePool, getNextInDocument, getNextSibling, getOriginatingNode, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getURI, isSameNodeInfo, removeNode
 
Methods inherited from class com.icl.saxon.om.AbstractNode
appendChild, appendData, cloneNode, compareDocumentPosition, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, getColumnNumber, getData, getDoctype, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getImplementation, getName, getNamespaceURI, getNodeName, getOwnerDocument, getOwnerElement, getParentNode, getPublicId, getSchemaTypeInfo, getSpecified, getTagName, getTextContent, getUserData, getValue, getWholeText, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isId, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, replaceData, replaceWholeText, setData, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.Locator
getColumnNumber, getLineNumber, getPublicId, getSystemId
 
Methods inherited from interface org.w3c.dom.Element
getElementsByTagName, getElementsByTagNameNS, getTagName
 
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix
 

Field Detail

modeNameCode

protected int modeNameCode

templateFingerprint

protected int templateFingerprint

match

protected Pattern match

prioritySpecified

protected boolean prioritySpecified

priority

protected double priority

procedure

protected Procedure procedure

needsStackFrame

protected boolean needsStackFrame
Constructor Detail

XSLTemplate

public XSLTemplate()
Method Detail

mayContainTemplateBody

public boolean mayContainTemplateBody()
Determine whether this type of element is allowed to contain a template-body

Overrides:
mayContainTemplateBody in class StyleElement
Returns:
true: yes, it may contain a template-body

getTemplateFingerprint

public int getTemplateFingerprint()
Return the fingerprint for the name of this template


getMinImportPrecedence

public int getMinImportPrecedence()

needsStackFrame

public boolean needsStackFrame()
Description copied from interface: NodeHandler
Optimization hint to allow a handler to declare that it needs no stack space for local variables and parameters

Specified by:
needsStackFrame in interface NodeHandler

prepareAttributes

public void prepareAttributes()
                       throws TransformerConfigurationException
Description copied from class: StyleElement
Set the attribute list for the element. This is called to process the attributes (note the distinction from processAttributes in the superclass). Must be supplied in a subclass

Specified by:
prepareAttributes in class StyleElement
Throws:
TransformerConfigurationException

validate

public void validate()
              throws TransformerConfigurationException
Description copied from class: StyleElement
Check that the element is valid. This is called once for each element, after the entire tree has been built. As well as validation, it can perform first-time initialisation. The default implementation does nothing; it is normally overriden in subclasses.

Overrides:
validate in class StyleElement
Throws:
TransformerConfigurationException

preprocess

public void preprocess()
                throws TransformerConfigurationException
Preprocess: this registers the template with the rule manager, and ensures space is available for local variables

Overrides:
preprocess in class StyleElement
Throws:
TransformerConfigurationException

process

public void process(Context context)
             throws TransformerException
Process template. This is called while all the top-level nodes are being processed in order, so it does nothing.

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

start

public void start(NodeInfo e,
                  Context context)
           throws TransformerException
Process a node in the source document. This is called when the template is invoked using xsl:apply-templates.

Specified by:
start in interface NodeHandler
Parameters:
e - The NodeInfo object for the current node.
Throws:
TransformerException
See Also:
NodeInfo

traceExpand

protected void traceExpand(Context context)
                    throws TransformerException
Expand the template, with tracing. Called when the template is invoked either by xsl:apply-templates or from xsl:call-template

Throws:
TransformerException

expand

protected void expand(Context context)
               throws TransformerException
Expand the template. Called when the template is invoked either by xsl:apply-templates or from xsl:call-template

Throws:
TransformerException

bindVariable

public Binding bindVariable(int fingerprint)
                     throws XPathException
Disallow variable references in the match pattern

Overrides:
bindVariable in class StyleElement
Parameters:
fingerprint - The fingerprint of the name of the variable
Returns:
a Binding for the variable
Throws:
XPathException - if the variable has not been declared

getProcedure

public Procedure getProcedure()
Get associated Procedure (for details of stack frame)