Altova MapForce 2024 Basic Edition

En esta sección explicamos cómo se ocupa MapForce de los valores NULL en los componente de origen y de destino. Para poder usar el atributo xsi:nil="true" en un archivo XML debe especificar el atributo nillable="true» en los elementos relevantes del archivo de esquema correspondiente. Para saber más sobre los atributos nillable y xsi:nil consulte la especificación del W3C. Observe que el atributo xsi:nil no es visible en la estructura de los componentes del panel Asignación.

 

A continuación explicamos algunos casos de uso de los valores NULL en asignaciones.

 

Valores NULL en componentes XML

En esta subsección vamos a ver algunos ejemplos de casos de uso de elementos de asignación que tienen un atributo xsi:nil="true".

 

Sólo el elemento de origen tiene xsi:nil="true"/Tanto el elemento de origen como el de destino tienen xsi:nil="true"

En este caso las condiciones son:

 

La conexión está basada en destino.

El elemento de origen es un atributo xsi:nil="true". El elemento de destino correspondiente no tiene este atributo.

También es posible que los dos elementos, el de origen y el de destino, tengan atributos xsi:nil="true".

Los atributos nillable="true" se deben definir en los esquemas de origen y de destino,

Los elementos de origen y de destino son de tipo simple.

 

En este caso, el elemento de destino tendrá el atributo xsi:nil="true" en el archivo de salida, como se ve en el archivo de resultados de más abajo (resaltado en amarillo).

 

<book id="7">

 <author>Edgar Allan Poe</author>

 <title>The Murders in the Rue Morgue</title>

 <category xsi:nil="true"/>

 <year>1841</year>

 <OrderID id="213"/>

</book>

 

Nota:Si el atributo nillable="true" no está definido en el esquema de destino, el elemento de destino correspondiente estará vacío en el resultado.

 

Sólo el elemento de destino tiene xsi:nil="true»

En este caso las condiciones son:

 

La conexión está basada en destino.

El elemento de origen no tiene un atributo xsi:nil="true".

El elemento de destino correspondiente tiene un atributo xsi:nil="true".

Los elementos de origen y de destino pueden ser de tipo simple o complejo.

 

En este caso el elemento de origen sobrescribirá el elemento de destino que contiene el atributo xsi:nil="true". En el ejemplo siguiente puede ver un archivo de resultados de ejemplo. El elemento <genre> incluye el atributo xsi:nil="true" en el elemento de destino. Sin embargo, este elemento se sobrescribe en tiempo de ejecución, por lo que el elemento <genre> (resaltado en amarillo) tiene Fiction en el resultado.

 

<publication>

 <id>1</id>

 <author>Mark Twain</author>

 <title>The Adventures of Tom Sawyer</title>

 <genre>Fiction</genre>

 <year>1876</year>

 <OrderID id="124"/>

</publication>

 

El elemento de tipo complejo de origen/los dos elementos de tipo complejo tienen xsi:nil="true"

En este caso las condiciones son:

 

La conexión está basada en destino.

El elemento de origen es de tipo complejo. En este ejemplo el elemento de origen tiene un atributo id="213" y un atributo xsi:nil="true». El elemento de destino correspondiente también es de tipo complejo y tiene un atributo id="124", pero no un atributo xsi:nil="true».

También puede ser que los dos elementos, el de origen y el de destino, que son de tipo complejo, tengan atributos xsi:nil="true».

 

En este caso el elemento de origen sobrescribirá el elemento de destino (resaltado en amarillo). Sin embargo, el atributo xsi:nil="true" no se escribe automáticamente en el archivo de salida. Para ver el atributo xsi:nil="true" en el elemento de destio del archivo de resultados use una conexión de copia total.

 

<book id="7">

 <author>Edgar Allan Poe</author>

 <title>The Murders in the Rue Morgue</title>

 <year>1841</year>

 <OrderID id="213"/>

</book>

 

Funciones útiles

Estas funciones sirven para comprobar, reemplazar y asignar valores NULL:

 

is-xsi-nil: Ayuda a comprobar de forma explícita si un elemento de origen tiene el atributo xsi:nil definido como true.

substitute-missing: Sustituye un valor NULL en el elemento de origen con algo específico.

set-xsi-nil: Asigna el elemento xsi:nil="true" a un elemento de destino. Esto funciona con elementos de destino de tipo simple y complejo.

substitute-missing-with-xsi-nil: Si hay contenido, este se escribe en el elemento de destino; si falta algún valor, esta función produce un elemento de destino con el atributo xsi:nil="true» en el resultado.

Si conecta la función exists a un elemento de origen con un valor NULL devuelve true aunque el elemento no tenga contenido.

 

Observe que las funciones que generan xsi:nil no pueden pasar a través de funciones o componentes que sólo operan en valores (como la función if-else).

 

© 2018-2024 Altova GmbH