Elementos XMLNSC vacíos y valores nulos

En los documentos XML aparecen con frecuencia elementos vacíos y valores nulos.

Un flujo de mensajes potente debe poder reconocer y manejar los elementos vacíos y los valores nulos. Del mismo modo, los elementos de un árbol de mensajes pueden tener un valor nulo, un valor vacío o ningún valor. En este tema se explica cómo se analizan y se escriben estos valores en el dominio XMLNSC. Para obtener detalles sobre el proceso de valores nulos en correlaciones de datos gráficas y ESQL, consulte Manejo de valores nulos.

Análisis

Descripción Entrada XML analizada por XMLNSC Valor del 'elemento' en el árbol de mensajes
Valor de elemento vacío <element/> Serie vacía
Valor de elemento vacío <element></element> Serie vacía
Carpeta con elementos hijo <element><childElement/></element> Sin valor
Valor de elemento Nil <element xsi:nil="true"/> Sin valor y un atributo hijo xsi:nil con el valor 'true'.

Los dos formatos de un elemento vacío dan como resultado el mismo valor en el árbol de mensajes.

Escritura

Descripción Valor del 'elemento' en el árbol de mensajes Salida XML del analizador XMLNSC
Valor de elemento vacío Serie vacía <element/>
Valor de elemento nulo NULL <element/>
Carpeta con elementos hijo Sin valor <element><childElement/></element>
Valor de elemento Nil serie vacía, NULL, o carpeta <element xsi:nil="true"/>

Fíjese que el analizador XMLNSC solamente produce atributos xsi:nil que ya se encuentran en el árbol de mensajes. No genera automáticamente atributos xsi:nil para todos los elementos del árbol de mensajes que tienen un valor NULL y son 'nillables'.

Elementos vacíos

Un elemento vacío puede tener dos formatos en un documento XML:
- <element/>
- <element></element>

El analizador XMLNSC trata los dos formatos del mismo modo. El elemento se añade al árbol de mensajes con un valor de “” (la serie vacía).

Cuando el árbol de mensajes es producido por un analizador XMLNSC, siempre utiliza el primer formulario para elementos que tiene un valor "" (serie vacía) en el mensaje XML de entrada.

Elementos con un atributo xsi:nil

Si está habilitada la validación en el flujo, el analizador xmlnsc realiza las verificaciones siguientes:

  • La propiedad 'nulos' de una definición de elemento en el esquema XML se establece en' True '.

    Si el elemento del documento tiene un atributo xsi:nil con el valor 'true', el elemento no debe tener un valor o contener ningún elemento hijo.

  • La propiedad 'nulos' de una definición de elemento en el esquema XML se establece en' false '.

    El elemento del documento de entrada no debe tener un atributo xsi:nil .

Si un elemento del documento de entrada tiene una atributo xsi:nil, el analizador XMLNSC crea un elemento en el árbol de mensajes sin valor, y un atributo xsi:nil hijo con el valor 'true' o 'false'.

Cuando un árbol de mensajes está escrito a una secuencia de bits por el analizador XMLNSC, si el valor del elemento esta vacío, NULL, o sin valor y el elemento no tiene ningún elemento hijo, el elemento se escribe <element/>. Si el elemento tiene un atributo xsi:nil , se escribe exactamente igual que cualquier otro atributo.

Fíjese que el analizador XMLNSC solamente produce atributos xsi:nil que ya se encuentran en el árbol de mensajes. No genera automáticamente atributos xsi:nil para todos los elementos del árbol de mensajes que tienen un valor NULL y son 'nillables'.