Index: XMLIO_V2/dev/dev_rv/attribut.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/attribut.hpp	(revision 93)
+++ XMLIO_V2/dev/dev_rv/attribut.hpp	(revision 94)
@@ -42,5 +42,5 @@
       
          Attribut(void) : hasValue(false) {} ;
-         Attribut(const Ctype& value_) : value(value_), hasValue(true) {} ;
+         Attribut(const Ctype& value_) : hasValue(true), value(value_) {} ;
          
          Attribut(const Attribut& attr) : hasValue(attr.hasValue) 
Index: XMLIO_V2/dev/dev_rv/context.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/context.hpp	(revision 93)
+++ XMLIO_V2/dev/dev_rv/context.hpp	(revision 94)
@@ -30,5 +30,5 @@
             
             if (!(_node.goToChildElement()))
-               WARNING("Le contexts ne contient pas d'enfant !"); 
+               WARNING("Le context ne contient pas d'enfant !"); 
             else
             {
@@ -41,5 +41,5 @@
                   
                   if (attributes.end() != attributes.find("id"))
-                  { WARNING("Le noeud de dÃ©finition possÃšde un identifiant, il ne sera pas pris en compte lors du traitement !"); }
+                  { WARNING("Le noeud de dÃ©finition possÃšde un identifiant, ce dernier ne sera pas pris en compte lors du traitement !"); }
                   
                   if (name.compare("field_definition") == 0)
@@ -49,8 +49,22 @@
                         WARNING("Le context possÃšde dÃ©jÃ  un noeud de dÃ©finition de champs, le dernier dÃ©fini complÃ©tera le premier !");
                      
-                     fieldDef = (FieldDefinition*)&FieldDefinition::CreateObject("field_definition");
-                     fieldDef->parse(_node, true);
+                     fieldDef = (FieldDefinition*)&FieldDefinition::CreateObject("field_definition"); // << Conversion possible car la classe Field n'a pas de propriÃ©tÃ©s.
+                     fieldDef->parse(_node);
+
                      continue;
-                  }                  
+                  }
+                  else if (name.compare("file_definition") == 0)
+                  { // Parsing pour la dÃ©finition des fichiers.
+                  } 
+                  else if (name.compare("axis_definition") == 0)
+                  { // Parsing pour la dÃ©finition des axes.
+                  }
+                  else if (name.compare("grid_definition") == 0)
+                  { // Parsing pour la dÃ©finition des grilles.
+                  } 
+                  else
+                     WARNING("La dÃ©finition est invalide, seules les champs, grilles, axes et fichiers peuvent Ãªtre dÃ©finis !");
+                     
+                     
                   // Traitement file, grid et axis Ã  complÃ©ter.
                } while (_node.goToNextElement());
Index: XMLIO_V2/dev/dev_rv/field_group.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/field_group.hpp	(revision 93)
+++ XMLIO_V2/dev/dev_rv/field_group.hpp	(revision 94)
@@ -27,5 +27,5 @@
          virtual const char* getName(void) const {return ("FieldGroup"); }  
          
-         void parse (XMLNode& _node, bool isFieldDef = false)
+         void parse (XMLNode& _node)
          {
             string name = _node.getElementName();            
@@ -39,6 +39,47 @@
                
             /// PARSING POUR GESION DES ENFANTS
-            // A complÃ©ter.
-               
+            if (!(_node.goToChildElement()))
+               WARNING("Le groupe de champ ne contient pas d'enfant !");
+            else
+            {
+               //////////////////////////////////////
+               do { // Parcours des contexts pour traitement. 
+                            
+                  string name = _node.getElementName();
+                  attributes.clear();
+                  _node.getAttributes(attributes);  
+                                 
+                  if (name.compare("field_group") == 0)
+                  { // Parsing pour les groupes de champs
+                        
+                     if (attributes.end() != attributes.find("id"))
+                     {// Si l'identifiant est dÃ©fini.
+                        if (FieldGroup::HasObject(attributes["id"]))
+                           WARNING("Dans le context actuel, un groupe de champ du mÃªme nom existe dÃ©jÃ , le second fera rÃ©fÃ©rence au premier par dÃ©faut !"); // TODO TODO
+                        FieldGroup* fgroup =(FieldGroup*)&createGroup(attributes["id"]);
+                        fgroup->parse(_node);
+                     }
+                     /*else
+                        this->createGroup();*/
+
+                        
+                     continue;
+                        
+                  }
+                  else if (name.compare("field") == 0)
+                  { // Parsing pour les champs
+                  
+                     if (attributes.end() != attributes.find("id"))
+                        if (Field::HasObject(attributes["id"]))
+                           WARNING("Dans le context actuel, un champ du mÃªme nom existe dÃ©jÃ , le second fera rÃ©fÃ©rence au premier par dÃ©faut !");  // TODO TODO                
+                  } 
+                  else
+                     WARNING("Un groupe de champs ne peut contenir qu'un champ ou un autre groupe de champs !");
+                     
+               } while (_node.goToNextElement());
+               //////////////////////////////////////
+               _node.goToParentElement(); // Retour au parent  
+            }
+                                       
             return;
          }
Index: XMLIO_V2/dev/dev_rv/xmlio.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/xmlio.hpp	(revision 93)
+++ XMLIO_V2/dev/dev_rv/xmlio.hpp	(revision 94)
@@ -26,8 +26,9 @@
 
 // Concernant les attributs ...
-#include "field_attribut.hpp"
+
 #include "xmlio_object.hpp"
 #include "xmlio_xml_node.hpp"
 #include "xmlio_object_template.hpp"
+#include "field_attribut.hpp"
 #include "field.hpp"      
 #include "xmlio_group_template.hpp"      
@@ -37,6 +38,3 @@
 
 
-
-
-
 #endif // __XMLIO__ 
Index: XMLIO_V2/dev/dev_rv/xmlio_group_template.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/xmlio_group_template.hpp	(revision 93)
+++ XMLIO_V2/dev/dev_rv/xmlio_group_template.hpp	(revision 94)
@@ -9,18 +9,19 @@
       public:
             
-         GroupTemplate(void) : ObjectTemplate<GroupTemplate<T, U> >(), childList(), groupList(), U()
+         GroupTemplate(void) : ObjectTemplate<GroupTemplate<T, U> >(),  U(), childList(), groupList()
          {/* Ne rien faire de plus */}               
-         GroupTemplate(const string& _id) : ObjectTemplate<GroupTemplate<T, U> >(_id), childList(), groupList(), U()
+         GroupTemplate(const string& _id) : ObjectTemplate<GroupTemplate<T, U> >(_id), U(), childList(), groupList()
          {/* Ne rien faire de plus */}            
       
          virtual const char* getName(void) const {return ("GroupTemplate"); }
-         
+                 
          /// Pour les groupes d'objets enfants ///
          
          GroupTemplate<T, U>& createGroup(const string _id) throw (XMLIOUndefinedValueException) 
          {
-            GroupTemplate<T, U>& obj = GroupTemplate<T, U>::CreateObject(_id);
-            groupList.addPtrObject(&obj);
-            return (obj);
+            GroupTemplate<T, U>::CreateObject(_id);
+           // groupList.addPtrObject(&obj);// Foireux
+              
+            return (GroupTemplate<T, U>::GetObject(_id));
          }
          
@@ -28,5 +29,6 @@
          {
             GroupTemplate<T, U>& obj = GroupTemplate<T, U>::CreateObject();
-            groupList.addPtrObject(&obj);            
+            //groupList.addPtrObject(&obj); // Foireux 
+                     
             return (obj);
          }
Index: XMLIO_V2/dev/dev_rv/xmlio_logger.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/xmlio_logger.hpp	(revision 93)
+++ XMLIO_V2/dev/dev_rv/xmlio_logger.hpp	(revision 94)
@@ -39,5 +39,5 @@
          static Logger & GetConsoleLogger(void) {return (Logger::get("ConsoleLogger"));}   
          
-         ~ILogger(void) { delete pf, pFCConsole;}   
+         ~ILogger(void) { delete pf;}   
          
       private :
Index: XMLIO_V2/dev/dev_rv/xmlio_object_template.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/xmlio_object_template.hpp	(revision 93)
+++ XMLIO_V2/dev/dev_rv/xmlio_object_template.hpp	(revision 94)
@@ -24,6 +24,8 @@
             // Ajout d'un nouvel objet si l'identifiant n'est pas rÃ©pertoriÃ©.
             T identified_object(_id);
+            
             ObjectTemplate<T>::AllListObj[CurrContext].addObject(identified_object);
             ObjectTemplate<T>::GetObject(_id).registerAllAttributes();
+            
             return (ObjectTemplate<T>::GetObject(_id));
          }
@@ -31,6 +33,6 @@
          static T& CreateObject(void)
          {
-            ObjectTemplate<T>::CurrListObj.addObject(*(new T)); //<< Perte mÃ©moire ici
-            return (*(ObjectTemplate<T>::CurrListObj.getVector()[ObjectTemplate<T>::CurrListObj.getVectorSize()-1]));
+            ObjectTemplate<T>::AllListObj[CurrContext].addObject(*(new T)); //<< Perte mÃ©moire ici
+            return (*(ObjectTemplate<T>::AllListObj[CurrContext].getVector()[ObjectTemplate<T>::AllListObj[CurrContext].getVectorSize()-1]));
          }
          
Index: XMLIO_V2/dev/dev_rv/xmlio_xml_parser.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/xmlio_xml_parser.hpp	(revision 93)
+++ XMLIO_V2/dev/dev_rv/xmlio_xml_parser.hpp	(revision 94)
@@ -19,5 +19,5 @@
                THashAttributes attributes;
                
-              do {                
+               do {                
                  // Traitement de l'identifiant
                   _node.getAttributes(attributes);
@@ -27,5 +27,5 @@
                   
                   if( Context::HasObject(attributes["id"]))
-                  { WARNING("Le context ne sera pas traitÃ© car il existe dÃ©jÃ  !"); continue; }
+                  { WARNING("Le context ne sera pas traitÃ© car il existe dÃ©jÃ  un autre context possÃ©dant le mÃªme nom !"); continue; }
                   
                   Context::SetCurrentContext(attributes["id"]);
@@ -44,4 +44,5 @@
                XMLParser::Parse(node);
                log << "Nombre de contexts listÃ©s : " << Context::GetCurrentListObject().getSize() << " contre 2 attendus."<< std::endl;
+               log << "Nombre de contexts listÃ©s : " << FieldGroup::GetCurrentListObject().getSize() << " contre 1 attendus."<< std::endl;
                log << "Test  XMLParser ... ok !" << std::endl;
                return (true);
