2009-12-12 7 views
2

J'ai fichier .xsd j'ai besoin de le convertir en wsdl, comment ferais-je? Et est cette conversion la bonne approche. J'ai des données de requête et de réponse dans le même fichier xsdComment convertir un fichier .xsd? Wsdl?

Répondre

4

Vous ne pouvez pas le faire si facilement. Habituellement, le xsd définit la structure (type) des messages d'entrée et de sortie. Le wsdl a utilisé la commande xsd pour définir les opérations qui seront exposées par le service. Un operation a généralement un nom et une paire de messages d'entrée et de sortie.

Je ne vois pas comment un outil pourrait "reconstruire" les opérations de seulement xsd seulement, sauf s'il utilise la convention de dénomination. Par exemple. messages requestDoIt et responseDoIt -> opération DoIt. Si le xsd contient déjà les opérations (ce qui serait inhabituel), cela pourrait bien se passer, mais cela ne semble pas être votre cas.

La création manuelle du fichier wsdl ne doit pas être trop longue.

<types> 
    <xsd:schema xmlns="..." targetNamespace="..."> 
     <xsd:import namespace="..." schemaLocation="MySchema.xsd"/> 
    </xsd:schema> 
</types> 
... 
<wsdl:portType name="..."> 
    <wsdl:operation name="doIt"> 
     <wsdl:input message="tns:requestDoIt"/> 
     <wsdl:output message="tns:responseDoIt"/> 
    </wsdl:operation> 
</wsdl:portType> 

Jetez un oeil à WSDL essentials pour obtenir la structure générale du wsdl.

Ou vous pouvez donner un essai à l'outil WSDL Generator (de http://www.theprogrammerfactory.com/) dont le but est apparemment de faciliter cette tâche. (Notez que je ne l'ai jamais utilisé). Une autre approche consisterait à générer des classes à partir de xsd, puis à les utiliser pour définir manuellement la classe de service (c'est la partie fastidieuse des types correspondants dans l'opération correspondante) puis à utiliser un autre outil pour transformer la classe de service retour dans un wsdl complet. Il existe différents outils disponibles pour convertir vers/depuis xsd et wsdl, pour Java ou C#: wsgen, wsimport, xsd.exe, wsdl.exe.

+0

Voir aussi http://stackoverflow.com/questions/920086/generating-a-wsdl-from-a-xsd-file – ewernli

+0

Essayé en utilisant le WSDL Generator de http: // www. theprogrammerfactory.com/ et il n'a pas créé un WSDL conforme à la XSD fournie. Par exemple, il n'est pas capable de créer correctement un élément de message car il ignore les paramètres d'entrée. – toc777

Questions connexes