net.sf.saxon.om

## Class AxisInfo

- java.lang.Object
- - net.sf.saxon.om.AxisInfo

-     public final class AxisInfo
      extends Object

  An axis, that is a direction of navigation in the document structure.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static byte` | `ANCESTOR` Constant representing the ancestor axis
    `static byte` | `ANCESTOR_OR_SELF` Constant representing the ancestor-or-self axis
    `static byte` | `ATTRIBUTE` Constant representing the attribute axis
    `static String[]` | `axisName` Table giving the name of each axis as used in XPath, for example "ancestor-or-self"
    `static byte` | `CHILD` Constant representing the child axis
    `static byte` | `DESCENDANT` Constant representing the descendant axis
    `static byte` | `DESCENDANT_OR_SELF` Constant representing the descendant-or-self axis
    `static byte` | `FOLLOWING` Constant representing the following axis
    `static byte` | `FOLLOWING_SIBLING` Constant representing the following-sibling axis
    `static byte[]` | `inverseAxis` For each axis, determine the inverse axis, in the sense that if A is on axis X starting at B, the B is on the axis inverseAxis[X] starting at A.
    `static boolean[]` | `isForwards` Table indicating for each axis whether it is in forwards document order
    `static boolean[]` | `isPeerAxis` Table indicating for each axis whether it is a peer axis.
    `static boolean[]` | `isSubtreeAxis` Table indicating for each axis whether it is contained within the subtree rooted at the origin node.
    `static byte` | `NAMESPACE` Constant representing the namespace axis
    `static byte` | `PARENT` Constant representing the parent axis
    `static byte` | `PRECEDING` Constant representing the preceding axis
    `static byte` | `PRECEDING_OR_ANCESTOR` Constant representing the preceding-or-ancestor axis.
    `static byte` | `PRECEDING_SIBLING` Constant representing the preceding-sibling axis
    `static short[]` | `principalNodeType` Table indicating the principal node type of each axis
    `static byte` | `SELF` Constant representing the self axis

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `containsNodeKind(int axis, int nodeKind)` Determine whether a given kind of node can be found on a given axis.
    `static byte` | `getAxisNumber(String name)` Resolve an axis name into a symbolic constant representing the axis
    `static boolean` | `isAlwaysEmpty(int axis, int nodeKind)` Ask whether a given axis can contain any nodes when starting at the specified node kind.

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

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

- - ### Field Detail

    - #### ANCESTOR

          public static final byte ANCESTOR

      Constant representing the ancestor axis
      See Also:
        Constant Field Values

    - #### ANCESTOR_OR_SELF

          public static final byte ANCESTOR_OR_SELF

      Constant representing the ancestor-or-self axis
      See Also:
        Constant Field Values

    - #### ATTRIBUTE

          public static final byte ATTRIBUTE

      Constant representing the attribute axis
      See Also:
        Constant Field Values

    - #### CHILD

          public static final byte CHILD

      Constant representing the child axis
      See Also:
        Constant Field Values

    - #### DESCENDANT

          public static final byte DESCENDANT

      Constant representing the descendant axis
      See Also:
        Constant Field Values

    - #### DESCENDANT_OR_SELF

          public static final byte DESCENDANT_OR_SELF

      Constant representing the descendant-or-self axis
      See Also:
        Constant Field Values

    - #### FOLLOWING

          public static final byte FOLLOWING

      Constant representing the following axis
      See Also:
        Constant Field Values

    - #### FOLLOWING_SIBLING

          public static final byte FOLLOWING_SIBLING

      Constant representing the following-sibling axis
      See Also:
        Constant Field Values

    - #### NAMESPACE

          public static final byte NAMESPACE

      Constant representing the namespace axis
      See Also:
        Constant Field Values

    - #### PARENT

          public static final byte PARENT

      Constant representing the parent axis
      See Also:
        Constant Field Values

    - #### PRECEDING

          public static final byte PRECEDING

      Constant representing the preceding axis
      See Also:
        Constant Field Values

    - #### PRECEDING_SIBLING

          public static final byte PRECEDING_SIBLING

      Constant representing the preceding-sibling axis
      See Also:
        Constant Field Values

    - #### SELF

          public static final byte SELF

      Constant representing the self axis
      See Also:
        Constant Field Values

    - #### PRECEDING_OR_ANCESTOR

          public static final byte PRECEDING_OR_ANCESTOR

      Constant representing the preceding-or-ancestor axis. This axis is used internally by the xsl:number implementation, it returns the union of the preceding axis and the ancestor axis.
      See Also:
        Constant Field Values

    - #### principalNodeType

          public static final short[] principalNodeType

      Table indicating the principal node type of each axis

    - #### isForwards

          public static final boolean[] isForwards

      Table indicating for each axis whether it is in forwards document order

    - #### isPeerAxis

          public static final boolean[] isPeerAxis

      Table indicating for each axis whether it is a peer axis. An axis is a peer axis if no node on the axis is an ancestor of another node on the axis.

    - #### isSubtreeAxis

          public static final boolean[] isSubtreeAxis

      Table indicating for each axis whether it is contained within the subtree rooted at the origin node.

    - #### axisName

          public static final String[] axisName

      Table giving the name of each axis as used in XPath, for example "ancestor-or-self"

    - #### inverseAxis

          public static byte[] inverseAxis

      For each axis, determine the inverse axis, in the sense that if A is on axis X starting at B, the B is on the axis inverseAxis[X] starting at A. This doesn't quite work for the PARENT axis, which has no simple inverse: this table gives the inverse as CHILD

  - ### Method Detail

    - #### getAxisNumber

          public static byte getAxisNumber(String name)
                                    throws XPathException

      Resolve an axis name into a symbolic constant representing the axis
      Parameters:
        `name` -
      Returns:
        integer value representing the named axis
      Throws:
        `XPathException`

    - #### isAlwaysEmpty

          public static boolean isAlwaysEmpty(int axis,
                              int nodeKind)

      Ask whether a given axis can contain any nodes when starting at the specified node kind. For example, the attribute axis when starting at an attribute node will always be empty
      Parameters:
        `axis` - the axis, for example `ATTRIBUTE`
        `nodeKind` - the node kind of the origin node, for example `Type.ATTRIBUTE`
      Returns:
        true if no nodes will ever appear on the specified axis when starting at the specified node kind.

    - #### containsNodeKind

          public static boolean containsNodeKind(int axis,
                                 int nodeKind)

      Determine whether a given kind of node can be found on a given axis. For example, the attribute axis will never contain any element nodes.
      Parameters:
        `axis` - the axis, for example `ATTRIBUTE`
        `nodeKind` - the node kind of the origin node, for example `Type.ELEMENT`
      Returns:
        true if the given kind of node can appear on the specified axis

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.