Cuando un intermediario llama a un analizador o serializador, el intermediario
proporciona al analizador o serializador la información de codificación que define
la codificación de caracteres (CCSID) y la codificación numérica (orden de bytes y
representación de coma flotante) de los datos que se deben analizar o serializar.
Al analizar o serializar
mensajes en el dominio DFDL, se llama al analizador DFDL o al serializador. El modo en que
el analizador DFDL y el serializador DFDL utilizan la información de codificación
lo define el modelo de mensaje DFDL.
En un modelo de mensaje DFDL, debe establecer la codificación de caracteres (CCSID)
y la codificación numérica (orden de bytes y representación de coma flotante)
utilizando las propiedades DFDL en cada definición de tipo. DFDL predefine
un conjunto de variables externas, cada una de los cuales tiene valores predeterminados
que se pueden alterar temporalmente de forma externa. Son estas variables predefinidas que
el intermediario altera temporalmente para pasar información de codificación. Para obtener más
información sobre las variables predefinidas de DFDL, consulte
Variables predefinidas DFDL en IBM WebSphere Message Broker.
Si ha establecido las propiedades de codificación en el modelo de mensaje DFDL en
tipos estáticos específicos, el analizador DFDL y el serializador DFDL interpretan
los datos de mensaje utilizando esta información de codificación estática e ignoran
la información de codificación proporcionada por el intermediario para cada
instancia de mensaje individual. Tenga en cuenta que si estableció las propiedades de
codificación en el modelo de mensaje DFDL en tipos estáticos específicos, y los datos de
mensaje no están codificados en el formato que especificó, podrían surgir los problemas
siguientes:
- Errores de análisis porque los datos de mensaje se están interpretando incorrectamente
- Valores numéricos incorrectos porque se está utilizando el orden de bytes incorrecto
(endian)
Para evitar estos problemas, establezca las propiedades de codificación DFDL en su
modelo de mensaje DFDL tal como se indica a continuación:
- encoding: {dfdl:encoding}
- byteOrder: {dfdl:byteOrder}
- binaryFloatRep: {dfdl:binaryFloatRep}
Estos valores
permiten al analizador DFDL interpretar correctamente los datos utilizando la información
de codificación que el intermediario obtiene para una instancia de mensaje individual,
por ejemplo de las cabeceras de transporte en un mensaje de entrada. Asimismo,
estos valores aseguran que los datos de corriente de bits se codifiquen de acuerdo
con los valores definidos en las propiedades de intermediario, cuando el serializador
DFDL procese los datos.