Tutorial XML

INICIO XML Introducción XML XML Cómo utilizar Árbol XML Sintaxis XML Elementos XML Atributos XML Espacios de nombres XML Pantalla XML Solicitud Http XML Analizador XML DOM XML XPath XML XML XSLT XQuery XML Enlace X XML Validador XML DTD XML Esquema XML Servidor XML Ejemplos XML Cuestionario XML Certificado XML

XML-AJAX

AJAX Introducción AJAX XMLHttp Solicitud AJAX Respuesta AJAX Archivo XML AJAX AJAXPHP Ajax ASP Base de datos AJAX Aplicaciones AJAX Ejemplos de AJAX

DOM XML

DOM Introducción Nodos DOM Acceso DOM Información del nodo DOM Lista de nodos DOM Atravesando DOM Navegación DOM DOM obtener valores Nodos de cambio de DOM Eliminar nodos DOM Nodos de reemplazo de DOM DOM Crear nodos Agregar nodos DOM Nodos de clonación de DOM Ejemplos de DOM

Tutorial XPath

Introducción a XPath Nodos XPath Sintaxis XPath Ejes XPath Operadores XPath Ejemplos de XPath

Tutorial XSLT

XSLT Introducción Idiomas XSL Transformación XSLT XSLT <plantilla> XSLT <valor-de> XSLT <para-cada> XSLT <ordenar> XSLT <si> XSLT <elegir> Aplicar XSLT XSLT en el cliente XSLT en el servidor XSLT Editar XML Ejemplos de XSLT

Tutorial de XQuery

Introducción a XQuery Ejemplo de XQuery XQuery FLWOR XQuery HTML Términos de XQuery Sintaxis XQuery XQuery Agregar Seleccionar XQuery Funciones XQuery

DTD XML

Introducción a DTD Bloques de construcción DTD Elementos DTD Atributos DTD Elementos DTD vs Attr Entidades DTD Ejemplos de DTD

Esquema XSD

XSD Introducción XSD Cómo XSD <esquema> Elementos XSD Atributos XSD Restricciones XSD

Complejo XSD

Elementos XSD XSD vacío Solo elementos XSD Solo texto XSD XSD mixto Indicadores XSD XSD <cualquiera> XSD <cualquieratributo> Sustitución XSD Ejemplo XSD

Datos XSD

Cadena XSD Fecha XSD XSD Numérico Miscelánea XSD Referencia XSD

Servicios web

Servicios XML XML WSDL JABÓN XML XML RDF RSS XML

Referencias

Tipos de nodos DOM Nodo DOM Lista de nodos DOM DOM NamedNodeMap Documento DOM Elemento DOM Atributo DOM Texto DOM DOM CDATA Comentario DOM DOM XMLHttpSolicitud Analizador DOM Elementos XSLT Funciones XSLT/XPath

XML WSDL


  • WSDL significa Lenguaje de descripción de servicios web
  • WSDL se utiliza para describir servicios web
  • WSDL está escrito en XML
  • WSDL es una recomendación del W3C del 26 de junio de 2007

Documentos WSDL

Un documento WSDL describe un servicio web. Especifica la ubicación del servicio y los métodos del servicio, utilizando estos elementos principales:

Element Description
<types> Defines the (XML Schema) data types used by the web service
<message> Defines the data elements for each operation
<portType> Describes the operations that can be performed and the messages involved.
<binding> Defines the protocol and data format for each port type

La estructura principal de un documento WSDL se ve así:

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>

</definitions>


Ejemplo de WSDL

Esta es una fracción simplificada de un documento WSDL:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

En este ejemplo, el elemento <portType> define "glossaryTerms" como el nombre de un puerto y "getTerm" como el nombre de una operación .

La operación "getTerm" tiene un mensaje de entrada llamado "getTermRequest" y un mensaje de salida llamado "getTermResponse".

Los elementos <message> definen las partes de cada mensaje y los tipos de datos asociados.


El elemento <portType>

El elemento <portType> define un servicio web , las operaciones que se pueden realizar y los mensajes involucrados.

El tipo de solicitud-respuesta es el tipo de operación más común, pero WSDL define cuatro tipos:

Type Definition
One-way The operation can receive a message but will not return a response
Request-response The operation can receive a request and will return a response
Solicit-response The operation can send a request and will wait for a response
Notification The operation can send a message but will not wait for a response

Operación unidireccional WSDL

Un ejemplo de operación unidireccional:

<message name="newTermValues">
  <part name="term" type="xs:string"/>
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>
  </operation>
</portType >

En el ejemplo anterior, portType "glossaryTerms" define una operación unidireccional denominada "setTerm".

La operación "setTerm" permite la entrada de nuevos mensajes de términos del glosario utilizando un mensaje "newTermValues" con los parámetros de entrada "término" y "valor". Sin embargo, no se define ninguna salida para la operación.


Operación de solicitud-respuesta de WSDL

Un ejemplo de operación de solicitud-respuesta:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

En el ejemplo anterior, portType "glossaryTerms" define una operación de solicitud-respuesta llamada "getTerm".

La operación "getTerm" requiere un mensaje de entrada llamado "getTermRequest" con un parámetro llamado "term", y devolverá un mensaje de salida llamado "getTermResponse" con un parámetro llamado "value".


Enlace WSDL a SOAP

Los enlaces WSDL definen el formato del mensaje y los detalles del protocolo para un servicio web.

Un ejemplo de operación de solicitud-respuesta:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

<binding type="glossaryTerms" name="b1">
   <soap:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http" />
   <operation>
     <soap:operation soapAction="http://example.com/getTerm"/>
     <input><soap:body use="literal"/></input>
     <output><soap:body use="literal"/></output>
  </operation>
</binding>

El elemento vinculante tiene dos atributos: nombre y tipo.

El atributo de nombre (puede usar cualquier nombre que desee) define el nombre del enlace y el atributo de tipo apunta al puerto para el enlace, en este caso el puerto "glossaryTerms".

El elemento soap:binding tiene dos atributos: estilo y transporte.

El atributo de estilo puede ser "rpc" o "document". En este caso usamos documento. El atributo de transporte define el protocolo SOAP a utilizar. En este caso usamos HTTP.

El elemento de operación define cada operación que expone portType.

Para cada operación se debe definir la acción SOAP correspondiente. También debe especificar cómo se codifican la entrada y la salida. En este caso usamos "literal".