example ejemplos ejemplo cliente web-services soap wsdl tibco

web services - ejemplos - ¿Cómo puedo marcar un encabezado SOAP como opcional en WSDL?



web service wsdl ejemplo (1)

Tengo un wsdl con un encabezado opcional:

<s:element name="AuthIdentifier" type="tns:AuthIdentifier"/> <s:complexType name="AuthIdentifier"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="identifier" type="s:string"/> </s:sequence> <s:anyAttribute/> </s:complexType>

El cliente está utilizando un software de integración (tibco) para conectarse a mi servicio y afirma que el encabezado es necesario, por lo que debe enviarlo con un valor vacío:

<Header.AuthIdentifier> <ns0:AuthIdentifier xmlns:ns0 = "http://www.tal.com/schemas"/> </Header.AuthIdentifier>

¿Cómo lo hago opcional? ¿Para que no tenga que enviar todo el encabezado? ¿Hay un minOccurs o algo así? ¿O ya es opcional como es ahora?


De acuerdo con el "Diseño y control de versiones del contrato de servicio web" Thomas Erl et al (ISBN-13: 978-0-13-613517-3) Capítulo 15.4, Definición de bloques SOAP en WSDL:

La especificación WSDL 1.1 no tiene claro si los encabezados SOAP descritos en un documento WSDL deben ser incluidos o no por los consumidores. El Perfil Básico WS-I hizo obligatorio que los consumidores los incluyeran, pero WDL 2.0 ofrece la opción de obligar a los consumidores a incluirlos o no. Página 472.

En WSDL 2.0 puede configurar el atributo wsdl: required = "false" en el bloque de encabezado SOAP personalizado para indicar si los consumidores deben incluir este bloque de encabezado.