WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Conjuntos de Mensagens: Importando de WSDL: Objetos Gerados e Restrições

Vários objetos são gerados quando você importa a partir do WSDL mas restrições podem se aplicar.

Objetos Gerados

Arquivos copiados por importação da linha de comandos
O comando mqsicreatemsgdefsfromwsdl copia os arquivos WSDL que ele precisa na área de trabalho antes de executar o processo de importação. Estes arquivos são os arquivos WSDL de nível superior e quaisquer importações resolvidas a partir de um local relativo. Os arquivos são copiados do aplicativo, biblioteca ou conjunto de mensagens para uma pasta chamada importFiles.
Arquivo de Relatório

O importador de WSDL anexa o resultado da operação de importação em um arquivo de relatório, listando todos os erros que ocorreram durante o processo. O nome do arquivo de relatório é application or library.wsdl.report.txt ou message set.wsdl.report.txt.

Definições de mensagens SOAP

Os arquivos SOAP .xsds necessários são incluídos no aplicativo ou na biblioteca. Se você estiver usando um conjunto de mensagens, os arquivos .mxsds serão incluídos no conjunto de mensagens.

Para analisar documentos da instância do SOAP 1.2, remova manualmente as definições de SOAP 1.1 e importe as definições de SOAP 1.2 usando o assistente de Arquivo de Definições de Mensagens, selecionando Mensagem fornecida pela IBM.

Se seu aplicativo, biblioteca ou conjunto de mensagens tiver camadas TDS ou CWF, talvez você ache que receba vários avisos com relação às definições de SOAP importadas. A maioria deles pode ser ignorada, mas leve em conta os valores permitidos para atributos Booleanos. No SOAP 1.1, os valores Booleanos são 1 ou 0, enquanto no SOAP 1.2 os valores são true e false. A representação XML de valores booleanos para um aplicativo, biblioteca ou conjunto de mensagens é especificada nas propriedades físicas do formato físico de XML e pode precisar ser configurada adequadamente.

Raízes de mensagem ou arquivos de definições de mensagens
Se você estiver usando um conjunto de mensagens, serão criadas definições de mensagem. Se estiver usando um aplicativo ou uma biblioteca, serão criadas raízes de mensagem. Outros nomes de arquivo de definição ou de raiz de mensagem são criados como input file name.xsd (para aplicativos e bibliotecas) ou input file name.mxsd (para conjuntos de mensagens) e seu conteúdo depende do estilo WSDL.
estilo de documento
As partes da mensagem WSDL para style="document" (que incluem todos os cabeçalhos SOAP, partes de falha e de falha de cabeçalho) se referem a um elemento definido no Esquema XML. Esse elemento é importado como um elemento global e uma mensagem do broker no arquivo .xsd ou .mxsd.

A política de saída xsi:type na mensagem é configurada como "Nunca".

estilo de rpc
As partes da mensagem WSDL para style="rpc" (e exclusivamente as alocadas para o corpo SOAP) se referem a um tipo definido no Esquema XML. Neste caso, as mensagens de entrada e saída são criadas conforme mostrado na tabela a seguir.
  Uma mensagem de entrada Uma mensagem de saída
Derivado de O filho wsdl:input (se houver algum) da operação WSDL e a mensagem WSDL e partes que ele identifica O filho wsdl:output (se houver algum) da operação WSDL e a mensagem WSDL e partes que ele identifica
Nome do Elemento O valor do atributo de nome no elemento de operação WSDL O valor do atributo de nome no elemento de operação WSDL com o sufixo "Response"
Espaço de Nomes do Elemento O valor do atributo namespace no elemento soap:body correspondente O valor do atributo namespace no elemento soap:body correspondente

Cada mensagem é um tipo complexo local, sendo uma sequência de elementos. O nome de cada elemento é o valor do atributo de nome nas partes WSDL da mensagem identificadas pelo elemento de entrada ou de saída. Estes elementos não possuem espaço de nomes (a representação de esquema subjacente possui form="unqualified") e têm escopo definido localmente para evitar conflitos de nome. O tipo desses elementos locais é o tipo de esquema XML referido pelo atributo de tipo do elemento da parte correspondente. O tipo é global no esquema WSDL.

Se o elemento soap:body foi definido com use="encoded" na definição de WSDL, a definição de mensagem incluirá uma referência no grupo de atributos encodingStyle no namespace SOAP-ENV e a política de saída xsi:type na mensagem será configurada como "Seguir as regras de codificação SOAP". Caso contrário, a política de saída xsi:type na mensagem será configurada como "Nunca".

WSDLs gerado utilizando .NET
Em algumas instâncias, arquivos WSDL que são gerados usando .NET incluem referências de elementos no próprio esquema, por exemplo:
<xsd:complexType>
		<xsd:sequence>
			<xsd:element ref="s:schema"/>
		</xsd:sequence>
</xsd:complexType>
Para que arquivos WSDL desse tipo sejam importados com sucesso para o WebSphere Message Broker Toolkit sem erros de validação, você deve incluir manualmente uma instrução de importação de namespace no namespace do esquema, por exemplo:
<xsd:import namespace="http://www.w3.org/2001/XMLSchema"/>

Coloque a instrução de importação primeiro no elemento de esquema e assegure-se de que ele apareça antes de qualquer definição de tipo complexo ou de elemento. Revalide o WSDL clicando com o botão direito do mouse no WSDL atualizado e clicando em Validar.

Restrições

Existem restrições relacionadas à importação de definições de WSDL onde as definições de WSDL não são compatíveis com WS-I.
Matrizes SOAP
Uma definição de WSDL 1.1 pode definir uma matriz SOAP (aplicável apenas ao estilo WSDL codificado por rpc e não compatível com WS-I):
    <xsd:complexType name="t">
          <xsd:complexContent>
            <xsd:restriction base="SOAP-ENC:Array">
              <xsd:sequence>
                <xsd:element name="item" type="string" maxOccurs="unbounded"/>
              </xsd:sequence>
              <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
            </xsd:restriction>
          </xsd:complexContent>
    </xsd:complexType>

Algumas utilizações da matriz SOAP não são totalmente suportadas. Embora seja criada uma árvore útil durante a análise, que pode ser serializada durante a gravação, as restrições a seguir se aplicam.

  • O modelo não leva em conta qualquer atributo SOAP-ENC:arrayType.
  • O modelo para matrizes transmitidas parcialmente não leva em conta o atributo SOAP-ENC:offset.

    Por exemplo, o primeiro elemento de uma matriz especificada com offset[2] de ser acessado no ESQL, não como InputRoot.MRM.array.item[3], mas como InputRoot.MRM.array.item[1].

  • O modelo para matrizes multidimensionais nivela a representação em uma única dimensão. Por exemplo, uma matriz bidimensional é acessada em ESQL, não como InputRoot.MRM.array.item[x][y], mas como InputRoot.MRM.array.item[i], em que o índice i precisa ser calculado de maneira apropriada.
Elementos Anônimos
O trecho WSDL acima descreve um documento da instância SOAP no seguinte formato:
    <SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[3]">
       <item xsi:type="xsd:string">A general text string</item>
       <item xsi:type="xsd:token">A restriction of the string type</item>
       <item xsi:type="xsd:Name">ARestrictionOfTheTokenType</item>
    </SOAP-ENC:Array>

O modelo de broker manipula esse documento conforme o esperado, mas, na matriz de codificação SOAP, os elementos também podem usar os elementos de tipo do namespace de codificação SOAP. Portanto, um aplicativo que está usando a mesma definição de WSDL pode criar um documento da instância no seguinte formato:

    <SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[3]">
       <SOAP-ENC:string>A general text string</SOAP-ENC:string>
       <SOAP-ENC:token>A restriction of the string type</SOAP-ENC:token>
       <SOAP-ENC:Name>ARestrictionOfTheTokenType</ SOAP-ENC:Name>
    </SOAP-ENC:Array>

Para tratar desse caso, você deve editar manualmente o modelo de broker criado importando o WSDL, a menos que seja aceitável que o analisador o trate como um elemento definido automaticamente.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:29:30


Tópico de ReferênciaTópico de Referência | Versão 8.0.0.5 | ad30560_