net.sf.saxon.style
Class XSLLeafNodeConstructor

java.lang.Object
  extended by net.sf.saxon.tree.linked.NodeImpl
      extended by net.sf.saxon.tree.linked.ParentNodeImpl
          extended by net.sf.saxon.tree.linked.ElementImpl
              extended by net.sf.saxon.style.StyleElement
                  extended by net.sf.saxon.style.XSLLeafNodeConstructor
All Implemented Interfaces:
Serializable, Source, SourceLocator, LocationProvider, SaxonLocator, PullEvent, Container, FingerprintedNode, Item, MutableNodeInfo, NamespaceResolver, NodeInfo, ValueRepresentation, InstructionInfo, 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, and xsl:processing-instruction

See Also:
Serialized Form

Field Summary
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, defaultXPathNamespace, extensionNamespaces, REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FALLBACK_AVAILABLE, REPORT_UNLESS_FORWARDS_COMPATIBLE, 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
ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES
 
Constructor Summary
XSLLeafNodeConstructor()
           
 
Method Summary
protected  void compileContent(Executable exec, Declaration decl, SimpleNodeConstructor inst, Expression separator)
           
protected abstract  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)
          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
 void validate(Declaration decl)
          Check that the stylesheet element is valid.
 
Methods inherited from class net.sf.saxon.style.StyleElement
allocateLocationId, allocatePatternSlots, allocateSlots, bindVariable, checkEmpty, checkSortComesFirst, checkTopLevel, checkUnknownAttribute, compile, compileError, compileError, compileError, compileError, compileSequenceConstructor, compileWarning, compileWarning, definesExcludedNamespace, definesExtensionElement, fallbackProcessing, fixupReferences, forwardsCompatibleModeIsEnabled, getAttributeSets, getAttributeValue, getColumnNumber, getCommonChildItemType, getConstructType, getContainerGranularity, getContainingSlotManager, getContainingStylesheet, getDefaultCollationName, getDefaultXPathNamespace, getEffectiveVersion, getExecutable, getHostLanguage, getLastChildInstruction, getLineNumber, getLocationProvider, getNamespaceResolver, getObjectName, getPreparedStylesheet, getPrincipalStylesheetModule, getProcessorVersion, getProperties, getProperty, getReturnedItemType, getSchemaType, getStaticContext, getSystemId, getTypeAnnotation, getWithParamInstructions, index, isActionCompleted, isDeclaration, isExcludedNamespace, isExplaining, isExtensionNamespace, isPermittedChild, issueWarning, issueWarning, isTopLevel, isXslt30Processor, makeAttributeValueTemplate, makeExpression, makeExpressionVisitor, makeNamespaceContext, makePattern, makeQName, makeSequenceType, makeSortKeys, makeTraceInstruction, markTailCalls, mayContainFallback, mayContainParam, postValidate, prepareAttributes, processAllAttributes, processAttributes, processDefaultCollationAttribute, processDefaultXPathNamespaceAttribute, processExcludedNamespaces, processExtensionElementAttribute, processStandardAttributes, processVersionAttribute, reportAbsence, seesAvuncularVariables, setActionCompleted, setObjectName, setValidationError, substituteFor, typeCheck, typeCheck, undeclaredNamespaceError, validateChildren, validateSubtree, xPath10ModeIsEnabled
 
Methods inherited from class net.sf.saxon.tree.linked.ElementImpl
addAttribute, addNamespace, copy, delete, fixupInsertedNamespaces, generateId, getAttributeList, getAttributeValue, getAttributeValue, getBaseURI, getColumnNumber, getDeclaredNamespaces, getDocumentRoot, getInScopeNamespaceCodes, getLineNumber, getNameCode, getNamespaceList, getNodeKind, getPrefixForURI, getRoot, getSystemId, getTypeAnnotation, getURICodeForPrefix, getURICodeForPrefixCode, getURIForPrefix, gsetAttributeCollection, initialise, isId, isNilled, iteratePrefixes, removeAttribute, removeTypeAnnotation, rename, replaceStringValue, setAttributeList, setLineAndColumn, setLocation, setNameCode, setNamespaceDeclarations, setNamespaceList, setSystemId, setTypeAnnotation
 
Methods inherited from class net.sf.saxon.tree.linked.ParentNodeImpl
addChild, compact, enumerateChildren, getFirstChild, getLastChild, getNthChild, getNumberOfChildren, getRawSequenceNumber, getSequenceNumber, getStringValue, getStringValueCS, hasChildNodes, insertChildren, insertChildrenAt, removeChild, replaceChildrenAt, setChildren, setRawSequenceNumber
 
Methods inherited from class net.sf.saxon.tree.linked.NodeImpl
atomize, compareOrder, equals, getConfiguration, getDisplayName, getDocumentNumber, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPhysicalRoot, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getRawParent, getSiblingPosition, getTypedValue, getURI, insertSiblings, isDeleted, isIdref, isSameNodeInfo, iterateAxis, iterateAxis, newBuilder, replace, setRawParent, setSiblingPosition
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.saxon.trace.InstructionInfo
getLineNumber, getSystemId
 
Methods inherited from interface org.xml.sax.Locator
getColumnNumber, getPublicId
 
Methods inherited from interface javax.xml.transform.SourceLocator
getColumnNumber, getPublicId
 
Methods inherited from interface net.sf.saxon.om.NodeInfo
hashCode
 

Field Detail

select

protected Expression select
Constructor Detail

XSLLeafNodeConstructor

public XSLLeafNodeConstructor()
Method Detail

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(Declaration 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
Throws:
XPathException

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(Executable exec,
                              Declaration decl,
                              SimpleNodeConstructor inst,
                              Expression separator)
                       throws XPathException
Throws:
XPathException

makeSimpleContentConstructor

public static Expression makeSimpleContentConstructor(Expression select,
                                                      Expression separator)
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
Returns:
an expression that returns a string containing the string value of the constructed node