Altova MapForce 2024 Enterprise Edition

Une source vers une cible

Accueil Préc Haut Suivant

Ce tutoriel décrit comment créer un mappage pour un des scénarios les plus basiques. Notre objectif est de transférer les données depuis un fichier XML avec un schéma XML A y assigné) et mettre ces données dans un fichier XML B (avec un schéma XML B y assigné). Les grandes lignes de notre méthode seront comme suit :

 

1.Puisque nous utilisons deux structures de données, nous allons créer deux composants (Source et Cible) dans notre conception de mappage.

2.Puisque la transformation d’un document en un autre est réalisée en utilisant un langage de transformation approprié langage de transformation, nous sélectionnons un langage de transformation.

3.Puis, nous allons mapper des nœuds en connectant un nœud source à un nœud cible désiré. Ce sont ces connexions qui constituent le mappage et déterminent quel nœud source correspond à quel nœud cible.

4.Le résultat du mappage nous permettra d’obtenir le document XML cible qui est valide conformément au schéma cible.

5.Finalement, nous allons pouvoir enregistrer le fichier XML.

 

Pour plus d’information sur la manière dont la transformation de données est effectuée, voir le modèle abstrait ci-dessous.

 

Modèle abstrait

Le modèle abstrait ci-dessous illustre la transformation de données dans ce tutoriel :

MF_Tut1_SchemaToSchema

Notre mappage a une source et une cible. Le schéma source (Books.xsd) décrit la structure du fichier de l’instance source (Books.xml). Le schéma cible (Library.xsd) décrit la structure du fichier de l’instance cible (BooksOutput.xml). Lorsque vous connectez les nœuds de source aux nœuds correspondants de la cible, le mappage génère le code de transformation dans XSLT 2.0. Le code de transformation lit les données de Books.xml et écrit ces données dans BooksOutput.xml.

 

Fichiers source et cible

La liste de codes ci-dessous montre les données échantillon de Books.xml qui seront utilisées en tant que source de données.

 

<books>
  <book id="1">
     <author>Mark Twain</author>
     <title>The Adventures of Tom Sawyer</title>
     <category>Fiction</category>
     <year>1876</year>
  </book>
  <book id="2">
     <author>Franz Kafka</author>
     <title>The Metamorphosis</title>
     <category>Fiction</category>
     <year>1912</year>
  </book>  
</books>

 

C’est ainsi que nous voulons que nos données aient l’air dans le fichier cible dénommé BooksOutput.xml :

 

<library>
  <last_updated>2015-06-02T16:26:55+02:00</last_updated>
  <publication>
     <id>1</id>
     <author>Mark Twain</author>
     <title>The Adventures of Tom Sawyer</title>
     <genre>Fiction</genre>
     <publish_year>1876</publish_year>
  </publication>
  <publication>
     <id>2</id>
     <author>Franz Kafka</author>
     <title>The Metamorphosis</title>
     <genre>Fiction</genre>
     <publish_year>1912</publish_year>
  </publication>
</library>

 

Certains noms d'élément dans l’XML source et cible ne sont pas identiques. Notre objectif est de remplir les éléments <author>, <title>, <genre> et <publish_year> du fichier cible depuis les éléments équivalents dans le fichier source (<author>, <title>, <category>, <year>). L'attribut id dans le fichier source doit être mappé vers l'élément <id> dans le fichier cible. Enfin, nous devons remplir l'élément <last_updated> du fichier cible avec la date et l'heure à laquelle le fichier a été mis à jour dernièrement.

 

Pour effectuer la transformation de données requise, suivez les étapes décrites dans les sous-sections ci-dessous.

 

© 2018-2024 Altova GmbH