Svp aider moi ....wsdl

Résolu
d12ahm Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Ronieee Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -
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 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
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   Statut Membre Dernière intervention  
 
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
0
Ronieee Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   38
 
Pour ceux que ca intéresse en C++.
La librairie OpenSource WSDLPull se charge très bien de parser les Wsdl.
0