Was ist der Unterschied zwischen XSD und WSDL?

177

Was ist der Unterschied zwischen einem XML Schemaund WSDL?

Der Unterschied, den ich bemerkt habe, ist, dass WSDLenthält XSDund in können WSDLwir Operationen deklarieren, aber nicht in XSD. Ist das korrekt?

make
quelle

Antworten:

176

XSD definiert ein Schema, das definiert, wie ein XML-Dokument strukturiert werden kann. Sie können damit überprüfen, ob ein bestimmtes XML-Dokument gültig ist und den im Schema festgelegten Regeln entspricht.

WSDL ist ein XML-Dokument, das einen Webdienst beschreibt. Es zeigt, welche Operationen verfügbar sind und wie Daten strukturiert werden sollten, um an diese Operationen gesendet zu werden.

WSDL-Dokumenten ist eine XSD zugeordnet, die anzeigt, was für die Aufnahme in ein WSDL-Dokument gültig ist.

Paolo
quelle
15
Paolo Antwort ist richtig. Nur verbessern. Da WSDL tatsächlich XML ist und möglicherweise über XSD verfügt, um die Struktur zu überprüfen. Zugehörige XSD kann eine separate Datei sein und in WSDL importiert werden, oder vollständige XSD kann mithilfe des Tags <WSDL: types> inline in die WSDL-Datei eingebettet werden. Weitere Informationen finden Sie unter ibm.com/developerworks/webservices/library/ws-tip-imports
supernova
Wenn es sich um zwei verschiedene Dinge handelt, warum erhalte ich dann beim Erstellen eines Webdienstes, beispielsweise in Netbeans, ?xsd=1automatisch eine URL?
CodyBugstein
211

WSDL (Web Services Description Language) beschreibt Ihren Dienst und seine Vorgänge. Wie heißt der Dienst, welche Methoden bietet er an, welche Parameter und Rückgabewerte haben diese Methoden?

Es ist eine Beschreibung des Verhaltens des Dienstes - es ist Funktionalität.

XSD (Xml Schema Definition) beschreibt die statische Struktur der komplexen Datentypen, die von diesen Dienstmethoden ausgetauscht werden. Es beschreibt die Typen, ihre Felder, jede Einschränkung dieser Felder (wie maximale Länge oder ein Regex-Muster) und so weiter.

Es ist eine Beschreibung der Datentypen und damit der statischen Eigenschaften des Dienstes - es geht um Daten.

marc_s
quelle
25
Dies ist eine viel bessere Antwort, um XSD im Kontext einer WSDL zu erklären und nicht nur den Unterschied zwischen beiden. Außerdem sind XSD-Definitionen Teil der WSDL im Tag <wsdl: types>.
Airboss
Ich könnte also eine WSDL ohne XSD haben, wenn ich keine komplexe Datendefinition benötige?
Esseara
61

XSD: XML-Schemadefinition.

XML: eXtensible Markup Language.

WSDL: Web Service Definition Language.

Ich werde nicht in technischen Begriffen antworten. Ich ziele mit dieser Erklärung auf Anfänger ab.

Es ist nicht einfach, zwischen zwei verschiedenen Anwendungen zu kommunizieren, die mit zwei verschiedenen Technologien entwickelt wurden. Beispielsweise könnte ein Unternehmen in Chicago eine Webanwendung mit Java entwickeln, und ein anderes Unternehmen in New York könnte eine Anwendung in C # entwickeln. Wenn diese beiden Unternehmen beschließen, Informationen auszutauschen, wird XML angezeigt. Es hilft beim Speichern und Transportieren von Daten zwischen zwei verschiedenen Anwendungen, die mit unterschiedlichen Technologien entwickelt wurden. Hinweis: Es ist nicht auf eine Programmiersprache beschränkt. Informieren Sie sich über den Informationstransport zwischen zwei verschiedenen Apps.

XSD ist eine Schemadefinition. Damit meine ich, dass Benutzer aufgefordert werden, ihr XML in einem solchen Schema zu entwickeln. Bitte sehen Sie sich die folgenden Bilder an und beobachten Sie das Element "Load-on-Startup" und seinen Typ, der eine Ganzzahl ist. Im XSD-Image sehen Sie, dass es sich um einen ganzzahligen Wert für das "Laden beim Start" handelt. Wenn der Benutzer sein XML erstellt hat, hat er diesem bestimmten Element einen int-Wert übergeben. Zur Erinnerung: XSD ist ein Schema und ein Stil, während XML ein Formular für die Kommunikation mit einer anderen Anwendung oder einem anderen System ist. Man muss XSD sehen und XML so erstellen, sonst kommuniziert es nicht mit einer anderen Anwendung oder einem anderen System, das mit einer anderen Technologie entwickelt wurde. Ein Unternehmen in Chicago stellt eine XSD-Vorlage für ein Unternehmen in Texas zur Verfügung, mit der XML im angegebenen XSD-Format geschrieben oder generiert werden kann. Wenn das Unternehmen in Texas die in XSD genannten Regeln oder Schemata nicht einhält, ist es unmöglich, vom Unternehmen in Chicago korrekte Informationen zu erwarten. Nach der oben genannten Geschichte gibt es so viel zu tun, was ein Amateur oder Neuling wissen muss, wenn er für etwas programmiert, wie ich es oben gesagt habe. Wenn Sie wirklich wissen möchten, was später passiert, sollten Sie sich mit erfahrenen Software-Ingenieuren zusammensetzen, die tatsächlich Webdienste entwickelt haben. Als nächstes kommt WSDL. Bitte folgen Sie den Bildern und versuchen Sie herauszufinden, wo die WSDL hineinpasst. Wenn Sie wirklich wissen möchten, was später passiert, sollten Sie sich mit erfahrenen Software-Ingenieuren zusammensetzen, die tatsächlich Webdienste entwickelt haben. Als nächstes kommt WSDL. Bitte folgen Sie den Bildern und versuchen Sie herauszufinden, wo die WSDL hineinpasst. Wenn Sie wirklich wissen möchten, was später passiert, sollten Sie sich mit erfahrenen Software-Ingenieuren zusammensetzen, die tatsächlich Webdienste entwickelt haben. Als nächstes kommt WSDL. Bitte folgen Sie den Bildern und versuchen Sie herauszufinden, wo die WSDL hineinpasst.

*************** ======== Unten ist ein teilweises XML-Bild ========== ************ ***. XML-Bild teilweise

*************** ======== Unten ist ein Teil des XSD-Bildes ========== ************ ***.

XSD-Bild teilweise

*************** ======== Unten ist das teilweise WSDL-Bild ======= *************

WSDL-Bild teilweise

Ich musste eine Beispiel-WSDL für einen Webdienst namens Book erstellen. Beachten Sie, dass es sich um eine XSD handelt, Sie müssen sie jedoch als WSDL (Web Service Definition Language) bezeichnen, da sie sehr spezifisch für Web Services ist. Die obige WSDL (oder mit anderen Worten XSD) wurde für eine Klasse namens Book.java erstellt und hat einen SOAP-Dienst erstellt. Wie der SOAP-Webdienst ihn erstellt hat, ist ein anderes Thema. Man muss eine Java-Klasse schreiben und vor der Ausführung als Webdienst erstellen muss der Benutzer sicherstellen, dass die Axis2-API installiert ist und der Tomcat-Host-Webdienst vorhanden ist.

Als Servicer (derjenige, der anderen (Clients) den Zugriff auf Informationen oder Daten von ihren Systemen ermöglicht) erhält der Client (derjenige, der Servicerinformationen oder -daten verwenden muss) tatsächlich vollständigen Zugriff auf Daten über einen Webdienst, da kein Unternehmen aktiv ist die Erde bereit, ihre Datenbank für Außenstehende zugänglich zu machen. Wie mein Unternehmen haben wir uns entschlossen, einige Informationen über Produkte über Web Services bereitzustellen. Daher mussten wir eine XSD-Vorlage erstellen und an einige unserer Kunden weitergeben, die mit uns zusammenarbeiten möchten. Sie müssen Code schreiben, um die angegebene XSD vollständig zu nutzen, und Webdienstaufrufe ausführen, um Daten vom Servicer abzurufen und zurückgegebene Daten in ihre entsprechenden Anforderungen zu konvertieren und dann Daten oder Informationen über das Produkt auf ihrer Website anzuzeigen oder zu veröffentlichen. Ein einfaches Beispiel wäre die Buchung von FLIGHT Tickets. Eine Fluggesellschaft lässt Dritte Flugdaten auf ihrer Website für den Ticketverkauf verwenden. Aber auch hier steckt noch viel mehr dahinter. Es ist einfach nicht möglich, dass ein Drittanbieter-Flugticket-Agent Tickets verkauft. Es wird Synchronisierung und Sicherheit geben. Wenn keine Synchronisierung erfolgt, besteht eine 100% ige Wahrscheinlichkeit, dass mehr als ein Kunde dasselbe Flugticket aus verschiedenen Quellen kauft.

Ich hoffe, dass Experten zu meiner Antwort beitragen werden. Für Anfänger oder Anfänger ist es sehr schwierig, XML, XSD zu verstehen und dann an Webdiensten zu arbeiten.

MKod
quelle
Zumindest gab es mir einen Hinweis darauf, wie diese Technologien funktionieren
MbaiMburu
10

XSD dient zur Validierung des Dokuments und enthält Metadaten zum XML, während WSDL den Speicherort und die Vorgänge des Webservices beschreibt.

Priyank Bolia
quelle
3

XSD (XML-Schemadefinition) definiert das Element in einem XML-Dokument. Es kann verwendet werden, um zu überprüfen, ob die Elemente im XML-Dokument der Beschreibung entsprechen, in der der Inhalt platziert werden soll. Während wsdl ein bestimmter Typ eines XML-Dokuments ist, das den Webdienst beschreibt. WSDL selbst haftet an einer XSD.

vivyzer
quelle
1

WSDL - Enthält die Operation wie Methoden, die ein Webservice bereitstellt. Diese Methode kann einfache Datentypen wie int, float usw. und komplexe Datentypen wie Objekte, Vektoren, Arrays usw. akzeptieren, sodass diese einem XML-Datentyp xsd zugeordnet werden gebraucht. und basierend auf dem xsd kann ein Benutzer, der von einer anderen Plattform aus auf den Webservice zugreifen möchte, die Daten entsprechend bereitstellen.

Unter: ayazroomy-java.blogspot.com finden Sie Informationen zu den Grundlagen des Webservices.

Ayaz
quelle
0

XSD ist ein Schema für die WSDL-Datei. XSD enthält Datentypen für WSDL. In XSD deklariertes Element kann in der WSDL-Datei verwendet werden. Wir können WSDL gegen XSD prüfen, um herauszufinden, ob der Webdienst WSDL gültig ist oder nicht.

Snehal Mehr
quelle
0

Wenn jemand nach einer Analogie sucht, kann diese Antwort hilfreich sein.

WSDL ist wie der Befehl 'SHOW TABLE STATUS' in MySQL. Es definiert alle Elemente (Anforderungstyp, Antworttyp, Format der URL, um die Anforderung zu treffen usw.), Die Teil von XML sein sollen. Mit Definition meine ich: 1) Namen der Anfrage oder Antwort 2) Was als Eingabe behandelt werden soll, was als Ausgabe behandelt werden soll.

XSD ist wie der Befehl DESCRIBE in MySQL. Es zeigt an, was alle Variablen und ihre Typen, eine Anfrage und eine Antwort enthalten.

Sunny Gangisetti
quelle
Wird DESC in MySQL nicht für die Sortierreihenfolge verwendet? BESCHREIBEN ist jedoch eher so.
Mangs