Bonjour à toute la communauté.
Je suis spectateur de ce site et son forum depuis de nombreuses années.
Aujourd'hui je deviens acteur en demandant votre aide.
J'expose actuellement un WebService devant reposer sur la norme de JAX-WS.
Pour ce faire j'utilise donc les librairies JAXB (Peut être est-il possible d'en utiliser d'autres ?)
Mon problème est que je dois forcer la présence de paramètres en entrée de la méthode exposer.
Exemple :
Dans mon cas tout les éléments sont obligatoires.
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 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Internaute ", propOrder = { "civilite", "nom", "prenom", "eMail", }) public class Internaute { @XmlElement(required = true) private String civilite; @XmlElement(required = true) private String nom; @XmlElement(required = true) private String prenom; @XmlElement(required = true) private String eMail;
Cependant, une fois mon webservice exposé, la WSDL générée me donne le schéma suivant :
Mon problème est que après avoir consulter de nombreux forums et essayer de nombreuses solutions, je ne parviens toujours pas à forcer le minOccurs=1 dans l'élément du schéma.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <xs:sequence> <xs:element name="civilite" type="xs:string"/> <xs:element name="nom" type="xs:string"/> <xs:element name="prenom" type="xs:string"/> <xs:element name="eMail" type="xs:string"/> </xs:sequence>
Par défaut si je supprime l'annotation Java : @XmlElement(required = true)
J'obtient le schéma suivant :
J'ai aussi essayé avec les annotations suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <xs:sequence> <xs:element minOccurs="0" name="civilite" type="xs:string"/> <xs:element minOccurs="0" name="nom" type="xs:string"/> <xs:element minOccurs="0" name="prenom" type="xs:string"/> <xs:element minOccurs="0" name="eMail" type="xs:string"/> </xs:sequence>
@XmlElement(nillable = true, required = true)
@XmlElement(nillable = false, required = true)
Mais le schéma est identique au premier cité ci-dessus.
Ce que je voudrais obtenir devrais ressembler à ceci :
Sur certains forum on parle du fait que JAXB ne gère pas cette annotation au niveau du schéma mais uniquement au niveau de la documentation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <xs:sequence> <xs:element minOccurs="1" name="civilite" type="xs:string"/> <xs:element minOccurs="1" name="nom" type="xs:string"/> <xs:element minOccurs="1" name="prenom" type="xs:string"/> <xs:element minOccurs="1" name="eMail" type="xs:string"/> </xs:sequence>
Est-ce vrai ou bien y'a-t-il une solution que je n'ai pas trouvée ?
Merci d'avance à vous.
Partager