00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSPARSER_HPP)
00024 #define XERCESC_INCLUDE_GUARD_DOMLSPARSER_HPP
00025 
00026 #include <xercesc/dom/DOMConfiguration.hpp>
00027 #include <xercesc/dom/DOMLSParserFilter.hpp>
00028 #include <xercesc/util/XercesDefs.hpp>
00029 #include <xercesc/validators/common/Grammar.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 
00033 
00034 class DOMErrorHandler;
00035 class DOMLSInput;
00036 class DOMNode;
00037 class DOMDocument;
00038 
00047 class CDOM_EXPORT DOMLSParser
00048 {
00049 protected :
00050     
00051     
00052     
00055     DOMLSParser() {};
00057 
00058 private:
00059     
00060     
00061     
00064     DOMLSParser(const DOMLSParser &);
00065     DOMLSParser & operator = (const DOMLSParser &);
00067 
00068 public:
00069     
00070     
00071     
00078     virtual ~DOMLSParser() {};
00080 
00081     
00082     
00083     
00117     enum ActionType
00118     {
00119         ACTION_APPEND_AS_CHILDREN = 1,
00120         ACTION_REPLACE_CHILDREN   = 2,
00121         ACTION_INSERT_BEFORE      = 3,
00122         ACTION_INSERT_AFTER       = 4,
00123         ACTION_REPLACE            = 5
00124     };
00126 
00127     
00128     
00129     
00132 
00133     
00134     
00135     
00136 
00377     virtual DOMConfiguration* getDomConfig() = 0;
00378 
00388     virtual const DOMLSParserFilter* getFilter() const = 0;
00389 
00397     virtual bool getAsync() const = 0;
00398 
00406     virtual bool getBusy() const = 0;
00407 
00408     
00409     
00410     
00431     virtual void setFilter(DOMLSParserFilter* const filter) = 0;
00432 
00433     
00434     
00435     
00463     virtual DOMDocument* parse(const DOMLSInput* source) = 0;
00464 
00492     virtual DOMDocument* parseURI(const XMLCh* const uri) = 0;
00493 
00521     virtual DOMDocument* parseURI(const char* const uri) = 0;
00522 
00590     virtual DOMNode* parseWithContext(const DOMLSInput* source, DOMNode* contextNode, const ActionType action) = 0;
00591 
00600     virtual void abort() = 0;
00602 
00603     
00604     
00605     
00614     virtual void              release() = 0;
00615 
00639     virtual void              resetDocumentPool() = 0;
00640 
00666     virtual Grammar* loadGrammar(const DOMLSInput* source,
00667                                  const Grammar::GrammarType grammarType,
00668                                  const bool toCache = false) = 0;
00669 
00693     virtual Grammar* loadGrammar(const XMLCh* const systemId,
00694                                  const Grammar::GrammarType grammarType,
00695                                  const bool toCache = false) = 0;
00696 
00720     virtual Grammar* loadGrammar(const char* const systemId,
00721                                  const Grammar::GrammarType grammarType,
00722                                  const bool toCache = false) = 0;
00723 
00730     virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) const = 0;
00731 
00737     virtual Grammar* getRootGrammar() const = 0;
00738 
00745     virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
00746 
00750     virtual void resetCachedGrammarPool() = 0;
00751 
00757     virtual XMLFilePos getSrcOffset() const = 0;
00758 
00760 
00761 };
00762 
00763 
00764 XERCES_CPP_NAMESPACE_END
00765 
00766 #endif