Urbanbike

Recherche | mode avancée

XML, FileMaker et InDesign CS

Ben alors…?

dans pratique
par Jean-Christophe Courte

C’est avec impatience que j’attendais la version 3 de InDesign CS. Pas exclusivement pour ses nouvelles options de mise en page mais essentiellement pour traiter les flux XML.
Utilisateur de FrameMaker, je prépare jusqu’à présent mes données dans FileMaker (on ne confond pas, s’il vous plaît !), données que je mouline à coup de concaténations pour générer au final du MIF. Si cette solution fonctionne assez bien, elle est demande beaucoup de rigueur et c’est avec curiosité plus que d’intérêt que je me penche ces derniers mois sur le XML.

Aussi, à peine la nouvelle version de CS arrivée dans ma machine, je me suis risqué à préparer un exemple de flux XML vers InDesign.
Ce qui suit démontre certainement que je n’ai pas tout compris. Le problème est que le support technique d’Adobe n’a pas pu mé dépanner. Bref, narrons le problème…
Il était une fois une base données…
J’ai extrait de cette base de données clients un ensemble fini de fiches sous la forme de quatre champs bien identifiés.
En gros, cela donne ceci :
Attention, les infos sont en UTF-8 !

<?xml version="1.0" encoding="UTF-8" ?>0 yropijes.fp5detail52623Diriger et motiver28/10/2003aconseil.fr — wac52775

Tous managers du savoir !

28/10/2003aconseil.fr — wac

ETC.

Par ailleurs, j’ai découvert avec plaisir qu’InDesign interprétait les DTD, et donc j’ai également construit une DTD en suivant scrupuleusement les informations de structure fournis par FileMaker.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT FMPDSORESULT (ERRORCODEDATABASELAYOUT ROW*)>
<!
ATTLIST FMPDSORESULT
  xmlns CDATA 
#REQUIRED>
<!ELEMENT ERRORCODE (#PCDATA)>
<!ELEMENT DATABASE (#PCDATA)>
<!ELEMENT LAYOUT (#PCDATA)>
<!ELEMENT ROW (idgtitredatepubsupport)>
<!
ATTLIST ROW
    RECORDID CDATA 
#REQUIRED
    
MODID CDATA #REQUIRED>
<!ELEMENT idg (#PCDATA)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT datepub (#PCDATA)>
<!ELEMENT support (#PCDATA)> 

Donc, une fois revenu dans InDesign, j’ai créé quatre formats styles qui correspondent aux quatre champs indentifiés qui seront reconnus sous la forme de balises.
Soit dans cet exemple, idg, titre, datepub et support.
Une fois ceci enregistré et testé, je bascule dans un second temps en mode structure dans InDesign et j’importe ma DTD sans encombre.

Dans un troisième temps j’importe mon flux XML issu directement de FileMaker.
InDesign vérifie si la DTD et le flux XML sont cohérents. La version 3 dispose effectivement d’une capacité à marquer les erreurs et essayer de les corriger. Dans mon exemple, aucune erreur n’’est décelée et il me suffit de prendre tout le code XML dans le mode structure pour le glisser dans un bloc texte… Puis de demander à ce qu’il y ait concordance entre les balises XML et les formats styles. En gros, l’astuce consiste à créer des formats paragraphes portant les mêmes noms, soit : idg, titre, datepub et support. CQFD.

Malheureusement, InDesign (ou moi, va savoir…) n’est pas capable de segmenter mes données en paragraphes si bien que l’ensemble des données ne peut être affecté que d’un seul format style : génant !

En regardant le code issu de FileMaker, il est facile de constater que toutes les balises XML se suivent sans ruptures.

Idée !
Ouvrir le code dans Dreamweaver et demander à ce dernier de reconstruire le code.
Du coup cela devient et toujours en UTF-8 :

<?xml version="1.0" encoding="UTF-8" ?>
    
<FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult">
      <
ERRORCODE>
        
0
      
</ERRORCODE>
      <
DATABASE>
        
yropijes.fp5
      
</DATABASE>
      <
LAYOUT>
        
detail
      
</LAYOUT>
      <
ROW MODID="2" RECORDID="40431">
        <
idg>
          
52623
        
</idg>
        <
titre>
          
Diriger et motiver
        
</titre>
        <
datepub>
          
28/10/2003
        
</datepub>
        <
support>
          
aconseil.fr ‚Äî wac
        
</support>
      </
ROW>
ETC

Ce qui, évidemment est nettement plus lisible…!

Hop, bis repetita et nouvel import dans InDesign, dans un modèle comportant déjà les formats styles idoines, importation de la fameuse DTD, du flux XML revu par Dreamweaver.
Pas d’erreur lors de l’import, je glisse le tout dans un bloc texte, et merveille…
Enfin presque !
Les indentations sont aussi de la partie dans cet import et, entre les données, se trouvent parfois des doubles retours paragraphes.
Bref, je m’interroge !

Nota : je vous engage à lire les infos parus sur le site web de Adobe sur le XML

le 08/01/2004 à 08:00 | .(JavaScript must be enabled to view this email address) à Jean-Christophe Courte |