[CXF] Réponse XML évitant les doublons
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:
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:
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:
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.