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

Manejo de valores nulos

Un mensaje empresarial puede contener campos que estén vacíos o que tengan un valor específico fuera de rango. En estos casos, se espera que la aplicación que recibe el mensaje trate el campo como si no tuviera un valor. El árbol de mensaje lógico da soporte a este concepto permitiendo que el valor de cualquier elemento se establezca en NULL.

Formas de representar un valor nulo.

En un documento XML, el modo normal de representar un valor nulo es dejar el elemento o el atributo vacío.

Por ejemplo:<price></price> o <element price=""/>

El atributo xsi:nil proporciona una forma de que esto sea más explícito: price=<xsi:nil="true"/>

Algunos mensajes empresariales utilizan un valor especial para representar un valor nulo: <price>-999</price>. Este estilo de representación sólo está soportado por los analizadores DFDL y MRM.

Soporte de analizador DFDL para valores nulos

El analizador DFDL puede detectar un valor nulo que esté representado por un valor fuera de rango. El valor nulo debe especificarse en el esquema DFDL y puede ser igual o diferente para cada elemento. En DFDL se denomina valor nulo. Al realizar el análisis, el analizador DFDL comprueba el valor nulo para cada elemento del mensaje. Si el valor de la corriente de bits coincide con el valor nulo en el esquema DFDL, el analizador DFDL establece el valor del árbol de mensaje en NULL. Se realiza la misma comprobación cuando se convierte un árbol de mensaje en una corriente de bits. Si el valor del árbol de mensaje es NULL, el analizador genera el valor nulo del esquema DFDL.

Para obtener más información, consulte Especificación DFDL 1.0, sección 13.15.

Soporte de correlacionador de datos gráficos para valores nulos

Utilice las funciones XPath siguientes para implementar el proceso condicional para el valor NULL XML:
  • fn:empty prueba si un elemento tiene un valor vacío. El valor NULL del árbol de datos lógicos se considera como vacío.
  • fn:nilled prueba si un elemento XML tiene establecido el atributo xsi:nil.
  • fn:exists prueba si está presente un elemento. Un elemento XML que tiene establecido el atributo xsi:nil se considera como presente.
Al correlacionar valores nulos, tenga en cuenta el comportamiento siguiente:
  • Si se correlaciona un valor NULL del árbol lógico de datos de una entrada con una salida se genera un elemento de salida con un valor vacío. Si el elemento está definido con nulos permitidos en el modelo, se genera un elemento de salida vacío con el atributo xsi:nil establecido. Se genera el mismo efecto cuando un elemento de salida se establece llamando a una función ESQL personalizada que devuelve el valor ESQL NULL.
  • Si se utiliza fn:nilled para un elemento no XML, por ejemplo un elemento de valor nulo en un mensaje DFDL, fn:nilled devolverá true si el valor del elemento se ha establecido en NULL.
  • Si se utiliza una transformación Move para copiar un elemento XML de entrada que tiene establecido un atributo xsi:nil, en un elemento XML de salida que está definido con nulos permitidos en el esquema, se genera un elemento XML de salida con el atributo xsi:nil establecido.
  • Si se utiliza una transformación Move para copiar un elemento de entrada que tiene un valor NULL en un elemento de salida, se establece un elemento de salida con un valor vacío.
  • Si utiliza una transformación Move para copiar un elemento de entrada no XML en un elemento de salida XML que está definido con nulos permitidos en el esquema, el elemento XML de salida también tiene el atributo xsi:nil establecido.

Soporte de ESQL para valores nulos

Utilizando ESQL, puede establecer el valor de un elemento de árbol de mensajes en NULL:

SET OutputRoot.XMLNSC.myField VALUE = NULL;

Tenga en cuenta que esto es diferente de SET OutputRoot.XMLNSC.myField = NULL; que haría que myField se suprimiera del árbol de mensaje.

Se puede lograr el mismo efecto utilizando Java.

Soporte de analizador XMLNSC para valores nulos

Normalmente, los analizadores XML (XMLNSC, XMLNS y XML) no crean valores nulos en el árbol de mensaje; un valor de elemento vacío o de atributo vacío simplemente genera un valor de serie vacía en el árbol de mensaje.

Si la validación está habilitada, el analizador XMLNSC detecta y procesa cualquier atributo xsi:nil en el documento de entrada. Si el atributo xsi:nil está establecido en 'true', y el elemento puede tener un valor nulo, el elemento padre del atributo en el árbol de mensaje recibe un valor nulo.

Si desea obtener más información sobre el soporte del analizador XML para los elementos vacíos y los valores nulos, consulte Elementos vacíos y valores nulos XMLNSC y Elementos vacíos y valores nulos XMLNS.

Soporte de analizador MRM para valores nulos

Formato físico XML

Al realizar el análisis, el analizador MRM XML puede detectar y procesar los atributos xsi:nil en el documento XML de entrada. Si el atributo xsi:nil está establecido en 'true', y el elemento puede tener un valor nulo, el elemento padre del atributo en el árbol de mensaje recibe un valor nulo.

Si desea obtener información sobre la habilitación del soporte xsi:nil en el analizador MRM, consulte Conjuntos de mensajes: opciones de manejo de nulos XML.

Los temas siguientes proporcionan más información sobre el manejo de valores nulos en el analizador MRM:

Todos los formatos físicos

El analizador MRM puede detectar un valor nulo que esté representado por un valor fuera de rango. El valor nulo debe especificarse en el formato físico del conjunto de mensajes.

Al realizar el análisis, el analizador MRM comprueba el valor nulo de cada elemento en el mensaje. Si el valor de la corriente de bits coincide con el valor nulo en el conjunto de mensajes, el analizador MRM establece el valor en el árbol de mensaje en NULL.

Se realiza la misma comprobación cuando se convierte un árbol de mensaje en una corriente de bits. Si el valor del árbol de mensaje es NULL, el analizador MRM genera el valor nulo del conjunto de mensajes.

Soporte de analizador JSON para valores nulos

El formato JSON admite NULL como un tipo de valor JSON.

Cuando un mensaje JSON incluye un objeto con un valor nulo, el analizador JSON establece el valor en el árbol de mensaje en NULL.

Al serializar un elemento del árbol de mensaje con un valor nulo, la corriente de bits JSON se construye como un objeto JSON con un valor de null.

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:59:04


Tema de conceptoTema de concepto | Versión 8.0.0.5 | ac70560_