00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _XmlDocument_H_
00013 #define _XmlDocument_H_
00014
00015 #include "pattern/libhippo.h"
00016
00017 #include <string>
00018
00019 class XmlElement;
00020 class XmlTextNode;
00021
00028 class MDL_HIPPOPLOT_API XmlDocument
00029 {
00030
00031 public:
00033 enum Status { Success, OpenError, ParseError, WriteError };
00034
00035 private:
00036
00038 XmlDocument ( const XmlDocument & );
00039
00040 protected:
00041
00043 XmlDocument ();
00044
00045 public:
00046
00048 virtual ~XmlDocument();
00049
00051 virtual XmlElement * documentElement ( ) const = 0;
00052
00056 virtual XmlElement * createElement ( const std::string & tagName ) = 0;
00057
00059 virtual XmlTextNode * createTextNode ( const std::string & tag ) = 0;
00060
00062 virtual void appendChild ( XmlElement & ) = 0;
00063
00066 virtual Status saveToFile ( const std::string & filename ) = 0;
00067
00077 virtual Status setContent ( const std::string & filename ) = 0;
00078
00079 };
00080
00081 #endif // _XmlDocument_H_