00001 #ifndef DOMImplementation_HEADER_GUARD_
00002 #define DOMImplementation_HEADER_GUARD_
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 #include <xercesc/dom/DOMImplementationLS.hpp>
00025 #include <xercesc/dom/DOMException.hpp>
00026 #include <xercesc/dom/DOMRangeException.hpp>
00027 #include <xercesc/util/PlatformUtils.hpp>
00028 
00029 XERCES_CPP_NAMESPACE_BEGIN
00030 
00031 
00032 class DOMDocument;
00033 class DOMDocumentType;
00034 
00041 class  DOMImplementation : public DOMImplementationLS
00042 {
00043 protected:
00044     
00045     
00046     
00049         DOMImplementation() {};                                      
00051 
00052 private:
00053     
00054     
00055     
00058         DOMImplementation(const DOMImplementation &);   
00059         DOMImplementation & operator = (const DOMImplementation &);  
00061 
00062 
00063 public:
00064     
00065     
00066     
00073     virtual ~DOMImplementation() {};
00075 
00076     
00077     
00078     
00097     virtual bool  hasFeature(const XMLCh *feature,  const XMLCh *version) const = 0;
00099 
00100     
00101     
00102     
00130     virtual  DOMDocumentType *createDocumentType(const XMLCh *qualifiedName,
00131                                                  const XMLCh *publicId,
00132                                                  const XMLCh *systemId) = 0;
00133 
00172     virtual DOMDocument *createDocument(const XMLCh *namespaceURI,
00173                                         const XMLCh *qualifiedName,
00174                                         DOMDocumentType *doctype,
00175                                         MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00176 
00178     
00179     
00180     
00201     virtual DOMImplementation* getInterface(const XMLCh* feature) = 0;
00202 
00204 
00205     
00206     
00207     
00215     virtual DOMDocument *createDocument(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00216 
00224     static DOMImplementation *getImplementation();
00225 
00237     static bool loadDOMExceptionMsg
00238     (
00239         const   DOMException::ExceptionCode  msgToLoad
00240         ,       XMLCh* const                 toFill
00241         , const unsigned int                 maxChars
00242     );
00243 
00255     static bool loadDOMExceptionMsg
00256     (
00257         const   DOMRangeException::RangeExceptionCode  msgToLoad
00258         ,       XMLCh* const                           toFill
00259         , const unsigned int                           maxChars
00260     );
00262 
00263 };
00264 
00265 XERCES_CPP_NAMESPACE_END
00266 
00267 #endif