Class XSLTemplate

    • Constructor Detail

      • XSLTemplate

        public XSLTemplate()
    • Method Detail

      • mayContainSequenceConstructor

        public boolean mayContainSequenceConstructor()
        Determine whether this type of element is allowed to contain a template-body
        Overrides:
        mayContainSequenceConstructor 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. Note that this may be called before prepareAttributes has been called.
      • getReturnedItemType

        protected ItemType getReturnedItemType()
        Determine the type of item returned by this template
        Overrides:
        getReturnedItemType in class StyleElement
        Returns:
        the item type returned
      • prepareAttributes

        public void prepareAttributes()
                               throws XPathException
        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:
        XPathException
      • validate

        public void validate()
                      throws XPathException
        Description copied from class: StyleElement
        Check that the stylesheet 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:
        XPathException
      • markTailCalls

        public void markTailCalls()
        Mark tail-recursive calls on templates and functions.
        Overrides:
        markTailCalls in class StyleElement
      • compile

        public Expression compile​(Executable exec)
                           throws XPathException
        Compile: this registers the template with the rule manager, and ensures space is available for local variables
        Specified by:
        compile in class StyleElement
        Returns:
        either a ComputedExpression, or null. The value null is returned when compiling an instruction that returns a no-op, or when compiling a top-level object such as an xsl:template that compiles into something other than an instruction.
        Throws:
        XPathException
      • 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.
        Overrides:
        allocateSlots in class StyleElement
        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.
      • getCompiledTemplate

        public Template getCompiledTemplate()
        Get the compiled template