19 février 2016
Catégorie :
Divers
InDesign
XML
Comm. : 0

5 erreurs que vous ferez avec l’import XML dans Adobe InDesign

L’import XML dans Adobe InDesign a son lot de chausse-trappes. Tous les débutants finissent par s’embourber dans des travers liés à une méconnaissance des règles fondamentales. Car il ne s’agit pas seulement « d’importer » pour espérer comme par magie obtenir la production de son annuaire, catalogue ou livre.

Voici cinq erreurs que vous commettrez sûrement à moins que vous ne lisiez consciencieusement cet article.

1) Ignorer la vraie nature de l’XML

Charger un fichier XML dans Adobe InDesign est sans conteste une opération à la portée de tous. Une fois injecté, il serait tentant de croire que la structure XML représente une base de données dans lequel InDesign piochera le moment venu.

Bien, la réalité n’est pas si simple.

En important le fichier XML, vous n’avez pas seulement intégré des données, vous avez chargé du texte balisé prêt à l’emploi.

XML dans InDesign, ce n’est que du texte  !

En important du contenu XML dans le document, on obtient un article !

Dans l’exemple ci-dessus, on voit qu’en plaçant le nœud « fiche » dans le document, l’intégralité des nœuds vient sous la forme de textes balisés contigus.

Une fois compris cela, le deuxième point vous semblera plus évident.

2) Importer des structures différentes

Une des règles d’or est que la structure entrante DOIT respecter la structure du document InDesign. Au premier import, vous n’aurez probablement jamais de problèmes.

Si vous ne respectez pas ce crédo, vous risquez de souffrir…vraiment !

Prenons une structure basique dans InDesign:

Structure de base dans InDesign

Et vous souhaitez importer le fichier XML suivant :

<Root>
 <a>A</a>
 <c>C</c>
 <b>B</b>
</Root>

Et vous pensez que naturellement InDesign va retrouver ses petits…?

Lorsque le nœud <a> arrive, il trouve un élément <a> correspondant. Tout va bien. Le second nœud est de type <c>. Or l’élément suivant dans InDesign est un <b>. L’erreur est ici de croire qu’InDesign va naturellement reporter la valeur de <c> dans le nœud correspondant suivant puis reprendre sa route à rebours pour traiter <b>.

Ce qu’il va se produire dépend de vos options d’import. Actons que vous n’avez encore rien paramétré, voici ce qu’il va ressortir:

Problemes d'import XML

<a> se reporte en <a>
<c> explore la structure jusqu’à trouver un élément <c>. Au passage l’élément <b> existant est donc ignoré.
<b> entrant ne trouve pas de correspondance après <c> et est donc ajouté en l’état.

On est bien loin ici du résultat escompté !

Dans tous les cas, InDesign ne va pas revenir en arrière pour essayer de trouver un nœud correspondant !

3) Travailler avec des blocs isolés

A ce stade, nous l’avons dit et répété, la structure XML d’un document InDesign est in fine du texte. Or bien souvent l’utilisateur non averti commence par multiplier les blocs textes et images comme des petits pains. Et mon prix par ici, et ma description par là… Au final une belle composition aussi jolie qu’inefficace.

module_frame

Pour travailler l’XML, votre brique fondamentale sera le bloc texte. Soit vous optez pour un bloc texte isolé dans vos pages (article de magazine par exemple); soit vous utilisez un bloc type sur vos gabarits qui servira de trame lors de l’injection des contenus XML (catalogues ou annuaires).

Le moins de blocs vous aurez, le mieux cela sera.

Votre obsession sera maintenant d’éviter au maximum le recours aux blocs isolés. Préférez par exemple, les filets de paragraphe pour simuler des têtières. Optez pour des retraits ou des espacements de paragraphes pour jouer sur les positionnements des informations.

textRules

Vous n’avez plus le choix ou votre mise en page implique un bloc image isolé ? Convertissez alors ce dernier en bloc ancré dans l’article principal et pensez bien à appliquer un style d’objet. Rappelez-vous qu’au final vous devrez jongler avec un article principal.

4) Oublier les styles

Peut-être certains d’entre vous connaissent déjà la possibilité de lier des balises aux styles de paragraphe ou de caractère (et pas les deux en même temps !). Associer les styles est toujours une bonne approche qui garantit que toute utilisation d’une balise appellera ipso facto le style approprié.

association_styles

tarif_prix

style_applique

Ici le style « prix » est automatiquement appliqué car associé par défaut.

Le seul bémol de l’association des balises aux styles est que ce traitement n’est pas différentiable. Une balise <p> sera traitée à l’identique quelque soit son positionnement.
Si vous avez besoin de rendus spécifiques, optez pour un script après-coup ou pour l’espace de nom XML « aid » et les attributs « pstyle » et/ou « cstyle » dans l’XML entrant. Une autre solution est de « renommer » les balises en fonction de leur emplacement avec une feuille de transformation XSL par exemple.

5) Manquer d’abstraction

Dès lors que le projet XML est de type itératif (catalogue, annuaire, menu…), l’effort qui doit être mené avec volontarisme est celui de l’abstraction. En effet, le but dans ce type de cas est d’identifier l’unité à répéter. Imaginons un annuaire de « n » joueurs d’une équipe de sport. La mauvaise approche serait de différencier les nœuds par joueur comme suit.

What you shouldn't do with XML

Même si la structure suivante pourrait fonctionner, il faudrait pour cela que chaque nœud trouve un balisage correspondant dans le document InDesign. Pour un ou deux joueurs soit, mais pour 10, 20, 100 ?

Et dire qu’il y a moyen de faire tout simplement avec l’aide d’InDesign et des options d’import. La seule certitude ici est que nous avons un joueur lambda avec un numéro et un nom. Nous souhaitons juste qu’à partir de notre ensemble de balises unitaire dans InDesign, tous nos joueurs soient automatiquement générés.

Il faut donc préférer une structure plus générique et propice à la répétition:

goodXMLLayout

Un seul « module » nous permet d’envisager la réception d’un nombre indéfini de « joueurs » et ce grâce à la fameuse coche « Dupliquer les éléments de textes répétés » des options d’import XML.

xmlImportOptions

xmlResult

Et voilà !

J’espère que cet article vous aidera à éviter des erreurs classiques du débutant avec l’import XML dans Adobe InDesign. Si vous pensez à d’autres problèmes typiques, n’hésitez pas à en faire part dans vos commentaires.

Si vous avez besoin de formation sur l’import XML dans InDesign ou d’une mission de conseil pour vos projets de publication, contactez-nous !.

A bientôt,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *