net.sf.saxon.style

Class XSLTemplate

public final class XSLTemplate extends StyleElement implements StylesheetProcedure

An xsl:template element in the style sheet.
Method Summary
voidallocateSlots(Expression exp)
Allocate space for range variables within predicates in the match pattern.
Expressioncompile(Executable exec)
Compile: this registers the template with the rule manager, and ensures space is available for local variables
TemplategetCompiledTemplate()
Get the compiled template
intgetConstructType()
Get the type of construct.
protected ItemTypegetReturnedItemType()
Determine the type of item returned by this template
SlotManagergetSlotManager()
Get associated Procedure (for details of stack frame)
intgetTemplateFingerprint()
Return the fingerprint for the name of this template.
protected booleanisPermittedChild(StyleElement child)
Specify that xsl:param is a permitted child
voidmarkTailCalls()
Mark tail-recursive calls on templates and functions.
booleanmayContainSequenceConstructor()
Determine whether this type of element is allowed to contain a template-body
voidprepareAttributes()
voidvalidate()

Method Detail

allocateSlots

public void allocateSlots(Expression exp)
Allocate space for range variables within predicates in the match pattern. The xsl:template element has no XPath expressions among its attributes, so if this method is called on this object it can only be because there are variables used in the match pattern. We work out how many slots are needed for the match pattern in each template rule, and then apply-templates can allocate a stack frame that is large enough for the most demanding match pattern in the entire stylesheet.

Parameters: exp The expression containing range variables. This will be a predicate within a match pattern, or possibly an argument to id() or key() used in a match pattern.

compile

public Expression compile(Executable exec)
Compile: this registers the template with the rule manager, and ensures space is available for local variables

getCompiledTemplate

public Template getCompiledTemplate()
Get the compiled template

getConstructType

public int getConstructType()
Get the type of construct. This will be a constant in class Location. This method is part of the InstructionInfo interface

getReturnedItemType

protected ItemType getReturnedItemType()
Determine the type of item returned by this template

Returns: the item type returned

getSlotManager

public SlotManager getSlotManager()
Get associated Procedure (for details of stack frame)

getTemplateFingerprint

public int getTemplateFingerprint()
Return the fingerprint for the name of this template. Note that this may be called before prepareAttributes has been called.

isPermittedChild

protected boolean isPermittedChild(StyleElement child)
Specify that xsl:param is a permitted child

markTailCalls

public void markTailCalls()
Mark tail-recursive calls on templates and functions.

mayContainSequenceConstructor

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

Returns: true: yes, it may contain a template-body

prepareAttributes

public void prepareAttributes()

validate

public void validate()