En este tema se describe cómo maneja el analizador XML los nulos explícitos.
El dominio XML no tiene ningún concepto de valor nulo en la corriente de bits del mensaje. En un mensaje XML no existe ninguna secuencia de bytes que induzca a que el analizador XML cree un valor nulo explícito en el árbol de mensajes. Aunque el analizador no crea un campo del árbol de mensajes con un valor nulo explícito, puede codificar ESQL en un flujo de mensajes que cree un campo con este formato.
Cuando el analizador XML construye una nueva corriente de bits de mensajes del árbol de mensajes, puede encontrar valores nulos explícitos y debe poder manejarlos. En esta situación, un valor nulo explícito se ve como "sin caracteres que escribir" y el campo se crea como los códigos vacíos.
En el dominio XML, existen varios valores que llevan a la escritura de códigos XML vacíos en el mensaje XML de salida:
Cuando se escriben como los códigos vacíos en un mensaje XML si, posteriormente, se analiza el mensaje XML, resulta imposible distinguir entre estos tres casos. Cuando los códigos vacíos se analizan en XML, se crea un árbol de mensajes XML que no contiene ningún valor, lo que difiere de un campo del árbol de mensajes que contenga un valor nulo explícito y de un campo que contenga una serie de caracteres de longitud cero.
Aunque el analizador XML resuelve estos tres valores de campos del árbol de mensajes distintos para el mismo resultado en la corriente de bits del mensaje, otras operaciones del árbol de mensajes pueden distinguirlos. Aunque el analizador XML no crea campos que contengan nulos explícitos y series de caracteres de longitud cero, se pueden realizar operaciones en los flujos de mensajes que sí lo permitan.
Por consiguiente, si un flujo de mensajes procesa mensajes en el dominio XML, ESQL debe distinguir entre un valor nulo explícito, una serie de caracteres de longitud cero y un campo del árbol de mensajes que no contenga ningún valor. Ni siquiera un campo que contenga el valor nulo explícito se considera como nulo cuando se codifica ESQL para consultar el valor del elemento.
El proceso de escritura de XML puede manejar esta condición, pero otras operaciones de ESQL no lo tratan como si fuera un valor nulo. El dominio XML no tiene ningún concepto de nulo y el analizador no crea nunca un campo que contenga un valor nulo explícito. Puesto que el dominio XML se basa en los caracteres, cuando se consulta el valor de un campo, devuelve el resultado como un campo de caracteres. Si crea un campo del árbol de mensajes XML con un valor nulo explícito, las rutina ESQL que obtienen el valor del campo del árbol de mensajes no lo consideran como un valor nulo.
Lo que se devuelve es la representación de los caracteres del contenido del campo que, en este caso es la serie de caracteres 'NULL'. Por ejemplo, si realiza este tipo de comparaciones con IS NULL, nunca se evalúan como un valor TRUE. Si copia este campo del árbol de mensajes en otro árbol de mensajes, el campo del árbol de mensajes de destino se llena con la serie de caracteres 'NULL'.
Conceptos relacionados
ESQL
Árbol lógico de mensajes
Nombres de correlación
Tareas relacionadas
Diseño de un flujo de mensajes
Desarrollo de ESQL
Manipular el contenido del cuerpo del mensaje
Manipulación de mensajes en el dominio XML
Referencia relacionada
Nodos incorporados
Construcciones XML
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ac00605_ |