Je poste pour dire que je n'ai toujours pas compris l'origine du problème, et je ne sais pas comment le résoudre proprement. J'ai renoncé aussi à changer le code Java, et j'ai donc opté pour une solution facile à mettre en œuvre. Comme je disais précédemment,

Envoyé par
adionne
Après avoir regardé plus en détail, il semblerait que WSDL2Java n'aime pas cumuler les <sequence>...</sequence> et les <attribute .../> dans un même type complexe, sauf quand il y a plusieurs <element .../> entre les balises <sequence> et </sequence>, puisqu'avec le type complexe MessagePattern, défini dans le même WSDL par :
1 2 3 4 5 6 7 8 9 10
|
<xsd:complexType name="MessagePattern">
<xsd:sequence>
<xsd:element name="messageFields" type="tns2:DataField" maxOccurs="unbounded" minOccurs="1" />
<xsd:element name="attachedFiles" type="tns2:DataField" maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="iD" type="xsd:string" use="required" />
<xsd:attribute name="languageCode" type="xsd:string" use="required" />
<xsd:attribute name="mediaCode" type="xsd:string" use="required" />
</xsd:complexType> |
je récupère bien une classe qui compte aussi bien mes listes de types DataField[] que mes attributs...
j'ai décidé d'ajouter un <element... /> dans mes sequence qui n'en comptaient qu'un, à savoir :
<xsd:element name="dummy" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
Ca marche, cette fois WSDL2Java génère bien les beans (avec du coup le tableau String[] dummy, naturellement, dont je ne me sers pas).
Mais bien évidemment, ce n'est pas une solution pleinement satisfaisante puisqu'elle ajoute quelque chose d'inutile, donc je ne mets pas ce sujet en [Résolu] puisque je pense intéressant si quelqu'un a une meilleure solution.
Partager