2011-11-30 18 views
13

En mi WSDL: mensaje que me dieron dos parámetros, nombre y apellido:Piezas mensaje opcional en WSDL

<message name="setName"> 
    <part name="firstname" type="xsd:string"></part> 
    <part name="lastname" type="xsd:string"></part> 
</message> 

quiero definir la parte "nombre" según sea necesario, y la parte de "apellidos", como opcional. ¿Cómo hago eso?

Respuesta

16

En piezas WSDL no pueden ser opcionales. Siempre son necesarios. Si necesita piezas opcionales, tendrá que crear una parte que haga referencia a un XSD complexType que luego puede tener elementos opcionales.

+1

Ejemplo? Nadie que sea nuevo en este tema puede entender lo que quieres decir –

3

Puede añadir anulable a apellido, por lo apellido se requiere:

<message name="setName"> 
    <part name="firstname" type="xsd:string"></part> 
    <part name="lastname" xsi:nil="true" type="xsd:string"></part> 
</message> 

Si lo hace, su cuerpo jabón tener este aspecto (apellido vacías o llenas):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:user="http://www.example.com/MyService/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <user:setName> 
     <firstname>John</firstname> 
     <lastname></lastname> 
     </user:setName> 
    </soapenv:Body> 
</soapenv:Envelope> 

O incluso sin apellido:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:user="http://www.example.com/MyService/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <user:setName> 
     <firstname>John</firstname> 
     </user:setName> 
    </soapenv:Body> 
</soapenv:Envelope> 
Cuestiones relacionadas