qual è la differenza tra XSD e WSDL


178

Qual'è la differenza tra an XML Schemae WSDL?

La differenza che ho notato è che WSDLcontiene XSDe in WSDLpossiamo dichiarare operazioni, ma non in XSD. È corretto?

Risposte:


177

XSD definisce uno schema che è una definizione di come può essere strutturato un documento XML. Puoi usarlo per verificare che un determinato documento XML sia valido e segua le regole che hai disposto nello schema.

WSDL è un documento XML che descrive un servizio Web. Mostra le operazioni disponibili e come strutturare i dati da inviare a tali operazioni.

I documenti WSDL hanno un XSD associato che mostra ciò che è valido per essere inserito in un documento WSDL.


15
La risposta di Paolo è corretta. Lo sto solo migliorando. Poiché WSDL è in realtà XML e potrebbe avere o meno XSD per convalidare la sua struttura. XSD associato può essere un file separato e importato in WSDL o XSD completo può essere incorporato in linea nel file WSDL stesso usando il tag <WSDL: types>. Per maggiori dettagli ibm.com/developerworks/webservices/library/ws-tip-imports
supernova

Se sono praticamente due cose separate, perché quando creo un servizio Web, ad esempio in Netbeans, ottengo automaticamente un ?xsd=1URL nell'URL?
CodyBugstein,

212

WSDL (Web Services Description Language) descrive il tuo servizio e le sue operazioni: come viene chiamato il servizio, quali metodi offre, che tipo di parametri e valori di ritorno hanno questi metodi?

È una descrizione del comportamento del servizio - è funzionalità.

XSD (Xml Schema Definition) descrive la struttura statica dei tipi di dati complessi scambiati da tali metodi di servizio. Descrive i tipi, i loro campi, qualsiasi restrizione su quei campi (come la lunghezza massima o un modello regex) e così via.

È una descrizione dei tipi di dati e quindi delle proprietà statiche del servizio - riguarda i dati.


25
Questa è una risposta molto migliore che spiega XSD nel contesto di un WSDL e non solo la differenza tra i due. Per aggiungere, le definizioni XSD fanno parte di WSDL nel tag <wsdl: types>.
airboss,

Quindi potrei avere un WSDL senza un XSD se non avessi bisogno di una definizione dei dati complessa?
Esseara,

61

XSD: definizione schema XML.

XML: eXtensible Markup Language.

WSDL: linguaggio di definizione del servizio Web.

Non ho intenzione di rispondere in termini tecnici. Miro questa spiegazione ai principianti.

Non è facile comunicare tra due diverse applicazioni sviluppate utilizzando due diverse tecnologie. Ad esempio, una società di Chicago potrebbe sviluppare un'applicazione Web utilizzando Java e un'altra società di New York potrebbe sviluppare un'applicazione in C # e quando queste due società decidono di condividere informazioni, viene visualizzato XML. Aiuta a archiviare e trasportare dati tra due diverse applicazioni sviluppate utilizzando tecnologie diverse. Nota: non è limitato a un linguaggio di programmazione, si prega di fare ricerche sul trasporto di informazioni tra due diverse app.

XSD è una definizione di schema. Con ciò voglio dire, è dire agli utenti di sviluppare il loro XML in un tale schema. Vedere le immagini seguenti e osservare attentamente l'elemento "load-on-startup" e il suo tipo che è intero. Nell'immagine XSD puoi vedere che è inteso come valore intero per il "caricamento all'avvio" e quindi quando l'utente ha creato il suo XML ha passato un valore int a quel particolare elemento. Come promemoria, XSD è uno schema e uno stile, mentre XML è un modulo per comunicare con un'altra applicazione o sistema. Uno deve vedere XSD e creare XML in modo tale altrimenti non comunica con un'altra applicazione o sistema che è stato sviluppato con una tecnologia diversa. Una società di Chicago fornisce un modello XSD per una società del Texas per scrivere o generare il proprio XML nel formato XSD specificato. Se la società in Texas non ha rispettato le regole o lo schema menzionati in XSD, è impossibile aspettarsi informazioni corrette dalla società di Chicago. C'è così tanto da fare dopo la storia di cui sopra, che un dilettante o un neofita deve sapere mentre codifica per qualcosa come ho detto sopra. Se vuoi davvero sapere cosa succede dopo, allora è meglio sedersi con ingegneri del software senior che hanno effettivamente sviluppato servizi web. Poi arriva WSDL, segui le immagini e prova a capire dove si inserirà il WSDL. Se vuoi davvero sapere cosa succede dopo, allora è meglio sedersi con ingegneri del software senior che hanno effettivamente sviluppato servizi web. Poi arriva WSDL, segui le immagini e prova a capire dove si inserirà il WSDL. Se vuoi davvero sapere cosa succede dopo, allora è meglio sedersi con ingegneri del software senior che hanno effettivamente sviluppato servizi web. Poi arriva WSDL, segui le immagini e prova a capire dove si inserirà il WSDL.

*************** ======== Di seguito è riportata l'immagine XML parziale ========== ************ *** Immagine XML parziale

*************** ======== Di seguito è riportata l'immagine XSD parziale ========== ************ ***

Immagine XSD parziale

*************** ======== Di seguito è riportata l'immagine WSDL parziale ======= *************

Immagine WSDL parziale

Ho dovuto creare un WSDL di esempio per un servizio Web chiamato Book. Nota, è un XSD ma devi chiamarlo WSDL (Web Service Definition Language) perché è molto specifico per i servizi Web. Il precedente WSDL (o in altre parole XSD) è stato creato per una classe chiamata Book.java e ha creato un servizio SOAP. Come il servizio web SOAP lo ha creato è un argomento diverso. È necessario scrivere una classe Java e prima di eseguirla creare come servizio Web l'utente deve assicurarsi che l'API Axis2 sia installata e Tomcat per ospitare il servizio Web sia attivo.

In qualità di servicer (colui che consente ad altri (clienti) di accedere a informazioni o dati dai propri sistemi) in realtà offre al client (colui che deve utilizzare informazioni o dati del servicer) un accesso completo ai dati tramite un servizio Web, perché nessuna società attiva la terra che desidera esporre il proprio database per gli estranei. Come la mia azienda, abbiamo deciso di fornire alcune informazioni sui prodotti tramite i servizi Web, quindi abbiamo dovuto creare un modello XSD e trasmetterlo a pochi dei nostri clienti che desiderano lavorare con noi. Devono scrivere del codice per utilizzare in modo completo l'XSD specificato ed effettuare chiamate al servizio Web per recuperare i dati dal server di servizio e convertire i dati restituiti nel loro requisito adeguato e quindi visualizzare o pubblicare dati o informazioni sul prodotto sul loro sito Web. Un semplice esempio potrebbe essere la prenotazione del biglietto FLIGHT. Una compagnia aerea consentirà a terzi di utilizzare i dati di volo sul proprio sito per la vendita dei biglietti. Ma ancora una volta c'è molto di più, non sta semplicemente permettendo all'agente di biglietti di volo di terze parti di vendere biglietti, ci saranno sincronizzazione e sicurezza sul posto. Se non c'è sincronizzazione, c'è il 100% di probabilità che più di un cliente possa acquistare lo stesso biglietto aereo da varie fonti.

Spero che gli esperti contribuiranno alla mia risposta. È davvero difficile per i principianti o i principianti comprendere XML, XSD e quindi lavorare sui servizi Web.


almeno mi ha dato un indizio su come funzionano queste tecnologie
MbaiMburu,

10

XSD deve convalidare il documento e contiene metadati sull'XML, mentre WSDL deve descrivere la posizione e le operazioni del servizio web.


3

XSD (definizione dello schema XML) definisce l'elemento in un documento XML. Può essere utilizzato per verificare se gli elementi nel documento XML aderiscono alla descrizione in cui deve essere inserito il contenuto. Mentre wsdl è un tipo specifico di documento XML che descrive il servizio web. WSDL stesso aderisce a un XSD.


1

WSDL - Contiene operazioni come i metodi forniti da un servizio web e questi metodi possono accettare tipi di dati semplici come int, float ecc. E tipi di dati complessi come oggetti, vettori, array ecc. In modo da mappare questo su un tipo di dati XML Usato. e in base alla xsd, un utente che desidera accedere al servizio web da una piattaforma diversa può fornire i dati in modo appropriato.

Consultare: ayazroomy-java.blogspot.com per leggere le informazioni di base sul servizio web.


0

XSD è lo schema per il file WSDL. XSD contiene tipi di dati per WSDL. L'elemento dichiarato in XSD è valido per l'uso nel file WSDL. Possiamo verificare WSDL contro XSD per verificare che il servizio Web WSDL sia valido o meno.


0

Se qualcuno è alla ricerca di analogia, questa risposta potrebbe essere utile.

WSDL è come il comando 'SHOW TABLE STATUS' in mysql. Definisce tutti gli elementi (tipo di richiesta, tipo di risposta, formato dell'URL per rispondere alla richiesta, ecc.) Che dovrebbero far parte di XML. Per definizione intendo: 1) Nomi di richiesta o risposta 2) Cosa dovrebbe essere trattato come input, cosa dovrebbe essere trattato come output.

XSD è come il comando DESCRIBE in mysql. Indica cosa contengono tutte le variabili e i loro tipi, una richiesta e una risposta.


DESC in mysql non è usato per l'ordinamento? DESCRIVERE tuttavia è più simile.
Mangs
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.