SourceForge.net Logo

DOMImplementation.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMImplementation.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATION_HPP
00024 
00025 #include <xercesc/dom/DOMImplementationLS.hpp>
00026 #include <xercesc/dom/DOMException.hpp>
00027 #include <xercesc/dom/DOMLSException.hpp>
00028 #include <xercesc/dom/DOMRangeException.hpp>
00029 #include <xercesc/util/PlatformUtils.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 
00033 
00034 class DOMDocument;
00035 class DOMDocumentType;
00036 
00043 class CDOM_EXPORT DOMImplementation : public DOMImplementationLS
00044 {
00045 protected:
00046     // -----------------------------------------------------------------------
00047     //  Hidden constructors
00048     // -----------------------------------------------------------------------
00051         DOMImplementation() {};                                      // no plain constructor
00053 
00054 private:
00055     // -----------------------------------------------------------------------
00056     // Unimplemented constructors and operators
00057     // -----------------------------------------------------------------------
00060         DOMImplementation(const DOMImplementation &);   // no copy construtor.
00061         DOMImplementation & operator = (const DOMImplementation &);  // No Assignment
00063 
00064 
00065 public:
00066     // -----------------------------------------------------------------------
00067     //  All constructors are hidden, just the destructor is available
00068     // -----------------------------------------------------------------------
00075     virtual ~DOMImplementation() {};
00077 
00078     // -----------------------------------------------------------------------
00079     // Virtual DOMImplementation interface
00080     // -----------------------------------------------------------------------
00099     virtual bool  hasFeature(const XMLCh *feature,  const XMLCh *version) const = 0;
00101 
00102     // -----------------------------------------------------------------------
00103     // Functions introduced in DOM Level 2
00104     // -----------------------------------------------------------------------
00132     virtual  DOMDocumentType *createDocumentType(const XMLCh *qualifiedName,
00133                                                  const XMLCh *publicId,
00134                                                  const XMLCh *systemId) = 0;
00135 
00174     virtual DOMDocument *createDocument(const XMLCh *namespaceURI,
00175                                         const XMLCh *qualifiedName,
00176                                         DOMDocumentType *doctype,
00177                                         MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00178 
00180     // -----------------------------------------------------------------------
00181     // Functions introduced in DOM Level 3
00182     // -----------------------------------------------------------------------
00200     virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
00201 
00203 
00204     // -----------------------------------------------------------------------
00205     // Non-standard extension
00206     // -----------------------------------------------------------------------
00214     virtual DOMDocument *createDocument(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00215 
00223     static DOMImplementation *getImplementation();
00224 
00236     static bool loadDOMExceptionMsg
00237     (
00238           const   short  msgToLoad
00239         ,       XMLCh* const                 toFill
00240         , const XMLSize_t                    maxChars
00241     );
00242 
00244 
00245 };
00246 
00247 XERCES_CPP_NAMESPACE_END
00248 
00249 #endif