Bonjour,

J'utilise Digester sur des fichiers XML classiques par contre, je bute sur un et je voulais juste avoir votre avis sur la faisabilité du mapping dont voici l'exemple ci-dessous.

Merci à vous.

Cordialement,
Ulrich.

L'exemple :

L'idée est que à chaque fois que je rencontre la pattern "pages-jurisdictions/page" je crée une liste pour ranger mes "control".
Mais en fait, j'ai besoin de créer deux liste pour le même pattern (une pour "control" et une pour "jurisdiction") Mais est-ce possible ?

----- Le fichier à mapper -------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?xml version="1.0" encoding="UTF-8"?>
 
<pages-jurisdictions>
  <page name="PAGE_CHECK_HABILITATION">
    <jurisdiction name="READ"/>
    <jurisdiction name="WRITE"/>
  </page>
 
  <page name="PAGE_JURISDICTION_02">
    <jurisdiction name="ACCESS_JURISDICTION_02"/>
    <control name="CONTROL_01" style="INACTIF">
      <jurisdiction name="ACCESS_CONTROL_01"/>
    </control>
  </page>
 
  <page name="PAGE_JURISDICTION_03">
    <control name="CONTROL_02" style="INACTIF">
      <jurisdiction name="ACCESS_CONTROL_02"/>
    </control>
  </page>
</pages-jurisdictions>
----- Mon mapping -------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
// create the digester
Digester digester = new Digester();
 
// create the pages bean
digester.addObjectCreate("pages-jurisdictions", PagesJurisdictionsBean.class);
 
// **** party ************************************************************************************
// create the page bean list
digester.addObjectCreate("pages-jurisdictions", ArrayList.class);
// create the page bean
digester.addObjectCreate("pages-jurisdictions/page", PageBean.class);
// set the property of page bean
digester.addSetProperties("pages-jurisdictions/page");
// add the page bean in page bean list
digester.addSetNext("pages-jurisdictions/page", "add");
// add the page bean list
digester.addSetNext("pages-jurisdictions", "setPages");
 
// **** party ************************************************************************************
// create the control bean list
digester.addObjectCreate("pages-jurisdictions/page", ArrayList.class);
// create the control bean
digester.addObjectCreate("pages-jurisdictions/page/control", PageControlBean.class);
// set the property of control bean
digester.addSetProperties("pages-jurisdictions/page/control");
// add the control bean in control bean list
digester.addSetNext("pages-jurisdictions/page/control", "add");
// add the control bean list
digester.addSetNext("pages-jurisdictions/page", "setControls");
 
// **** party ************************************************************************************
// create the jurisdiction bean list
digester.addObjectCreate("pages-jurisdictions/page/control", ArrayList.class);
// create the jurisdiction bean
digester.addObjectCreate("pages-jurisdictions/page/control/jurisdiction", PageJurisdictionBean.class);
// set the property of jurisdiction bean
digester.addSetProperties("pages-jurisdictions/page/control/jurisdiction");
// add the jurisdiction bean in jurisdiction bean list
digester.addSetNext("pages-jurisdictions/page/control/jurisdiction", "add");
// add the jurisdiction bean list
digester.addSetNext("pages-jurisdictions/page/control", "setJurisdictions");