org.xmlpull.v1.builder.xpath.jaxen
Interface Navigator

All Superinterfaces:
java.io.Serializable
All Known Implementing Classes:
DefaultNavigator, DocumentNavigator

public interface Navigator
extends java.io.Serializable

Interface for navigating around an arbitrary object model, using xpath semantics.

There is a method to obtain a java.util.Iterator, for each axis specified by XPath. If the target object model does not support the semantics of a particular axis, an UnsupportedAxisException is to be thrown.


Method Summary
 java.util.Iterator getAncestorAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the ancestor xpath axis.
 java.util.Iterator getAncestorOrSelfAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the ancestor-or-self xpath axis.
 java.util.Iterator getAttributeAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the attribute xpath axis.
 java.lang.String getAttributeName(java.lang.Object attr)
          Retrieve the name of the given attribute node.
 java.lang.String getAttributeNamespaceUri(java.lang.Object attr)
          Retrieve the namespace URI of the given attribute node.
 java.lang.String getAttributeQName(java.lang.Object attr)
          Retrieve the QName of the given attribute node.
 java.lang.String getAttributeStringValue(java.lang.Object attr)
          Retrieve the string-value of an attribute node.
 java.util.Iterator getChildAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the child xpath axis.
 java.lang.String getCommentStringValue(java.lang.Object comment)
          Retrieve the string-value of a comment node.
 java.util.Iterator getDescendantAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the descendant xpath axis.
 java.util.Iterator getDescendantOrSelfAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the descendant-or-self xpath axis.
 java.lang.Object getDocument(java.lang.String uri)
          Loads a document from the given URI
 java.lang.Object getDocumentNode(java.lang.Object contextNode)
          Returns the document node that contains the given context node.
 java.lang.Object getElementById(java.lang.Object contextNode, java.lang.String elementId)
          Returns the element whose ID is given by elementId.
 java.lang.String getElementName(java.lang.Object element)
          Retrieve the name of the given element node.
 java.lang.String getElementNamespaceUri(java.lang.Object element)
          Retrieve the namespace URI of the given element node.
 java.lang.String getElementQName(java.lang.Object element)
          Retrieve the QName of the given element node.
 java.lang.String getElementStringValue(java.lang.Object element)
          Retrieve the string-value of an element node.
 java.util.Iterator getFollowingAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the following xpath axis.
 java.util.Iterator getFollowingSiblingAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the following-sibling xpath axis.
 java.util.Iterator getNamespaceAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the namespace xpath axis.
 java.lang.String getNamespacePrefix(java.lang.Object ns)
          Retrieve the namespace prefix of a namespace node.
 java.lang.String getNamespaceStringValue(java.lang.Object ns)
          Retrieve the string-value of a namespace node.
 short getNodeType(java.lang.Object node)
          Returns a number that identifies the type of node that the given object represents in this navigator.
 java.util.Iterator getParentAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the parent xpath axis.
 java.lang.Object getParentNode(java.lang.Object contextNode)
          Returns the parent of the given context node.
 java.util.Iterator getPrecedingAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the preceding xpath axis.
 java.util.Iterator getPrecedingSiblingAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the preceding-sibling xpath axis.
 java.lang.String getProcessingInstructionData(java.lang.Object pi)
          Retrieve the data of a processing-instruction.
 java.lang.String getProcessingInstructionTarget(java.lang.Object pi)
          Retrieve the target of a processing-instruction.
 java.util.Iterator getSelfAxisIterator(java.lang.Object contextNode)
          Retrieve an Iterator matching the self xpath axis.
 java.lang.String getTextStringValue(java.lang.Object txt)
          Retrieve the string-value of a text node.
 boolean isAttribute(java.lang.Object object)
          Returns whether the given object is an attribute node.
 boolean isComment(java.lang.Object object)
          Returns whether the given object is a comment node.
 boolean isDocument(java.lang.Object object)
          Returns whether the given object is a document node.
 boolean isElement(java.lang.Object object)
          Returns whether the given object is an element node.
 boolean isNamespace(java.lang.Object object)
          Returns whether the given object is a namespace node.
 boolean isProcessingInstruction(java.lang.Object object)
          Returns whether the given object is a processing-instruction node.
 boolean isText(java.lang.Object object)
          Returns whether the given object is a text node.
 XPath parseXPath(java.lang.String xpath)
          Returns a parsed form of the given xpath string, which will be suitable for queries on documents that use the same navigator as this one.
 java.lang.String translateNamespacePrefixToUri(java.lang.String prefix, java.lang.Object element)
          Translate a namespace prefix to a namespace URI, possibly considering a particular element node.
 

Method Detail

getChildAxisIterator

java.util.Iterator getChildAxisIterator(java.lang.Object contextNode)
                                        throws UnsupportedAxisException
Retrieve an Iterator matching the child xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getDescendantAxisIterator

java.util.Iterator getDescendantAxisIterator(java.lang.Object contextNode)
                                             throws UnsupportedAxisException
Retrieve an Iterator matching the descendant xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getParentAxisIterator

java.util.Iterator getParentAxisIterator(java.lang.Object contextNode)
                                         throws UnsupportedAxisException
Retrieve an Iterator matching the parent xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getAncestorAxisIterator

java.util.Iterator getAncestorAxisIterator(java.lang.Object contextNode)
                                           throws UnsupportedAxisException
Retrieve an Iterator matching the ancestor xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getFollowingSiblingAxisIterator

java.util.Iterator getFollowingSiblingAxisIterator(java.lang.Object contextNode)
                                                   throws UnsupportedAxisException
Retrieve an Iterator matching the following-sibling xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getPrecedingSiblingAxisIterator

java.util.Iterator getPrecedingSiblingAxisIterator(java.lang.Object contextNode)
                                                   throws UnsupportedAxisException
Retrieve an Iterator matching the preceding-sibling xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getFollowingAxisIterator

java.util.Iterator getFollowingAxisIterator(java.lang.Object contextNode)
                                            throws UnsupportedAxisException
Retrieve an Iterator matching the following xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getPrecedingAxisIterator

java.util.Iterator getPrecedingAxisIterator(java.lang.Object contextNode)
                                            throws UnsupportedAxisException
Retrieve an Iterator matching the preceding xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getAttributeAxisIterator

java.util.Iterator getAttributeAxisIterator(java.lang.Object contextNode)
                                            throws UnsupportedAxisException
Retrieve an Iterator matching the attribute xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getNamespaceAxisIterator

java.util.Iterator getNamespaceAxisIterator(java.lang.Object contextNode)
                                            throws UnsupportedAxisException
Retrieve an Iterator matching the namespace xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getSelfAxisIterator

java.util.Iterator getSelfAxisIterator(java.lang.Object contextNode)
                                       throws UnsupportedAxisException
Retrieve an Iterator matching the self xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getDescendantOrSelfAxisIterator

java.util.Iterator getDescendantOrSelfAxisIterator(java.lang.Object contextNode)
                                                   throws UnsupportedAxisException
Retrieve an Iterator matching the descendant-or-self xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getAncestorOrSelfAxisIterator

java.util.Iterator getAncestorOrSelfAxisIterator(java.lang.Object contextNode)
                                                 throws UnsupportedAxisException
Retrieve an Iterator matching the ancestor-or-self xpath axis.

Parameters:
contextNode - The origin context node.
Returns:
An Iterator capable of traversing the axis.
Throws:
UnsupportedAxisException - is the semantics of this axis are not supported by this object model.

getDocument

java.lang.Object getDocument(java.lang.String uri)
                             throws FunctionCallException
Loads a document from the given URI

Parameters:
uri - is the URI of the document to load
Throws:
FunctionCallException - if the document could not be loaded

getDocumentNode

java.lang.Object getDocumentNode(java.lang.Object contextNode)
Returns the document node that contains the given context node.

Parameters:
object - The context node.
Returns:
The document of the context node.
See Also:
isDocument(Object)

getParentNode

java.lang.Object getParentNode(java.lang.Object contextNode)
                               throws UnsupportedAxisException
Returns the parent of the given context node.

The parent of any node must either be a document node or an element node.

Parameters:
object - The context node.
Returns:
The parent of the context node.
Throws:
UnsupportedAxisException
See Also:
isDocument(java.lang.Object), isElement(java.lang.Object)

getElementNamespaceUri

java.lang.String getElementNamespaceUri(java.lang.Object element)
Retrieve the namespace URI of the given element node.

Parameters:
element - The context element node.
Returns:
The namespace URI of the element node.

getElementName

java.lang.String getElementName(java.lang.Object element)
Retrieve the name of the given element node.

Parameters:
element - The context element node.
Returns:
The name of the element node.

getElementQName

java.lang.String getElementQName(java.lang.Object element)
Retrieve the QName of the given element node.

Parameters:
element - The context element node.
Returns:
The QName of the element node.

getAttributeNamespaceUri

java.lang.String getAttributeNamespaceUri(java.lang.Object attr)
Retrieve the namespace URI of the given attribute node.

Parameters:
element - The context attribute node.
Returns:
The namespace URI of the attribute node.

getAttributeName

java.lang.String getAttributeName(java.lang.Object attr)
Retrieve the name of the given attribute node.

Parameters:
element - The context attribute node.
Returns:
The name of the attribute node.

getAttributeQName

java.lang.String getAttributeQName(java.lang.Object attr)
Retrieve the QName of the given attribute node.

Parameters:
element - The context attribute node.
Returns:
The QName of the attribute node.

getProcessingInstructionTarget

java.lang.String getProcessingInstructionTarget(java.lang.Object pi)
Retrieve the target of a processing-instruction.

Parameters:
pi - The context processing-instruction node.
Returns:
The target of the processing-instruction node.

getProcessingInstructionData

java.lang.String getProcessingInstructionData(java.lang.Object pi)
Retrieve the data of a processing-instruction.

Parameters:
pi - The context processing-instruction node.
Returns:
The data of the processing-instruction node.

isDocument

boolean isDocument(java.lang.Object object)
Returns whether the given object is a document node. A document node is the node that is selected by the xpath expression /.

Parameters:
object - The object to test.
Returns:
true if the object is a document node, else false

isElement

boolean isElement(java.lang.Object object)
Returns whether the given object is an element node.

Parameters:
object - The object to test.
Returns:
true if the object is an element node, else false

isAttribute

boolean isAttribute(java.lang.Object object)
Returns whether the given object is an attribute node.

Parameters:
object - The object to test.
Returns:
true if the object is an attribute node, else false

isNamespace

boolean isNamespace(java.lang.Object object)
Returns whether the given object is a namespace node.

Parameters:
object - The object to test.
Returns:
true if the object is a namespace node, else false

isComment

boolean isComment(java.lang.Object object)
Returns whether the given object is a comment node.

Parameters:
object - The object to test.
Returns:
true if the object is a comment node, else false

isText

boolean isText(java.lang.Object object)
Returns whether the given object is a text node.

Parameters:
object - The object to test.
Returns:
true if the object is a text node, else false

isProcessingInstruction

boolean isProcessingInstruction(java.lang.Object object)
Returns whether the given object is a processing-instruction node.

Parameters:
object - The object to test.
Returns:
true if the object is a processing-instruction node, else false

getCommentStringValue

java.lang.String getCommentStringValue(java.lang.Object comment)
Retrieve the string-value of a comment node.

Parameters:
comment - The comment node.
Returns:
The string-value of the node.

getElementStringValue

java.lang.String getElementStringValue(java.lang.Object element)
Retrieve the string-value of an element node.

Parameters:
element - The comment node.
Returns:
The string-value of the node.

getAttributeStringValue

java.lang.String getAttributeStringValue(java.lang.Object attr)
Retrieve the string-value of an attribute node.

Parameters:
attr - The attribute node.
Returns:
The string-value of the node.

getNamespaceStringValue

java.lang.String getNamespaceStringValue(java.lang.Object ns)
Retrieve the string-value of a namespace node.

Parameters:
attr - The namespace node.
Returns:
The string-value of the node.

getTextStringValue

java.lang.String getTextStringValue(java.lang.Object txt)
Retrieve the string-value of a text node.

Parameters:
attr - The text node.
Returns:
The string-value of the node.

getNamespacePrefix

java.lang.String getNamespacePrefix(java.lang.Object ns)
Retrieve the namespace prefix of a namespace node.

Parameters:
ns - The namespace node.
Returns:
The prefix associated with the node.

translateNamespacePrefixToUri

java.lang.String translateNamespacePrefixToUri(java.lang.String prefix,
                                               java.lang.Object element)
Translate a namespace prefix to a namespace URI, possibly considering a particular element node.

Strictly speaking, prefix-to-URI translation should occur irrespective of any element in the document. This method is provided to allow a non-conforming ease-of-use enhancement.

Parameters:
prefix - The prefix to translate.
element - The element to consider during translation.
Returns:
The namespace URI associated with the prefix.
See Also:
NamespaceContext

parseXPath

XPath parseXPath(java.lang.String xpath)
                 throws SAXPathException
Returns a parsed form of the given xpath string, which will be suitable for queries on documents that use the same navigator as this one.

Parameters:
xpath - The xpath expression.
Returns:
A new XPath expression object.
Throws:
SAXPathException
See Also:
XPath

getElementById

java.lang.Object getElementById(java.lang.Object contextNode,
                                java.lang.String elementId)
Returns the element whose ID is given by elementId. If no such element exists, returns null. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return null.

Parameters:
contextNode - a node from the document in which to look for the id
elementId - id to look for
Returns:
element whose ID is given by elementId, or null if no such element exists in the document or if the implementation does not know about attribute types

getNodeType

short getNodeType(java.lang.Object node)
Returns a number that identifies the type of node that the given object represents in this navigator.

See Also:
org.jaxen.pattern.Pattern