## net.sf.saxon.style
Class XSLOtherwise

    java.lang.Object
      net.sf.saxon.tree.NodeImpl
          net.sf.saxon.tree.ParentNodeImpl
              net.sf.saxon.tree.ElementImpl
                  net.sf.saxon.tree.ElementWithAttributes
                      net.sf.saxon.style.StyleElement
                          net.sf.saxon.style.XSLOtherwise

All Implemented Interfaces:
  Container, FingerprintedNode, InstructionInfo, Item, LocationProvider, org.xml.sax.Locator, NodeInfo, SaxonLocator, javax.xml.transform.Source, javax.xml.transform.SourceLocator, ValueRepresentation

public class XSLOtherwise
extends StyleElement

Handler for xsl:otherwise elements in stylesheet.

Field Summary

Fields inherited from class net.sf.saxon.style.StyleElement
`defaultCollationName, defaultXPathNamespace, extensionNamespaces, REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FORWARDS_COMPATIBLE, reportingCircumstances, staticContext, validationError, version`

Fields inherited from class net.sf.saxon.tree.ElementWithAttributes
`attributeList, namespaceList`

Fields inherited from class net.sf.saxon.tree.ElementImpl
`nameCode, root, sequence`

Fields inherited from class net.sf.saxon.tree.NodeImpl
`index, NODE_LETTER, parent`

Fields inherited from interface net.sf.saxon.om.NodeInfo
`ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, LOCAL_NAMESPACES, NO_NAMESPACES`

Constructor Summary
`XSLOtherwise()`

Method Summary
`Expression` `compile(Executable exec)` Compile the instruction on the stylesheet tree into an executable instruction for use at run-time.
`protected ItemType` `getReturnedItemType()` Determine the type of item returned by this instruction (only relevant if it is an instruction).
`void` `markTailCalls()` Mark tail-recursive calls on stylesheet functions.
`boolean` `mayContainSequenceConstructor()` Determine whether this type of element is allowed to contain a template-body
`void` `prepareAttributes()` Set the attribute list for the element.
`void` `validate()` Check that the stylesheet element is valid.

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

`allocateLocationId, allocateSlots, backwardsCompatibleModeIsEnabled, bindVariable, checkEmpty, checkSortComesFirst, checkTopLevel, checkUnknownAttribute, checkWithinTemplate, compileError, compileError, compileError, compileSequenceConstructor, compileWarning, definesExcludedNamespace, definesExtensionElement, fallbackProcessing, fixupReferences, forwardsCompatibleModeIsEnabled, getAttributeSets, getAttributeValue, getCommonChildItemType, getConstructType, getContainingSlotManager, getContainingStylesheet, getDefaultCollationName, getDefaultXPathNamespace, getExecutable, getInstructionFingerprint, getLastChildInstruction, getLineNumber, getLineNumber, getNamespaceResolver, getObjectFingerprint, getObjectNameCode, getPrecedence, getPreparedStylesheet, getPrincipalStylesheet, getProperties, getProperty, getSchemaType, getStaticContext, getStylesheetFunction, getSystemId, getTargetNamePool, getTypeAnnotation, getVersion, getWithParamInstructions, isExcludedNamespace, isExtensionNamespace, isInstruction, isPermittedChild, issueWarning, issueWarning, isTopLevel, makeAttributeValueTemplate, makeExpression, makeNameCode, makeNamespaceContext, makePattern, makeSequenceType, makeSortKeys, makeTraceInstruction, mayContainFallback, postValidate, processAllAttributes, processAttributes, processDefaultCollationAttribute, processDefaultXPathNamespaceAttribute, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, reportAbsence, setLineNumber, setObjectNameCode, setValidationError, substituteFor, typeCheck, typeCheck, undeclaredNamespaceError, validateChildren, validateSubtree`

Methods inherited from class net.sf.saxon.tree.ElementWithAttributes
`copy, getAttributeList, getAttributeValue, getDeclaredNamespaces, getInScopeNamespaceCodes, getPrefixForURI, getURICodeForPrefix, getURIForPrefix, initialise, iteratePrefixes, sendNamespaceDeclarations, setNamespaceDeclarations`

Methods inherited from class net.sf.saxon.tree.ElementImpl
`addChild, compact, enumerateChildren, generateId, getBaseURI, getDocumentRoot, getFirstChild, getLastChild, getNameCode, getNodeKind, getNthChild, getRoot, getSequenceNumber, getStringValue, getStringValueCS, getSystemId, hasChildNodes, setNameCode, setSystemId, useChildrenArray`

Methods inherited from class net.sf.saxon.tree.NodeImpl
`compareOrder, getColumnNumber, getConfiguration, getDisplayName, getDocumentNumber, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getTypeAnnotation, getTypedValue, getURI, isSameNodeInfo, iterateAxis, iterateAxis`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.xml.sax.Locator
`getColumnNumber, getPublicId, getSystemId`

Methods inherited from interface javax.xml.transform.SourceLocator
`getColumnNumber, getPublicId, getSystemId`

Methods inherited from interface net.sf.saxon.trace.InstructionInfo
`getSystemId`

Constructor Detail

### XSLOtherwise

    public XSLOtherwise()

Method Detail

### getReturnedItemType

    protected ItemType getReturnedItemType()

  Determine the type of item returned by this instruction (only relevant if it is an instruction).

  Overrides:
    `getReturnedItemType` in class `StyleElement`
  Returns:
    the item type returned

### prepareAttributes

    public void prepareAttributes()
                           throws javax.xml.transform.TransformerConfigurationException

  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:
    `javax.xml.transform.TransformerConfigurationException`

### 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()
                  throws javax.xml.transform.TransformerConfigurationException

  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:
    `javax.xml.transform.TransformerConfigurationException`

### markTailCalls

    public void markTailCalls()

  Mark tail-recursive calls on stylesheet functions. For most instructions, this does nothing.

  Overrides:
    `markTailCalls` in class `StyleElement`

### compile

    public Expression compile(Executable exec)
                       throws javax.xml.transform.TransformerConfigurationException

  Description copied from class: `StyleElement`
  Compile the instruction on the stylesheet tree into an executable instruction for use at run-time.

  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:
    `javax.xml.transform.TransformerConfigurationException`