¿Cuál es la diferencia entre XSD y WSDL?

178

¿Cuál es la diferencia entre an XML Schemay WSDL?

La diferencia que noté es que WSDLcontiene XSDy WSDLpodemos declarar operaciones, pero no en XSD. ¿Es eso correcto?

hacen
fuente

Respuestas:

177

XSD define un esquema que es una definición de cómo se puede estructurar un documento XML. Puede usarlo para verificar que un documento XML dado sea válido y siga las reglas que ha establecido en el esquema.

WSDL es un documento XML que describe un servicio web. Muestra qué operaciones están disponibles y cómo se deben estructurar los datos para enviarlas a esas operaciones.

Los documentos WSDL tienen un XSD asociado que muestra lo que es válido para colocar en un documento WSDL.

Paolo
fuente
15
La respuesta de Paolo es correcta. Solo realzándolo. Como WSDL es en realidad XML y puede o no tener XSD para validar su estructura. XSD asociado puede ser un archivo separado e importado en WSDL o XSD completo puede integrarse en línea en el archivo WSDL usando la etiqueta <WSDL: types>. Para más detalles ibm.com/developerworks/webservices/library/ws-tip-imports
supernova
Si son más o menos dos cosas separadas, ¿por qué cuando creo un servicio web, por ejemplo, en Netbeans, obtengo un ?xsd=1en la URL automáticamente?
CodyBugstein
212

WSDL (lenguaje de descripción de servicios web) describe su servicio y sus operaciones: ¿cómo se llama el servicio, qué métodos ofrece, qué tipo de parámetros y valores de retorno tienen estos métodos?

Es una descripción del comportamiento del servicio: su funcionalidad.

XSD (Definición de esquema Xml) describe la estructura estática de los tipos de datos complejos que intercambian esos métodos de servicio. Describe los tipos, sus campos, cualquier restricción en esos campos (como longitud máxima o un patrón de expresiones regulares) y así sucesivamente.

Es una descripción de los tipos de datos y, por lo tanto, de las propiedades estáticas del servicio: se trata de datos.

marc_s
fuente
25
Esta es una respuesta mucho mejor que explica XSD en el contexto de un WSDL y no solo la diferencia entre los dos. Para agregar, las definiciones XSD son parte de WSDL en la etiqueta <wsdl: types>.
Airboss
Entonces, ¿podría tener un WSDL sin un XSD si no necesito una definición de datos compleja?
esseara
61

XSD: Definición del esquema XML.

XML: lenguaje de marcado extensible.

WSDL: lenguaje de definición de servicio web.

No voy a responder en términos técnicos. Estoy apuntando esta explicación a los principiantes.

No es fácil comunicarse entre dos aplicaciones diferentes que se desarrollan utilizando dos tecnologías diferentes. Por ejemplo, una compañía en Chicago podría desarrollar una aplicación web usando Java y otra compañía en Nueva York podría desarrollar una aplicación en C # y cuando estas dos compañías decidieron compartir información, XML aparece en la imagen. Ayuda a almacenar y transportar datos entre dos aplicaciones diferentes que se desarrollan utilizando diferentes tecnologías. Nota: No se limita a un lenguaje de programación, investigue sobre el transporte de información entre dos aplicaciones diferentes.

XSD es una definición de esquema. Con eso quiero decir que les está diciendo a los usuarios que desarrollen su XML en dicho esquema. Consulte las imágenes a continuación y observe atentamente el elemento "load-on-startup" y su tipo, que es entero. En la imagen XSD puede ver que está destinado a ser un valor entero para la "carga al inicio" y, por lo tanto, cuando el usuario creó su XML, pasó un valor int a ese elemento en particular. Como recordatorio, XSD es un esquema y un estilo, mientras que XML es una forma de comunicarse con otra aplicación o sistema. Uno tiene que ver XSD y crear XML de tal manera o de lo contrario no se comunicará con otra aplicación o sistema que se haya desarrollado con una tecnología diferente. Una empresa en Chicago proporciona una plantilla XSD para que una empresa en Texas escriba o genere su XML en el formato XSD dado. Si la compañía en Texas no cumplió con las reglas o esquemas mencionados en XSD, entonces es imposible esperar información correcta de la compañía en Chicago. Hay mucho que hacer después de la historia mencionada anteriormente, que un aficionado o un novato deben saber mientras codifican algo como lo que dije anteriormente. Si realmente quiere saber qué sucede más tarde, es mejor sentarse con ingenieros de software senior que realmente desarrollaron servicios web. Luego viene WSDL, siga las imágenes e intente averiguar dónde encajará WSDL. Si realmente quiere saber qué sucede más tarde, es mejor sentarse con ingenieros de software senior que realmente desarrollaron servicios web. Luego viene WSDL, siga las imágenes e intente averiguar dónde encajará WSDL. Si realmente quiere saber qué sucede más tarde, es mejor sentarse con ingenieros de software senior que realmente desarrollaron servicios web. Luego viene WSDL, siga las imágenes e intente averiguar dónde encajará WSDL.

*************** ======== A continuación se muestra una imagen XML parcial ========== ************ *** Imagen XML parcial

*************** ======== A continuación se muestra una imagen parcial de XSD ========== ************ ***

Imagen XSD parcial

*************** ======== A continuación se muestra la imagen WSDL parcial ======= *************

Imagen WSDL parcial

Tuve que crear un WSDL de muestra para un servicio web llamado Libro. Tenga en cuenta que es un XSD pero debe llamarlo WSDL (lenguaje de definición de servicio web) porque es muy específico para los servicios web. El WSDL anterior (o en otras palabras, XSD) se crea para una clase llamada Book.java y ha creado un servicio SOAP. Cómo lo creó el servicio web SOAP es un tema diferente. Uno tiene que escribir una clase Java y antes de ejecutarla crear como un servicio web, el usuario debe asegurarse de que la API Axis2 esté instalada y que Tomcat aloje el servicio web.

Como administrador (el que permite que otros (clientes) accedan a información o datos de sus sistemas) en realidad le da al cliente (el que necesita usar información o datos del administrador) acceso completo a los datos a través de un Servicio Web, porque ninguna empresa la tierra dispuesta a exponer su base de datos para los extraños. Al igual que mi empresa, decidió proporcionar información sobre los productos a través de los servicios web, por lo tanto, tuvimos que crear una plantilla XSD y transmitirla a algunos de nuestros clientes que desean trabajar con nosotros. Tienen que escribir algún código para hacer un uso completo del XSD dado y hacer llamadas al servicio web para obtener datos del administrador y convertir los datos devueltos en sus requisitos adecuados y luego mostrar o publicar datos o información sobre el producto en su sitio web. Un ejemplo simple sería la reserva de Boletos de VUELO. Una aerolínea permitirá que terceros utilicen datos de vuelos en su sitio para la venta de boletos. Pero nuevamente, hay mucho más, simplemente no está permitiendo que un agente de boletos de vuelo de terceros venda boletos, habrá sincronización y seguridad en su lugar. Si no hay sincronización, hay un 100% de posibilidades de que más de 1 cliente pueda comprar el mismo boleto de avión de varias fuentes.

Espero que los expertos contribuyan a mi respuesta. Es muy difícil para los novatos o novatos comprender XML, XSD y luego trabajar en los servicios web.

MKod
fuente
al menos me dio una pista de cómo funcionan estas tecnologías
MbaiMburu
10

XSD es para validar el documento y contiene metadatos sobre el XML, mientras que WSDL es para describir la ubicación y las operaciones del servicio web.

Priyank Bolia
fuente
3

XSD (definición de esquema XML) define el elemento en un documento XML. Se puede utilizar para verificar si los elementos en el documento xml se adhieren a la descripción en la que se colocará el contenido. Mientras que wsdl es un tipo específico de documento XML que describe el servicio web. WSDL se adhiere a un XSD.

vivyzer
fuente
1

WSDL: contiene la operación, como los métodos que proporciona un servicio web, y este método puede aceptar tipos de datos simples como int, float, etc. y tipos de datos complejos como objetos, vectores, matrices, etc. usado. y basado en el xsd, un usuario que quiera acceder al servicio web desde una plataforma diferente puede proporcionar los datos de manera adecuada.

Consulte: ayazroomy-java.blogspot.com para leer sobre conceptos básicos del servicio web

ayaz
fuente
0

XSD es un esquema para el archivo WSDL. XSD contiene tipos de datos para WSDL. El elemento declarado en XSD es válido para usar en el archivo WSDL. Podemos verificar WSDL contra XSD para verificar que el servicio web WSDL sea válido o no.

Snehal Más
fuente
0

Si alguien busca una analogía, esta respuesta puede ser útil.

WSDL es como el comando 'SHOW TABLE STATUS' en mysql. Define todos los elementos (tipo de solicitud, tipo de respuesta, formato de URL para solicitar, etc.) que deberían formar parte de XML. Por definición quiero decir: 1) Nombres de solicitud o respuesta 2) Lo que debe tratarse como entrada, lo que debe tratarse como salida.

XSD es como el comando DESCRIBE en mysql. Indica qué contienen todas las variables y sus tipos, una solicitud y una respuesta.

Sunny Gangisetti
fuente
¿No se usa DESC en mysql para el orden de clasificación? DESCRIBE sin embargo es más parecido.
Mangs