Package net.sf.saxon.tree.util

## Interface SteppingNode<N extends SteppingNode>

- All Superinterfaces:
    `GroundedValue`, `Item`, `Location`, `org.xml.sax.Locator`, `NodeInfo`, `Sequence`, `javax.xml.transform.Source`, `javax.xml.transform.SourceLocator`
  All Known Implementing Classes:
    `AbsentExtensionElement`, `AnnotationParent`, `AttributeImpl`, `CommentImpl`, `DataElement`, `DocumentImpl`, `DOM4JNodeWrapper`, `DOMNodeWrapper`, `ElementImpl`, `ExtensionInstruction`, `IXSLRemoveAttribute`, `IXSLRemoveProperty`, `IXSLScheduleAction`, `IXSLSetAttribute`, `IXSLSetProperty`, `IXSLSetStyle`, `LiteralResultElement`, `NodeImpl`, `ParentNodeImpl`, `ProcInstImpl`, `SaxonArray`, `SaxonArrayMemberInst`, `SaxonAssign`, `SaxonChange`, `SaxonDeepUpdate`, `SaxonDelete`, `SaxonDo`, `SaxonDoctype`, `SaxonEntityRef`, `SaxonForEachMember`, `SaxonImportQuery`, `SaxonInsert`, `SaxonItemType`, `SaxonParam`, `SaxonPreprocess`, `SaxonRename`, `SaxonReplace`, `SaxonTabulateMaps`, `SaxonUpdate`, `SaxonWhile`, `SchemaElement`, `SQLClose`, `SQLColumn`, `SQLConnect`, `SQLDelete`, `SQLExecute`, `SQLInsert`, `SQLQuery`, `SQLUpdate`, `StyleElement`, `TextImpl`, `TextValueTemplateNode`, `UnknownElement`, `XOMDocumentWrapper`, `XOMNodeWrapper`, `XSDAlternative`, `XSDAnnotation`, `XSDAny`, `XSDAnyAttribute`, `XSDAssert`, `XSDAttribute`, `XSDAttributeGroup`, `XSDComplexContent`, `XSDComplexContentRestriction`, `XSDComplexType`, `XSDCompositor`, `XSDDefaultOpenContent`, `XSDDocumentation`, `XSDElement`, `XSDExtension`, `XSDFacet`, `XSDFieldOrSelector`, `XSDGroup`, `XSDIdentityConstraint`, `XSDImport`, `XSDInclude`, `XSDList`, `XSDNotation`, `XSDOpenContent`, `XSDOverride`, `XSDRedefine`, `XSDSchema`, `XSDSimpleContent`, `XSDSimpleContentRestriction`, `XSDSimpleType`, `XSDSimpleTypeRestriction`, `XSDUnion`, `XSLAccept`, `XSLAcceptExpose`, `XSLAccumulator`, `XSLAccumulatorRule`, `XSLAnalyzeString`, `XSLApplyImports`, `XSLApplyTemplates`, `XSLAssert`, `XSLAttribute`, `XSLAttributeSet`, `XSLBreak`, `XSLBreakOrContinue`, `XSLCallTemplate`, `XSLCatch`, `XSLCharacterMap`, `XSLChoose`, `XSLComment`, `XSLContextItem`, `XSLCopy`, `XSLCopyOf`, `XSLDecimalFormat`, `XSLDocument`, `XSLElement`, `XSLEvaluate`, `XSLExpose`, `XSLFallback`, `XSLForEach`, `XSLForEachGroup`, `XSLFork`, `XSLFunction`, `XSLGeneralIncorporate`, `XSLGeneralVariable`, `XSLGlobalContextItem`, `XSLGlobalParam`, `XSLGlobalVariable`, `XSLIf`, `XSLImport`, `XSLImportSchema`, `XSLInclude`, `XSLIterate`, `XSLKey`, `XSLLeafNodeConstructor`, `XSLLocalParam`, `XSLLocalVariable`, `XSLMap`, `XSLMapEntry`, `XSLMatchingSubstring`, `XSLMerge`, `XSLMergeAction`, `XSLMergeKey`, `XSLMergeSource`, `XSLMessage`, `XSLMode`, `XSLModuleRoot`, `XSLNamespace`, `XSLNamespaceAlias`, `XSLNextIteration`, `XSLNextMatch`, `XSLNumber`, `XSLOnCompletion`, `XSLOnEmpty`, `XSLOnNonEmpty`, `XSLOtherwise`, `XSLOutput`, `XSLOutputCharacter`, `XSLOverride`, `XSLPackage`, `XSLPerformSort`, `XSLPreserveSpace`, `XSLProcessingInstruction`, `XSLResultDocument`, `XSLSequence`, `XSLSort`, `XSLSortOrMergeKey`, `XSLSourceDocument`, `XSLStylesheet`, `XSLTemplate`, `XSLText`, `XSLTry`, `XSLUsePackage`, `XSLValueOf`, `XSLWhen`, `XSLWherePopulated`, `XSLWithParam`

      public interface SteppingNode<N extends SteppingNode>
      extends NodeInfo

  This interface can be implemented by an implementation of NodeInfo to take advantage of a generic implementation of the descendant axis found in class `SteppingNavigator`

- - ### Field Summary

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

      `IS_DTD_TYPE, IS_NILLED`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `N` | `getFirstChild()` | Get the first child of this node
    `N` | `getNextSibling()` | Get the next sibling of this node
    `N` | `getParent()` | Get the parent of this node
    `N` | `getPreviousSibling()` | Get the previous sibling of this node
    `N` | `getSuccessorElement​(N anchor, java.lang.String uri, java.lang.String local)` | Find the next matching element in document order; that is, the first child element with the required name if there is one; otherwise the next sibling element if there is one; otherwise the next sibling element of the parent, grandparent, etc, up to the anchor element.

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

      `asIterable, concatenate, containsNode, effectiveBooleanValue, materialize`

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

      `getLength, getStringValueCS, head, itemAt, iterate, reduce, subsequence`

    - ### Methods inherited from interface net.sf.saxon.s9api.Location

      `saveLocation`

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

      `atomize, attributes, children, children, compareOrder, copy, equals, generateId, getAllNamespaces, getAttributeValue, getBaseURI, getColumnNumber, getConfiguration, getDeclaredNamespaces, getDisplayName, getFingerprint, getGenre, getLineNumber, getLocalPart, getNodeKind, getPrefix, getPublicId, getRoot, getSchemaType, getStringValue, getSystemId, getTreeInfo, getURI, hasChildNodes, hasFingerprint, hashCode, isId, isIdref, isNilled, isSameNodeInfo, isStreamed, iterateAxis, iterateAxis, toShortString`

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

      `makeRepeatable`

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

      `isEmpty, setSystemId`

- - ### Method Detail

    - #### getParent

          N getParent()

      Get the parent of this node
      Specified by:
        `getParent` in interface `NodeInfo`
      Returns:
        the parent of this node; or null if it is the root of the tree

    - #### getNextSibling

          N getNextSibling()

      Get the next sibling of this node
      Returns:
        the next sibling if there is one, or null otherwise

    - #### getPreviousSibling

          N getPreviousSibling()

      Get the previous sibling of this node
      Returns:
        the previous sibling if there is one, or null otherwise

    - #### getFirstChild

          N getFirstChild()

      Get the first child of this node
      Returns:
        the first child if there is one, or null otherwise

    - #### getSuccessorElement

          N getSuccessorElement​(N anchor,
                                java.lang.String uri,
                                java.lang.String local)

      Find the next matching element in document order; that is, the first child element with the required name if there is one; otherwise the next sibling element if there is one; otherwise the next sibling element of the parent, grandparent, etc, up to the anchor element.
      Parameters:
        `anchor` - the root of the tree within which navigation is confined
        `uri` - the required namespace URI, or null if any namespace is acceptable
        `local` - the required local name, or null if any local name is acceptable
      Returns:
        the next element after this one in document order, with the given URI and local name if specified, or null if this is the last node in the document, or the last node within the subtree being navigated