Bonjour,

Je suis en train de développer un webservice utilisant cxf.

Mes données sont organisées de la façon suivante (voici une partie de mon wsdl) :

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
 
    <xs:complexType name="LoginType">
        <xs:sequence>
            <xs:element name="groupes" type="GroupesType"/>
        </xs:sequence>
        <xs:attribute name="login" type="xs:string" use="required"/>
    </xs:complexType>
 
    <xs:complexType name="GroupesType">
        <xs:sequence>
            <xs:element name="groupe" type="GroupeType"
                        minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
 
    <xs:complexType name="GroupeType">
        <xs:sequence>
            <xs:element name="codeGT" type="xs:string" nillable="false"/>
            <xs:element name="libGT" type="xs:string" nillable="true"/>
        </xs:sequence>
    </xs:complexType>
Mon WebService me permet de récupérer tous les logins et leurs groupes associés. Seulement il existe seulement 5 groupes différents et dans ma réponse à chaque login on re décrit tout le groupe (on remet son code et son libéllé). J'ai actuellement ce genre de réponse :

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
 
                     <login login="95488235">
                        <groupes>
                           <groupe>
                              <codeGT>95483072</codeGT>
                              <libGT>lib 72</libGT>
                           </groupe>
                           <groupe>
                              <codeGT>95483073</codeGT>
                              <libGT>lib 73</libGT>
                           </groupe>
                           <groupe>
                              <codeGT>95483045</codeGT>
                              <libGT>lib 45</libGT>
                           </groupe>
                           <groupe>
                              <codeGT>95483071</codeGT>
                              <libGT>lib 71</libGT>
                           </groupe>
                        </groupes>
                     </login>
 
                     <login login="107532">
                        <groupes>
                           <groupe>
                              <codeGT>95483045</codeGT>
                              <libGT>lib 45</libGT>
                           </groupe>
                           <groupe>
                              <codeGT>95483072</codeGT>
                              <libGT>lib 72</libGT>
                           </groupe>                           
                        </groupes>
                     </login>
Je souhaiterai obtenir une réponse qui me permette de supprimer les doublons sur les groupes, du genre :
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
 
                     <login login="95488235">
                        <groupes>
                          <groupe ref="95483072"/> 
                          <groupe ref="95483073"/>
                          <groupe ref="95483045"/>
                          <groupe ref="95483071"/>
                        </groupes>
                     </login>
                     <login login="107532">
                        <groupes>
                           <groupe ref="95483045"/>
                           <groupe ref="95483072"/>                           
                        </groupes>
                     </login>
                          <groupe>
                              <codeGT>95483072</codeGT>
                              <libGT>lib 72</libGT>
                           </groupe>
                           <groupe>
                              <codeGT>95483073</codeGT>
                              <libGT>lib 73</libGT>
                           </groupe>
                           <groupe>
                              <codeGT>95483045</codeGT>
                              <libGT>lib 45</libGT>
                           </groupe>
                           <groupe>
                              <codeGT>95483071</codeGT>
                              <libGT>lib 71</libGT>
                           </groupe>
Merci de votre aide.