El analizador XML y los valores nulos

Este tema describe cómo maneja el analizador XML los nulos explícitos.

El dominio XML no tiene el concepto de un valor nulo en la corriente de bits de mensajes. No hay ninguna secuencia de bytes en un mensaje XML que lleve a un valor nulo explícito que el analizador XML crea en el árbol de mensaje. Aunque el analizador no crea un campo de árbol de mensaje con un valor nulo explícito, puede codificar ESQL dentro de un flujo de mensajes que cree un campo de esta forma.

Cuando el analizador XML crea una nueva corriente de bits de mensaje a partir del árbol de mensaje, puede encontrar valores nulos explícitos y debe poder manejarlos. En esta situación, un valor nulo explícito se interpreta como "sin caracteres para grabar" y el campo se crea como códigos vacíos.

En el dominio XML, hay varios valores que llevan a escribir códigos vacíos XML en el mensaje XML de salida:

Cuando ya se han escrito como códigos vacíos en un mensaje XML, se este mensaje se analiza, no es posible distinguir entre estos tres casos. Cuando se analizan códigos vacíos en XML, se crea un campo de árbol de mensaje XML que no tiene ningún valor. Esto es distinto de un campo de árbol de mensaje que contenga un valor nulo explícito o uno que contenga una serie de longitud cero.

Aunque el analizador XML resuelve estos tres valores de campo de árbol de mensaje distintos en el mismo resultado en la corriente de bits del mensaje, otras operaciones de árbol de mensaje pueden distinguir entre ellos. Aunque el analizador XML no crea campos que contengan nulos explícitos ni series de longitud cero, puede realizar operaciones en flujos de mensajes que sí pueden.

Por consiguiente, si un flujo de mensajes está procesando mensajes en el dominio XML, el ESQL o Java debe distinguir entre un valor de nulo explícito, una serie de longitud cero y un campo de árbol de mensaje que no tiene ningún valor. No se considera un nulo ni un campo que contenga el valor nulo explícito, cuando codifica ESQL para consultar el valor del elemento.

El proceso de escritura XML puede manejar esta condición, pero otras operaciones dentro de ESQL no lo tratan como un valor nulo. El dominio XML no tiene el concepto de nulo y el analizador nunca crea un campo que contenga un valor nulo explícito. Puesto que el dominio XML es un dominio basado en caracteres, cuando se consulta el valor de un campo, devuelve el resultado como un campo de caracteres. Si crea un campo de árbol de mensaje XML con un valor nulo explícito, esto no aparece como un valor nulo para esas rutinas ESQL que obtienen el valor del campo de árbol de mensaje.

Lo que se devuelve es la representación de caracteres del contenido del campo, que en este caso es la serie de caracteres 'NULL'. Por ejemplo, si efectúa comparaciones con IS NULL, nunca tendrá el valor TRUE. Si copia este campo de árbol de mensaje a otro árbol de mensaje, el campo de árbol de mensaje destino se rellena con la serie de caracteres 'NULL'.

Conceptos relacionados
Visión general de ESQL
Estructura del árbol lógico
Nombres de correlaciones
Tareas relacionadas
Diseñar un flujo de mensajes
Desarrollo de ESQL
Desarrollo de Java
Manipular el contenido del cuerpo del mensaje
Manipular mensajes en el dominio XML
Referencia relacionada
Nodos incorporados
Construcciones XML
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ac00605_