Compatibilidad con SOAP y WSDL
La siguiente tabla resume la información de compatibilidad con WSDL en MapForce.
Compatibilidad con WSDL | Versión 1.1, nota del W3C http://www.w3.org/TR/wsdl Versión 2.0, recomendación del W3C http://www.w3.org/TR/wsdl20/ |
Sistema de tipos WSDL | XML Schema 2001 |
Compatibilidad con SOAP | Versión 1.1: http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ Versión 1.2: http://www.w3.org/TR/soap12-part0/ |
Protocolos | SOAP porHTTP (no son compatibles los protocolos HTTP POST, HTTP GET). |
C# | SOAPAction debe ser diferente para cada operación en C#. |
Enlaces | No se permite usar varias operaciones con el mismo nombre (sección 2.5 de la especificación WSDL 1.1). |
style/use | •Document/literal: compatible •RPC/literal: compatible en C# •RPC/encoded: compatibilidad limitada •Se admite un style/use por cada servicio web (Java) o por cada operación (C#) |
Encabezados SOAP | Depende de la plataforma subyacente. |
SOAP encodingStyle | Si use="encoded", se asume el estilo de codificación "http://schemas.xmlsoap.org/soap/encoding/" para soap:Body. No se admiten otros estilos de codificación.
El atributo encodingStyle se ignora en los mensajes (sección 4.1.1 de la especificación SOAP 1.1). |
Referencias | •No se admiten referencias a recursos externos (sección 5.4.1 de la especificación SOAP 1.1). •Se admiten referencias a elementos independientes. |
SOAP-ENC:Array | Se admite el acceso lineal. No se admiten matrices parciales ni matrices ralas. |
Mejoras SOAP personalizadas | No son compatibles. |
Valores en esquemas predeterminados o fijos. | No son compatibles. |
Validación de mensajes no SOAP | No se validan, se pasan al marco subyacente. |
Espacios de nombres | En WSDL no son válidas las entradas que no sean espacios de nombres y por tanto no son compatibles (WSDL y XML 1.0). |
WSDL 1,1
portType
Un elemento <portType> define una interfaz de servicio web, es decir:
•las operaciones que se pueden llevar a cabo y
•los mensajes que participan como entrada y salida de cada operación.
tipos
El elemento <types> define los tipos de datos que utiliza el servicio web. MapForce admite el uso de esquemas XML en archivos WSDL porque es el sistema de tipos más frecuente para archivos WSDL. MapForce muestra estos elementos (tipos de datos) como elementos del componente (mensaje), para que pueda crear asignaciones entre ellos y otros elementos o construcciones directamente.
message
El elemento <message> define las partes de cada mensaje y los elementos de datos de los parámetros de entrada y salida de una operación. Estos son los mensajes que intercambian el cliente y el servidor. Hay tres tipos de mensajes: Entrada, Salida y Error. En MapForce cada mensaje es un componente desde el que se pueden crear asignaciones de datos. Los mensajes pueden tener una o más partes.
Cuando se use la combinación document / literal en MapForce, es necesario que el mensaje o la parte de mensaje remita a un elemento global en lugar de a un tipo. Por ejemplo, en el fragmento de código siguiente, el atributo element remite a un elemento global definido en un esquema (ns2:Vendor):
<message name="processRequest"> |
Por el contrario, el siguiente ejemplo remite a un tipo del esquema:
<message name="processRequest"> |
operation
Las operaciones usan mensajes como parámetros de entrada y salida. Una operación puede tener:
•un mensaje de entrada
•cero o más mensajes de salida
•cero o más mensajes de error
Los mensajes de entrada solamente se pueden usar como componentes de origen. Los mensajes de salida y de error solamente se pueden usar como componentes de destino.
WSDL 2,0
WSDL 2.0 es bastante diferente de la especificación WSDL 1.1. Estas son las principales diferencias:
•Los portType ahora se llaman interfaces.
•Los mensajes y las partes se definen ahora utilizando el sistema de tipos XML Schema en el elemento types.
•Los puertos se llaman extremos.
•Las entradas y salidas de las operaciones de WSDL 20. se definen en el esquema XML.
En MapForce, en el cuadro de diálogo Configuración del componente de un componente WSDL, aparece «Extremo» tanto para los puertos WSDL 1.1 como para los extremos WSDL 2.0. |