00001
00002
00014 #ifndef _XmlElement_H_
00015 #define _XmlElement_H_
00016
00017 #include "XmlNode.h"
00018
00019 #include <list>
00020 #include <string>
00021
00022 namespace hippodraw {
00023
00030 class MDL_HIPPOPLOT_API XmlElement : public virtual XmlNode
00031 {
00032
00033 private:
00034
00036 XmlElement ( const XmlElement & );
00037
00038 protected:
00039
00041 XmlElement ();
00042
00043 public:
00044
00047 typedef std::list < XmlElement * > NodeList_t;
00048
00050 virtual ~XmlElement();
00051
00054 virtual std::string tagName () const = 0;
00055
00060 virtual XmlElement * getNode ( const std::string & tagName ) const = 0;
00061
00063 virtual void
00064 fillNodeList ( const std::string & tagName,
00065 std::list < XmlElement * > & nodeList ) const = 0;
00066
00068 virtual int getID () const = 0;
00069
00072 virtual void setAttribute ( const std::string & name, bool value ) = 0;
00073
00075 virtual void setAttribute ( const std::string & name, int value ) = 0;
00076
00079 virtual void setAttribute ( const std::string & name,
00080 unsigned int value ) = 0;
00081
00083 virtual void setAttribute ( const std::string & name,
00084 float value ) = 0;
00085
00087 virtual void setAttribute ( const std::string & name,
00088 double value ) = 0;
00089
00091 virtual void setAttribute ( const std::string & name,
00092 const std::string & value ) = 0;
00093
00098 virtual bool attribute ( const std::string & name,
00099 bool & value ) const = 0;
00100
00104 virtual bool attribute ( const std::string & name,
00105 int & value ) const = 0;
00106
00110 virtual bool attribute ( const std::string & name,
00111 unsigned int & value ) const = 0;
00112
00116 virtual bool attribute ( const std::string & name, float & value ) const = 0;
00117
00121 virtual bool attribute ( const std::string & name,
00122 double & value ) const = 0;
00123
00127 virtual bool attribute ( const std::string & name,
00128 std::string & value ) const = 0;
00129
00132 virtual const std::string & getText () const = 0;
00133
00134 };
00135
00136 }
00137
00138 #endif // _XmlElement_H_