Suportando Anexos Vinculados: Exemplos WSDL

Use esta tarefa para ver exemplos de fragmentos de WSDL com a codificação Web Services-Interoperability (WS-I) Attachments Profile Versão 1.0 e a codificação de Mensagens SOAP com Anexos.

Sobre Esta Tarefa

Web Services-Interoperability (WS-I) Attachments Profile Versão 1.0 define uma conversão para construir o ID de Conteúdo para um anexo vinculado. Esta conversão codifica o nome de parte da mensagem. Conseqüentemente, as tecnologias de integração de serviços podem reconhecer um anexo vinculado, independente de o corpo SOAP conter, ou não, elementos que representam essa parte da mensagem. A convenção para construir um ID de Conteúdo é a seguinte:
name=uuid@domain
em que name é o nome da parte da mensagem que está sendo codificada, uuid é um identificador globalmente exclusivo e domain é um identificador de domínio (por exemplo, my.example.com).
Nota: Esta abordagem difere do esquema de codificação de Mensagens SOAP com Anexos, que não define as convenções para o ID de Conteúdo mas utiliza elementos no corpo SOAP para indicar que a parte da mensagem é codificada como um anexo.

Para distinguir entre os casos, as tecnologias de integração de serviços assumem que se um anexo de mensagem seguir a convenção da Versão 1.0 para construir o ID de Conteúdo, será uma mensagem da Versão 1.0.

Exemplo

O fragmento WSDL a seguir destina-se ao anexo vinculado, com instâncias de mensagens que seguem os dois estilos:

<wsdl:binding name="BoundSoapBinding" type="intf:BoundPortType">
    <soap:binding style="rpc"
                  transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="bound">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <mime:multipartRelated>
          <mime:part>
            <soap:body parts="stringIn" namespace="http://bound"
                       use="literal"/>
          </mime:part>
          <mime:part>
            <mime:content part="attachIn" type="text/xml"/>
          </mime:part>
        </mime:multipartRelated>
      </wsdl:input>

O fragmento WSDL a seguir destina-se a uma instância SOAP que usa a codificação da Versão 1.0. Neste fragmento, o corpo da mensagem não faz menção à parte attachIn e o ID de Conteúdo do anexo identifica a parte que está sendo codificada.

--myBoundary
Content-Type: text/xml
Content-Transfer-Encoding: 7bit
Content-Id: <myStartID>

<SOAP-ENV:Envelope
 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <ns0:bound xmlns:ns0="http://bound">
      <stringIn>some string data</stringIn>
    </ns0:bound>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

--myBoundary
Content-Type: text/xml
Content-Transfer-Encoding: 7bit
Content-Id: <attachIn=someUUID@some.domain.name>

<someOtherXMLElement/>
--myBoundary--

O fragmento WSDL a seguir destina-se a uma instância SOAP que usa a codificação de Mensagens SOAP com Anexos. Nesse fragmento, o corpo da mensagem contém uma referência ao anexo vinculado e o ID de Conteúdo do anexo não é obrigatório.

--myBoundary
Content-Type: text/xml
Content-Transfer-Encoding: 7bit
Content-Id: <myStartID>

<SOAP-ENV:Envelope
 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <ns0:bound xmlns:ns0="http://bound">
      <stringIn>some string data</stringIn>
      <attachIn href="cid:notTheStart"/>
    </ns0:bound>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

--myBoundary
Content-Type: text/xml
Content-Transfer-Encoding: 7bit
Content-Id: <notTheStart>

<someOtherXMLElement/>
--myBoundary--

Nos dois casos anteriores há informações suficientes na mensagem para identificar o anexo vinculado e, em ambos os casos, as tecnologias de integração de serviços colocam uma entrada de anexo vinculado na lista de anexos e colocam os dados do anexo na seção do corpo do gráfico de dados.


Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjw_attach_bound_wsdl
Nome do arquivo: tjw_attach_bound_wsdl.html