Jump to content
  • entries
    69
  • comments
    19
  • views
    7647

Une histoire X - 4e partie : L'exportation XML


David Julot

622 views

 Share

Lors de mes trois précédentes chroniques, vous avez eu droit à des cours très théoriques sur les technologies XML, XSL-T et un peu sur XPATH.

Nous allons, « Enfin ! » diront certains, voir nos premières exportations de bases de données FileMaker Pro en XML.

Pour celles et ceux qui arrivent en cours de route dans ce voyage initiatique, je vous invite tout d’abord à voir ou revoir les chroniques suivantes :

  • Chapitre I : « une histoire X – 1ère partie », qui est une introduction à la technologie XML.
  • Chapitre II : « une histoire X – 2e partie », qui est une documentation du fichier de description d’étiquettes de FileMaker Pro. Cela permet de voir et de mieux comprendre l’articulation d’un document XML.
  • Chapitre III : « une histoire X – 3e partie », qui est une introduction au principe de transformation XML via XSL-T.

Enfin, et c’est important de le noter, que ces chroniques sont valables pour les versions 6 à 9 de FileMaker Pro.

Nous allons mettre en application ce qui aura été vu dans les chapitres précédents. Mais avant tout, voyons l’exportation d’une base de données FileMaker au format XML.

 

L’exportation XML d’une base FileMaker

Nous utiliserons le fichier base.fp7, que vous trouverez joint à cette chronique. Ce fichier n’est utilisable qu’à partir de la version 7 de FileMaker Pro.

 

Le format FMPDSORESULT

Le format FMPDSORESULT plus communément appelé DSO pour Data Source Object est la première des deux grammaires proposées lors de l’exportation XML par FileMaker Pro.

La grammaire DSO a la particularité de nommer les balises avec le nom des colonnes de la table exportée. Elle comporte peu d’information sur la structure de la table exportée, elle est très appréciée des personnes qui débutent dans l’apprentissage XML.

La grammaire FMPDSORESULT propose un fichier XML résultat dont les données sont présentées à plat, c’est-à-dire que les données sont présentées comme dans un tableau.

 

Procédure d’exportation avec la grammaire FMPDSORESULT

L’exportation des données d’une table en XML avec la grammaire FMPDSORESULT suit la même procédure qu’une exportation classique.

sch_ma01.jpg

En effet, il faut au préalable choisir les enregistrements qui seront exportés, soit l’ensemble des enregistrements de la table soit les enregistrements actifs, suite à une recherche par exemple.

Pour exporter les enregistrements d’une table au format FMPDSORESULT il faut suivre la procédure suivante :

Sous FileMaker Pro 6 :

  1. Choisir le menu Fichier > Exporter des fiches… ;
  2. Dans le menu local Type, choisir l’option XML ;
  3. Saisir un nom pour le fichier d’exportation puis cliquer sur le bouton Enregistrer ;
  4. Dans le menu local Grammaire, choisir l’option FMPDSORESULT, puis cliquer sur le bouton OK ;
  5. Dans la boîte de dialogue Ordre d’exportation des rubriques, choisir les colonnes à exporter puis cliquer sur le bouton Exporter.

Sous FileMaker Pro 7, 8, 8.5 et 9 :

  1. Choisir le menu Fichier > Exporter des enregistrements… ;
  2. Dans le menu local Type, choisir l’option XML ;
  3. Saisir un nom pour le fichier d’exportation puis cliquer sur le bouton Enregistrer ;
  4. Dans le menu local Grammaire, choisir l’option FMPDSORESULT, puis cliquer sur le bouton OK ;
  5. Dans la boîte de dialogue Ordre d’exportation des rubriques, choisir la table contenant les colonnes à exporter puis cliquer sur le bouton Exporter.

Résultat d’une exportation avec la grammaire FMPDSORESULT

En exportant les données de la base exemple avec la grammaire FMPDSORESULT, nous obtenons le fichier XML suivant :

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Cette grammaire n'est plus utilisée et a été remplacée par FMPXMLRESULT. -->
<FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult">
  <ERRORCODE>0</ERRORCODE>
  <DATABASE>base.fp7</DATABASE>
  <LAYOUT />
  <ROW MODID="1" RECORDID="1">
    <genre>M.</genre>
    <nom>Henri</nom>
    <prenom>Martin</prenom>
    <adresse>23 boulevard de l’écluse</adresse>
    <code_postal>38120</code_postal>
    <ville>Saint-Chéron</ville>
  </ROW>
  <ROW MODID="1" RECORDID="2">
    <genre>Mme</genre>
    <nom>Durant</nom>
    <prenom>Catherine</prenom>
    <adresse>2 place de la mairie</adresse>
    <code_postal>04280</code_postal>
    <ville>Barzon</ville>
  </ROW>
  <ROW MODID="0" RECORDID="3">
    <genre>M.</genre>
    <nom>Julot</nom>
    <prenom>David</prenom>
    <adresse>28 allée des vignes</adresse>
    <code_postal>28000</code_postal>
    <ville>Chartres</ville>
  </ROW>
</FMPDSORESULT>

Depuis la version 7 FileMaker Pro inclus une ligne de commentaire supplémentaire  indiquant que cette grammaire va disparaître de FileMaker Pro, et qu’il n’est plus conseillé de l’utilisée.

Le fichier XML de la grammaire FMPDSORESULT comporte une balise racine FMPDSORESULT composée elle-même d’autant de balise ROW que d’enregistrements exportés.

REMARQUE : les caractères accentués ont été codés suivant la norme UNICODE UTF-8.

 

Fichier XML vierge de la grammaire FMPDSORESULT

Pour bien montrer la structure d’un fichier résultant d’une exportation XML avec la grammaire FMPDSORESULT, voici un fichier XML vierge :

<?XML version="1.0" encoding="UTF-8" ?>
<FMPDSORESULT xmlns="http:www.filemaker.com/fmpdsoresult">
  <ERRORCODE></ERRORCODE>
  <DATABASE></DATABASE>
  <LAYOUT></LAYOUT>
  <ROW MODID="" RECORDID="">
  …
  </ROW>
</FMPDSORESULT>

Présentation des balises de la grammaire FMPDSORESULT

Ci-après les balises qui composent les fichiers XML de la grammaire FMPDSORESULT, générées par FileMaker Pro. Pour une meilleure compréhension, se référer au fichier XML vierge précédent.

La balise FMPDSORESULT

Cette balise est la racine du fichier XML généré par l’exportation au format DSO. Elle comprend l’attribut normalisé XML xmlns spécifiant l’espace de nom des balises qui la composent.

Cette balise est composée d’au moins : ERRORCODE, DATABASE, LAYOUT et ROW.

La balise ERRORCODE

Cette balise signale ou non toute erreur qui se serait produite lors de l’exportation XML au format DSO.

S’il n’ y a aucune erreur, la valeur de la balise est à 0. Dans le cas contraire, le numéro de l’erreur est indiqué. Pour connaître la signification du code erreur, se référer à l’aide en ligne de FileMaker Pro (rechercher la fonction ETAT(Erreur) ou la fonction Obtenir(DernièreErreur)). Connaître le code erreur permet, dans le cas d’une utilisation d’une feuille de style XSLT, de ne pas effectuer de traitement de transformation.

La balise DATABASE

Cette balise indique le nom de la table d’où sont extraits les enregistrements.

Connaître le nom de la table permet dans le cas d’une utilisation d’une feuille XSLT, d’effectuer des traitements de transformation conditionnés à une table.

La balise LAYOUT

Cette balise contient le nom du modèle à partir duquel l’exportation XML au format DSO a été effectuée et si l’option Formater selon le modèle actif de la boîte de dialogue Ordre d’exportation des rubriques a été sélectionnée.

Dans le cas où l’option Ne pas formater à l’arrivée aurait été sélectionnée, la balise est vide.

Pour rappel, l’option Formater selon le modèle actif de la boîte de dialogue Ordre d’exportation des rubriques permet de conserver les formats de date, d’heure et de nombre.

sch_ma02.jpg

La balise ROW

La balise la plus importante puisque qu’elle correspond à un enregistrement exporté. Elle comporte deux attributs :

  • L’attribut MODID comporte le nombre total de modification de l’enregistrement depuis sa création. Si la valeur de l’attribut est à 0 celui-ci signifie que l’enregistrement a été créé et qu’aucune modification n’a encore eu lieu.
  • L’attribut RECORDID comporte quant à lui uniquement le numéro de l’enregistrement dans la table.

La balise ROW comporte autant de balises que de colonnes (rubriques) exportées, en sachant que le nom des balises correspond au nom des colonnes (rubriques). En sachant que le nom est modifié s’il contient un point ou un espace ; le point et l’espace sont remplacés par un underscore (_).

 

Utilisation du fichier d’exportation au format FMPDSORESULT

Le fichier XML exporté tel quel ne peut être utilisé que par une application intégrant un parser. En effet, le format XML de la grammaire FMPDSORESULT n’est que le reflet de la base de données FileMaker Pro, les balises portant le même nom que les colonnes.

sch_ma03.jpg

Il faut donc pour l’application qui va importer les données du fichier XML utiliser une feuille de style XSLT qui va lui permettre de transformer le fichier XML de la grammaire DSO en un fichier XML de sa propre grammaire.

Cela demande donc à la personne qui va recevoir votre fichier XML de créer la feuille de style adéquate.

Utilisation d’une feuille de style XSLT

Exportation de données avec transformation de la grammaire FMPDSORESULT en une autre grammaire. Ceci est possible grâce au parser intégré à FileMaker Pro.

Principe de fonctionnement

Le fonctionnement de l’exportation XML au format FMPDSORESULT avec utilisation d’une feuille de style XSLT peut être schématisé comme suit :

sch_ma04.jpg

  1. Les données sont exportées dans un fichier virtuel au format XML avec la grammaire FMPDSORESULT. Ce fichier virtuel est transmis au parser.
  2. Le parser transforme le fichier XML qui lui a été transmis à l’aide de la feuille de style XSLT externe.
  3. Une fois la transformation correctement réalisée, le parser créé sur le disque un fichier XML correspondant à une nouvelle DTD.

ATTENTION !  Si la feuille de style XSLT fait référence à un fichier DTD externe, le parser vérifiera sa présence. Par contre, comme le parser intégré est non validant, il ne vérifiera pas la validité du fichier XML créé avec le fichier DTD.

 

Procédure d’exportation avec feuille de style XSLT

La procédure pour exporter les données de la table au format XML de la grammaire FMPDSORESULT avec utilisation d’une feuille de style XSLT est la suivante :

  1. Choisir le menu Fichier > Exporter des fiches… ;
  2. Dans le menu local Type, choisir l’option XML ;
  3. Saisir un nom pour le fichier d’exportation puis cliquer sur le bouton Enregistrer ;
  4. Dans la boîte de dialogue Définir les options XML et XSL :
  5. Dans le menu local Grammaire, choisir l’option FMPDSORESULT,
  6. Cocher l’option Utiliser la feuille de style XSL,
  7. Sélectionner l’option Fichier puis sélectionner la feuille de style du disque,
  8. Cliquer sur le bouton OK ;
  9. Dans la boîte de dialogue Ordre d’exportation des rubriques, choisir les colonnes à exporter puis cliquer sur le bouton Exporter.

 

Et là, vous allez me haïr !

Vous aurez la suite la semaine prochaine… avec la première feuille de style XSL-T… En attendant, vous pouvez voir l’exportation XML au format FMPXMLRESULT et vous l’approprier, car cette grammaire est la seule disponible pour les importations XML dans FileMaker Pro, que nous verrons aussi.

Je vous souhaite à toutes et à tous une excellente semaine.

;)

 Share

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...