Svp aider moi ....wsdl

Résolu
d12ahm Messages postés 15 Statut Membre -  
Ronieee Messages postés 75 Statut Membre -
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 34184 Statut Modérateur 7 888
 
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 15 Statut Membre
 
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
0
Ronieee Messages postés 75 Statut Membre
 
Pour ceux que ca intéresse en C++.
La librairie OpenSource WSDLPull se charge très bien de parser les Wsdl.
0