Quando um broker chama um analisador ou serializador, o broker
fornece ao analisador ou serializador informações de codificação que definem
a codificação de caracteres (CCSID) e a codificação numérica (ordem do byte e
representação de ponto flutuante) dos dados que devem ser analisados ou serializados.
Ao
analisar ou serializar mensagens no domínio DFDL, o analisador DFDL
ou o serializador DFDL é chamado. A maneira como o analisador DFDL e o
serializador DFDL usam as informações de codificação é definida por seu modelo de
menagem DFDL.
Em um modelo de mensagem DFDL, você deve configurar a codificação de caracteres (CCSID)
e a codificação numérica (ordem do byte e representação do ponto flutuante)
usando propriedades DFDL em cada definição de tipo. A DFDL predefine
um conjunto de variáveis externas, cada uma delas contendo valores padrão que
podem ser substituídos externamente. São essas variáveis predefinidas que
o broker substitui para passar informações de codificação. Para obter informações adicionais
sobre variáveis predefinidas DFDL, consulte Variáveis Predefinidas DFDL no IBM WebSphere Message Broker.
Se você configurou as propriedade de codificação em seu modelo de mensagem DFDL
para tipos estáticos específicos, o analisador DFDL e o serializador DFDL interpretarão
os dados da mensagem usando essas informações de codificação estáticas e ignorarão
as informações de codificação fornecidas pelo broker para cada instância de
mensagem individual. Observe que se você configurou as propriedades de codificação
em seu modelo de mensagem DFDL para tipos estáticos específicos e os dados da
mensagem não estiverem codificados no formato especificado, os seguintes problemas
poderão ser encontrados:
- Erros de análise devido à interpretação incorreta dos dados da mensagem
- Valores numéricos incorretos devido ao uso da ordem do byte
errada (endianness)
Para evitar esses problemas, configure as propriedades de codificação DFDL em seu
modelo de mensagem DFDL, conforme a seguir:
- encoding: {dfdl:encoding}
- byteOrder: {dfdl:byteOrder}
- binaryFloatRep: {dfdl:binaryFloatRep}
Essas configurações permitem que o analisador DFDL interprete
corretamente seus dados usando as informações de codificação que o broker
obtém para uma instância de mensagem individual, por exemplo, a partir dos cabeçalhos
de transporte em uma mensagem de entrada. De modo semelhante, essas configurações asseguram que
os dados do fluxo de bits sejam codificados de acordo com os valores definidos
nas propriedades do broker, quando os dados são processados pelo serializador DFDL.