Récupérer et insérer des objet depuis et dans le XPath, Spring WS.
Bonjour,
J'ai suivi votre exemple pour developper un ws Spring un peu plus volumineu, et j'ai une question à vous poser.
voici mon fichier xsd :
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:test="http://www.mycompagny.com/schema/test"
targetNamespace="http://www.mycompagny.com/schema/test" elementFormDefault="qualified">
<xs:element name="IdentificationRequest" type="test:IdentificationRequestType"/>
<xs:element name="IdentificationResponse" type="test:IdentificationResponseType"/>
<xs:complexType name="IdentificationRequestType">
<xs:sequence>
<xs:element name="attr1" type="xs:ineteger"/>
<xs:element name="attr2" type="xs:ineteger"/>
<xs:element name="attr3" type="xs:string"/>
<xs:element name="attr4" type="xs:string"/>
<xs:element name="attr5" type="xs:string"/>
<xs:element name="attr6" type="xs:string"/>
<xs:element name="attr7" type="xs:date"/>
<xs:element name="attr8" type="xs:string"/>
<xs:element name="attr9" type="xs:string"/>
<xs:element name="attr10" type="xs:string"/>
<xs:element name="attr11" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdentificationResponseType">
<xs:sequence>
<xs:element name="Text" type="test:TextType"/>
<xs:element name="Auteur" type="test:AuteurType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TextType">
<xs:sequence>
<xs:element name="attr1" type="xs:integer"/>
<xs:element name="attr2" type="xs:ineteger"/>
<xs:element name="attr3" type="xs:string"/>
<xs:element name="attr4" type="xs:string"/>
<xs:element name="attr5" type="xs:string"/>
<xs:element name="attr6" type="xs:string"/>
<xs:element name="attr7" type="xs:string"/>
<xs:element name="attr8" type="xs:string"/>
<xs:element name="attr9" type="xs:string"/>
<xs:element name="attr11" type="xs:string"/>
<xs:element name="attr12" type="xs:string"/>
<xs:element name="attr13" type="xs:string"/>
<xs:element name="attr14" type="xs:string"/>
<xs:element name="attr15" type="xs:string"/>
<xs:element name="attr16" type="xs:string"/>
<xs:element name="attr17" type="xs:string"/>
<xs:element name="attr18" type="xs:string"/>
<xs:element name="attr19" type="xs:integer"/>
<xs:element name="attr20" type="xs:string"/>
<xs:element name="attr21" type="xs:string"/>
<xs:element name="attr22" type="xs:string"/>
<xs:element name="attr23" type="xs:string"/>
<xs:element name="attr24" type="xs:string"/>
<xs:element name="attr25" type="xs:string"/>
<xs:element name="attr26" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AuteurType" maxOccurs="15">
<xs:sequence>
<xs:element name="attr1" type="xs:string"/>
<xs:element name="attr2" type="xs:string"/>
<xs:element name="attr3" type="xs:string"/>
<xs:element name="attr4" type="xs:date"/>
<xs:element name="attr5" type="xs:string"/>
<xs:element name="attr6" type="xs:string"/>
<xs:element name="attr7" type="xs:string"/>
<xs:element name="attr8" type="xs:string"/>
<xs:element name="attr9" type="xs:string"/>
<xs:element name="attr10" type="xs:string"/>
<xs:element name="attr11" type="xs:string"/>
<xs:element name="attr12" type="xs:string"/>
<xs:element name="attr13" type="xs:string"/>
<xs:element name="attr14" type="xs:string"/>
<xs:element name="attr15" type="xs:string"/>
<xs:element name="attr16" type="xs:string"/>
<xs:element name="attr17" type="xs:string"/>
<xs:element name="attr18" type="xs:integer"/>
<xs:element name="attr19" type="xs:string"/>
<xs:element name="attr20" type="xs:string"/>
<xs:element name="attr21" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema> |
est ce possible lors de la récupération des données depuis le XPath on peut récupérer un objet Toto par exemple si on considère que les élements de IdentificationRequest ne sont que les attributs de cet objet Toto.
également lors de la création de la réponse est ce possible au lieu d'injecter élement par élement à l'élement root comme vous le fait dans votre exemple :
Code:
1 2 3 4 5 6
|
Element root = new Element("TraductionResponse", namespace);
Element auteur = new Element("auteur", namespace);
auteur.setText(traduction.getAuteur());
//puis
root.addContent(auteur); |
est ce possible de faire :
Code:
1 2 3 4 5 6
|
/*supposons que l'objet de retour de la méthode traduitText, est un objet complexe composé à la fois d'un objet text et d'une liste de 15 auteurs par exemple comme le monte le code suivant :*/
Traduction traduction = traductionService.traduitTexte(langueOrigine, langueDestination, texteOriginal);
Text text = (Text) traduction.getText();
List<Auteur> auteurs = (List<Auteur>) traduction.getListAuteurs; |
ensuite :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Element root = new Element("TraductionResponse", namespace);
Element text= new Element("Text", namespace);
text.setAttributes("text");
Element auteur= new Element("Auteur", namespace);
auteur.setAttributes("auteur");
//Ensuite
root.addContent(text);
root.addCotent(auteur)
//Sachant que text est un objet maitenant complexe, et n'est pas un simple //text!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
est ce possible également de faire ceci :
Code:
1 2 3 4 5
|
//auteurs est une liste des auteurs;
Element auteurs= new Element("List<Auteur>", namespace);
auteurs.setAttributes("auteurs");
root.addContent(auteurs);// ça m'étonne! que cela peut se faire comme ça!! |
ou plutôt, je dois setter chaque attribut de chaque objet de la manière dont vous le faite dans l'exemple :
Code:
1 2 3 4
|
text.setAttribute(attr1, traduction.getText().getAttr1);
//ensuite faire :
root.addContent(text |
Merci d'appuiyer votre réponse par des portions de code.
Une deuxième question on me demande, l'url, le service, et la méthode (soient disant des élements techniques de la WS), je connais l'url, mais je ne sais pas à quoi correspondent les deux autres?
Pourriez vs me les indiquer svp.
Je vous remercie d'avance.
Récupérer et insérer des objet depuis et dans le XPath, Spring WS.
Bonjour,
J'ai suivi votre exemple pour developper un ws Spring un peu plus volumineu, et j'ai une question à vous poser.
voici mon fichier xsd :
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:test="http://www.mycompagny.com/schema/test"
targetNamespace="http://www.mycompagny.com/schema/test" elementFormDefault="qualified">
<xs:element name="IdentificationRequest" type="test:IdentificationRequestType"/>
<xs:element name="IdentificationResponse" type="test:IdentificationResponseType"/>
<xs:complexType name="IdentificationRequestType">
<xs:sequence>
<xs:element name="attr1" type="xs:ineteger"/>
<xs:element name="attr2" type="xs:ineteger"/>
<xs:element name="attr3" type="xs:string"/>
<xs:element name="attr4" type="xs:string"/>
<xs:element name="attr5" type="xs:string"/>
<xs:element name="attr6" type="xs:string"/>
<xs:element name="attr7" type="xs:date"/>
<xs:element name="attr8" type="xs:string"/>
<xs:element name="attr9" type="xs:string"/>
<xs:element name="attr10" type="xs:string"/>
<xs:element name="attr11" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdentificationResponseType">
<xs:sequence>
<xs:element name="Text" type="test:TextType"/>
<xs:element name="Auteur" type="test:AuteurType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TextType">
<xs:sequence>
<xs:element name="attr1" type="xs:integer"/>
<xs:element name="attr2" type="xs:ineteger"/>
<xs:element name="attr3" type="xs:string"/>
<xs:element name="attr4" type="xs:string"/>
<xs:element name="attr5" type="xs:string"/>
<xs:element name="attr6" type="xs:string"/>
<xs:element name="attr7" type="xs:string"/>
<xs:element name="attr8" type="xs:string"/>
<xs:element name="attr9" type="xs:string"/>
<xs:element name="attr11" type="xs:string"/>
<xs:element name="attr12" type="xs:string"/>
<xs:element name="attr13" type="xs:string"/>
<xs:element name="attr14" type="xs:string"/>
<xs:element name="attr15" type="xs:string"/>
<xs:element name="attr16" type="xs:string"/>
<xs:element name="attr17" type="xs:string"/>
<xs:element name="attr18" type="xs:string"/>
<xs:element name="attr19" type="xs:integer"/>
<xs:element name="attr20" type="xs:string"/>
<xs:element name="attr21" type="xs:string"/>
<xs:element name="attr22" type="xs:string"/>
<xs:element name="attr23" type="xs:string"/>
<xs:element name="attr24" type="xs:string"/>
<xs:element name="attr25" type="xs:string"/>
<xs:element name="attr26" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AuteurType" maxOccurs="15">
<xs:sequence>
<xs:element name="attr1" type="xs:string"/>
<xs:element name="attr2" type="xs:string"/>
<xs:element name="attr3" type="xs:string"/>
<xs:element name="attr4" type="xs:date"/>
<xs:element name="attr5" type="xs:string"/>
<xs:element name="attr6" type="xs:string"/>
<xs:element name="attr7" type="xs:string"/>
<xs:element name="attr8" type="xs:string"/>
<xs:element name="attr9" type="xs:string"/>
<xs:element name="attr10" type="xs:string"/>
<xs:element name="attr11" type="xs:string"/>
<xs:element name="attr12" type="xs:string"/>
<xs:element name="attr13" type="xs:string"/>
<xs:element name="attr14" type="xs:string"/>
<xs:element name="attr15" type="xs:string"/>
<xs:element name="attr16" type="xs:string"/>
<xs:element name="attr17" type="xs:string"/>
<xs:element name="attr18" type="xs:integer"/>
<xs:element name="attr19" type="xs:string"/>
<xs:element name="attr20" type="xs:string"/>
<xs:element name="attr21" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema> |
est ce possible lors de la récupération des données depuis le XPath on peut récupérer un objet Toto par exemple si on considère que les élements de IdentificationRequest ne sont que les attributs de cet objet Toto.
également lors de la création de la réponse est ce possible au lieu d'injecter élement par élement à l'élement root comme vous le fait dans votre exemple :
Code:
1 2 3 4 5 6
|
Element root = new Element("TraductionResponse", namespace);
Element auteur = new Element("auteur", namespace);
auteur.setText(traduction.getAuteur());
//puis
root.addContent(auteur); |
est ce possible de faire :
Code:
1 2 3 4 5 6
|
/*supposons que l'objet de retour de la méthode traduitText, est un objet complexe composé à la fois d'un objet text et d'une liste de 15 auteurs par exemple comme le monte le code suivant :*/
Traduction traduction = traductionService.traduitTexte(langueOrigine, langueDestination, texteOriginal);
Text text = (Text) traduction.getText();
List<Auteur> auteurs = (List<Auteur>) traduction.getListAuteurs; |
ensuite :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Element root = new Element("TraductionResponse", namespace);
Element text= new Element("Text", namespace);
text.setAttributes("text");
Element auteur= new Element("Auteur", namespace);
auteur.setAttributes("auteur");
//Ensuite
root.addContent(text);
root.addCotent(auteur)
//Sachant que text est un objet maitenant complexe, et n'est pas un simple //text!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
est ce possible également de faire ceci :
Code:
1 2 3 4 5
|
//auteurs est une liste des auteurs;
Element auteurs= new Element("List<Auteur>", namespace);
auteurs.setAttributes("auteurs");
root.addContent(auteurs);// ça m'étonne! que cela peut se faire comme ça!! |
ou plutôt, je dois setter chaque attribut de chaque objet de la manière dont vous le faite dans l'exemple :
Code:
1 2 3 4
|
text.setAttribute(attr1, traduction.getText().getAttr1);
//ensuite faire :
root.addContent(text |
Merci d'appuiyer votre réponse par des portions de code.
Une deuxième question on me demande, l'url, le service, et la méthode (soient disant des élements techniques de la WS), je connais l'url, mais je ne sais pas à quoi correspondent les deux autres?
Pourriez vs me les indiquer svp.
Je vous remercie d'avance.