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

Manipulando valores nulos

Uma mensagem comercial pode conter campos vazios ou que têm um valor específico fora do intervalo. Nesses casos, o aplicativo que recebe a mensagem deve tratar o campo como se não tivesse um valor. A árvore de mensagens lógicas suporta esse conceito, permitindo que o valor de qualquer elemento seja configurado para NULL.

Maneiras de Representar um Valor Nulo

Em um documento XML, a maneira comum de representar um valor nulo é deixar o elemento ou atributo vazio.

Por exemplo: <price></price> ou <element price=""/>

O atributo xsi:nil fornece uma maneira de tornar isso mais explícito: price=<xsi:nil="true"/>

Algumas mensagens de negócios usam um valor especial para representar um valor nulo: <price>-999</price>. Esse estilo de representação de valor nulo é suportado pelos analisadores DFDL e MRM.

Suporte do analisador DFDL para valores nulos

O analisador DFDL pode detectar um valor nulo que é representado por um valor fora do intervalo. O valor nulo deve ser especificado no esquema DFDL e pode ser igual ou diferente para cada elemento. No DFDL ele é chamado de valor inexistente. Ao analisar, o analisador DFDL verifica o valor inexistente de cada elemento da mensagem. Se o valor do fluxo de bits corresponder ao valor inexistente no esquema DFDL, o analisador DFDL configurará o valor na árvore de mensagens como NULL. A mesma verificação é executada ao converter uma árvore de mensagens em um fluxo de bits. Se o valor na árvore de mensagens for NULL, o analisador DFDL exibirá o valor inexistente do esquema DFDL.

Para obter informações adicionais, consulte A especificação DFDL 1.0, seção 13.15.

Suporte do Mapeador de dados gráficos para valores inexistentes

Utilize as seguintes funções XPath para implementar processamento condicional para mapear o valor XML NULL:
  • fn:empty testa se um elemento tem um valor vazio. O valor NULL da árvore de dados lógicos é considerado como vazio.
  • fn:nilled testa se um elemento XML tem o atributo xsi:nil configurado.
  • fn:exists testa se um elemento está presente. Um elemento XML que tem o atributo xsi:nil configurado é considerado como presente.
Ao mapear valores nulos, considere o seguinte comportamento:
  • Quando você mapeia o valor NULL da árvore de dados lógicos de uma entrada para uma saída, produz um elemento de saída com um valor vazio. Se o elemento for definido como anulável no modelo, um elemento de saída vazio com o conjunto de atributos xsi:nil será produzido. O mesmo efeito ocorre quando um elemento de saída é configurado chamando uma função ESQL customizada que retorna o valor ESQL NULL.
  • Quando você utiliza fn:nilled em um elemento que não é XML, por exemplo um elemento de valor inexistente em uma mensagem DFDL, fn:nilled retornará true se o valor do elemento estiver definido como NULL.
  • Quando você utiliza uma transformação Mover para copiar um elemento XML de entrada que possui um conjunto de atributos xsi:nil para um elemento XML de saída que é definido como anulável no esquema, produz um elemento XML de saída que tem o atributo xsi:nil configurado.
  • Quando você utiliza uma transformação Mover para copiar um elemento de entrada que possui um valor NULL para um elemento de saída, um elemento de saída com um valor vazio será configurado.
  • Quando você utiliza uma transformação Mover para copiar um elemento de entrada que não é XML para um elemento de saída XML definido como anulável no esquema, o elemento XML de saída também tem o atributo xsi:nil configurado.

Suporte de ESQL para Valores Nulos

Utilizando ESQL, é possível configurar o valor de um elemento de árvore de mensagens para NULL:

SET OutputRoot.XMLNSC.myField VALUE = NULL;

Observe que isso é diferente de SET OutputRoot.XMLNSC.myField = NULL;, que poderia fazer com que myField fosse excluído da árvore de mensagens.

O mesmo efeito pode ser obtido utilizando Java.

Suporte do Analisador XMLNSC para Valores Nulos

Em geral, os analisadores XML (XMLNSC, XMLNS e XML) não criam valores nulos na árvore de mensagens; uma elemento vazio ou um valor de atributo vazio meramente produz um valor de cadeia vazia na árvore de mensagens.

Se a validação estiver ativada, o analisador XMLNSC detecta e processa os atributos xsi:nil no documento de entrada. Se o atributo xsi:nil for configurado como 'true', e o elemento for anulável, o elemento-pai do atributo na árvore de mensagens receberá um valor nulo.

Para maiores informações sobre suporte para o analisador XML para elementos nulos e valores nulos, consulte Elementos Vazios do XMLNSC e Valores Nulos and Elementos Vazios XMLNS e Valores Nulos.

Suporte do Analisador MRM para Valores Nulos

Formato Físico XML

ao analisar, o analisador MRM XML pode detectar e processar atributos xsi:nil no documento XML de entrada. Se o atributo xsi:nil for configurado como 'true', e o elemento for anulável, o elemento-pai do atributo na árvore de mensagens receberá um valor nulo.

Para obter informações sobre como ativar o suporte a xsi:nil no analisado MRM, consulte Conjuntos de Mensagens: Opções de Manipulação Nulas XML.

Os seguinte tópicos fornecem informações adicionais sobre a manipulação de valores nulos no analisador MRM:

Todos os Formatos Físicos

O analisador MRM pode detectar um valor nulo representado por um valor fora do intervalo. O valor nulo deve ser especificado no formato físico da mensagem.

Ao analisar, o analisador MRM verifica o valor nulo de cada elemento da mensagem. Se o valor do fluxo de bits corresponder ao valor nulo no conjunto de mensagens, o analisador MRM configura o valor na árvore de mensagens para NULL.

A mesma verificação é executada ao converter uma árvore de mensagens em um fluxo de bits. Se o valor da árvore de mensagens dor NULL, o analisador MRM exibe o valor nulo do conjunto de mensagens.

Suporte do Analisador JSON para Valores Nulos

O formato JSON suporta NULL como um tipo de valor JSON.

Quando uma mensagem JSON inclui um objeto com um valor nulo, o analisador JSON configura o valor na árvore de mensagens como NULL.

Ao serializar um elemento na árvore de mensagens com um valor nulo, o fluxo de bits JSON é construído como um objeto JSON com um valor igual a nulo.

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:03


Tópico de ConceitoTópico de Conceito | Versão 8.0.0.5 | ac70560_