00001
00002
00003 #ifndef MIX_NAMEDNODE_H_
00004 #define MIX_NAMEDNODE_H_
00005
00006 #include "Node.h"
00007
00008 namespace MiX{
00009
00010 template <class charT,class char_traits,class xml_traits>
00011 class NamedNode : virtual public Node<charT,char_traits,xml_traits>{
00012 public:
00013 MiX_Template_Typedef(charT,char_traits,xml_traits);
00014 typedef NamedNode<charT,char_traits,xml_traits> this_type;
00015 private:
00016 string_type name_;
00017 string_type ns_;
00023 NamedNode(const this_type& src){ };
00024 protected:
00026 NamedNode(const string_type& name,const string_type& ns = string_type())
00027 { setName( name,ns ); }
00028 public:
00030 virtual ~NamedNode()throw(){ };
00032 void setName(const string_type& name,const string_type& ns = string_type())
00033 { name_ = name; ns_ = ns_; }
00035 void setURL(const string_type& url) { ns_ = url; }
00037 string_type getName() const { return name_; }
00039 string_type getURL() const { return ns_; }
00041 virtual string_type getFullName() const =0;
00042 };
00043 }
00044
00045
00046 #endif