Le langage XML : puissance et flexibilité

Le langage XML est devenu un standard largement accepté pour la structuration et l’échange de données.  Le langage XML combine puissance et flexibilité, deux qualités qui se complètent souvent mutuellement, mais que XML est parvenu à équilibrer.

Cependant le format lui-même est plus complexe qu’il n’y paraît : tags intégrés dont le sens n’est pas prédéterminé, avec des attributs optionnels qui eux-mêmes peuvent ne pas être nommés. Une étiquette typique (avec son contenu) ressemble à cela :

<Arbitraire attributArbitraire=”hello”>du texte</NomArbitraire>

Lorsque la donnée traitée est elle-même formatée comme un tag entre deux crochets angulaires (par exemple HTML, XHTML or XML lui-même), il y a un problème. Comment distinguer la structure XML et la donnée ? Pour surmonter ce problème, les crochets angulaires qui font partie de la donnée sont transformés en code html-entité : < allez dans &lt; et > dans &gt ; (les abréviations de « moins que » et « meilleur que » permettent se s’en souvenir facilement). XML connaît le sens de ces deux entités et les documents qui les contiennent seront considérés comme étant valides.

Quand nous voulons traduire des fichiers en utilisant des outils CAT (traduction assistée par ordinateur), il est préférable de les avoir préalablement reconvertis. De cette manière, les tags seront interprétés en tant que tels au lieu de s’afficher comme étant partie du texte. Nous obtenons ainsi une meilleure segmentation, une meilleure correspondance de contexte et, les tags n’apparaissent pas dans les phrases à traduire. Ceux-ci doivent être convertis de nouveau en entité dans la traduction terminée afin de conserver la structure originale du texte.

Avant d’importer les segments traduits, intégrés dans un CMS (Système de Gestion de Contenu), ceux-ci doivent être retraités pour transformer les entités html en caractères correspondants, de manière à ce que les tags soient correctement interprétés par le navigateur. En général les numéros et les noms des tags encodés dans le document original sont les mêmes que ceux du document traduit.

Cependant, nous avons parfois à gérer une situation dans laquelle des tags sont insérées dans des champs qui n’en avaient pas  dans le document original par exemple : « XIX century » est traduit en français comme « XIXe siècle ». Dans le langage html, cela est marqué avec le tag « sup » : “XIX&lt;sup&gt;e&lt;/sup&gt; siècle”.  Or le CMS du client n’est pas préparé à gérer les entités dans ces champs, les tags apparaissent donc dans le texte. Il est donc nécessaire de traiter ultérieurement les fichiers XML, en supprimant les occurrences de l’étiquette « sup » dans les champs avec une entité convertie non reconnue.

Cet exemple illustre qu’avec la puissance et de la flexibilité, viennent aussi les embûches. Il n’est pas suffisant de valider les fichiers XML, il est également nécessaire de vérifier le produit final et d’ajuster les petits détails en conséquence dans des projets de traduction impliquant XML.

 

Version en anglais : Power and flexibility in XML