Il y a quelques mois, j'ai travaillé à la mise en page d'un livre dont le contenu venait d'une base de données. Il fallait donc importer un fichier XML dans InDesign, fonction qui existe sur le logiciel, donc à priori facile à exécuter. Sauf que très peu de tutoriels existent à ce sujet sur la toile - en fait, aucun - si ce n'est la documentation Adobe, qui n'est pas très prolixe. Après des heures de tests, j'ai fini par trouver la procédure à suivre. Il se trouve que la semaine dernière, lors d'un séminaire en ligne sur InDesign CS5, un des participants cherchait la méthode à suivre. J'ai donc mis au propre mes notes et les lui ai envoyées. J'en profite pour partager cette méthode ici.

Cet article a été publié il y a plus d'un an. Les informations qu'il contient ne sont peut-être plus pertinentes à l'heure actuelle.

Vous pouvez également retrouver une version vidéo de ce tutoriel InDesign sur tuto.com.

Prérequis

  • Le fichier XML
  • Une DTD (cf. étape 3 )
  • Un fichier InDesign

1 – Création du fichier InDesign

Création de styles sous InDesign
Pour commencer, créez votre fichier InDesign au format voulu. Préparez éventuellement les styles de caractères & de paragraphes de votre future mise en page.

Pour l’instant, votre fichier InDesign est vide.

2 – Création de contenu de substitution

  • Ouvrez le fichier XML de votre base de données dans un éditeur de texte
  • Ne conservez qu’un seul article de votre BDD
  • Sauvegardez le fichier sous un autre nom (ne pas écraser le fichier XML de départ !) : fichier-de-substitution.xml.

Création de contenu XML de substitution

3 – Création de la DTD

  • DTD : Déclaration de Type de Document. Une DTD définit la structure d’un document, les éléments et attributs qui y sont autorisés, et le type de contenu ou d’attribut permis.
  • Le journal du net propose un tutoriel de création de DTD

Création de la DTD

4 – Charger la DTD dans InDesign

Dans InDesign :

  • Menu Affichage Structure Afficher la structure (ou CTRL + ALT + 1)
  • Dans le panneau qui s’affiche à gauche de l’écran, cliquer sur le menu déroulant
  • Choisir « Charger une DTD » Sélectionner votre fichier.

Pour afficher votre DTD, double-cliquez sur le doctype

Pour afficher les balises XML :

Afficher les balises XML dans InDesign
Dans le menu Fenêtre Utilitaires Balises

Le module Balises s’affiche, contenant les balises de votre DTD

Dans le menu Affichage choisir Structure Afficher les marqueurs de tag

5 – Importer le contenu de substitution

  • Dans le panneau Structure, cliquer sur le menu déroulant
  • Choisir « Importation XML » Sélectionner votre fichier XML de substitution.
  • Dans les options, choisir « Fusionner le contenu », « N’importer que les éléments qui correspondent à la structure », « Ne pas importer le contenu des éléments blancs », « Supprimer les éléments, blocs et contenus ne correspondant pas au fichier XML importé »
  • Votre Texte de substitution s’affiche. Les [ ] en couleurs correspondent aux balises de votre DTD.

Affichage du Texte de substitution

6 – Ajout de texte statique

  • Pour ajouter du texte statique (virgules, puces, texte ou autre) passer en mode éditeur : CTRL + Y.
  • Ajoutez votre texte dans la fenêtre qui s’affiche, à l’extérieur des balises.

Le texte statique doit être inséré entre les balises

7 – Mise en forme du contenu

Créez vos styles de paragraphes & de caractères, puis appliquez-les au texte de substitution.

Mise en forme du contenu sous InDesign

8 – Import de la base de données XML

Dans InDesign :

  • Dans le panneau structure menu déroulant Importation XML choisir votre fichier XML complet.
  • Cocher « Fusionner le contenu », « Ne pas importer le contenu des éléments blancs », « Supprimer les éléments, blocs et contenus ne correspondant pas au fichier XML importé.

Le résultat :

Le résultat de l'import de données XML dans InDesign

NB : pensez à nettoyer votre fichier XML avant utilisation. Pour cet exemple, j’ai utilisé une base de donnée WordPress presque brute, d’où les balises de mises en formes qui s’affichent comme du texte.

5 commentaires

  1. Bonjour Mylène,
    Il me semble qu’il manque dans votre tuto l’action de faire correspondre les balises aux styles (ou l’inverse, pour un même résultat). Dites-moi si je me trompe.
    Très bonne année 2013 !
    Catherine

    1. Bonjour Catherine et bonne année 🙂

      Ce tuto date d’il y a un moment et n’est pas particulièrement détaillé, de mémoire j’ai parlé de correspondance des styles dans la version vidéo.

      J’ai en tête de faire une « V.2 » plus poussée de ce screencast depuis un moment, mais j’ai d’autres tutos & formations à réaliser avant… C’est en tout cas sur ma to-do list 2013 !

  2. Bonjour,
    j’ai parfaitement suivi le process mais j’ai des soucis quand j’importte le XML complet.

    Dans le fichier de substitution, j’ai fait gaffe à n’avoir que les balises qui m’intéressaient.

    Par contre dans le xml complet il y a pleain de balises que je ne souhaite pas insérer. Mais lors de l’import du XML complet :
    > si je coche n’importer que ce qui correspond à la structure (DTD j’imagine) alors là j’ai rien du tout d’importé

    > si je le coche pas, j’ai tout mon XML avec toutes les balises.
    biensur les mises en forme effectuées.

    – Cela implique t il qu’il faille tout nettoyer en XML avant ?
    – pas possible de supprimer des noeuds XML une fois imortés sans le faire item par item ?

    J’ai meme essayé » en important mon XML avec la balise le liant au DTD mais meme resultat…

    possible de m’éclairer ?

    Merci
    Eric

  3. Bonjour,
    Savez-vous si inDesign gère XML schéma ?
    Merci de votre réponse.
    Cdt.

    Benjamin

    1. InDesign ne gère pas XML schéma pour le moment, il faut le convertir en DTD pour pouvoir l’utiliser.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec une astérisque: *.