Je ne suis pas d'accord avec marc_s, qui a écrit :
un XSD décrit les aspects DATA, par ex. d'un webservice - le WSDL décrit les FONCTIONS des services web (appels de méthode). Vous ne pouvez généralement pas déterminer les appels de méthode à partir de vos données seules.
WSDL ne décrit pas les fonctions. WSDL définit une interface réseau, qui est elle-même composée de points d'extrémité qui reçoivent des messages et y répondent parfois. WSDL décrit les points d'extrémité, ainsi que les messages de demande et de réponse. Il est très orienté vers les messages.
Nous considérons souvent le WSDL comme un ensemble de fonctions, mais c'est parce que les outils de services Web génèrent généralement des mandataires côté client qui exposent les opérations WSDL comme des méthodes ou des appels de fonction. Or, le WSDL ne l'exige pas. Il s'agit d'un effet secondaire des outils.
EDIT : De même, dans le cas général, XSD ne définit pas les aspects liés aux données d'un service web. XSD définit les éléments qui peuvent être présents dans un document XML conforme. Un tel document peut être échangé sous la forme d'un message via un point de terminaison de service Web, mais ce n'est pas obligatoire.
Pour en revenir à la question, je répondrais à la question initiale de manière un peu différente. Je dirais OUI, c'est possible. pour générer un fichier WSDL à partir d'un fichier xsd, de la même manière qu'il est possible de générer une omelette à partir d'œufs.
EDIT : Ma réponse initiale n'a pas été claire. Permettez-moi de réessayer. Je ne suggère pas que le XSD est équivalent au WSDL, ni qu'un XSD est suffisant pour produire un WSDL. Je dis qu'il est possible pour générer un WSDL, à partir d'un fichier XSD si par cette phrase vous voulez dire "générer un WSDL en utilisant un fichier XSD". En procédant ainsi, vous augmenterez les informations contenues dans le fichier XSD pour générer le WSDL. Vous devrez définir des éléments supplémentaires - parties de message, opérations, types de port - dont aucun n'est présent dans le XSD. Mais il est possible de "générer un WSDL, à partir d'un XSD", en faisant preuve de créativité.
Si la phrase "générer un WSDL à partir d'un XSD" implique "transformer mécaniquement un XSD en WSDL", alors la réponse est NON, vous ne pouvez pas le faire. Cela devrait être clair étant donné ma description du WSDL ci-dessus.
Lorsque vous générez un WSDL à l'aide d'un fichier XSD, vous procédez généralement comme suit (notez les étapes créatives de cette procédure) :
- importer le schéma XML dans le WSDL (élément wsdl:types)
- ajouter à l'ensemble des types ou des éléments des types ou des éléments supplémentaires, ou des enveloppes (disons des tableaux, ou des structures contenant les types de base), comme on le souhaite. Le résultat des étapes 1 et 2 comprend tous les types que le WSDL utilisera.
- définir un ensemble de messages d'entrée et de sortie (et peut-être de fautes) en fonction des types définis précédemment.
- Définir un type de port, qui est la collection de paires de messages in.out. Vous pouvez considérer le type de port comme l'analogue WSDL d'une interface Java.
- Spécifier une liaison, qui met en œuvre le type de port et définit comment les messages seront sérialisés.
- Spécifier un service, qui met en œuvre la liaison.
La plupart du WSDL est plus ou moins un passe-partout. Il peut sembler intimidant, mais c'est surtout à cause de ces crochets d'angle effrayants et abondants, j'ai découvert.
Certains ont suggéré qu'il s'agit d'un processus manuel long et fastidieux. Peut-être. Mais c'est ainsi que l'on peut construire des services interopérables. Vous pouvez également utiliser des outils pour définir le WSDL. La génération dynamique de WSDL à partir du code entraînera des pièges d'interopérabilité.
0 votes
Cela pourrait aider : Création de WSDL à l'aide de XSD dans Eclipse helloworldpoc.wordpress.com/web-services/92-2
0 votes
Avez-vous créé le WSDL à partir du XSD ?