# 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