Our new hooded zippies are there - well almost, but your can pre-order them for self-pickup at 38c3 or FOSDEM '25. The pre-order will end 2024-11-11. Pre-order your zippy now!

Résumé du contexte par la FSFE

Les misères de l'interopérabilité avec MS-OOXML

[Document également dispobible en PDF (Anglais-1,3 Mo)]

La proposition de spécification MS-OOXML/DIS-29500 fait naître de sérieux problèmes techniques et juridiques.1 Cette explication du contexte met en lumière trois exemples de la manière dont laquelle la spécification proposée et son implémentation pratique dans MS Office 2007 freinent l'interopérabilité, encouragent la dépendance vis-à-vis des fournisseurs et résultent enfin en une distorsion du marché.

Le fait qu'à la réunion de vote (Ballot Resolution Meeting - BRM) de l'ISO sur la spécification proposée, plus de 1 000 problèmes techniques et dispositions proposées ont requis une discussion, n'allège aucun des problèmes posés. En effet, les participants n'ont pu discuter qu'entre 20 et 30 dispositions et n'ont accepté qu'environ 200 corrections éditoriales mineures dans le temps imparti. 900 dispositions environ n'ont pu donner lieu à discussion.2

Exemple 1  les contenus binaires sans spécifications des fichiers MS-OOXML générés par MS Office 2007 empêchent l'interopérabilité

L'analyse a montré que les documents XLSX créés par MS Office 2007 possèdent des contenus binaires en sus des contenus décrits dans la spécification MS-OOXML proposée. Ce fait gêne l'interopérabilité et réduit potentiellement la fidélité du document généré par rapport à l'original. L'analyse a été conduite en téléchargeant un document XSLSX depuis microsoft.com et en décompressant l'archive zip afin d'en découvrir la structure interne.3 4

Le contenu binaire consiste en trois fichiers d'implémentation définis nommés printerSettings1.bin, printerSettings2.bin et printerSettings3.bin. Ils proviennent de chez Microsoft, et leur contenu n'est pas décrit par la spécification proposée. En examinant les fichiers binaires dans un éditeur haxadécimal, on relève des références à 'Microsoft OneNote Import' et 'Letter'. 'Letter' apparaît comme étant une référence à un format de papier.

Référencer un format de papier dans un fichier binaire défini par l'implémentation est problématique. En effet, le format du papier est critique pour assurer la mise en page correcte d'un document. Des applications européennes qui n'auraient pas accès à ces informations binaires pourraient par exemple utililser le format A4 à la place de Letter pour afficher le document, permettant ainsi de placer plus de contenu sur chaque page. Deux utilisateurs différents pourraient alors avoir l'impression de discuter de deux documents très différents en constatant que les numéros de page ne correspondent pas.

Exemple 2 : la clause de conformité n'a pas de sens

La spécification proposée possède une clause aux termes évasifs pour déterminer la conformité d'une application. Elle énonce qu'un lecteur conforme a besoin d'ouvrir un document conforme sans générer d'erreur et qu'un producteur conforme doit être capable de créer un seul document conforme. Toute fonctionnalité de la spécification implémentée par l'application doit se conformer aux définitions de la spécification proposée.5 Ces termes permettent de considérer des applications qui n'utilisent même pas de documents comme conformes.

Un exemple d'application respectant les clauses de la spécification proposée mais ne pouvant pas être considérée comme conforme est GNU 'cp', une commande utilisée pour copier des fichiers.6 'cp' est un lecteur techniquement conforme à la spécification proposée puisqu'il ne rejette pas un document conforme et toutes les fonctionnalités de la spécification implémentées par l'application (il n'en implémente aucune) sont respectueuses de celle-ci. 'cp' est également un producteur conforme à la spécification proposée dans le sens où il est capable de créer un document conforme et ou toutes les fonctionalités de la spécification implémentées par l'application (toujours aucune) sont respectueuses de celle-ci.

La clause de conformité de la spécification proposée est insuffisante parce que virtuellement toute application qui ouvre ou enregistre des fichiers peut être considérée comme conforme. Le degré d'utilisation des documents de chaque application n'est pas jugé, et cela permet des déclarations erronées sur la prise en charge de la spécification.7 La clause de conformité est l'une des parties les plus importantes d'une norme et le texte utilisé dans DIS-29500 est effectivement vide de sens.

Exemple 3 : l'engagement sur une spécification ouverte (Open Specification Promise - OSP) de Microsoft ne constitue pas une couverture juridique suffisante à une interopérabilité complète

Les fichiers MS-OOXML générés par MS Office 2007 sont porteurs de contenus qui sont définis par l'implémentation. Ceci est une cause de problèmes car le contenu non décrit dans la spécification proposée a un statut pour le moins opaque vis-à-vis de l'OSP. La couverture de l'OSP est limitée aux brevets «nécessaires à l'implémentation des portions des spécifications couvertes qui sont décrites en détail, et pas simplement référencées par une telle spécification.»8

L'OSP énonce dans la phrase finale du paragraphe deux que «Aucun droit, à l'exception de ceux stipulés expressément dans cet engagement, ne sera réputé octroyé, renoncé ou reçu par implication, épuisement, préclusion, ou de quelque autre manière que ce soit.»9 Il apparaît raisonnable de ne pas se fier à l'OSP pour l'accès au contenu nécessaire à l'interopérabilité dès lors qu'il n'est pas décrit en détail ou référencé dans la spécification proposée.

Le problème devient encore plus aigü si le document est enregistré sous d'autres variations de format de la spécification proposée. Par exemple, les documents XLSM comportent des contenus non spécifiés ainsi que des contenus binaires. Les documents XLSB comportent des contenus stockés en utilisant une méthode apparemment non décrite par la spécification proposée. Les documents XLSX avec mot de passe sont également stockés en utilisant un conteneur apparemment non couvert par la spécification proposée.

Conclusion

Contenus binaires, manque de clause de conformité efficace et incertitudes juridiques ne sont qu'un échantillon des problèmes associés à la spécéfication proposée MS-OOXML.

Attendu que le processus de l'ISO a encore autour de 900 commentaires techniques à résoudre et ne discutera pas des considérations juridiques, l'adéquation de la spécification proposée est plus que questionnable. Les seuls effets de la spécification proposée et de son implémentation pratique dans MS Office 2007 seront une interopérabilité amoindrie, la dépendance envers les fournisseurs et une continuité dans la distorsion de la concurrence.

De notre point de vue, il n'y a qu'une réponse possible de la part des organismes nationaux : sortir DIS-29500 du processus par voie express en votant «NON, avec commentaires», et sugérer des méthodes pour prendre en compte la spécification proposée par le processus ISO normal, idéalement par une convergence vers l'ISO/IEC 26300, le Format Open Document (ODF).

Lectures complémentaires


[1] Voir par exemple http://www.grokdoc.net/index.php/EOOXML_objections

[2] http://www.consortiuminfo.org/standardsblog/article.php?story=20080229055319727

[3] http://download.microsoft.com/download/a/a/3/aa3411df-5b02-463a-8ab1-9587dd8a2508/Salesdata.xlsx

[4] Le conteneur zip comprenait les fichiers suivants : ./Content_Types].xml, ./_rels/.rels, ./docProps/app.xml, ./docProps/core.xml, ./docProps/custom.xml, ./xl/_rels/workbook.xml.rels, ./xl/calcChain.xml, ./xl/printerSettings/printerSettings1.bin, ./xl/printerSettings/printerSettings2.bin, ./xl/printerSettings/printerSettings3.bin, ./xl/sharedStrings.xml, ./xl/styles.xml, ./xl/tables/table1.xml, ./xl/theme/theme1.xml, ./xl/workbook.xml, ./xl/worksheets/_rels/sheet1.xml.rels, ./xl/worksheets/_rels/sheet2.xml.rels, ./xl/worksheets/_rels/sheet3.xml.rels, ./xl/worksheets/sheet1.xml, ./xl/worksheets/sheet2.xml, ./xl/worksheets/sheet3.xml

[5] Les mots exacts utilisés sont : «A conforming consumer shall not reject any conforming documents of at least one document conformance class. the document type (§4) expected by that application. A conforming producer shall be able to produce conforming documents of at least one document conformance class. A conforming application shall treat the information in Office Open XML documents in a manner consistent with the semantic definitions given in this Specification. An application's intended behavior need not require that application to process all of the information in an Office Open XML document. However, the information that it does process shall be processed in a manner that is consistent with the semantic definitions given in this Specification.», que l'on peut traduire par : «Un lecteur conforme ne devrait rejeter aucun document conforme à au moins l'une des classes de conformité. Le type de document(§4) attendu par cette application. Un producteur conforme devrait être capable de produire des documents conformes à au moins une des classes de conformité. Une application conforme devra traiter l'information des documents Office Open XML d'une ménière consistante avec les définitions sémantiques données dans cette spécification. Un comportement attendu d'une application ne doit pas requérir cette application pour traiter toute l'information contenue dans un document Office Open XML. Toutefois, l'information qu'elle traite devra l'être de manière sémantiquement consistante avec les définitions données dans cette spécification.»

[6] Partez d'un document conforme nommé 'test.docx'. Exécutez la commande 'cp test.docx test_copy.docx' et constatez qu'aucune erreur n'est générée et qu'une nouvelle copie du document conforme est générée.

[7] Les exemples d'applications nommées par Microsoft comme prenant en charge la spécification proposée incluent : Apple Mac OS X, qui n'offre aucune prise en charge des images et des objets inclus. iWork, qui n'offre aucune prise en charge des feuilles de calcul, ne peut importer qu'un ensemble limité de documents et n'a aucune possibilité de les enregistrer. Google (Recherche/Prévisualisation) qui prend en charge les contenus texte, mais n'offre aucune prise en charge des mises en page, images ou objets inclus.

[8] http://www.microsoft.com/interop/osp/default.mspx

[9] Ibid