WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Cómo trabajar con datos binarios

Si necesita incluir datos binarios o caracteres no válidos en los documentos XML, el método más seguro es codificar los datos como una serie binaria.

Codificaciones binarias para XML

Hay dos métodos de codificación de datos binarios en un documento XML.
hexBinary:	<nonXMLChars>0001020304050607080B0C0E0F</nonXMLChars>

base64Binary:	<nonXMLChars>AAECAwQFBgcICwwODw==</nonXMLChars>

La codificación base64Binary hace mejor uso de los caracteres XML disponibles, y de promedio, un campo binario codificado en base64 tiene como tamaño 2/3 del tamaño de su equivalente hexBinary. El formato MIME y diversos estándares basados en XML utilizan ampliamente Base64Binary.

Tal vez preferiría utilizar la codificación hexBinary más sencilla, si envía datos a aplicaciones que no pueden descodificar datos base64, y si el aumento en el tamaño de mensajes no es importante.

Análisis de datos binarios

El modo más sencillo y claro de analizar cualquier dato binario es utilizar el analizador XMLNSC con un modelo de mensaje:
  1. Localice o construya un Esquema XLM que describa el XML de entrada.
  2. En el flujo de mensajes, establezca las propiedades del nodo del modo siguiente:
    • En la página Valor predeterminado, establezca Dominio de mensajes en XMLNSC.
    • En la página Validación, establezca Validación en Contenido y valor.
    • En las propiedades XMLNSC, seleccione la opción de recuadro de selección Crear árbol utilizando los tipos de datos de esquema XML.

Automáticamente, el analizador XMLNSC descodifica los datos hexBinary o base64Binary, guiándose por el tipo simple del elemento o atributo que contiene los datos binarios. El árbol de mensaje contendrá el valor BLOB descodificado.

Si utiliza el dominio XMLNS, deberá analizar los datos binarios como una serie. Aparece en el árbol de mensaje como un valor CHARACTER. Si los datos se codifican como hexBinary, puede utilizar la función ESQL CAST para convertirlos en un valor BLOB. Si los datos están condificados como base64Binary, el enfoque más fácil es utilizan la función BASE64DECODE. Para obtener más información, consulte Función BASE64DECODE.

Generación de datos binarios

Puede generar datos binarios en el XML de salida en codificación hexBinary o base64Binary.

Para hexBinary, utilice la sentencia ESQL para convertir los datos BLOB en una serie hexBinary.

Para base64Binary, dispone de dos opciones:
  • Llamar a la función BASE64ENCODE. Para obtener más información, consulte Función BASE64ENCODE.
  • Utilizar el analizador XMLNSC y modificar el campo de tipo en el elemento de la sintaxis, tal como se muestra en este ejemplo:
    -- Código ESQL para generar datos binarios codificados en base64
    DECLARE myBLOB BLOB;
    -- Llenar myBLOB con datos binarios
    CREATE LASTCHILD OF OutputRoot.XMLNSC.message
           TYPE BITOR(XMLNSC.Attribute, XMLNSC.base64Binary)
           NAME myBase64Element
           VALUE myBLOB; 

    Tenga en cuenta que si establece el tipo de campo en XMLNSC.base64Binary no cambiará el valor lógico en el árbol de mensajes. En el flujo de mensajes, sigue siendo un BLOB, y si solicita su representación de serie, ésta se notifica como una serie hexBinary. Sin embargo, cuando un árbol de mensajes se convierte en una corriente de bits (en un nodo de salida, o mediante una llamada a ASBITSTREAM), la conversión base64 se realiza de forma automática, y el XML de salida contiene la serie base64 correcta.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

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

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:58:55


Tema de tareaTema de tarea | Versión 8.0.0.5 | ac67173_