00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _BaseXML_H_ 00015 #define _BaseXML_H_ 00016 00017 #include "pattern/libhippo.h" 00018 00019 #include <list> 00020 #include <string> 00021 00022 class XmlController; 00023 class XmlDocument; 00024 class XmlElement; 00025 00033 class MDL_HIPPOPLOT_API BaseXML 00034 { 00035 00036 private: 00037 00039 BaseXML ( const BaseXML & ); 00040 00041 protected: 00042 00045 typedef std::list < XmlElement * > NodeList_t; 00046 00048 const std::string m_tagname; 00049 00052 const std::string m_type; 00053 00055 const std::string m_id; 00056 00058 XmlController * m_controller; 00059 00064 BaseXML ( const std::string & tagname, XmlController * ); 00065 00067 void setId ( XmlElement & tag, int id ); 00068 00069 public: 00070 00072 virtual ~BaseXML(); 00073 00075 virtual const std::string & tagName () const; 00076 00079 XmlElement * createElement ( ); 00080 00084 const XmlElement * getNode ( const XmlElement * element ) const; 00085 00088 void fillNodeList ( const XmlElement * element, 00089 std::list < XmlElement * > & nodelist ); 00090 00091 }; 00092 00093 #endif // _BaseXML_H_