Groupe 1C (normes)

Date de création : 27 Novembre 2003
Dernière modification : 27 Novembre 2003
Diffusion : internet

2ème Cas de fichier de configuration XML :

<?xml version="1.0" ?>
<cas
hostname="domaine.fr"
port="443"
baseUri="/cas"
version="2.0"
/>

Dans le 2ème cas du fichier de configuration, seule la méthode config() change, car la méthode addCallParam() ne doit pas aller chercher les informations de la même façon. Elle doit récupérer la valeur des attributs d'une balise et non pas comme dans l'exemple précédent la valeur de la balise.
AddCallParam(java.lang.String nom_de_la_balise, int index_du_paramètre_pour_addRoot, java.lang.String nom_attribut)

Cela se traduit comme suit :

/**
*
* @throws IOException
* @throws JspException
*/
private config() throws IOException, JspException {
try {
   Class requestingClass = this.getClass();

     //Emplacement du fichier de config à parser à partir du répertoire classes
   URL resourceURL = requestingClass.getResource("/config/cas.xml");
   if (resourceURL == null){
      throw new JspException ("cas.xml does not exist ");
      }

     //Création d'une instance Digester
   Digester dig = new Digester();
     //On rend l'objet disponible à la manipulation en le mettant en haut de la pile
   dig.push(this);
     //Chaque fois que "cas" sera lu à la lecture du fichier de config on fera appelle à la méthode addRoot() avec 4 paramètres
   dig.addCallMethod("cas","addRoot",4);
     //Premier paramètre de la méthode addRoot()
   dig.addCallParam("cas",0,"hostname");
     //Deuxième paramètre de la méthode addRoot()
   dig.addCallParam("cas",1,"port");
     //Troisième paramètre de la méthode addRoot()
   dig.addCallParam("cas",2,"baseUri");
     //Quatrième paramètre de la méthode addRoot()
   dig.addCallParam("cas",3,"version");
     //On parse le fichier dont le chemin est passé en paramètre
   dig.parse(new InputSource(resourceURL.toExternalForm()));
}
catch (IOException e) {
   throw new JspException("Impossible to load file cas.xml : "+e);
   }
catch (SAXException e) {
   throw new JspException(e);
   }
}