Mensajes SOAP con archivos adjuntos: ejemplos de WSDL
Utilice esta tarea para ver un ejemplo y una explicación de un archivo WSDL con un archivo adjunto.
Ejemplo
El WSDL de ejemplo siguiente ilustra una operación sencilla que tiene un adjunto llamado attch:
<binding
name="MyBinding" type="tns:abc" >
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="MyOperation">
<soap:operation soapAction=""/>
<input>
<mime:multipartRelated>
<mime:part>
<soap:body parts="part1 part2 ..." use="encoded" namespace="http://mynamespace"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding"/>
</mime:part>
<mime:part>
<mime:content part="attch" type="text/html"/>
</mime:part>
</mime:multipartRelated>
</input>
</operation>
</binding>
En este tipo de extensión WSDL:
- Debe haber un atributo part (en este ejemplo attch) en el mensaje de entrada para la operación (en este ejemplo MyOperation). Puede haber otras partes de entrada a MyOperation que no sean adjuntos.
- En la entrada de enlace debe haber un distintivo <soap:body> o <mime:multipartRelated>, pero no los dos.
- Para mensajes MIME, el distintivo <soap:body> está dentro del distintivo <mime:part>. Debe haber sólo un distintivo <mime:part> que contenga un distintivo <soap:body> en la entrada de enlace y que no contenga además un distintivo <mime:content>, ya que se presupone un tipo de contenido text/xml para el distintivo <soap:body>.
- En un mensaje MIME puede haber varios archivos adjuntos, cada uno descrito por un distintivo <mime:part>.
- Cada distintivo <mime:part> que no contiene un distintivo <soap:body> contiene un distintivo <mime:content> que describe el archivo adjunto. El bus de integración de servicios no comprueba ni utiliza el atributo type dentro del distintivo <mime:content>. Está ahí para sugerir, a la aplicación que utiliza el bus de integración de servicios, cuál es el contenido del archivo adjunto. Varios distintivos <mime:content> dentro de un solo distintivo <mime:part> significa que el servicio de programa de fondo espera un solo archivo adjunto con un tipo especificado por uno de los distintivos <mime:content> dentro de ese distintivo <mime:part>.
- Se presupone que el atributo parts="..." incluido en el código <soap:body> que contiene los nombres de todas las partes SOAP del mensaje pero no las partes del adjunto. Si sólo hay partes de archivos adjuntos, especifique parts="" (serie vacía). Si omite por completo el atributo parts, el bus de integración de servicios supone que tiene TODAS las partes, incluidos los archivos adjuntos, lo que causará que los archivos adjuntos aparezcan dos veces.
En WSDL puede haber definido un esquema para el archivo adjunto (por ejemplo, binary[]). Las tecnologías de integración de servicios ignoran esta correlación y tratan el archivo adjunto como Data Handler.
No es necesario mencionar los archivos adjuntos sin referenciar en los enlaces de WSDL.