Class XSLLeafNodeConstructor

All Implemented Interfaces:
Source, SourceLocator, ActiveSource, GroundedValue, Item, MutableNodeInfo, NamespaceResolver, NodeInfo, Sequence, Location, SteppingNode, SiblingCountingNode, Locator
Direct Known Subclasses:
XSLAttribute, XSLComment, XSLNamespace, XSLProcessingInstruction, XSLText, XSLValueOf

public abstract class XSLLeafNodeConstructor extends StyleElement
Common superclass for XSLT elements whose content template produces a text value: xsl:text, xsl:value-of, xsl:attribute, xsl:comment, xsl:namespace, and xsl:processing-instruction
  • Field Details

  • Constructor Details

    • XSLLeafNodeConstructor

      public XSLLeafNodeConstructor()
  • Method Details

    • prepareAttributesNameAndSelect

      protected Expression prepareAttributesNameAndSelect()
      Method for use by subclasses (processing-instruction and namespace) that take a name and a select attribute
      Returns:
      the expression defining the name attribute
    • isInstruction

      public boolean isInstruction()
      Determine whether this node is an instruction.
      Overrides:
      isInstruction in class StyleElement
      Returns:
      true - it is an instruction
    • mayContainSequenceConstructor

      protected 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
    • validate

      public void validate(ComponentDeclaration decl) 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
      Parameters:
      decl - the declaration to be validated
      Throws:
      XPathException - if any error is found during validation
    • getErrorCodeForSelectPlusContent

      protected abstract String getErrorCodeForSelectPlusContent()
      Get the error code to be returned when the element has a select attribute but is not empty.
      Returns:
      the error code defined for this condition, for this particular instruction
    • compileContent

      protected void compileContent(Compilation exec, ComponentDeclaration decl, SimpleNodeConstructor inst, Expression separator) throws XPathException
      Throws:
      XPathException
    • makeSimpleContentConstructor

      public static Expression makeSimpleContentConstructor(Expression select, Expression separator, StaticContext env)
      Construct an expression that implements the rules of "constructing simple content": given an expression to select the base sequence, and an expression to compute the separator, build an (unoptimized) expression to produce the value of the node as a string.
      Parameters:
      select - the expression that selects the base sequence
      separator - the expression that computes the separator
      env - the static context
      Returns:
      an expression that returns a string containing the string value of the constructed node