quelle est la différence entre XSD et WSDL

182

Quelle est la différence entre un XML Schemaet WSDL?

La différence que j'ai remarquée est que WSDLcontient XSDet dans WSDLnous pouvons déclarer des opérations, mais pas dans XSD. Est-ce exact?

font
la source

Réponses:

179

XSD définit un schéma qui est une définition de la manière dont un document XML peut être structuré. Vous pouvez l'utiliser pour vérifier qu'un document XML donné est valide et respecte les règles que vous avez définies dans le schéma.

WSDL est un document XML qui décrit un service Web. Il montre quelles opérations sont disponibles et comment les données doivent être structurées pour être envoyées à ces opérations.

Les documents WSDL ont un XSD associé qui montre ce qui est valide à mettre dans un document WSDL.

Paolo
la source
15
La réponse de Paolo est correcte. Je l'ai juste amélioré. Comme WSDL est en fait XML et peut ou non avoir XSD pour valider sa structure. Le XSD associé peut être un fichier séparé et importé dans WSDL ou le XSD complet peut être incorporé en ligne dans le fichier WSDL lui-même à l'aide de la balise <WSDL: types> .Pour plus de détails, ibm.com/developerworks/webservices/library/ws-tip-imports
supernova
Si ce sont à peu près deux choses distinctes, pourquoi est-ce que lorsque je crée un service Web par exemple, dans Netbeans, j'obtiens ?xsd=1automatiquement un dans l'URL?
CodyBugstein
216

WSDL (Web Services Description Language) décrit votre service et ses opérations - comment s'appelle le service, quelles méthodes propose-t-il, quels types de paramètres in et de valeurs de retour ces méthodes ont-elles?

C'est une description du comportement du service - c'est sa fonctionnalité.

XSD (Xml Schema Definition) décrit la structure statique des types de données complexes échangés par ces méthodes de service. Il décrit les types, leurs champs, toute restriction sur ces champs (comme la longueur maximale ou un modèle d'expression régulière) et ainsi de suite.

C'est une description des types de données et donc des propriétés statiques du service - il s'agit de données.

marc_s
la source
26
C'est une bien meilleure réponse expliquant XSD dans le contexte d'un WSDL et pas seulement la différence entre les deux. Pour ajouter, les définitions XSD font partie de WSDL dans la balise <wsdl: types>.
airboss
Je pourrais donc avoir un WSDL sans XSD si je n'ai pas besoin de définition de données complexes?
esseara
63

XSD: définition de schéma XML.

XML: langage de balisage extensible.

WSDL: langage de définition de service Web.

Je ne vais pas répondre en termes techniques. Je vise cette explication aux débutants.

Il n'est pas facile de communiquer entre deux applications différentes qui sont développées à l'aide de deux technologies différentes. Par exemple, une entreprise à Chicago pourrait développer une application Web utilisant Java et une autre entreprise à New York pourrait développer une application en C # et lorsque ces deux entreprises ont décidé de partager des informations, XML entre en scène. Il permet de stocker et de transporter des données entre deux applications différentes développées à l'aide de technologies différentes. Remarque: il n'est pas limité à un langage de programmation, veuillez faire des recherches sur le transport des informations entre deux applications différentes.

XSD est une définition de schéma. Ce que je veux dire par là, c'est dire aux utilisateurs de développer leur XML dans un tel schéma. S'il vous plaît voir les images ci-dessous, et s'il vous plaît regarder attentivement avec l'élément "load-on-startup" et son type qui est entier. Dans l'image XSD, vous pouvez voir qu'il s'agit d'une valeur entière pour le "chargement au démarrage" et donc, lorsque l'utilisateur a créé son XML, il a passé une valeur int à cet élément particulier. Pour rappel, XSD est un schéma et un style alors que XML est un formulaire pour communiquer avec une autre application ou un autre système. Il faut voir XSD et créer du XML de telle manière, sinon il ne communiquera pas avec une autre application ou un système qui a été développé avec une technologie différente. Une entreprise de Chicago fournit un modèle XSD à une entreprise du Texas pour écrire ou générer son XML au format XSD donné. Si l'entreprise du Texas n'a pas respecté les règles ou le schéma mentionnés dans XSD, il est impossible d'attendre des informations correctes de la part de l'entreprise de Chicago. Il y a tellement de choses à faire après l'histoire dite ci-dessus, qu'un amateur ou un débutant doit savoir tout en codant pour quelque chose comme je l'ai dit ci-dessus. Si vous voulez vraiment savoir ce qui se passe plus tard, il est préférable de vous asseoir avec des ingénieurs logiciels expérimentés qui ont réellement développé des services Web. Ensuite vient WSDL, veuillez suivre les images et essayez de comprendre où le WSDL s'intégrera. Si vous voulez vraiment savoir ce qui se passe plus tard, il est préférable de vous asseoir avec des ingénieurs logiciels expérimentés qui ont réellement développé des services Web. Ensuite vient WSDL, veuillez suivre les images et essayez de comprendre où le WSDL s'intégrera. Si vous voulez vraiment savoir ce qui se passe plus tard, il est préférable de vous asseoir avec des ingénieurs logiciels expérimentés qui ont réellement développé des services Web. Ensuite vient WSDL, veuillez suivre les images et essayez de comprendre où le WSDL s'intégrera.

*************** ======== Ci-dessous une image XML partielle ========== ************ *** Image XML partielle

*************** ======== Ci-dessous une image XSD partielle ========== ************ ***

Image XSD partielle

*************** ======== Voici l'image WSDL partielle ======= *************

Image WSDL partielle

J'ai dû créer un exemple de WSDL pour un service Web appelé Book. Notez qu'il s'agit d'un XSD mais vous devez l'appeler WSDL (Web Service Definition Language) car il est très spécifique aux services Web. Le WSDL ci-dessus (ou en d'autres termes XSD) est créé pour une classe appelée Book.java et il a créé un service SOAP. La façon dont le service Web SOAP l'a créé est un sujet différent. Il faut écrire une classe Java et avant de l'exécuter, créer en tant que service Web, l'utilisateur doit s'assurer que l'API Axis2 est installée et que Tomcat pour héberger le service Web est en place.

En tant qu'agent de service (celui qui permet à d'autres (clients) d'accéder aux informations ou aux données de leurs systèmes) donne en fait au client (celui qui a besoin d'utiliser les informations ou les données de l'agent de service) un accès complet aux données via un service Web, car aucune entreprise sur la terre disposée à exposer sa base de données à des étrangers. Comme mon entreprise, a décidé de donner des informations sur les produits via les services Web, nous avons donc dû créer un modèle XSD et le transmettre à quelques-uns de nos clients qui souhaitent travailler avec nous. Ils doivent écrire du code pour utiliser pleinement le XSD donné et passer des appels au service Web pour récupérer les données du serveur et convertir les données renvoyées en leur exigence appropriée, puis afficher ou publier des données ou des informations sur le produit sur leur site Web. Un exemple simple serait la réservation de billets d'avion. Une compagnie aérienne autorisera des tiers à utiliser les données de vol sur leur site pour la vente de billets. Mais encore une fois, il y a beaucoup plus à faire, il ne s'agit simplement pas de laisser un agent de billetterie tiers vendre des billets, il y aura synchronisation et sécurité en place. S'il n'y a pas de synchronisation, il y a 100% de chances que plus d'un client achète le même billet d'avion auprès de différentes sources.

J'espère que les experts contribueront à ma réponse. Il est vraiment difficile pour les débutants ou les novices de comprendre XML, XSD et de travailler ensuite sur les services Web.

MKod
la source
au moins, cela m'a donné un aperçu du fonctionnement de ces technologies
MbaiMburu
11

XSD doit valider le document et contient des métadonnées sur le XML tandis que WSDL doit décrire l'emplacement et les opérations du service Web.

Priyank Bolia
la source
4

XSD (XML schema definition) définit l'élément dans un document XML. Il peut être utilisé pour vérifier si les éléments du document xml adhèrent à la description dans laquelle le contenu doit être placé. Alors que wsdl est un type spécifique de document XML qui décrit le service Web. WSDL lui-même adhère à un XSD.

Vivyzer
la source
2

WSDL - Il contient les opérations telles que les méthodes fournies par un service Web et ces méthodes peuvent accepter des types de données simples tels que int, float, etc. et des types de données complexes tels que des objets, des vecteurs, des tableaux, etc. utilisé. et sur la base du xsd, un utilisateur qui souhaite accéder au service Web à partir d'une plate-forme différente peut fournir les données de manière appropriée.

Référez-vous: ayazroomy-java.blogspot.com pour en savoir plus sur les bases du webservice.

ayaz
la source
1

Si quelqu'un cherche une analogie, cette réponse pourrait être utile.

WSDL est comme la commande «SHOW TABLE STATUS» dans mysql. Il définit tous les éléments (type de requête, type de réponse, format de l'URL pour accéder à la requête, etc.,) qui doivent faire partie de XML. Par définition, je veux dire: 1) Les noms de la demande ou de la réponse 2) Ce qui devrait être traité comme une entrée, ce qui devrait être traité comme une sortie.

XSD est comme la commande DESCRIBE dans mysql. Il indique ce que contiennent toutes les variables et leurs types, une demande et une réponse.

Sunny Gangisetti
la source
DESC dans mysql n'est-il pas utilisé pour l'ordre de tri? DESCRIBE cependant est plus comme ça.
Mangs
0

XSD est le schéma du fichier WSDL. XSD contient des types de données pour WSDL. L'élément déclaré dans XSD peut être utilisé dans le fichier WSDL. Nous pouvons vérifier WSDL par rapport à XSD pour vérifier que le service Web WSDL est valide ou non.

Snehal Plus
la source