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 mensaje 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.
Descripción | Entrada XML analizada por XMLNSC | Valor del 'elemento' en el árbol de mensaje |
---|---|---|
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"/> | No hay ningún valor y un atributo xsi:nil hijo con el valor 'true'. |
Tenga en cuenta que los dos formatos de un elemento vacío dan como resultado el mismo valor en el árbol de mensaje.
Descripción | Valor del 'elemento' en el árbol de mensaje | 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"/> Tenga en cuenta que el analizador XMLNSC sólo genera atributos xsi:nil que ya están en el árbol de mensajes. No genera automáticamente atributos xsi:nil para todos los elementos del árbol de mensaje que tienen el valor NULL y tienen establecido 'nulos permitidos'. |
- <element/>
- <element></element>
El analizador XMLNSC trata los dos formatos del mismo modo. El elemento se añade al árbol de mensaje con un valor "" (la serie vacía).
Cuando el analizador XMLNSC genera un árbol de mensaje, siempre utiliza el primer formato para los elementos que tienen un valor "" (la serie vacía).
Si se ha habilitado validación para el flujo, el analizador XMLNSC realiza las validaciones siguientes:
Si el elemento del documento tiene un atributo xsi:nil con el valor 'true', el elemento no debe tener ningún valor ni contener elementos hijo.
El elemento del documento de entrada no debe tener ningún atributo xsi:nil.
Si un elemento del documento de entrada tiene un atributo xsi:nil, el analizador XMLNSC crea un elemento en el árbol de mensaje sin ningún valor y un atributo xsi:nil hijo con el valor 'true' o 'false' según corresponda.
Si el analizador XMLNSC escribe un árbol de mensaje en una corriente de bits, si el valor del elemento está vacío, es NULL o no hay ningún valor y el elemento no tiene ningún elemento hijo, el elemento se escribe como <element/>. Si el elemento tiene un atributo xsi:nil, se escribe exactamente como cualquier otro atributo.
Tenga en cuenta que el analizador XMLNSC sólo genera atributos xsi:nil que ya están en el árbol de mensajes. No genera automáticamente atributos xsi:nil para todos los elementos del árbol de mensaje que tienen el valor NULL y tienen establecido 'nulos permitidos'.