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