Index: XMLIO_V2/dev/dev_rv/src/XMLIO/attribut.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/attribut.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/attribut.hpp	(revision 113)
@@ -37,8 +37,13 @@
       public :
 
-         bool hasValue ;
-         Ctype value ;
+         operator Ctype() const
+         {
+            if (!hasValue) throw XMLIOUndefinedValueException("L'attribut \"" + this->getName() + "\" est invalide !");
+            return (value) ;
+         }
 
-         virtual bool _hasValue() const { return hasValue; }
+         virtual bool _hasValue() const { return (hasValue); }
+
+      protected :
 
          Attribut(void) : hasValue(false) {} ;
@@ -64,10 +69,4 @@
          }
 
-         operator Ctype() const
-         {
-            if (!hasValue) throw XMLIOUndefinedValueException("L'attribut \"" + this->getName() + "\" est invalide !");
-            return value ;
-         }
-
          virtual void assignValue(const BaseAttribut* _ba)
          { value = ((Attribut*)_ba) -> value; hasValue = true; }
@@ -85,4 +84,9 @@
          }
 
+      private :
+
+         bool hasValue ;
+         Ctype value ;
+
    }; // class Attribut
 }; // namespace XMLIOSERVER
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/attribut_registrar.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/attribut_registrar.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/attribut_registrar.hpp	(revision 113)
@@ -10,5 +10,5 @@
    class AttributRegistrar
    {
-      public :
+      protected :
 
          AttributRegistrar():attrList()
@@ -18,5 +18,5 @@
          const StrHashMap<BaseAttribut>& getAttributList(void) const { return (attrList); }
          size_t getNbAttributes() const {return (attrList.getSize()); }
-         bool hasAttribut(const string& _id) { return (attrList.hasMappedValue(_id)); }
+         bool hasAttribut(const string& _id) const { return (attrList.hasMappedValue(_id)); }
 
          BaseAttribut* getAttribut(const string& _id) throw (XMLIOUndefinedValueException) { return (attrList[_id]); }
@@ -56,10 +56,9 @@
          }
 
-      public :
-
         ~AttributRegistrar(void)
         {/* Ne rien faire de plus */}
 
-      protected :
+      private :
+
          StrHashMap<BaseAttribut> attrList;
 
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/axis.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/axis.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/axis.hpp	(revision 113)
@@ -18,5 +18,5 @@
          static string GetName(void) {return ("axis"); }
 
-         ~CAxis(void)
+         virtual ~CAxis(void)
          { /* Ne rien faire de plus */ }
 
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/base_attribut.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/base_attribut.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/base_attribut.hpp	(revision 113)
@@ -17,13 +17,13 @@
          virtual ostream & print(ostream& o) const = 0  ;
 
-         friend ostream& operator <<(ostream& o,const BaseAttribut& Attr)
-         {return Attr.print(o) ; }
+         friend ostream& operator <<(ostream& o,const BaseAttribut& Attr) { return (Attr.print(o)) ; }
+
+         bool hasId(void) const { return (true); }
+
+         virtual string getId(void) const { return (getName()); } ;
 
          virtual void assignValue(const BaseAttribut*) = 0;
-
-         virtual string getId(void) const {return getName();} ;
-         bool hasId(void){return (true);}
-
          virtual void setFromString(const std::string str) = 0;
+         virtual bool _hasValue() const = 0;
 
 #define  SETTER_AND_GETTER(TYPE) \
@@ -45,7 +45,4 @@
 #undef SETTER_AND_GETTER
 
-
-         virtual bool _hasValue() const = 0;
-
          static void error_set(void)
          { throw XMLIOIncompatibleTypeException("BaseAttribut::set<type> > Setting value type is incompatible with attribut type"); }
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/container.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/container.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/container.hpp	(revision 113)
@@ -33,5 +33,5 @@
          }
 
-         bool hasMappedValue(const Key& kval) {return (find(kval) != this->end());}
+         bool hasMappedValue(const Key& kval) const {return (find(kval) != this->end());}
 
          const vector<Mapped*>& getVector(void) const { return (this->_elemList); }
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp	(revision 113)
@@ -91,14 +91,14 @@
 
                   if (name.compare(FieldDefinition::GetDefName()) == 0) // Parsing dÃ©finition des champs.
-                  { fieldDef = CreateInstanceAndParse<FieldDefinition>(attributes, _node, "field_definition"); continue; }
+                  { fieldDef = CreateInstanceAndParse<FieldDefinition>(attributes, _node, FieldDefinition::GetDefName().c_str()); continue; }
 
                   if (name.compare(FileDefinition::GetDefName()) == 0) // Parsing dÃ©finition des fichiers.
-                  { fileDef = CreateInstanceAndParse<FileDefinition>(attributes, _node, "file_definition"); continue; }
+                  { fileDef  = CreateInstanceAndParse<FileDefinition >(attributes, _node, FileDefinition ::GetDefName().c_str()); continue; }
 
                   if (name.compare(AxisDefinition::GetDefName()) == 0) // Parsing pour la dÃ©finition des axes.
-                  { axisDef = CreateInstanceAndParse<AxisDefinition>(attributes, _node, "axis_definition");  continue; }
+                  { axisDef  = CreateInstanceAndParse<AxisDefinition >(attributes, _node, AxisDefinition ::GetDefName().c_str());  continue; }
 
                   if (name.compare(GridDefinition::GetDefName()) == 0) // Parsing pour la dÃ©finition des grilles.
-                  { gridDef = CreateInstanceAndParse<GridDefinition>(attributes, _node, "grid_definition"); continue; }
+                  { gridDef  = CreateInstanceAndParse<GridDefinition >(attributes, _node, GridDefinition ::GetDefName().c_str()); continue; }
 
                   WARNING("La dÃ©finition est invalide, seules les champs, grilles, axes et fichiers peuvent Ãªtre dÃ©finis !");
@@ -117,4 +117,5 @@
          virtual bool hasChild(void) const
          { return ((fieldDef != NULL) or (fileDef != NULL)  or (axisDef != NULL) or (gridDef != NULL)); }
+
          virtual void printChild(ostream& out) const
          {
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/field.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/field.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/field.hpp	(revision 113)
@@ -27,5 +27,5 @@
          }
 
-         ~CField(void)
+         virtual ~CField(void)
          { /* Ne rien faire de plus */ }
 
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/file.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/file.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/file.hpp	(revision 113)
@@ -55,5 +55,5 @@
          FieldGroup* getVirtualFieldGroup(void) { return (vfieldGroup); }
 
-         ~CFile(void)
+         virtual  ~CFile(void)
          { if(vfieldGroup != NULL) delete vfieldGroup; }
 
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/grid.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/grid.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/grid.hpp	(revision 113)
@@ -16,7 +16,7 @@
          {/* Ne rien faire de plus */}
 
-         static string GetName(void) {return ("grid"); }
+         static string GetName(void) { return ("grid"); }
 
-         ~CGrid(void)
+         virtual ~CGrid(void)
          { /* Ne rien faire de plus */ }
 
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/group_template.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/group_template.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/group_template.hpp	(revision 113)
@@ -65,5 +65,5 @@
          bool hasGroup(const string _id) { return (groupList.hasMappedValue(_id)); }
 
-         const StrHashMap<GroupTemplate<T, U>* >& getGroupList(void) { return (groupList); }
+         const StrHashMap<GroupTemplate<T, U>* >& getGroupList(void) const { return (groupList); }
 
          size_t getNbGroup() const {return (groupList.getVectorSize()); }
@@ -88,6 +88,6 @@
          bool hasChild(const string _id) { return (childList.hasMappedValue(_id)); }
 
-         const StrHashMap<T*>& getCurrentListChild(void) { return (childList); }
-         const vector<T*>& getCurrentVectorChild(void) { return (childList.getVector()); }
+         const StrHashMap<T*>& getCurrentListChild(void) const { return (childList); }
+         const vector<T*>& getCurrentVectorChild(void) const { return (childList.getVector()); }
 
          size_t getNbChild() const {return (childList.getVectorSize()); }
Index: XMLIO_V2/dev/dev_rv/src/XMLIO/xml_node.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/xml_node.hpp	(revision 112)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/xml_node.hpp	(revision 113)
@@ -145,9 +145,9 @@
             void setCNode(Node* other) { this->cNode = other; }
 
-            static bool IsPtrNull(Node* ptr) {return (ptr==NULL);}
+            static bool IsPtrNull(Node* ptr) { return (ptr==NULL); }
 
          private :
 
-            string& _toLower(string& _str) const
+            const string& _toLower(string& _str) const
             {
                for (unsigned int i = 0; i < _str.size(); i++)
