Altova MapForce 2024 Basic Edition

Cette section décrit comment MapForce gère les valeurs NULL dans les composants source et cible. Pour pouvoir utiliser l’attribut xsi:nil="true" dans votre fichier XML, vous devez spécifier l’attribut nillable="true" pour les élément(s) dans votre fichier de schéma. Pour en savoir plus sur les attributs nillable et xsi:nil, voir la spécification W3C. Notez que l’attribut xsi:nil n’est pas visible dans une arborescence de composant dans le volet Mappage.

 

Les sous-sections ci-dessous illustrent quelques scénarios possibles de valeurs NULL de mappage.

 

Valeurs NULL dans les composants XML

Cette sous-section décrit quelques uns des scénarios possibles de mappage des éléments avec un attribut xsi:nil="true".

 

Uniquement l’élément source a xsi:nil="true"/Les deux éléments source et cible ont xsi:nil="true"

Ce scénario a les conditions suivantes :

 

La connexion est target-driven.

L’élément source a un attribut xsi:nil="true". L’élément cible correspondant n’a pas cet attribut.

En alternative, les deux éléments source et cible peuvent avoir les attributs xsi:nil="true".

Les attributs nillable="true" doivent être définis dans les schémas source et cible.

Les éléments source et cible sont de type simple.

 

Dans ce cas, l’élément cible aura l’attribut xsi:nil="true" dans le fichier de sortie, tel qu’affiché dans le modèle de fichier de sortie ci-dessous (en surbrillance jaune).

 

<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"/>

</books>

 

Note :si l’attribut nillable="true" n’est pas défini dans le schéma cible, l’élément cible correspondant sera vide dans la sortie.

 

Seul l’élément cible a xsi:nil="true"

Ce scénario a les conditions suivantes :

 

La connexion est target-driven.

L’élément source n’a pas d’attribut xsi:nil="true".

L’élément cible correspondant a un attribut xsi:nil="true".

L’élément source et cible peut être de type simple ou complexe.

 

Dans ce cas, l’élément source écrasera l’élément cible contenant l’attribut xsi:nil="true". L’exemple ci-dessous montre un modèle de fichier de sortie. L’élément <genre> inclut l’attribut xsi:nil="true" dans l’élément cible. Toutefois, cet élément a été écrasé lors de l’exécution de mappage. Pour cette raison, l’élément <genre> (en surbrillance jaune) a Fiction dans la sortie.

 

</publication>

 <id>1</id>

 <author>Mark Twain</author>

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

 <Genre>Rock</Genre>

 <year>1876</year>

 <OrderID id="124"/>

</publication>

 

L’élément source Complex-type/les éléments complex-type ont xsi:nil="true"

Ce scénario a les conditions suivantes :

 

La connexion est target-driven.

L’élément source est de type complexe. Dans notre exemple, l’élément source a un attribut id="213" et un attribut xsi:nil="true". L’élément cible correspondant est de type complexe et a un attribut id="124" , mais n’a pas d’attribut xsi:nil="true".

En alternative, les éléments source et cible, dont les deux sont de type complexe, peuvent avoir des attributs xsi:nil="true".

 

Dans ce cas, l’élément source écrasera l’élément cible (en surbrillance jaune ci-dessous. Toutefois, l’attribut xsi:nil="true" ne sera pas écrit dans le fichier de sortie automatiquement. Pour voir l’attribut xsi:nil="true" dans l’élément cible dans le fichier de sortie, utilisez la connexion copy-all.

 

<book id="7">

 <author>Edgar Allan Poe</author>

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

 <year>1841</year>

 <OrderID id="213"/>

</books>

 

Fonctions utiles

Les fonctions suivantes pourraient vous aider à vérifier, remplacer et assigner les valeurs NULL :

 

is-xsi-nil : Aide à vérifier explicitement si un élément source a un attribut xsi:nil définit à true.

substitute-missing : Substitue une valeur NULL dans l’élément source avec quelque chose de spécifique.

set-xsi-nil : Assigne l’attribut xsi:nil="true » à un élément cible. Ceci fonctionne pour les éléments cible de types simple et complexe.

substitute-missing-with-xsi-nil : S’il y a un contenu, il sera écrit à l’élément cible ; s’il y a des valeurs qui manquent, utilisez cette fonction résultera en élément cible avec un attribut xsi:nil="true" dans la sortie.

Connecter une fonction exists à un élément source avec une valeur NULL retourne true, même si l’élément n’a pas de contenu.

 

Veuillez noter que les fonctions qui génèrent xsi:nil ne peuvent pas être passées par les fonctions ou composants qui opèrent uniquement sur des valeurs (telles que la fonction if-else).

 

© 2018-2024 Altova GmbH