El formato físico XML soporta el manejo de valores nulos en los
mensajes. Las propiedades Codificación de nulo para XML se establecen únicamente en el conjunto de mensajes y se aplican a todos los objetos definidos en el conjunto de mensajes.
Puede utilizar las siguientes dos propiedades para representar la codificación numérica o no numérica para NULL en el formato físico XML:
- Codificación de nulo numérico
- Codificación de nulo no numérico
Estas representan la codificación numérica y no numérica para NULL respectivamente.
- Los tipos de datos numéricos son:
- Tipos de esquema decimales: decimal, integer, negativeInteger,
nonNegativeInteger, nonPositiveInteger, positiveInteger
- Tipos
de esquema flotantes: double, float
- Tipos de esquema de entero:
byte, int, long, short, unsignedByte, unsignedInt, unsignedLong, unsignedShort
- Los tipos de datos no numéricos son:
- Tipos de esquema binarios: base64Binary, hexBinary
- Tipos de esquema booleanos: Boolean
- Tipos de esquema
de fecha y hora: date, dateTime, gDay, gMonth, gMonthDay, gYear, gYearMonth,
time
- Tipos de esquema de serie de caracteres: anyURI, duration, ENTITIES, ENTITY, ID,
IDREF, IDREFS, language, Name, NCName, NMTOKEN, NMTOKENS, normalizedString,
NOTATION, QName, string, token
Cada una de estas codificaciones tiene los valores enumerados siguientes:
- NULLEmpty (valor por omisión)
- NULLValue
- NULLXMLSchema
- NULLValueAttribute
- NULLAttribute (obsoleto)
- NULLElement (obsoleto)
No tiene que proporcionar información adicional
para NULLEmpty, NULLXMLSchema y NULLValueAttribute,
pero si selecciona NULLValue, NULLAttribute o NULLElement,
debe definir valores adicionales para asignarlos de modo que represente la condición NULL
en las propiedades de conjunto de mensajes Valor de codificación de nulo numérico y Valor de codificación de nulo no numérico.
La tabla siguiente muestra cómo funciona cada codificación. Para cada codificación, el XML de ejemplo hará que el elemento myElem tenga un valor NULL:
Notas: - Se utiliza el valor de Booleano verdadero.
- Sólo es válido para la devolución de elemento
XMLElementAttrVal, como se especifica
en el apartado Opciones de devolución de mensaje XML.
Este modo de devolución de un elemento y el establecimiento del mismo en nulo equivalen
a eliminar el atributo del elemento que ha detallado el valor del elemento.
- Sólo es válido para la devolución de elemento
XMLElementAttrIdVal, como se
especifica en el apartado Opciones de devolución de mensaje XML.
Este modo de devolución de un elemento y el establecimiento del mismo en nulo equivalen
a eliminar el atributo del elemento que ha detallado el valor del elemento, pero
no eliminar el id de atributo.
Codificación de nulo numérico
Codificación de nulo no numérico
|
Valor de codificación de nulo numérico
Valor de codificación de nulo no numérico
|
XML de ejemplo |
NULLEmpty |
|
<myElem/>
<myElem></myElem>
|
NULLValue |
zzz |
<myElem>zzz</myElem> |
NULLXMLSchema |
|
<myElem xsi:nil='true'/>1 |
NULLValueAttribute |
|
<myElem></myElem>2
<parent id="myElem"></parent>3
|
NULLElement |
null4 |
<myElem><null/></myElem> |
NULLAttribute |
null4 |
<myElem null='true'/>1 |
Notas: - El atributo se debe evaluar en true, por lo tanto, el valor debe ser "true", "1" o
la propiedad Valor booleano verdadero.
- Sólo es válido para la devolución de elemento
XMLElementAttrVal, como se especifica
en el apartado Opciones de devolución de mensaje XML.
Marcar un elemento como devuelto de este modo y establecerlo en nulo es equivalente a suprimir el atributo del elemento que proporciona el valor del elemento.
- Sólo es válido para la devolución de elemento
XMLElementAttrIdVal, como se
especifica en el apartado Opciones de devolución de mensaje XML.
Marcar un elemento como devuelto de este modo y establecerlo en nulo es equivalente a suprimir el atributo del elemento que proporciona el valor del elemento pero sin suprimir el atributo que proporciona el nombre del elemento.
- Tanto NULLElement como NULLAttribute son obsoletos. El nombre del elemento o atributo proporcionado no debe incluir un URI de espacio de nombres o prefijo.
Si se habilitan los espacios de nombres para el conjunto de mensajes, entonces el nombre coincide con cualquier espacio de nombres.
No tiene que proporcionar ninguna clarificación adicional para
NULLEmpty y
NULLValAttr,
pero si selecciona NULLValue, NULLAttribute o
NULLElement,
deberá definir que se asignen valores adicionales para representar la condición NULL
en las propiedades de conjunto de mensajes
Valor de codificación de nulo numérico y
Valor de codificación de nulo no numérico
(consulte la tabla más arriba).