Package net.sf.saxon.style

## Class XSLLeafNodeConstructor

- java.lang.Object
- - net.sf.saxon.tree.linked.NodeImpl
  - - net.sf.saxon.tree.linked.ParentNodeImpl
    - - net.sf.saxon.tree.linked.ElementImpl
      - - net.sf.saxon.style.StyleElement
        - - net.sf.saxon.style.XSLLeafNodeConstructor

- All Implemented Interfaces:
    `javax.xml.transform.Source`, `javax.xml.transform.SourceLocator`, `GroundedValue`, `Item`, `MutableNodeInfo`, `NamespaceResolver`, `NodeInfo`, `Sequence`, `Location`, `SteppingNode<NodeImpl>`, `SiblingCountingNode`, `org.xml.sax.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

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class net.sf.saxon.style.StyleElement

      `StyleElement.OnFailure`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Expression` | `select` |

    - ### Fields inherited from class net.sf.saxon.style.StyleElement

      `ACTION_COMPILE, ACTION_FIXUP, ACTION_OPTIMIZE, ACTION_PROCESS_ATTRIBUTES, ACTION_TYPECHECK, ACTION_VALIDATE, actionsCompleted, defaultCollationName, defaultMode, defaultXPathNamespace, expandText, extensionNamespaces, reportingCircumstances, staticContext, validationError, version`

    - ### Fields inherited from class net.sf.saxon.tree.linked.NodeImpl

      `NODE_LETTER`

    - ### Fields inherited from interface net.sf.saxon.om.NodeInfo

      `IS_DTD_TYPE, IS_NILLED`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `XSLLeafNodeConstructor()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `compileContent​(Compilation exec, ComponentDeclaration decl, SimpleNodeConstructor inst, Expression separator)` |
    `protected abstract java.lang.String` | `getErrorCodeForSelectPlusContent()` | Get the error code to be returned when the element has a select attribute but is not empty.
    `boolean` | `isInstruction()` | Determine whether this node is an instruction.
    `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.
    `boolean` | `mayContainSequenceConstructor()` | Determine whether this type of element is allowed to contain a template-body
    `protected Expression` | `prepareAttributesNameAndSelect()` | Method for use by subclasses (processing-instruction and namespace) that take a name and a select attribute
    `void` | `validate​(ComponentDeclaration decl)` | Check that the stylesheet element is valid.

    - ### Methods inherited from class net.sf.saxon.style.StyleElement

      `allocateLocation, bindLocalVariable, bindVariable, checkEmpty, checkTopLevel, checkUnknownAttribute, compile, compileDeclaration, compileError, compileError, compileError, compileError, compileError, compileError, compileErrorInAttribute, compileSequenceConstructor, compileSequenceConstructor, compileWarning, compileWarning, compileWarning, fixupReferences, generateId, getAttributeValue, getBaseURI, getBindingInformation, getCompilation, getConfiguration, getContainingPackage, getContainingSlotManager, getDeclaredVisibility, getDefaultCollationName, getDefaultXPathNamespace, getNamespaceResolver, getObjectName, getPackageData, getPrincipalStylesheetModule, getProperties, getSchemaType, getStaticContext, getStaticContext, getTypeAnnotation, getUsedPackage, getVisibility, getWithParamInstructions, getXslOriginal, hasImplicitBinding, index, invalidAttribute, isDeclaration, isExtensionAttributeAllowed, isExtensionNamespace, isPermittedChild, isSchemaAware, issueWarning, issueWarning, isTopLevel, isWithinDeclaredStreamableConstruct, makeAttributeValueTemplate, makeExpression, makeExpressionVisitor, makeQName, makeRetainedStaticContext, makeSequenceType, markTailCalls, mayContainFallback, mayContainParam, postValidate, prepareAttributes, processAllAttributes, processBooleanAttribute, processStandardAttributes, processVersionAttribute, reportAbsence, requireSyntaxExtensions, seesAvuncularVariables, setCompilation, setObjectName, setValidationError, substituteFor, typeCheck, typeCheck, validateChildren, validateSubtree, validateValidationAttribute`

    - ### Methods inherited from class net.sf.saxon.tree.linked.ElementImpl

      `addAttribute, addNamespace, addNamespace, attributes, checkNotNamespaceSensitiveElement, copy, delete, fixupInsertedNamespaces, generateId, getAllNamespaces, getAttributeValue, getColumnNumber, getDeclaredNamespaces, getLineNumber, getNodeKind, getNodeName, getRoot, getSchemaType, getSystemId, getURIForPrefix, initialise, isId, isIdref, isInScopeNamespace, isNilled, iteratePrefixes, removeAttribute, removeNamespace, removeTypeAnnotation, rename, replaceStringValue, setAttributeInfo, setAttributes, setLocation, setNamespaceMap, setNilled, setNodeName, setSystemId, setTypeAnnotation`

    - ### Methods inherited from class net.sf.saxon.tree.linked.ParentNodeImpl

      `addChild, children, compact, getFirstChild, getLastChild, getNthChild, getNumberOfChildren, getRawSequenceNumber, getSequenceNumber, getStringValue, getStringValueCS, hasChildNodes, insertChildren, iterateChildren, removeChild, replaceChildrenAt, setChildren, setRawSequenceNumber`

    - ### Methods inherited from class net.sf.saxon.tree.linked.NodeImpl

      `atomize, compareOrder, effectiveBooleanValue, equals, getDisplayName, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPhysicalRoot, getPrefix, getPreviousInDocument, getPreviousSibling, getRawParent, getSiblingPosition, getSuccessorElement, getTreeInfo, getURI, hasFingerprint, head, insertSiblings, isDeleted, iterateAxis, iterateAxis, newBuilder, replace, saveLocation, setRawParent, setSiblingPosition`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface net.sf.saxon.om.GroundedValue

      `asIterable, concatenate, containsNode, materialize`

    - ### Methods inherited from interface net.sf.saxon.om.Item

      `getLength, itemAt, iterate, reduce, subsequence`

    - ### Methods inherited from interface net.sf.saxon.om.NodeInfo

      `children, equals, getGenre, getPublicId, hashCode, isSameNodeInfo, isStreamed, toShortString`

    - ### Methods inherited from interface net.sf.saxon.om.Sequence

      `makeRepeatable`

    - ### Methods inherited from interface javax.xml.transform.Source

      `isEmpty`

- - ### Field Detail

    - #### select

          protected Expression select

  - ### Constructor Detail

    - #### XSLLeafNodeConstructor

          public XSLLeafNodeConstructor()

  - ### Method Detail

    - #### 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

          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

    - #### 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 java.lang.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