net.sf.saxon.om
Class Axis

java.lang.Object
  extended by net.sf.saxon.om.Axis

public final class Axis
extends Object

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


Field Summary
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[] axisJavaName
          Table giving the name of each axis as used in a generated Java program, for example "ANCESTOR_OR_SELF"
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
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"


axisJavaName

public static final String[] axisJavaName
Table giving the name of each axis as used in a generated Java program, 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-2010 Saxonica Limited. All rights reserved.