La nouvelle version de la suite bureautique OpenOffice (OO) est disponible. C'est l'occasion de présenter, et peut-être d'utiliser, son support XML.
Par Hervé AGNOUX, de la SARL diaam informatique.
Mercredi 29 octobre 2003
OpenOffice est, avant tout, une application bureautique. Outre ses fonctions dans son domaine propre, son intérêt est que ses formats de fichiers sont faits avec XML, et cette propriété permet d'insérer un travail bureautique dans un flux XML.
A la rédaction de XMLfr, nous utilisons OpenOffice pour rédiger nos articles. Celui que vous lisez en ce moment a été entièrement écrit avec ce logiciel. Lorsque l'article est écrit, il est envoyé au format OpenOffice à un serveur rédactionnel qui le transforme, avec XSLT, en document au format XML NITF. Si le document est valide selon la DTD NITF, il est accepté.
La difficulté que nous rencontrons tient justement à cette étape de validation. Il nous est difficile de relier de façon automatique un élément non conforme selon la DTD NITF à une utilisation erronée d'un style OpenOffice. Par contre, pour ce qui est des traitements à partir du document bureautique, tout se passe très facilement. A la condition d'une certaine discipline de la part du rédacteur, le processus fonctionne bien. Mais on voit bien que OpenOffice n'est pas réellement un éditeur XML ; c'est d'abord un logiciel bureautique, et c'est, au départ, pour cela qu'il doit être choisi ou rejeté.
Le format de sauvegarde des documents OO est parfaitement public. Il est prévu de telle façon que pratiquement tout ce qui constitue ces documents soit exprimé dans des fichiers XML.
Voici les espaces de noms définis pour gérer ces documents, qui montrent bien l'étendue des caractéristiques manipulables en XML (les URI correspondantes sont données dans les documents de référence) :
- office : généralités sur les documents bureautiques
- style : information sur les styles de présentation utilisés
- text : éléments utilisés pour les informations à caractère textuel
- table : éléments utilisés pour les informations en tableau
- draw : éléments utilisés pour les informations à caractère graphique
- number : éléments décrivant un nombre
- chart : éléments décrivant un plan
- dr3d : éléments décrivant des objets présentés en 3 dimensions
- form : éléments pour décrire des formulaires interactifs
- script : éléments de programmation
- xlink : espace de noms XLink (W3C)
- fo : espace de noms XSL-FO (W3C)
- svg : espace de noms SVG (W3C)
- math : espace de noms MathML (W3C)
- dc : Espace de noms des éléments Dublin Core (DCMI)
Malgré cette étendue (les spécifications du format couvrent plus de 500 pages ! ), les fichiers XML OO sont réputés atteindre le 6ème but du XML : les documents XML doivent être lisibles par des humains et raisonnablement clairs. Ils sont d'exploitation simple et rapide, et nous en avons fait l'expérience avec réussite.
Trois possibilités sont offertes pour manipuler les documents selon des technologies XML :
- Sur les fichiers eux mêmes, en dehors d'une utilisation d'OpenOffice. C'est la façon la plus simple, permettant des manipulations étendues de ces documents. Il est possible par ce biais aussi bien de lire que d'écrire des documents OpenOffice.
- Avec un logiciel externe, qui communique avec OpenOffice par une socket. SAXEcho présente un exemple de cette technique : c'est un programme Java qui affiche l'arborescence XML d'un document OpenOffice en cours d'édition.
- Avec un plugin directement intégré à OpenOffice. Il peut s'agir de macro, ou de programmes réalisés en Python ou Java, langages compris de façon directe par OpenOffice. Ces techniques sont largement présentées dans le guide du programmeur.
La première forme est sans doute la plus intéressante pour les applications basées sur XML. Genicorp, une société française, s'est spécialisée sur ce créneau, avec des programmes réalisés en Perl. C'est également cette forme que nous utilisons pour publier nos articles.
Depuis l'annonce du groupe KDE, qui veut que le format XML OO devienne aussi ceux de l'environnement bureautique KDE, on peut espérer que l'audience de ce procédé se développe.
Et, à cause du grand nombre de formats d'import / export compris par OpenOffice (dont MicrosoftOffice), il est possible d'envisager cette plate-forme comme outil d'intégration dans un environnement bureautique hétérogène.
C'est de cette façon que l'utilise la plate-forme de publication Cyberdocs. Il s'agit d'un outil dont le principal objectif est de publier sur le web des thèses, écrites avec divers logiciels de bureautique, donc principalement avec MicrosoftWord. Ces thèses sont transformées en XML avec OpenOffice, de là en documents conformes à la DTDTEI Lite, format pivot pour la publication sur des supports diversifiés.
Non seulement le schéma des documents OO est parfaitement connu, mais de plus l'organisation des différents modules composant un fichier est également parfaitement connue. Un fichier OpenOffice a le même modèle pour toutes les applications bureautiques. C'est un fichier zip qui contient les fichiers XML suivant :
- un fichier XML pour le contenu du document
- un fichier XML pour le style (style et contenu sont présentés de façon séparée)
- un fichier pour les meta-informations (auteur...)
- un fichier pour les choix applicatifs (zoom, imprimante...)
- un fichier d'informations sur la sauvegarde elle-même (type mime, méthode de chiffrement..)
- un répertoire conservant les fichiers binaires (images...)
- un répertoire conservant les formulaires inclus dans les macros
- un répertoire conservant les macros
- un répertoire conservant les objets issus d'autres applicatifs.
Tout ceci est, rappelons-le, conservé dans un seul fichier zip, dont l'extension est propre à la nature du document conservé (.sxw pour les textes, ou .sxc pour les classeurs, par exemple).
Il est également possible de conserver, dans les attributs même des éléments XML, des informations pour des applications externes, sans casser le comportement d'OpenOffice.
Toutes les applications OpenOffice, quelque soit le système d'exploitation utilisé, ont le même format de fichier.
Pour ceux qui maîtrisent la question, il est possible d'associer une transformation XSLT à l'opération de sauvegarde ou de chargement d'un document.
Les personnes intéressées pourront trouver une abondante documentation. Outre les liens déjà signalés, il existe un site sur le format XML d'OpenOffice, avec en particulier une FAQ, et des listes de discussion. Les lecteurs francophones pourront se reporter au site en français, de facture plus généraliste, mais comportant de nombreuses expériences locales et concrètes sur l'utilisation de ces logiciels.
D'autres liens sur le web :
Sur le format NITF, voir News Industry Text Format.
Autres articles :
Copyright 2003, Hervé AGNOUX.
|