Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Julien Chable

He blogs, you blog, I blog ...

Archives

[OpenDocument] Introduction d'un format en vogue

Avec la sortie de OpenOffice 3.0 et son support de l'ODF dans sa version 1.2 (spécifications toujours à l'état de draft si je ne m'abuse) qui reprend bon nombre de points forts du format Open XML, je me devais de faire une série de post sur ce format. Une introduction somme toute modeste au vu de l'article sur Wikipédia s'y consacrant, mais qui fera suite à d'autres posts mélangeant les deux formats du moment (Open XML et ODF).

Une rapide introduction

Le format OpenDocument (ODF) est un format de fichier pour les documents bureautique électronique tel que le traitement de texte, les feuilles de calcul ou les présentations. A l'origine, ce format de document est dérivé de celui initialement fourni avec OpenOffice 1.0 et qui à au travers de l'OASIS a changé de nom 'OpenOffice File Format' pour devenir 'OpenDocument File Format' avant de devenir une norme ISO en Mai 2006. Pour finir cette introduction et la faire la plus courte possible, ODF est disponible en version 1.1 et la version 1.2 est attendu pour cette automne (en fait j'attendais l'annonce en même temps que la sortie de OpenOffice 3.0 !) avec un ensemble d'amélioration fonctionnelle nécessaire et on ne s'en plaindra pas, issu du format Open XML et des volontés de nombreuses entreprises (sécurité, formules, etc). Ah oui, j'oubliais de vous dire que la technologie de validation XML pour ODF (les schémas validants normés) sont décrit en Relax NG (RNG) au lieu du traditionnel XML Schema employé habituellement par les développeurs. Certes RNG apporte quelques améliorations conditionnelles non négligeable par rapport à XML Schema, mais pour beaucoup de développeurs, cela représentera un obstacle. Evidemment, on ne peut blamer l'OASIS de vouloir utiliser les standards que l'organisme a lui même standardisé (alors qu'il suffisait d'améliorer XML Schema).

Qu'est-ce qu'il y a dans la boite ? Jack ?

imageUn document ODF est comme un document Open XML (en fait je devrais dire l'inverse ...), c'est un fichier Zip composé d'un ensemble de fichiers XML qui décrient l'intégralité du document. Vous pouvez aussi trouver les ressources tel que les vignettes, les images, etc dans le Zip.

Voici un exemple lambda - mais simple - d'un document ODF :

image

Il y a 3 types basics d'éléments dans un package ODF : fichier XML (description du contenu), les ressources (images, etc) et les autres (configuration de l'application, propriétés, type mime, etc). Pour ce type de document - document de traitement de texte - l'élément le plus intéressant dans le fichier Zip est le fichier content.xml. Il contient le contenu principal du document : paragraphes, liens, références des images, etc (c'est l'équivalent de la partie document.xml pour Open XML).

content.xml

Voici un extrait d'un fichier content.xml :

image

Rien de bien complexe dans sa structure XML :

  • office:document-content: euh … le contenu du document ?
  • office:body: tout comme HTML, c'est le corps où se trouve le contenu du document,
  • text:h -> Paragraphe d'en-tête,
  • text:p –> Paragraphe simple (l'attribut text:style-name spécifie quel type est utilisé)

styles.xml

De toute évidence, le nom en dis déjà beaucoup : sert à définir et centraliser les styles du document :

image

L'élément style définit un style (chaque style est associé avec une famille : graphique, paragraphe, tableau, etc), voici un extrait d'une définition complète de style :

image

La structure est relativement simple, chaque attribut est une propriété pour un style. Vous pouvez générer des styles ODF assez simplement avec juste quelques lignes de XML.

Ce type de structure est un bon exemple pour répondre à la question : "Pourquoi ODF utilise Relax NG au lieu de XML Schema ?". Parce que RNG permet d'opérer une validation sur la présence conditionnelle des attributs en fonction d'autres valeurs d'attributs spécifiées (ici style:family) ; XML Schema ne sait pas le faire.

Les propriétés du document (meta.xml)

image

Pas besoin de vous expliquer les différent éléments XML, il est assez évident de comprendre la signification de chacun.

Conclusion

Un document ODF n'est pas complexe, il s'agit juste de quelques fichiers XML. Avec ODF, vous devez avoir les fichiers content.xml et mimetype à la racine du package, les vignettes doivent être dans le répertoire Thumbnails, les images dans le répoertoire Pictures, etc. Vous devez mettre vos fichiers/ressources à la bonne place avec le bon nom.

Open XML corner : Avec Open XML, la spécification Open Packaging Convention fournit une structure logique, qui comparée à une structure fixe, permet aux application de stocker physiquement les fichiers de la façon dont elles le souhaitent sans déstabiliser la structure générale et les informations du document (merci aux relations de partie). Open XML est clairement en avance sur ses concurrents avec ce mécanisme (+1 pour Open XML). Cependant la simplicité générale du format est un bon point pour ODF (+1 pour ODF). NEANMOINS les formats de fichiers sont des sujets réservés aux développeurs et non pas aux utilisateurs, par conséquent le gain fonctionnel est meilleur avec Open XML quand on le compare à la légère compexité que les relations de parties engendrent. Et avec l'ensemble des API et SDK disponibles autour de Open XML, pour le moment les développeurs auront tendance à se trouver plus à l'aise avec Open XML.

Voici donc une introduction triviale et je vous invité à consulter de nombreux autres articles similaires (bien mieux détaillés) ailleurs sur le web. Je ne pouvais pas omettre l'introduction de ce format pour la suite de cette série.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: jeudi 16 octobre 2008 08:20 par neodante
Classé sous :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01