# OpenDocument

OpenDocument est un format ouvert de données pour les applications bureautiques : traitements de texte, tableurs, présentations, diagrammes, dessins et base de données bureautique. OpenDocument est la désignation d'usage d'une norme publiée par Organization for the Advancement of Structured Information Standards (OASIS) et dont l'appellation officielle est Open Document Format for Office Applications, également abrégée par le sigle ODF.
En France, le format OpenDocument 1.2 est le seul format recommandé comme format bureautique par le référentiel général d'interopérabilité depuis sa version 2.0 validé le 20 avril 2016.

## Historique

La spécification OpenDocument s'est très largement inspirée du format créé pour les premières versions de la suite bureautique libre OpenOffice.org. Les deux formats sont en effet fondamentalement similaires, tant par leur structure générale que par la liste des objets documentaires qu'ils permettent de représenter.
Successeur du format initial d'OpenOffice.org, OpenDocument est avant tout proposé comme un format de convergence et d'interopérabilité entre logiciels bureautiques et, plus généralement, entre applications de traitement de documents. Il est compatible avec les normes de métadonnées du Dublin Core.
La mise en œuvre du format OpenOffice.org avait déjà été, en son temps, une innovation fondamentale, en ce sens qu'elle consacrait le principe d'un format bureautique formellement documenté et librement exploitable par des tiers. OpenDocument représente une extension de ce principe. En effet, non seulement il s'agit d'un format documenté, publié, librement exploitable, mais encore la spécification elle-même est sous le contrôle d'un organisme indépendant de tout éditeur de logiciel bureautique.

## Un format ouvert et normalisé pour la bureautique

OpenDocument représente le premier effort de normalisation des formats de fichier de la bureautique, si l'on met de côté la spécification Open Document Architecture (élaborée à partir de 1985 mais jamais réellement mise en œuvre sur le marché), chaque application bureautique ayant auparavant son format propre non interopérable. Un format ouvert pour la bureautique fait partie intégrante d'une stratégie de fourniture logicielle. Tim Bray utilise toujours la même image dans ses présentations : il pose la question « Qui d'entre vous est sûr de posséder des documents auxquels il pourra accéder dans dix ans ? », puis « Qui d'entre vous est sûr d'utiliser la même application bureautique dans dix ans ? ». Comme il reçoit beaucoup de réponses affirmatives à la première question, et peu à la seconde, il continue en disant « Bien, donc je vais vous parler d'OpenDocument… »
OpenDocument trouve son origine dans le format XML utilisé pendant plusieurs années par Sun Microsystems pour les versions 1.x.x d'OpenOffice. À ce stade, ce format n'est pas plus ouvert qu'un autre. Lorsque David Faure, pour l'avancement du projet KOffice, annonce sa volonté de coopérer au sein de l'Organization for the Advancement of Structured Information Standards (OASIS), en vue d'en faire un format ouvert apte à être utilisé par toute application bureautique, il est rejoint par des « poids lourds » de l'édition de logiciels informatiques comme Adobe Systems, Corel, IBM et Google. Le comité ainsi constitué est renseigné sur les besoins des utilisateurs par de grands clients tels que Boeing, Intel, la National Archive of Australia, le New York State Office of the Attorney General ou la Society of Biblical Literature. Cet accord démontre une certaine lassitude, tant de la part des clients que des informaticiens, face aux formats fermés.
En mai 2005, la version 1.0 de la spécification d'OpenDocument est approuvée par le comité de normalisation de l'OASIS et est implémentable gratuitement par tous, comme le précisent les termes de la licence.
Bien qu'OASIS ait changé sa politique pour autoriser les techniques sous brevets RAND dans ses normes, le groupe de travail OASIS OpenDocument, pour sa part, est resté à l'ancienne politique de licence, libre.
En septembre 2005, est déposée une demande en certification auprès de l'ISO (Organisation internationale de normalisation). Celle-ci a été attribuée le 1er mai 2006. Le format OpenDocument est dorénavant une norme ISO.
De nombreux logiciels utilisent la norme, principalement OpenOffice.org, LibreOffice (qui dérive d'OpenOffice.org), NeoOffice, StarOffice, KOffice. De nombreux éditeurs la soutiennent en l'utilisant (IBM, Novell et Sun). La demande grandissante d'interopérabilité dans les environnements bureautiques a conduit Microsoft à accepter, dans une certaine mesure, via un logiciel complémentaire de lire et d'enregistrer des fichiers au format OpenDocument dans certains composants de Microsoft Office (Word et Excel), la qualité n'est cependant pas forcément au rendez-vous$^,$.
En février 2007, OpenDocument 1.1, une nouvelle version de la norme, devient un standard Oasis. Elle devient un standard ISO en janvier 2012.
Le 17 mars 2011, l'Organization for the Advancement of Structured Information Standards (OASIS) Open Document Format for Office Applications a accepté la norme 1.2 du format ODF. Et c'est le 16 juin 2015 que l'organisme ISO fait de l'ODF 1.2. une de ses normes$^,$$^,$
Le 23 juin 2021, la norme 1.3 est validée par l'OASIS.

## Extensions de fichiers associées

Le format OpenDocument regroupe les formats suivants (avec les extensions de documents associées) :
Formats de documents de la norme ODF :
| Type de fichier | Extension | Type MIME |
| Texte formaté | .odt | application/vnd.oasis.opendocument.text |
| Tableur | .ods | application/vnd.oasis.opendocument.spreadsheet |
| Présentation | .odp | application/vnd.oasis.opendocument.presentation |
| Dessin | .odg | application/vnd.oasis.opendocument.graphics |
| Diagramme | .odc | application/vnd.oasis.opendocument.chart |
| Formule | .odf | application/vnd.oasis.opendocument.formula |
| Base de données | .odb | application/vnd.oasis.opendocument.database |
| Image | .odi | application/vnd.oasis.opendocument.image |
| Document principal | .odm | application/vnd.oasis.opendocument.text-master |
Il existe également des modèles dans OpenDocument. Un modèle est constitué d'informations sur le formatage de documents (comme les styles) sans qu'il ne contienne lui-même les données.
Les modèles faisant partie de la norme sont :
Formats des modèles de documents ODF :
| Type de fichier | Extension | Type MIME |
| Texte formaté | .ott | application/vnd.oasis.opendocument.text-template |
| Tableur | .ots | application/vnd.oasis.opendocument.spreadsheet-template |
| Présentation | .otp | application/vnd.oasis.opendocument.presentation-template |
| Dessin | .otg | application/vnd.oasis.opendocument.graphics-template |
Ces différents formats sont basés sur les formats ZIP et XML

## Description du format

Un format OpenDocument est une archive ZIP contenant un certain nombre de fichiers et de répertoires :
| Fichiers XML content.xml meta.xml settings.xml styles.xml | Autres fichiers  mimetype layout-cache | Répertoires  Basic/ META-INF/ Thumbnails/ Pictures/ Configurations2/ |
Le format OpenDocument soutient une forte séparation entre contenu, mise en page et métadonnées.

### content.xml

C'est le fichier le plus important, il contient le contenu réel du document (excepté le contenu binaire telles les images qui sont stockées dans des fichiers séparés). La syntaxe tire son inspiration du HTML et, est compréhensible par un humain :
OpenDocument a été conçu pour permettre la conversion de ces données depuis plusieurs formats propriétaires (de Corel, le .doc de Microsoft Office…). Il reconnaît donc les fonctionnalités habituelles des suites bureautiques : plusieurs niveaux de chapitres, listes, paragraphes numérotés, liens, Ruby, références, signets, historique des changements… On y trouve également les mécanismes pour générer automatiquement les tables des matières, les index et les bibliographies.

### styles.xml

Un fichier OpenDocument est un ensemble d'objets décrits dans content.xml sur lesquels sont appliqués des styles définis dans le fichier styles.xml.
Un style est une collection de propriétés à la fois structurelles et de mise en forme. Une utilisation courante d'une application prenant en charge OpenDocument consiste donc à alterner entre la rédaction du texte et l'application de styles sur celui-ci.
Les styles s'appliquent sur toutes sortes d'objets : paragraphes, cadres, pages, caractères, numérotations, etc. Les propriétés qu'ils définissent sont entre autres : le type d'un texte (standard, titre, note de bas de page, etc.), les caractéristiques visuelles d'un texte (le choix de la police de caractères, la taille, l'alignement, la couleur, etc.), le type d'un compteur, l'ombrage d'une image, le nombre de colonnes d'une page, le sens d'écriture d'un cadre (par exemple, pour écrire du japonais à la verticale), etc. Les styles peuvent être créés pour toutes sortes d'usages et même avoir des propriétés conditionnelles. Pour les usages ponctuels de mise en forme, des styles automatiques, dépourvus de sens sémantiques, sont générés par le programme. L'abus de ces styles automatiques est considéré comme une erreur d'utilisation, surchargeant inutilement le document.

### meta.xml

Ce fichier contient les métadonnées associées au document.
Une liste de champs prédéfinis fait partie du standard : application, titre, description, sujet, mots-clés, auteur initial, auteur, imprimé par, date de création, date de dernière modification, date de dernière impression, durée d'édition, modèle utilisé, rechargement automatique, langue, nombre d'éditions, durée totale d'édition, statistiques sur le document.
Les métadonnées permettent de gérer l'interopérabilité entre divers types de ressources informatiques.

## Outils de développement

OpenDocument est conçu non seulement pour devenir un format commun pour les applications bureautiques du marché, mais aussi pour permettre la production ou l'exploitation automatique de documents dans le cadre de toutes sortes d'applications. L'objectif est de réaliser ces traitements en accédant directement aux fichiers, sans dépendre d'un logiciel bureautique quelconque, de manière à pouvoir développer des applications plus robustes, plus performantes et capables de s'exécuter dans d'autres environnements que les postes de travail des utilisateurs. Cet objectif concerne deux sortes d'applications, à savoir d'une part celles qui exploitent les données contenues dans les documents (traitement de formulaires, gestion électronique des documents), et d'autre part celles qui produisent ou modifient des documents à partir d'informations de gestion.
L'enjeu est important dans la mesure où il est de plus en plus nécessaire d'améliorer l'interopérabilité entre bureautique et système d'information.
L'outil le plus complet est UNO, mais il s'agit d'un cas très particulier. Plus qu'une simple interface de programmation, UNO est le composant central de la suite bureautique OpenOffice.org. De ce fait, il ne correspond pas tout à fait au critère d'indépendance envers un logiciel bureautique et implique des contraintes de performances non négligeables. De plus, du fait même de sa richesse, cet outil est d'un maniement complexe. Cependant, UNO permet aux programmeurs, si nécessaire, de disposer de nombreuses fonctionnalités automatisables d'OpenOffice.org et peut être utilisé dans plusieurs environnements. Il supporte nativement les langages Java, C++ et Python. Des adaptations pour d'autres langages (comme Perl, Delphi et Tcl) sont disponibles ou prévues, mais avec des possibilités plus limitées.
Pour développer des applications réellement indépendantes de tout « moteur » bureautique particulier dans de bonnes conditions de performances, on doit disposer d'outils offrant au minimum trois types de fonctionnalités :
* compression et décompression ZIP ;
* gestion de la correspondance entre le jeu de caractères local de l'utilisateur et le jeu de caractères UTF-8 dans lequel sont encodés les documents ;
* analyse syntaxique, production et recherche d'éléments dans des documents XML.
Ces fonctionnalités de base sont disponibles dans la plupart des langages de programmation usuels. Elles sont cependant peu productives et ne peuvent être utilisées que par des développeurs maîtrisant la spécification OpenDocument. Des outils de développement de plus haut niveau, plus spécialement conçus pour OpenDocument, sont nécessaires pour réduire la complexité des programmes et l'effort d'apprentissage du développeur. Dans ce domaine, plusieurs initiatives ont vu le jour ; certaines ont déjà produit des solutions opérationnelles, d'autres sont émergentes. En voici quelques-unes :
* LibOpenDocument est un projet d'interface de programmation d'usage général, initialement basé sur Python, initié par l'OpenDocument Fellowship.
* Open Document Format Utilities est une collection de classes Java, librement téléchargeables, destinée à extraire le texte ou les métadonnées d'un document.
* ODF Tools est principalement une collection de feuilles de styles XSL développées par l’OpenDocument Fellowship et destinées à convertir des fichiers OpenDocument dans d'autres formats et vice-versa.
* OpenDocument Connector alias OpenOffice::OODoc est une interface de programmation d'usage général, basée sur Perl et disponible en distribution CPAN (il en existe une présentation en français).
* OOBuilder est lui aussi un outil en Perl, également disponible en distribution CPAN, qui permet la création simple et rapide de documents.
* (Python Open Document) définit une manière très simple d'insérer des instructions spéciales (écrites en Python) dans un fichier OpenDocument Text (ODT) afin de produire des documents dont le contenu provient dynamiquement de n'importe quel programme écrit en Python. Il s'agit un peu du principe du HTML dynamique appliqué au format OpenDocument, si ce n'est qu'il ne requiert aucune connaissance du format OpenDocument : l'utilisateur de POD écrit ses documents directement dans son logiciel de traitement de texte (OpenOffice, KOffice, etc.).
* jOpenDocument, la plus complète des bibliothèques Java opensource permettant la manipulation et la génération de documents.
* Le projet lpOD développe des bibliothèques de création et de traitement de documents ODF en Python, Perl et Ruby à partir d'une spécification commune.

## Adoption

Dix-sept gouvernements nationaux et huit gouvernements régionaux ont adopté le format OpenDocument.

### Administrations

L'usage du format OpenDocument est encouragé par certaines administrations désirant bâtir leur infrastructure publique sur des standards ouverts, pour faciliter l'interopérabilité et l'exercice de la libre concurrence dans le domaine des suites bureautiques.

### Logiciels

Suivant KOffice, LibreOffice et Apache OpenOffice, les créateurs de la norme, de nombreux éditeurs de logiciels expriment leur intérêt pour OpenDocument. IBM prône l'utilisation unique du format OpenDocument dans l'ensemble de ses produits de la gamme Notes et Workplace.
Le 3 mars 2006 naît l'Open Document Alliance.
OpenDocument est aussi le format par défaut utilisé par Lotus Symphony d'IBM.
Mac OS X v10.5 inclut une nouvelle version de TextEdit qui permet d'enregistrer et importer des documents OpenDocument mais ne prenant cependant pas en charge les notes de bas de page.
Microsoft Office 2007, à partir du Service Pack 2, offre également un support natif de l'ODF. Malheureusement, certaines fonctions de bases du tableur sont absentes$^,$. De plus, Microsoft Office ne gère pas correctement l'ODF 1.2. Lors de l'ouverture d'un fichier ODF 1.2, le logiciel génère une alerte imposant à l'utilisateur de passer par une procédure de récupération pour ouvrir le fichier.

### État du Massachusetts

OpenDocument est médiatisé en 2005 par une démarche de l'État américain du Massachusetts décidé à développer le projet précurseur d'une infrastructure publique basée sur des standards ouverts, interopérables, concurrentiels et pérennes, en opposition à la situation antérieure où elle dépend uniquement des applications utilisées.
Une partie essentielle de cette démarche consiste en l'évaluation et la sélection de formats de fichiers pour le domaine de la bureautique. Après une évaluation des différents candidats étalée sur huit mois et soumis à un intense lobbying de la part de toutes les parties, il est statué le 21 septembre 2005 :
* que « pour assurer le maximum d'interopérabilité, il est recommandé que les extensions propriétaires à tout format XML soient évitées. » La politique de licence trop restrictive conduit à rejeter le format Open XML de Microsoft Office. OpenXML ne serait pas compatible avec les programmes sous licence GPL ;
* de standardiser les formats texte : HTML, PDF (mise en page parfaitement conservée) ou OpenDocument (documents éditables) ;
* que la migration vers le format OpenDocument doit se faire d'ici le 1er janvier 2007.
Le titre aguicheur sous lequel cette décision a été présentée par de nombreux journalistes, « L'État du Massachusetts exclut Microsoft Office de son infrastructure », est inexact car la décision porte uniquement sur le format des données ; Microsoft reste libre d'implémenter le format OpenDocument. Mais Alan Yates a adressé, au nom de Microsoft, une longue réponse à Eric Kriss (responsable des opérations informatiques de l'État du Massachusetts) et son adjoint Peter Quinn, expliquant que la société Microsoft n'entend pas prendre en compte le standard OpenDocument, s'excluant elle-même de ce marché public. Les concurrents de Microsoft ont sévèrement critiqué ce refus et l'argumentation qui l'accompagne. Selon eux, Microsoft refuserait d'avoir à affronter une concurrence basée sur les seuls mérites des applications respectives : fonctionnalités, rapidité, ergonomie, prix.
Cependant, dès l'hiver 2005, une polémique éclate : Peter Quinn est soupçonné par le journal The Boston Globe d'être corrompu par des acteurs de l'open source. Ces soupçons se fondent sur la présence de Quinn à plusieurs conférences sur l'open source au moment du projet de passage à ODF par l'État du Massachusetts. En France, la presse spécialisée qualifie ces soupçons de corruption de « rumeur ».
Quelques jours plus tard, le départ d'Eric Kriss, « très décrié de par son attitude hostile vis-à-vis de Microsoft », attise la polémique et les soupçons. À la fin de l'année 2005, l'État du Massachusetts revient sur sa décision puis ajoute finalement, en 2007, le format Office Open XML de Microsoft à sa liste des standards techniques aux côtés de l'ODF.

### Union européenne

L'Union européenne a évalué différents formats bureautiques et s'est prononcée favorablement sur OpenDocument comme base d'un format standard pour l'échange de documents. La Commission européenne écrit notamment dans sa lettre finale d'évaluation d'OpenDocument : « Les nécessités de transparence et d'accessibilité dictent que les échanges d'informations publiques avec les gouvernements évitent de dépendre de technologies qui impliquent ou imposent un produit ou une plate-forme en particulier pour les affaires ou les citoyens. »
Dans cette évaluation, la Commission européenne a demandé également que le format OpenDocument soit présenté au comité de normalisation ISO. Sun Microsystems et le comité OASIS ont accepté.
En mai 2006, l'ISO/IEC a adopté le format, qui est devenu ainsi la norme ISO/IEC 26300:2006. Cette dénomination ayant été obtenue, l'Union européenne ou ses membres pourraient à présent recommander ou même imposer OpenDocument.

#### Danemark

Vendredi 2 juin 2006, le Danemark a franchi une étape importante en Europe en votant à l'unanimité un projet visant à utiliser les standards ouverts – ODF en particulier – dans tout ce qui touche aux technologies de l'information dans le pays.

#### Belgique

Vendredi 23 juin 2006, le gouvernement fédéral belge décide de rendre obligatoire dans son administration le format Open Document à partir de septembre 2008$^,$. La Belgique est le premier État au monde qui interdit de facto l'usage de formats propriétaires tels que ceux de Microsoft$^,$$^,$. En septembre 2007, le format devrait être lisible par toutes les administrations du pays. En septembre 2008, ODF devrait être obligatoire comme format de fichier d'échange entre les différents services et administrations belges.

#### France

En France, le député Bernard Carayon recommande également l'utilisation d'OpenDocument dans son deuxième rapport sur l'intelligence économique et la normalisation, intitulé À armes égales.
En avril 2006, l'utilisation du format OpenDocument est recommandée par la DGME qui lance un appel public à commentaires sur la base d'une version du projet de Référentiel général d'interopérabilité. Si la version de 2009 du RGI recommandait des formats basés sur le XML en plaçant l'ODF et l'OOXML en observation, sa version 1.9.7 de mars 2015 recommande l'utilisation du format Open Document Format (ODF).
De plus, la gendarmerie nationale avec la suite OpenOffice, le navigateur Firefox, le client de messagerie Thunderbird ainsi que l'Assemblée nationale ont adopté une politique très ouverte en matière de logiciels libres. Le MEDDE (Ministère de l'Écologie, du Développement durable et de l'Énergie) installe également sur ses postes OpenOffice, Firefox et Thunderbird comme logiciels par défaut depuis le milieu des années 2000. Depuis 2012, OpenOffice est remplacé par LibreOffice.
Pour mémoire, le 3 septembre 2007, la commission de normalisation ad hoc de l'AFNOR s'était prononcée contre l'adoption par l'ISO du format concurrent Office Open XML (OOXML).

#### Portugal

Le 21 juin 2011, le Portugal vote une loi promouvant les standards ouverts. Le 8 novembre 2012, le journal Officiel publie une liste de formats ouverts parmi lesquels est cité l'ODF (dans sa version 1.1 de l'OASIS). Tous les documents devront être dans ce format avant juillet 2014.

### Royaume-Uni

Le gouvernement britannique a retenu le format ODF 1.2 comme format de document bureautique révisable.