Cloud Software Group, Inc. EBX®
Documentation > Guide utilisateur > Jeux de données > Services d'import et d'export
Mode navigation Documentation > Guide utilisateur > Jeux de données > Services d'import et d'export

# Import et export XML

## Introduction

L'import et l'export XML des tables s'effectuent via l'interface utilisateur à partir du menu 'Actions' de l'espace de travail.

L'import et l'export sont réalisés dans le contexte d'un jeu de données.

L'import et l'export peuvent aussi être réalisés programmatiquement.

Les valeurs par défaut des options peuvent être définies dans 'Administration', sous Interface utilisateur > Configuration de l'interface graphique > Valeurs par défaut des options > Import / Export.

## Imports

##### Attention

Les documents XML importés doivent être encodés selon la norme UTF-8 et leur structure doit respecter le modèle de données du jeu de données cible.

### Mode d'import

Lors de l'import d'un fichier XML, il est nécessaire de spécifier un des modes d'import suivants, qui déterminera la façon dont la procédure d'import gère les enregistrements source.

Insertion seulement | Seule la création d'enregistrement est autorisée. Si un enregistrement avec la même clé primaire existe dans la table, une erreur se produit et l'opération est annulée.
Mise à jour seulement | Seule la mise à jour d'enregistrement est autorisée. Si un enregistrement avec la même clé primaire n'existe pas dans la table, une erreur se produit et l'opération est annulée.
Mise à jour ou insertion | Si un enregistrement avec la même clé primaire existe dans la table, il est mis à jour ; sinon, il est créé.
Remplacement (synchronisation) | Si un enregistrement avec la même clé primaire existe dans la table cible, celui-ci est mis à jour ; sinon, un nouvel enregistrement est créé. D'autre part, si un enregistrement n'est plus présent dans la source, il est supprimé.

### Opérations d'insertion et de mise à jour

Le mode 'by delta' permet d'ignorer les éléments du modèle de données qui manquent dans le document XML source. Ce mode peut être activé via les services de données ou l'API Java. Le tableau suivant résume le comportement des opérations d'insertion et de mise à jour lorsque les éléments sont absents du document source.

Voir les opérations des services de données mise à jour et insertion, ainsi que `ImportSpec.setByDelta` dans l'API Java pour plus d'informations.

État dans le document XML source | Comportement
--- | ---
L'élément n'existe pas dans le document source | Si le mode 'by delta' est désactivé (par défaut) : Le champ cible prend une des valeurs suivantes : Si l'élément définit une valeur par défaut, le champ cible prend cette valeur par défaut. Si l'élément est d'un type autre que chaîne de caractères ou liste, le champ cible prend la valeur `null`. Si l'élément est une liste agrégée, la valeur du champ cible prend la valeur d'une liste vide. Si l'élément est une chaîne qui différencie `null` d'une chaîne de caractères vide, la valeur du champ cible prend la valeur `null`. S'il s'agit d'une chaîne qui ne fait pas la différence entre les deux, une chaîne vide. Si l'élément (simple ou complexe) est caché dans services de données, la valeur cible reste inchangée. ##### Voir aussi Hiding a field in Data Services Note : L'utilisateur qui exécute l'import doit avoir les permissions nécessaires pour créer ou modifier la valeur du champ cible. Autrement, la valeur restera inchangée. Si le mode 'by delta' a été activé au travers des services de données ou de l'API Java : Pour l'opération `update`, la valeur de champ reste inchangée. Pour l'opération `insert`, le comportement est le même que lorsque le mode `byDelta` est désactivé.
L'élément existe tout en étant vide (par exemple, `<fieldA/>`) | Pour des nœuds de type `xs:string` (ou un de ses sous-types), le champ cible prend la valeur `null` s'il distingue `null` d'une chaîne vide. Autrement, la valeur est une chaîne vide. Pour les types de nœuds non`xs:string`, une exception est lancée conformément au XML Schema. ##### Voir aussi TIBCO EBX® whitespace management for data types
L'élément est présent et de valeur `null` (par exemple, `<fieldA xsi:nil="true"/>`) | Le champ cible prend toujours la valeur `null` sauf dans le cas des listes, pour lesquelles il n'est pas supporté. Afin d'utiliser l'attribut `xsi:nil="true"`, il est nécessaire d'ajouter la déclaration du namespace `xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"`.

#### Met les valeurs manquantes à nul

Lors d'une mise à jour d'enregistrement existant, si un nœud est absent ou vide dans le fichier XML : si cette option est à "oui", il sera considéré comme nul. Si cette option est à "non", il ne sera pas modifié.

#### Ignorer les colonnes supplémentaires

Il peut arriver que le document XML contienne des éléments qui n'existent pas dans le modèle de données cible. Par défaut, dans ce genre de cas, la procédure d'import échouera. Cependant, il est possible d'autoriser les utilisateurs à lancer des procédures d'import qui ignoreront les colonnes supplémentaires définies dans les fichiers XML. Cela peut se définir dans les paramètres de configuration de l'assistant d'import XML. La valeur par défaut de ce paramètre peut être modifiée dans la configuration de l''Interface utilisateur' dans l'espace 'Administration'.

### Verrouillage optimiste

Si l'attribut technique `ebxd:lastTime` existe dans le fichier XML source, le mécanisme d'import réalise une vérification afin d'empêcher une opération de mise à jour sur un enregistrement qui pourrait avoir changé depuis la dernière lecture. Afin d'utiliser l'attribut `ebxd:lastTime`, i l est nécessaire d'ajouter la déclaration du namespace `xmlns:ebxd="urn:ebx-schemas:deployment_1.0"`. L'horodatage associé à l'enregistrement courant sera comparé à cet horodatage. S'ils sont différents, la mise à jour est rejetée.

## Exports

##### Note

Les documents XML exportés sont toujours encodés en UTF-8.

Lors d'un export au format XML, si des filtres sont appliqués à la table, seuls les enregistrements correspondant au filtre seront inclus.

Les options d'export XML sont les suivantes :

Nom du fichier de téléchargement | Spécifie le nom du fichier XML à exporter. Ce champ est pré-rempli avec le nom de la table source des enregistrements.
Mode convivial | Indique si les valeurs doivent être présentées de façon conviviale pour l'utilisateur ou sous leur forme brute (format XML standard). En mode convivial, les dates et les nombres sont formatés selon la région de l'utilisateur, les clés étrangères et valeurs énumérées présentent les libellés associés, etc. Note: Si cette option est sélectionnée, le fichier exporté ne pourra pas être ré-importé.
Inclure les données techniques | Indique si des données techniques internes seront incluses dans l'export. Note: Si cette option est sélectionnée, le fichier exporté ne pourra pas être ré-importé.
Indenté | Spécifie si le fichier doit être indenté pour améliorer sa lisibilité par un humain.
Enlever le commentaire XML | Spécifie si le commentaire XML généré qui décrit la localisation des données et la date d'export doit être enlevé.

## Gestion des valeurs de champ

### Date, heure & format dateTime

Les formats de date et d'heure suivants sont supportés :

Type | Format | Exemple
--- | --- | ---
xs:date | aaaa-MM-jj | 2007-12-31
xs:time | HH:mm:ss ou HH:mm:ss.SSS | 11:55:00
xs:dateTime | aaaa-MM-jjTHH:mm:ss ou aaaa-MM-jjTHH:mm:ss.SSS | 2007-12-31T11:55:00

## Limitations connues

### Champs d'association

Les services d'import et d'export XML ne supportent pas les valeurs d'association.

L'export de ces champs ne causera aucune erreur, cependant, aucune valeur ne sera exportée.

L'import de ces champs causera une erreur et la procédure d'import échouera.

### Nœuds de sélection

Les services d'import et d'export XML ne supportent pas les valeurs de sélection.

L'export de ces champs ne causera aucune erreur, cependant, aucune valeur ne sera exportée.

L'import de ces champs causera une erreur et la procédure d'import échouera.

Documentation > Guide utilisateur > Jeux de données > Services d'import et d'export