| /* |
| * Copyright (c) 2002 World Wide Web Consortium, |
| * (Massachusetts Institute of Technology, Institut National de |
| * Recherche en Informatique et en Automatique, Keio University). All |
| * Rights Reserved. This program is distributed under the W3C's Software |
| * Intellectual Property License. This program is distributed in the |
| * hope that it will be useful, but WITHOUT ANY WARRANTY; without even |
| * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
| * PURPOSE. |
| * See W3C License http://www.w3.org/Consortium/Legal/ for more details. |
| */ |
| |
| package org.w3c.dom.xpath; |
| |
| import org.w3c.dom.Element; |
| import org.w3c.dom.Node; |
| |
| /** |
| * The <code>XPathNamespace</code> interface is returned by |
| * <code>XPathResult</code> interfaces to represent the XPath namespace node |
| * type that DOM lacks. There is no public constructor for this node type. |
| * Attempts to place it into a hierarchy or a NamedNodeMap result in a |
| * <code>DOMException</code> with the code <code>HIERARCHY_REQUEST_ERR</code> |
| * . This node is read only, so methods or setting of attributes that would |
| * mutate the node result in a DOMException with the code |
| * <code>NO_MODIFICATION_ALLOWED_ERR</code>. |
| * <p>The core specification describes attributes of the <code>Node</code> |
| * interface that are different for different node node types but does not |
| * describe <code>XPATH_NAMESPACE_NODE</code>, so here is a description of |
| * those attributes for this node type. All attributes of <code>Node</code> |
| * not described in this section have a <code>null</code> or |
| * <code>false</code> value. |
| * <p><code>ownerDocument</code> matches the <code>ownerDocument</code> of the |
| * <code>ownerElement</code> even if the element is later adopted. |
| * <p><code>prefix</code> is the prefix of the namespace represented by the |
| * node. |
| * <p><code>nodeName</code> is the same as <code>prefix</code>. |
| * <p><code>nodeType</code> is equal to <code>XPATH_NAMESPACE_NODE</code>. |
| * <p><code>namespaceURI</code> is the namespace URI of the namespace |
| * represented by the node. |
| * <p><code>adoptNode</code>, <code>cloneNode</code>, and |
| * <code>importNode</code> fail on this node type by raising a |
| * <code>DOMException</code> with the code <code>NOT_SUPPORTED_ERR</code>. |
| * importNode should also fail on XPathNamespace nodes.This was already |
| * fixed in the public draft.The Namespace node should be added to DOM Level |
| * 3 core and should be available via a read-only NamedNodeMap on element to |
| * reduce the confusion of adding a special node type for XPath.No change. |
| * There are no known problems with this add-on node type and uses beyond |
| * XPath are not anticipated.<code>Node.namespaceValue</code> should be |
| * identical to Node.namespaceURI and not <code>null</code>.No change.It is |
| * not clear why it should be this way since the infoset does not dictate it. |
| * <p>See also the <a href='http://www.w3.org/TR/2002/WD-DOM-Level-3-XPath-20020328'>Document Object Model (DOM) Level 3 XPath Specification</a>. |
| */ |
| public interface XPathNamespace extends Node { |
| // XPathNodeType |
| /** |
| * The node is a <code>Namespace</code>. |
| */ |
| public static final short XPATH_NAMESPACE_NODE = 13; |
| |
| /** |
| * The <code>Element</code> on which the namespace was in scope when it |
| * was requested. This does not change on a returned namespace node even |
| * if the document changes such that the namespace goes out of scope on |
| * that element and this node is no longer found there by XPath. |
| */ |
| public Element getOwnerElement(); |
| |
| } |