Class NamespaceNode
- java.lang.Object
-
- org.jaxen.dom.NamespaceNode
-
- All Implemented Interfaces:
Node
public class NamespaceNode extends Object implements Node
Extension DOM2/DOM3 node type for a namespace node.This class implements the DOM2 and DOM3
Nodeinterface to allow namespace nodes to be included in the result set of an XPath selectNodes operation, even though DOM does not model namespaces in scope as separate nodes.While all of the DOM2 methods are implemented with reasonable defaults, there will be some unexpected surprises, so users are advised to test for NamespaceNodes and filter them out from the result sets as early as possible.
- The
getNodeType()method returnsNAMESPACE_NODE, which is not one of the usual DOM2 node types. Generic code may fall unexpectedly out of switch statements, for example. - The
getOwnerDocument()method returns the owner document of the parent node, but that owner document will know nothing about the namespace node. - The
isSupported(java.lang.String, java.lang.String)method always returns false. - The DOM3 methods sometimes throw UnsupportedOperationException. They're here only to allow this class to be compiled with Java 1.5. Do not call or rely on them.
All attempts to modify a
NamespaceNodewill fail with aDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR).- Author:
- David Megginson, Elliotte Rusty Harold
- See Also:
DocumentNavigator
-
-
Field Summary
Fields Modifier and Type Field Description static shortNAMESPACE_NODEConstant: this is a NamespaceNode.-
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
-
-
Constructor Summary
Constructors Constructor Description NamespaceNode(Node parent, String name, String value)Create a new NamespaceNode.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NodeappendChild(Node newChild)Append a new child node (always fails).NodecloneNode(boolean deep)Create a copy of this node.shortcompareDocumentPosition(Node other)Compare relative position of this node to another nbode.booleanequals(Object o)Test for equivalence with another object.NamedNodeMapgetAttributes()Get the attribute nodes.StringgetBaseURI()Return the base URI of the document containing this node.NodeListgetChildNodes()Get the list of child nodes.ObjectgetFeature(String feature, String version)Returns the value of the requested feature.NodegetFirstChild()Get the first child node.NodegetLastChild()Get the last child node.StringgetLocalName()Get the XPath name of the namespace node;; i.e.StringgetNamespaceURI()Get the namespace URI of this node.NodegetNextSibling()Get the next sibling node.StringgetNodeName()Get the namespace prefix.shortgetNodeType()Get the node type.StringgetNodeValue()Get the namespace URI.DocumentgetOwnerDocument()Get the owner document.NodegetParentNode()Get the parent node.StringgetPrefix()Get the namespace prefix of this node.NodegetPreviousSibling()Get the previous sibling node.StringgetTextContent()Return the namespace URI.ObjectgetUserData(String key)Returns the user data associated with the given key.booleanhasAttributes()Test if this node has attributes.booleanhasChildNodes()Test for child nodes.inthashCode()Generate a hash code for a namespace node.NodeinsertBefore(Node newChild, Node refChild)Insert a new child node (always fails).booleanisDefaultNamespace(String namespaceURI)Return true if the specified URI is the default namespace in scope (always fails).booleanisEqualNode(Node arg)Returns true if this object binds the same prefix to the same URI.booleanisSameNode(Node other)Returns true if and only if this object represents the same XPath namespace node as the argument; that is, they have the same parent, the same prefix, and the same URI.booleanisSupported(String feature, String version)Test if a DOM2 feature is supported.StringlookupNamespaceURI(String prefix)Return the namespace URI mapped to the specified prefix within the scope of this namespace node.StringlookupPrefix(String namespaceURI)Return the prefix bound to this namespace URI within the scope of this node.voidnormalize()Normalize the text descendants of this node.NoderemoveChild(Node oldChild)Remove a child node (always fails).NodereplaceChild(Node newChild, Node oldChild)Replace a child node (always fails).voidsetNodeValue(String value)Change the namespace URI (always fails).voidsetPrefix(String prefix)Change the namespace prefix of this node (always fails).voidsetTextContent(String textContent)Change the value of this node (always fails).ObjectsetUserData(String key, Object data, UserDataHandler handler)Associates an object with a key.
-
-
-
Field Detail
-
NAMESPACE_NODE
public static final short NAMESPACE_NODE
Constant: this is a NamespaceNode.- See Also:
getNodeType(), Constant Field Values
-
-
Method Detail
-
getNodeName
public String getNodeName()
Get the namespace prefix.- Specified by:
getNodeNamein interfaceNode- Returns:
- the namespace prefix, or "" for the default namespace
-
getNodeValue
public String getNodeValue()
Get the namespace URI.- Specified by:
getNodeValuein interfaceNode- Returns:
- the namespace URI
-
setNodeValue
public void setNodeValue(String value) throws DOMException
Change the namespace URI (always fails).- Specified by:
setNodeValuein interfaceNode- Parameters:
value- the new URI- Throws:
DOMException- always
-
getNodeType
public short getNodeType()
Get the node type.- Specified by:
getNodeTypein interfaceNode- Returns:
- always
NAMESPACE_NODE.
-
getParentNode
public Node getParentNode()
Get the parent node.This method returns the element that was queried for Namespaces in effect, not necessarily the actual element containing the Namespace declaration.
- Specified by:
getParentNodein interfaceNode- Returns:
- the parent node (not null)
-
getChildNodes
public NodeList getChildNodes()
Get the list of child nodes.- Specified by:
getChildNodesin interfaceNode- Returns:
- an empty node list
-
getFirstChild
public Node getFirstChild()
Get the first child node.- Specified by:
getFirstChildin interfaceNode- Returns:
- null
-
getLastChild
public Node getLastChild()
Get the last child node.- Specified by:
getLastChildin interfaceNode- Returns:
- null
-
getPreviousSibling
public Node getPreviousSibling()
Get the previous sibling node.- Specified by:
getPreviousSiblingin interfaceNode- Returns:
- null
-
getNextSibling
public Node getNextSibling()
Get the next sibling node.- Specified by:
getNextSiblingin interfaceNode- Returns:
- null
-
getAttributes
public NamedNodeMap getAttributes()
Get the attribute nodes.- Specified by:
getAttributesin interfaceNode- Returns:
- null
-
getOwnerDocument
public Document getOwnerDocument()
Get the owner document.- Specified by:
getOwnerDocumentin interfaceNode- Returns:
- the owner document of the parent node
-
insertBefore
public Node insertBefore(Node newChild, Node refChild) throws DOMException
Insert a new child node (always fails).- Specified by:
insertBeforein interfaceNode- Parameters:
newChild- the node to addrefChild- ignored- Returns:
- never
- Throws:
DOMException- always- See Also:
Node.insertBefore(org.w3c.dom.Node, org.w3c.dom.Node)
-
replaceChild
public Node replaceChild(Node newChild, Node oldChild) throws DOMException
Replace a child node (always fails).- Specified by:
replaceChildin interfaceNode- Parameters:
newChild- the node to addoldChild- the child node to replace- Returns:
- never
- Throws:
DOMException- always- See Also:
Node.replaceChild(org.w3c.dom.Node, org.w3c.dom.Node)
-
removeChild
public Node removeChild(Node oldChild) throws DOMException
Remove a child node (always fails).- Specified by:
removeChildin interfaceNode- Parameters:
oldChild- the child node to remove- Returns:
- never
- Throws:
DOMException- always- See Also:
Node.removeChild(org.w3c.dom.Node)
-
appendChild
public Node appendChild(Node newChild) throws DOMException
Append a new child node (always fails).- Specified by:
appendChildin interfaceNode- Parameters:
newChild- the node to add- Returns:
- never
- Throws:
DOMException- always- See Also:
Node.appendChild(org.w3c.dom.Node)
-
hasChildNodes
public boolean hasChildNodes()
Test for child nodes.- Specified by:
hasChildNodesin interfaceNode- Returns:
- false
-
cloneNode
public Node cloneNode(boolean deep)
Create a copy of this node.
-
normalize
public void normalize()
Normalize the text descendants of this node.This method has no effect, since namespace nodes have no descendants.
-
isSupported
public boolean isSupported(String feature, String version)
Test if a DOM2 feature is supported. (None are.)- Specified by:
isSupportedin interfaceNode- Parameters:
feature- the feature nameversion- the feature version- Returns:
- false
-
getNamespaceURI
public String getNamespaceURI()
Get the namespace URI of this node.Namespace declarations are not themselves Namespace-qualified.
- Specified by:
getNamespaceURIin interfaceNode- Returns:
- null
-
getPrefix
public String getPrefix()
Get the namespace prefix of this node.Namespace declarations are not themselves namespace-qualified.
- Specified by:
getPrefixin interfaceNode- Returns:
- null
- See Also:
getLocalName()
-
setPrefix
public void setPrefix(String prefix) throws DOMException
Change the namespace prefix of this node (always fails).- Specified by:
setPrefixin interfaceNode- Parameters:
prefix- the new prefix- Throws:
DOMException- always thrown
-
getLocalName
public String getLocalName()
Get the XPath name of the namespace node;; i.e. the namespace prefix.- Specified by:
getLocalNamein interfaceNode- Returns:
- the namespace prefix
-
hasAttributes
public boolean hasAttributes()
Test if this node has attributes.- Specified by:
hasAttributesin interfaceNode- Returns:
- false
-
hashCode
public int hashCode()
Generate a hash code for a namespace node.
-
equals
public boolean equals(Object o)
Test for equivalence with another object.Two Namespace nodes are considered equivalent if their parents, names, and values are equal.
-
getBaseURI
public String getBaseURI()
Return the base URI of the document containing this node. This only works in DOM 3.- Specified by:
getBaseURIin interfaceNode- Returns:
- null
-
compareDocumentPosition
public short compareDocumentPosition(Node other) throws DOMException
Compare relative position of this node to another nbode. (Always fails). This method is included solely for compatibility with the superclass.- Specified by:
compareDocumentPositionin interfaceNode- Parameters:
other- the node to compare to- Returns:
- never
- Throws:
DOMException- NOT_SUPPORTED_ERR
-
getTextContent
public String getTextContent()
Return the namespace URI.- Specified by:
getTextContentin interfaceNode- Returns:
- the namespace URI
- See Also:
getNodeValue()
-
setTextContent
public void setTextContent(String textContent) throws DOMException
Change the value of this node (always fails). This method is included solely for compatibility with the superclass.- Specified by:
setTextContentin interfaceNode- Parameters:
textContent- the new content- Throws:
DOMException- always
-
isSameNode
public boolean isSameNode(Node other)
Returns true if and only if this object represents the same XPath namespace node as the argument; that is, they have the same parent, the same prefix, and the same URI.- Specified by:
isSameNodein interfaceNode- Parameters:
other- the node to compare to- Returns:
- true if this object represents the same XPath namespace node as other; false otherwise
-
lookupPrefix
public String lookupPrefix(String namespaceURI)
Return the prefix bound to this namespace URI within the scope of this node.- Specified by:
lookupPrefixin interfaceNode- Parameters:
namespaceURI- the URI to find a prefix binding for- Returns:
- a prefix matching this namespace URI
- Throws:
UnsupportedOperationException- in DOM 2
-
isDefaultNamespace
public boolean isDefaultNamespace(String namespaceURI)
Return true if the specified URI is the default namespace in scope (always fails). This method is included solely for compatibility with the superclass.- Specified by:
isDefaultNamespacein interfaceNode- Parameters:
namespaceURI- the URI to check- Returns:
- never
- Throws:
UnsupportedOperationException- always
-
lookupNamespaceURI
public String lookupNamespaceURI(String prefix)
Return the namespace URI mapped to the specified prefix within the scope of this namespace node.- Specified by:
lookupNamespaceURIin interfaceNode- Parameters:
prefix- the prefix to search for- Returns:
- the namespace URI mapped to this prefix
- Throws:
UnsupportedOperationException- in DOM 2
-
isEqualNode
public boolean isEqualNode(Node arg)
Returns true if this object binds the same prefix to the same URI. That is, this object has the same prefix and URI as the argument.- Specified by:
isEqualNodein interfaceNode- Parameters:
arg- the node to compare to- Returns:
- true if this object has the same prefix and URI as the argument; false otherwise
-
getFeature
public Object getFeature(String feature, String version)
Returns the value of the requested feature. Always returns null.- Specified by:
getFeaturein interfaceNode- Returns:
- null
-
setUserData
public Object setUserData(String key, Object data, UserDataHandler handler)
Associates an object with a key.- Specified by:
setUserDatain interfaceNode- Parameters:
key- the key by which the data will be retrieveddata- the object to store with the keyhandler- ignored since namespace nodes cannot be imported, cloned, or renamed- Returns:
- the value previously associated with this key; or null if there isn't any such previous value
-
getUserData
public Object getUserData(String key)
Returns the user data associated with the given key.- Specified by:
getUserDatain interfaceNode- Parameters:
key- the lookup key- Returns:
- the object associated with the key; or null if no such object is available
-
-