00001
00002
00014 #ifndef _BaseXML_H_
00015 #define _BaseXML_H_
00016
00017 #include "pattern/libhippo.h"
00018
00019 #include <list>
00020 #include <string>
00021
00022 namespace hippodraw {
00023
00024 class XmlController;
00025 class XmlDocument;
00026 class XmlElement;
00027
00035 class MDL_HIPPOPLOT_API BaseXML
00036 {
00037
00038 private:
00039
00041 BaseXML ( const BaseXML & );
00042
00043 protected:
00044
00047 typedef std::list < XmlElement * > NodeList_t;
00048
00050 const std::string m_tagname;
00051
00054 const std::string m_type;
00055
00057 const std::string m_id;
00058
00060 XmlController * m_controller;
00061
00066 BaseXML ( const std::string & tagname, XmlController * );
00067
00069 void setId ( XmlElement & tag, int id );
00070
00071 public:
00072
00074 virtual ~BaseXML();
00075
00077 virtual const std::string & tagName () const;
00078
00081 XmlElement * createElement ( );
00082
00086 const XmlElement * getNode ( const XmlElement * element ) const;
00087
00090 void fillNodeList ( const XmlElement * element,
00091 std::list < XmlElement * > & nodelist );
00092
00093 };
00094
00095 }
00096
00097 #endif // _BaseXML_H_