logo       

Créer un WSDL sans import à partir d'un WSDL avec import: msg#00177

text.xml.french.tech

Subject: Créer un WSDL sans import à partir d'un WSDL avec import

Bonjour,
D'abord, je ne connait pas très bien les normes XML, mais je connais un peu le
SGML et les DTD (disons la base de création des dtds).
Mon problème est que le logiciel de developpement que j'utilise (qui se targue
d'implementer les services SOAP) n'arrive pas à gérér les élements import (voir
ci-dessous les suggestions des services clients).

Pouvez-vous m'aider à consolider dans un seul fichiers wsdl tous les fichiers
indiquer par les élements import. Ou, est-ce n'est pas faisable.
J'ai essayé avec XML spy 2005 entreprise mais je n'y arrive pas.

Merci
Njara

>>>>>>>>>>>>>>>>>>>>>>> Copie des correspondances avec le support technique
Bonjour,
Suite à votre contact avec le Support Technique Gratuit concernant
l'importation d'un Service Web (ref contact 41 627) :


Une étude du fichier "SessionCreateRQ.wsdl" a été faite par notre équipe
Développement et notre équipe Qualité. Il contient des balises de type <import>
qui ne sont pas actuellement prises en compte par l'importation proposée par
Notre Logiciel. Une suggestion en ce sens a donc été enregistrée pour les
prochaines évolutions.


Dans l'immédiat, il est possible d'effectuer tout de même la création des
procédures d'appel de votre Service Web, en créant un fichier "WSDL" complet.


Dans votre cas de figure, le fichier "WSDL" commence de la façon suivante :


8<---------- Début extrait "SessionCreateRQ.wsdl" -----------------
<definitions xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/
xmlns:xs=http://www.w3.org/2001/XMLSchema
xmlns:xsd1=http://www.opentravel.org/OTA/2002/11
xmlns:xsd2=http://www.opentravel.org/OTA/2002/11
xmlns:xsd3=http://www.opentravel.org/OTA/2002/08
xmlns:tns=https://webservices.sabre.com/websvc
xmlns:eb=http://www.ebxml.org/namespaces/messageHeader
xmlns=http://schemas.xmlsoap.org/wsdl/
targetNamespace=https://webservices.sabre.com/websvc
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext";>

<import namespace="http://www.opentravel.org/OTA/2002/11";
location="SessionCreateRQRS.xsd"/>
<import namespace="http://www.ebxml.org/namespaces/messageHeader";
location="msg-header-2_0.xsd"/> ..

8<---------- Fin extrait "SessionCreateRQ.wsdl" -----------------
Remarquez la balise <import
namespace="http://www.ebxml.org/namespaces/messageHeader";
location="msg-header-2_0.xsd"/>
Il faut charger le fichier "msg-header-2_0.xsd" indiqué dans cette balise, il
se trouve à la même adresse que le fichier "WSDL" d'origine :
http://webservices.sabre.com/wsdl/sabreXML1.0.00/res/msg-header-2_0.xsd.


Voici un extrait du fichier ainsi obtenu :

8<---------- Début "extrait msg-header-2_0.xsd" ----------------- <?xml
version="1.0" encoding="UTF-8" ?>
- <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by David Hall
(Sabre Incorporated) -->

- <!-- Some parsers may require explicit declaration of
'xmlns:xml="http://www.w3.org/XML/1998/namespace";'.
In that case, a copy of this schema augmented with the above declaration
should be cached and used
for the purpose of schema validation on ebXML messages. -->

- <schema targetNamespace="http://www.ebxml.org/namespaces/messageHeader";
xmlns:tns="http://www.ebxml.org/namespaces/messageHeader";
xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
xmlns:xlink="http://www.w3.org/1999/xlink";
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified"
attributeFormDefault="qualified" version="2.0c">
<import namespace="http://www.w3.org/2000/09/xmldsig#";
schemaLocation="xmldsig-core-schema.xsd" />
<import namespace="http://www.w3.org/1999/xlink"; schemaLocation="xlink.xsd" />
<import namespace="http://schemas.xmlsoap.org/soap/envelope/";
schemaLocation="envelope.xsd" />
<import namespace="http://www.w3.org/XML/1998/namespace";
schemaLocation="xml.xsd" />

- <!-- MANIFEST, for use in soap:Body element -->

<element name="Manifest">
<complexType>
<sequence>
<element ref="tns:Reference" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded" />
</sequence>
<attributeGroup ref="tns:bodyExtension.grp" />
</complexType>
</element>

8<---------- Fin "extrait msg-header-2_0.xsd" -----------------



Il insérer ce fichier dans le premier :
1. remplacer la balise <import> du premier fichier par la balise <schema> du
second,
2- attention, dans le cas de plusieurs import, il ne faut pas mettre plusieurs
balise <schema> car on ne gère que la première : il faut donc concaténer les
contenus de toutes les balises <schema>

Cette technique doit vous permettre de recréer un fichier "WSDL" complet. Ce
fichier "WSDL" devra être donné à la fonction d'importation pour obtenir la
création d'une collection de procédures d'appels.

Il est nécessaire d'effectuer cette manipulation pour chaque balise <import>
pour constituer une fichier "WSDL" complet contenant tous les éléments à
importer.2






<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise