00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #if !defined(XMLGRAMMARDESCRIPTION_HPP)
00022 #define XMLGRAMMARDESCRIPTION_HPP
00023 
00024 #include <xercesc/util/XMemory.hpp>
00025 #include <xercesc/validators/common/Grammar.hpp>
00026 
00027 #include <xercesc/internal/XSerializable.hpp>
00028 
00029 XERCES_CPP_NAMESPACE_BEGIN
00030 
00031 class  XMLGrammarDescription : public XSerializable, public XMemory
00032 {
00033 public :
00034     
00036     
00038 
00042     virtual ~XMLGrammarDescription();
00044 
00045     
00047     
00049 
00053     virtual Grammar::GrammarType   getGrammarType() const = 0;
00054     
00059     virtual const XMLCh*           getGrammarKey() const = 0;    
00061     
00062     inline MemoryManager*          getMemoryManager() const;
00063 
00064     
00065 
00066 
00067     DECL_XSERIALIZABLE(XMLGrammarDescription)
00068 
00069 protected :
00070     
00072     
00074     XMLGrammarDescription(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
00076 
00077 private :
00078     
00080     
00082     XMLGrammarDescription(const XMLGrammarDescription& );
00083     XMLGrammarDescription& operator=(const XMLGrammarDescription& );
00085 
00086     
00087     
00088     
00089     
00090     
00091     
00092     
00093     
00094     MemoryManager* const  fMemMgr;     
00095 };
00096 
00097 inline MemoryManager* XMLGrammarDescription::getMemoryManager() const
00098 {
00099     return fMemMgr;
00100 }
00101 
00102 XERCES_CPP_NAMESPACE_END
00103 
00104 #endif