Usar WSDL
El lenguaje de descripción de servicios Web (WSDL) se utiliza para definir la interfaz Web de cualquier función RPC expuesta en el extremo HTTP y para describir la funcionalidad de los lotes SQL para el extremo. El cliente puede solicitar una respuesta WSDL de una instancia de SQL Server y utilizarla para generar solicitudes de lotes RPC y SQL que enviará al servidor a través de los extremos HTTP configurados para asegurar la compatibilidad con los tipos WSDL. La respuesta WSDL es un documento XML generado dinámicamente a partir de las funciones RPC asociadas al extremo en el momento de generar la solicitud.
[!NOTA] Para obtener información general acerca de WSDL, vea la especificación WSDL 1.1 disponible en el sitio de World Wide Web Consortium (W3C), que se encuentra en http://www.w3c.org.
Los extremos HTTP configurados para aceptar una oferta WSDL pueden especificar una de las siguientes configuraciones WSDL, que se utilizarán para responder a los clientes que envíen solicitudes WSDL:
- Un WSDL predeterminado
- Un WSDL personalizado
Si se configura para habilitar la opción de WSDL predeterminado, SQL Server 2005 acepta dos tipos de WSDL: uno predeterminado, o WSDL extendido, y un formato de WSDL simplificado.
Aunque todos los documentos WSDL describen los métodos compatibles con el extremo, el WSDL predeterminado utiliza características adicionales de un esquema XML (XSD) a fin de proporcionar una descripción más amplia de los métodos, tipos de datos, parámetros y valores devueltos disponibles o expuestos por el extremo.
El formato de WSDL simplificado, que puede ser necesario para la compatibilidad con clientes antiguos, utiliza un esquema XSD muy básico para el que sólo se utilizan tipos de datos primitivos. Si ninguno de los formatos (WSDL predeterminado y WSDL simplificado) proporciona el contenido WSDL adecuado para un determinado cliente, existe la posibilidad de actualizar el servidor para que proporcione una versión personalizada del lenguaje WSDL según las necesidades específicas.
Las respuestas WSDL las genera y devuelve una instancia de SQL Server después de que un cliente de servicios Web que envía una solicitud WSDL establezca la conexión inicial con un extremo HTTP.
Cómo se consigue la compatibilidad con WSDL en SQL Server 2005
Al definir un extremo, se utiliza el argumento WSDL de la instrucción CREATE ENDPOINT de Transact-SQL para especificar en el servidor si la respuesta WSDL se generará y devolverá para el extremo a fin de describir sus características de programación Web. Si el extremo se ha establecido utilizando el valor WSDL=NONE, el servidor no devolverá ninguna respuesta WSDL.
Si se especifica la generación de un lenguaje WSDL predeterminado, como si se especifica WSDL=DEFAULT al crear el extremo, el formato de WSDL que devuelve el servidor será distinto en función de la cadena URL que utilice el cliente para conectarse al extremo HTTP. Los clientes pueden utilizar uno de los siguientes formatos URL para solicitar el WSDL:
- WSDL predeterminada
Se trata de la versión completa de la respuesta de WSDL extendido que se devuelve si se utiliza la URL http://server/endpoint_path?wsdl para establecer la conexión con el extremo. Este formato utiliza tipos de XSD derivados para proporcionar compatibilidad de asignación de los tipos SQL más complejos. Para obtener más información, vea WSDL predeterminado. - WSDL simple
Es la versión simplificada del WSDL predeterminado que asigna todos los tipos de datos del sistema SQL Server a tipos XSD nativos. Este formato se devuelve si se utiliza http://server/endpoint_path?wsdlsimple como URL para establecer la conexión con el extremo. Para obtener más información, vea WSDL simple. - WSDL personalizado
Cuando alguna de las versiones de WSDL que devuelve la instancia de SQL Server (sea la versión predeterminada o la simplificada) no es válida para los clientes, puede especificar una oferta de WSDL personalizado. Esta opción requiere diseñar e implementar código adicional. De ser así, puede utilizar un procedimiento almacenado para generar y devolver el contenido de WSDL personalizado como resultado a los clientes que especifiquen el tipo WSDL personalizado en las consultas basadas en HTTP. Para obtener más información, vea Implementar compatibilidad WSDL personalizada.
Contenido de WSDL
Una instancia del Lenguaje de definición de servicios Web (WSDL) es un documento XML con un elemento <definitions> raíz en el que se especifica el espacio de nombres WSDL (https://schemas.xmlsoap.org/wsdl) y se define un conjunto de servicios Web como colección de extremos de red o puertos. Un documento WSDL típico presenta la siguiente estructura de nivel superior:
<wsdl:definitions>
<wsdl:types>...</wsdl:types>
<wsdl:message>...<wsdl:message/>
<wsdl:portType>...</wsdl:portType>
<wsdl:binding>...</wsdl:binding>
<wsdl:service>...<wsdl:service>
<wsdl:definitions>
Tal como muestra esta vista simplificada del formato WSDL, se utilizan varios elementos para indicar las principales secciones del documento WSDL. La función de cada una de ellas se describe brevemente en la tabla siguiente.
Elemento | Descripción |
---|---|
|
Elemento contenedor para definiciones de tipos de datos formados mediante esquemas XML (XSD) u otros sistemas similares para tipos de datos. |
|
Definición de los datos del mensaje que se van a comunicar. El mensaje puede estar compuesto por varias partes y cada una de ellas puede ser de un tipo diferente. |
|
Conjunto abstracto de operaciones compatibles con uno o más extremos. |
|
Protocolo concreto y especificación del formato de datos para un tipo de puerto determinado. |
|
Colección de extremos relacionados. |
Procedimientos almacenados del sistema empleados para la compatibilidad con WSDL
Los siguientes procedimientos almacenados del sistema se incluyen con los Servicios Web XML nativos en SQL Server 2005 para permitir las implementaciones de WSDL predeterminada y simple, que se invocan como respuesta a una solicitud de WSDL:
- sp_http_generate_wsdl_defaultcomplexorsimple
- sp_http_generate_wsdl_defaultsimpleorcomplex
- sp_http_generate_wsdl_complex
- sp_http_generate_wsdl_simple
Para ejecutar estos procedimientos almacenados se requiere la pertenencia a la función public. Internamente, cada uno de los procedimientos almacenados ejecuta consultas en los catálogos para obtener información sobre procedimientos almacenados adicionales expuestos en los extremos como métodos Web. Los usuarios sólo necesitan permisos para estos procedimientos almacenados de métodos Web. Para obtener más información, vea Exponer la programación SQL en la Web.
Vea también
Referencia
Implementar compatibilidad WSDL personalizada
Otros recursos
CREATE ENDPOINT (Transact-SQL)
Usar servicios Web XML nativos en SQL Server 2005