Binders de Dados Customizados para Aplicativos JAX-RPC

Um binder de dados customizados é utilizado para mapear os tipos de esquema XML com objetos Java™. Os binders de dados customizados fornecem ligações para os tipos de esquema XML que não são suportados pela especificação JAX-RPC (Java API for XML-based Remote Call Procedure) atual.

O binder de dados customizado define métodos de serialização e desserialização para converter entre um objeto Java e uma interface SOAPElement. Um componente de ligação de dados customizado é incluído no sistema de Runtime e interage com o tempo de execução dos serviços da Web usando um SOAPElement. Diferentemente de desserializadores convencionais, os binders de dados customizados não dependem dos eventos de análise de baixo nível a partir do tempo de execução para construir o objeto Java, como SAX (Simple API for XML). Em vez disso, o tempo de execução constrói o binder de dados customizados, renderizando a mensagem SOAP de entrada para um SOAPElement. O SOAPElement que contém a mensagem é transmitido ao binder de dados do cliente. Por exemplo, se a mensagem que chega contiver um gráfico de dados SDO (Service Data Object), o sistema de tempo de execução processará da seguinte forma:
  1. O sistema de tempo de execução reconhece o código <sdo:Datagraph>.
  2. O tempo de execução consulta o sistema de mapeamento de tipo para localizar o binder de dados customizados para os dados do gráfico de dados, por exemplo, SDOCustomBinder.
  3. É criado um SOAPElement que representa o gráfico de dados SDO de entrada.
  4. O tempo de execução transmite o SOAPElement para o SDOCustomBinder.
No método desserializado, o SDOCustomBinder extrai o conteúdo do SOAPElement e constrói um objeto DataGraph concreto com um tipo commonj.sdo.DataGraph.

Fluxo do tempo de execução dos serviços da Web usando um binder de dados customizado

Quando um objeto Java é serializado, ocorre um processo similar. O tempo de execução localiza um binder de dados customizado e converte o objeto Java em um SOAPElement. O tempo de execução serializa o SOAPElement para a mensagem bruta que é transportada no sistema de saída.

A seguir, um exemplo de um esquema XML definido pela especificação SDO:
<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  targetNamespace="commonj.sdo">

  <xsd:element name="datagraph" type="sdo:DataGraphType"/>
  
  <xsd:complexType name="DataGraphType">
  <xsd:complexContent>
    <xsd:extension base="sdo:BaseDataGraphType">
      <xsd:sequence>
        <xsd:any minOccurs="0" maxOccurs="1" 
                 namespace="##other" processContents="lax"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="BaseDataGraphType" abstract="true">
  <xsd:sequence>
    <xsd:element name="models" type="sdo:ModelsType" minOccurs="0"/>
    <xsd:element name="xsd" type="sdo:XSDType" minOccurs="0"/>
    <xsd:element name="changeSummary"
                 type="sdo:ChangeSummaryType" minOccurs="0"/>
   </xsd:sequence>
  <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
    
  <xsd:complexType name="ModelsType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded" 
             namespace="##other" processContents="lax"/>
  </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="XSDType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded" 
        namespace="http://www.w3.org/2001/XMLSchema" processContents="lax"/>
  </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="ChangeSummaryType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded" 
             namespace="##any" processContents="lax"/>
  </xsd:sequence>
  <xsd:attribute name="create" type="xsd:string"/>
  <xsd:attribute name="delete" type="xsd:string"/>
  </xsd:complexType>

</xsd:schema> 

O WebSphere Application Server define a interface CustomBinder que implementa ligações customizadas concretas para um tipo de esquema XML específico.

O provedor de ligação customizada é utilizado para importar ligações customizadas para o tempo de execução. Para saber como conectar seus binders de dados customizados na ferramenta de linha de comandos WSDL2Java para desenvolvimento, leia sobre os provedores de ligação customizada. Você também pode ler sobre os padrões de uso para implementar os binders de dados customizados para saber mais sobre como implementar o pacote do provedor no tempo de execução, bem como as funções envolvidas no processo de ligação customizada.


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



Í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=cwbs_custombinders
Nome do arquivo: cwbs_custombinders.html