00001
00002 #ifndef _H_XML_H_
00003 #define _H_XML_H_
00004
00005 #include "H_Variable.h"
00006 #include <list>
00007 #include <map>
00008 #include <string>
00009
00010 class XmlTag
00011 {
00012 public:
00013 enum type {broken, empty, opening, closing};
00014
00015 XmlTag();
00016 void read_from(istream &in);
00017 type get_type();
00018 string &name();
00019 void write_to(map<string,HVariable*> &Map);
00020
00021
00022 void write_name(char c);
00023 void add_var(char c);
00024 void write_var_name(char c);
00025 void write_var_value(char c);
00026 void is_closing(char c);
00027 private:
00028 type m_type;
00029 string m_name;
00030 list<pair<string,string> > assignments;
00031 };
00032
00033 #endif //_H_XML_H_