Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:27:00

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_DOMATTRNSIMPL_HPP)
0023 #define XERCESC_INCLUDE_GUARD_DOMATTRNSIMPL_HPP
0024 
0025 //
0026 //  This file is part of the internal implementation of the C++ XML DOM.
0027 //  It should NOT be included or used directly by application programs.
0028 //
0029 //  Applications should include the file <xercesc/dom/DOM.hpp> for the entire
0030 //  DOM API, or xercesc/dom/DOM*.hpp for individual DOM classes, where the class
0031 //  name is substituded for the *.
0032 //
0033 
0034 #include "DOMAttrImpl.hpp"
0035 
0036 XERCES_CPP_NAMESPACE_BEGIN
0037 
0038 
0039 class CDOM_EXPORT DOMAttrNSImpl: public DOMAttrImpl {
0040 protected:
0041     //Introduced in DOM Level 2
0042     const XMLCh * fNamespaceURI;     //namespace URI of this node
0043     const XMLCh * fLocalName;        //local part of qualified name
0044     const XMLCh * fPrefix;           // prefix part of qualified name
0045                            // revisit - can return local part
0046                            //    by pointing into the qualified (L1) name.
0047 
0048 public:
0049     DOMAttrNSImpl(DOMDocument *ownerDoc, const XMLCh *name);
0050     DOMAttrNSImpl(DOMDocument *ownerDoc, //DOM Level 2
0051                   const XMLCh *namespaceURI, const XMLCh *qualifiedName);
0052     DOMAttrNSImpl(const DOMAttrNSImpl &other, bool deep=false);
0053 
0054     // Fast construction without any checks for name validity. Used in
0055     // parsing. Note that if prefix is not specified and localName is
0056     // 'xmlns', this constructor expects proper namespaceURI.
0057     //
0058     DOMAttrNSImpl(DOMDocument *ownerDoc,
0059                   const XMLCh *namespaceURI,
0060                   const XMLCh *prefix,        // Null or empty - no prefix.
0061                   const XMLCh *localName,
0062                   const XMLCh *qualifiedName);
0063 
0064     virtual DOMNode * cloneNode(bool deep) const;
0065     //Introduced in DOM Level 2
0066     virtual const XMLCh *   getNamespaceURI() const;
0067     virtual const XMLCh *   getPrefix() const;
0068     virtual const XMLCh *   getLocalName() const;
0069     virtual void            setPrefix(const XMLCh *prefix);
0070     virtual void            release();
0071 
0072    // helper function for DOM Level 3 renameNode
0073    virtual DOMNode* rename(const XMLCh* namespaceURI, const XMLCh* name);
0074    void setName(const XMLCh* namespaceURI, const XMLCh* name);
0075 
0076 private:
0077     // -----------------------------------------------------------------------
0078     // Unimplemented constructors and operators
0079     // -----------------------------------------------------------------------
0080     DOMAttrNSImpl & operator = (const DOMAttrNSImpl &);
0081 };
0082 
0083 XERCES_CPP_NAMESPACE_END
0084 
0085 #endif