Svp aider moi ....wsdl

Résolu/Fermé
d12ahm
Messages postés
14
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
26 septembre 2009
- 16 sept. 2009 à 15:20
Ronieee
Messages postés
70
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
6 février 2013
- 31 mai 2011 à 15:43
Bonjour,

Je cherche à parser un fichier WSDL.
VOILA LE FICHIER:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="urn:fooBarMBServiceOPMRef"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:impl="urn:fooBarMBServiceOPMRef"
xmlns:intf="urn:fooBarMBServiceOPMRef"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sawsdl="http://www.w3.org/2007/01/sawsdl#"
xmlns:rosetta="http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/ontologies/rosetta.owl"
xmlns:types="urn:fooBarMBServiceOPMRef/types">

<wsdl:types>
<xsd:schema targetNamespace="urn:fooBarMBServiceOPMRef/types">
<xsd:element name="requestProcessorQuote" sawsdl:modelReference="rosetta#PurchaseOrderRequest" >

<xsd:complexType>
<xsd:sequence>
<xsd:element name="context" type="xsd:long"/>
<xsd:element name="content" type="types:PurchaseOrderRequest"/>
</xsd:sequence>
</xsd:complexType>

</xsd:element>
<xsd:element name="requestProcessorQuoteReturn" type="types:PurchaseOrderResponse" sawsdl:modelReference="rosetta#PurchaseOrderConfirmation"/>
<xsd:complexType name="PurchaseOrderRequest">
<xsd:sequence>
<xsd:element name="globalBusinessIdentifier" nillable="true" type="xsd:string" sawsdl:modelReference="rosetta#GlobalBusinessIdentifier"/>
<xsd:element name="globalProductIdentifier" nillable="true" type="xsd:string" sawsdl:modelReference="rosetta#GlobalProductIdentifier"/>
<xsd:element name="orderQuantity" type="xsd:int" sawsdl:modelReference="rosetta#OrderQuantity"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PurchaseOrderResponse">
<xsd:sequence>
<xsd:element name="globalProductIdentifier" nillable="true" type="xsd:string" sawsdl:modelReference="rosetta#GlobalProductIdentifier"/>
<xsd:element name="globalVendorIdentifier" nillable="true" type="xsd:string" sawsdl:modelReference="rosetta#GlobalBusinessIdentifier"/>
<xsd:element name="orderQuantity" type="xsd:int" sawsdl:modelReference="rosetta#OrderQuantity"/>
<xsd:element name="productCost" type="xsd:int" sawsdl:modelReference="rosetta#ProductCost"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>

<wsdl:message name="requestMotherBoardQuoteResponse">
<wsdl:part name="part1" element="types:PurchaseOrderResponse"/>
</wsdl:message>

<wsdl:message name="requestMotherBoardQuoteRequest">
<wsdl:part name="part1" element="types:requestProcessorQuote"/>
</wsdl:message>

<wsdl:portType name="fooBarMBServiceOPMRefPT">
<wsdl:operation name="requestMBOrder" parameterOrder="in0" sawsdl:modelReference="rosetta#RequestPurchaseOrder">
<wsdl:input message="impl:requestMotherBoardQuoteRequest" name="requestMotherBoardQuoteRequest"/>
<wsdl:output message="impl:requestMotherBoardQuoteResponse" name="requestMotherBoardQuoteResponse"/>
</wsdl:operation>
<wsdl:operation name="requestMBQuote" parameterOrder="in0" sawsdl:modelReference="rosetta#GetQuote">
<wsdl:input message="impl:requestMotherBoardQuoteRequest" name="requestMotherBoardQuoteRequest"/>
<wsdl:output message="impl:requestMotherBoardQuoteResponse" name="requestMotherBoardQuoteResponse"/>
</wsdl:operation>
</wsdl:portType>

<wsdl:binding name="fooBarMBServiceOPMRefSoapBinding" type="impl:fooBarMBServiceOPMRefPT">
<wsdlsoap:binding style="doc" transport="http://schemas.xmlsoap.org/soap/http/"/>
<wsdl:operation name="requestMBOrder">
<wsdlsoap:operation soapAction="requestMBOrder"/>
<wsdl:input name="requestMotherBoardQuoteRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="requestMotherBoardQuoteResponse">
</wsdl:output>
</wsdl:operation>


<wsdl:operation name="requestMBQuote">
<wsdlsoap:operation soapAction="requestMBQuote"/>
<wsdl:input name="requestMotherBoardQuoteRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="requestMotherBoardQuoteResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>

</wsdl:binding>

<wsdl:service name="fooBarMBServiceOPMRefService">
<wsdl:port binding="impl:fooBarMBServiceOPMRefSoapBinding" name="fooBarMBServiceOPMRefBindingName">
<wsdlsoap:address location="http://localhost:8081/axis2/services/fooBarMBServiceOPMRef"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

2 réponses

mamiemando
Messages postés
31324
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 août 2022
7 401
17 sept. 2009 à 01:22
Alors pour m'être frottée au problème il y a peu, je ne te cache pas que parser un fichier WSDL est très complexe car la sémantique XML et WSDL est particulièrement vaste. Si c'est vraiment ce que tu cherches à faire il vaut mieux utiliser un parseur XML DOM.

Mais normalement, selon le langage que tu utilises il est sensé exister des outils pour générer directement un client ou un serveur WSDL (notamment en C# et en java il me semble). Tu as également des outils bien pratique et open sources comme SoapUI qui pourraient t'aider (ce logiciel parse un fichier WSDL et génère automatiquement un jeu de requêtes WSDL pour interroger le Web service).

Bonne chance
1
d12ahm
Messages postés
14
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
26 septembre 2009

18 sept. 2009 à 15:56
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
0
Ronieee
Messages postés
70
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
6 février 2013
38
31 mai 2011 à 15:43
Pour ceux que ca intéresse en C++.
La librairie OpenSource WSDLPull se charge très bien de parser les Wsdl.
0