00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _xmlattribute_h
00028 #define _xmlattribute_h
00029
00030 #include <spl/Double.h>
00031 #include <spl/Int32.h>
00032 #include <spl/String.h>
00033 #include <spl/xml/XmlDocument.h>
00034 #include <spl/xml/XmlNode.h>
00035
00043 class XmlAttribute : public XmlNode
00044 {
00045 protected:
00046 friend class XmlElement;
00047 friend class XmlDeclaration;
00048
00049 XmlDocumentRef m_document;
00050 String m_name;
00051
00052
00053
00054
00055 virtual const char* _Parse( const char* p, XmlParsingData* data, XmlEncoding encoding );
00056
00058 XmlAttribute();
00059
00061 XmlAttribute( const String& _name, const String& _value );
00062
00063 public:
00064 virtual ~XmlAttribute();
00065
00066 virtual XmlNodePtr Clone() const;
00067
00069 virtual String Name() const;
00070
00071 void SetName( const String& _name ) { m_name = _name; }
00072 void SetValue( const String& _value ) { m_value = _value; }
00073 void SetValue( int _value ) { m_value = Int32::ToString(_value); }
00074 void SetValue( double _value ) { m_value = Double::ToString(_value); }
00075
00076
00077
00078 inline void SetDocument( XmlDocumentRef doc )
00079 {
00080 m_document = doc;
00081 }
00082
00083 virtual StringPtr ToString() const;
00084 virtual void WriteTo(TextWriter& writer) const;
00085
00086 #ifdef DEBUG
00087 virtual void ValidateMem() const;
00088 virtual void CheckMem() const;
00089 #endif
00090 };
00091
00092 REGISTER_TYPEOF( 526, XmlAttribute );
00093
00096 #endif