00001
00002
00014 #ifndef _XmlDocument_H_
00015 #define _XmlDocument_H_
00016
00017 #include "pattern/libhippo.h"
00018
00019 #include <string>
00020
00021 namespace hippodraw {
00022
00023 class XmlElement;
00024 class XmlTextNode;
00025
00032 class MDL_HIPPOPLOT_API XmlDocument
00033 {
00034
00035 public:
00037 enum Status { Success, OpenError, ParseError, WriteError };
00038
00039 private:
00040
00042 XmlDocument ( const XmlDocument & );
00043
00044 protected:
00045
00047 XmlDocument ();
00048
00049 public:
00050
00052 virtual ~XmlDocument();
00053
00055 virtual XmlElement * documentElement ( ) const = 0;
00056
00060 virtual XmlElement * createElement ( const std::string & tagName ) = 0;
00061
00063 virtual XmlTextNode * createTextNode ( const std::string & tag ) = 0;
00064
00066 virtual void appendChild ( XmlElement & ) = 0;
00067
00070 virtual Status saveToFile ( const std::string & filename ) = 0;
00071
00081 virtual Status setContent ( const std::string & filename ) = 0;
00082
00083 };
00084
00085 }
00086
00087 #endif // _XmlDocument_H_