Remove dynamic exceptions
[anna.git] / include / anna / xml / Namespace.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #ifndef anna_xml_Namespace_hpp
10 #define anna_xml_Namespace_hpp
11
12 #include <string>
13
14 #include <anna/core/Allocator.hpp>
15
16 namespace anna {
17
18 namespace xml {
19
20 class Node;
21
22 /**
23    Clase que modela los Namespaces que puede contener un documento XML.
24
25    Un namespace XML estará definido por un nombre y por una URI de la que obtener las definiciones.
26
27    La lista de namespaces asociados a un documento analizado estará asociado al nodo 'root' del
28    documento, aunque el resto de los nodos podrá hacer referencia al mismo.
29 */
30 class Namespace {
31 public:
32   /**
33    * Devuelve el nombre de este namespace.
34    * \return  el nombre de este namespace.
35    */
36   const std::string& getName() const { return a_name; }
37
38   /**
39    * Devuelve la referencia asociada a este namespace.
40    * \return la referencia asociada a este namespace.
41    */
42   const std::string& getReference() const { return a_reference; }
43
44   /**
45      Devuelve una cadena con toda la información relevante de esta instancia.
46      \return Una cadena con toda la información relevante de esta instancia.
47   */
48   std::string asString() const ;
49
50 private:
51   /**
52      Constructor.
53   */
54   Namespace() {;}
55
56   std::string a_name;
57   std::string a_reference;
58
59   void setName(const char* name) { a_name = name; }
60   void setName(const std::string& name) { a_name = name; }
61   void setReference(const char* reference) { a_reference = reference; }
62
63   friend class Allocator<Namespace>;
64   friend class Node;
65 };
66
67 }
68 }
69
70 #endif