Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:51

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHNAMESPACE_HPP)
0023 #define XERCESC_INCLUDE_GUARD_DOMXPATHNAMESPACE_HPP
0024 
0025 #include <xercesc/dom/DOMNode.hpp>
0026 
0027 XERCES_CPP_NAMESPACE_BEGIN
0028 
0029 class DOMElement;
0030 
0031 /**
0032  * The <code>DOMXPathNamespace</code> interface is returned by <code>DOMXPathResult</code>
0033  * interfaces to represent the XPath namespace node type that DOM lacks. There is no
0034  * public constructor for this node type. Attempts to place it into a hierarchy or a 
0035  * NamedNodeMap result in a DOMException with the code HIERARCHY_REQUEST_ERR. This node
0036  * is read only, so methods or setting of attributes that would mutate the node result 
0037  * in a <code>DOMException</code> with the code NO_MODIFICATION_ALLOWED_ERR.
0038  * The core specification describes attributes of the <code>DOMNode</code> interface that 
0039  * are different for different node types but does not describe XPATH_NAMESPACE_NODE, 
0040  * so here is a description of those attributes for this node type. All attributes of
0041  * <code>DOMNode</code> not described in this section have a null or false value.
0042  * ownerDocument matches the ownerDocument of the ownerElement even if the element is later adopted.
0043  * nodeName is always the string "#namespace".
0044  * prefix is the prefix of the namespace represented by the node.
0045  * localName is the same as prefix.
0046  * nodeType is equal to XPATH_NAMESPACE_NODE.
0047  * namespaceURI is the namespace URI of the namespace represented by the node.
0048  * nodeValue is the same as namespaceURI.
0049  * adoptNode, cloneNode, and importNode fail on this node type by raising a DOMException with the code NOT_SUPPORTED_ERR.
0050  * Note: In future versions of the XPath specification, the definition of a namespace node may
0051  * be changed incompatibly, in which case incompatible changes to field values may be required to
0052  * implement versions beyond XPath 1.0.
0053  * @since DOM Level 3
0054  */
0055 class CDOM_EXPORT DOMXPathNamespace : public DOMNode
0056 {
0057 
0058 protected:
0059     // -----------------------------------------------------------------------
0060     //  Hidden constructors
0061     // -----------------------------------------------------------------------
0062     /** @name Hidden constructors */
0063     //@{    
0064     DOMXPathNamespace() {};
0065     //@}
0066 
0067 private:
0068     // -----------------------------------------------------------------------
0069     // Unimplemented constructors and operators
0070     // -----------------------------------------------------------------------
0071     /** @name Unimplemented constructors and operators */
0072     //@{
0073     DOMXPathNamespace(const DOMXPathNamespace &);
0074     DOMXPathNamespace& operator = (const  DOMXPathNamespace&);
0075     //@}
0076 
0077 public:
0078 
0079     
0080     enum XPathNodeType {
0081         XPATH_NAMESPACE_NODE = 13
0082     };
0083 
0084     // -----------------------------------------------------------------------
0085     //  All constructors are hidden, just the destructor is available
0086     // -----------------------------------------------------------------------
0087     /** @name Destructor */
0088     //@{
0089     /**
0090      * Destructor
0091      *
0092      */
0093     virtual ~DOMXPathNamespace() {};
0094     //@}
0095 
0096     // -----------------------------------------------------------------------
0097     // Virtual DOMXPathNamespace interface
0098     // -----------------------------------------------------------------------
0099     /** @name Functions introduced in DOM Level 3 */
0100     //@{
0101     /**
0102      * The <code>DOMElement</code> on which the namespace was in scope when 
0103      * it was requested. This does not change on a returned namespace node
0104      * even if the document changes such that the namespace goes out of
0105      * scope on that element and this node is no longer found there by XPath.
0106      * @since DOM Level 3
0107      */
0108     virtual DOMElement     *getOwnerElement() const = 0;
0109 
0110     //@}
0111 };
0112 
0113 XERCES_CPP_NAMESPACE_END
0114 
0115 #endif