00001 /* 00002 Copyright 2007, 2008, 2009, 2010, 2011 Instituto de Sistemas e Robotica, Instituto Superior Tecnico 00003 00004 This file is part of MeRMaID. 00005 00006 MeRMaID is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU Lesser General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 00011 MeRMaID is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU Lesser General Public License for more details. 00015 00016 You should have received a copy of the GNU Lesser General Public License 00017 along with MeRMaID. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 00021 00022 /** 00023 * @Filename XmlAttribute.hpp 00024 * @Description XmlAttribute definition file. 00025 * @Status Implementing 00026 * @Version $Id: XmlAttribute.hpp 1 2011-03-04 18:13:18Z jreis $ 00027 * @Maintainer Nelson Ramos (nmsra@mega.ist.utl.pt) 00028 */ 00029 00030 #ifndef __XML_XMLATTRIBUTE_H 00031 #define __XML_XMLATTRIBUTE_H 00032 00033 namespace mermaid 00034 { 00035 namespace support 00036 { 00037 namespace xml 00038 { 00039 class XmlAttribute; 00040 } 00041 } 00042 } 00043 00044 #include <string> 00045 00046 #include <boost/shared_ptr.hpp> 00047 00048 #include <libxml/parser.h> 00049 00050 namespace mermaid 00051 { 00052 namespace support 00053 { 00054 namespace xml 00055 { 00056 using std::string; 00057 using boost::shared_ptr; 00058 00059 /** 00060 * @Class XmlAttribute XmlAttribute.hpp "XmlAttribute.hpp" 00061 * @Description Class representing a XML element's attribute. 00062 * @Author Marco Barbosa 00063 */ 00064 class XmlAttribute 00065 { 00066 friend class XmlElement; 00067 00068 public: 00069 /** 00070 * @Description XmlAttribute name getter 00071 * @Returns string XmlAttribute's name 00072 */ 00073 const string getName() const; 00074 00075 /** 00076 * @Description XmlAttribute value getter 00077 * @Returns string XmlAttribute's value 00078 */ 00079 const string getValue() const; 00080 00081 private: 00082 /** 00083 * @Description Constructor 00084 * @Description Builds a new XmlAttribute 00085 * @Argument attr libxml2 attribute node pointer 00086 */ 00087 XmlAttribute (xmlAttrPtr attr); 00088 00089 string name_; 00090 string value_; 00091 }; // XmlAttribute 00092 } // namespace xml 00093 } // namespace support 00094 } // namespace mermaid 00095 00096 #endif // __XML_XMLATTRIBUTE_H