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
00025 #include <xercesc/dom/DOMImplementationLS.hpp>
00026 #include <xercesc/dom/DOMException.hpp>
00027 #include <xercesc/dom/DOMRangeException.hpp>
00028 #include <xercesc/util/PlatformUtils.hpp>
00029
00030 XERCES_CPP_NAMESPACE_BEGIN
00031
00032
00033 class DOMDocument;
00034 class DOMDocumentType;
00035
00042 class DOMImplementation : public DOMImplementationLS
00043 {
00044 protected:
00045
00046
00047
00050 DOMImplementation() {};
00052
00053 private:
00054
00055
00056
00059 DOMImplementation(const DOMImplementation &);
00060 DOMImplementation & operator = (const DOMImplementation &);
00062
00063
00064 public:
00065
00066
00067
00074 virtual ~DOMImplementation() {};
00076
00077
00078
00079
00098 virtual bool hasFeature(const XMLCh *feature, const XMLCh *version) const = 0;
00100
00101
00102
00103
00131 virtual DOMDocumentType *createDocumentType(const XMLCh *qualifiedName,
00132 const XMLCh *publicId,
00133 const XMLCh *systemId) = 0;
00134
00173 virtual DOMDocument *createDocument(const XMLCh *namespaceURI,
00174 const XMLCh *qualifiedName,
00175 DOMDocumentType *doctype,
00176 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00177
00179
00180
00181
00202 virtual DOMImplementation* getInterface(const XMLCh* feature) = 0;
00203
00205
00206
00207
00208
00216 virtual DOMDocument *createDocument(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00217
00225 static DOMImplementation *getImplementation();
00226
00238 static bool loadDOMExceptionMsg
00239 (
00240 const DOMException::ExceptionCode msgToLoad
00241 , XMLCh* const toFill
00242 , const unsigned int maxChars
00243 );
00244
00256 static bool loadDOMExceptionMsg
00257 (
00258 const DOMRangeException::RangeExceptionCode msgToLoad
00259 , XMLCh* const toFill
00260 , const unsigned int maxChars
00261 );
00263
00264 };
00265
00266 XERCES_CPP_NAMESPACE_END
00267
00268 #endif