We are intervening in the Apple vs.EC litigation. Become a proud supporter of the FSFE and join us in defending software freedom from monopoly control: https://my.fsfe.org/donate!

FSFE achtergrondinformatie

Interoperabiliteitsproblemen met MS-OOXML

[ Ook beschikbaar als PDF (Engelse versie)(1.3M)]

De voorgestelde MS-OXML/DIS29500 specificaties geven aanleiding tot ernstige technische en juridische bezwaren. 1 Dit document legt aan de hand van drie voorbeelden uit hoe de voorgestelde MS-OOXML specificaties en de praktische toepassing ervan in MS Office 2007 de interoperabiliteit hinderen, je afhankelijkheid van één bepaalde verkoper verhogen en hoe dat leidt tot een verstoorde markt.

Deze bezorgdheid is allerminst afgenomen tijdens de ISO Ballot Resolution Meeting over de meer dan 1000 technische bezwaren en voorgestelde oplossingen. De deelnemers konden slechts over 20 tot 30 voorstellen discussiëren en aanvaardden ongeveer 200 kleine aanpassingen in de voorziene tijd.Over ongeveer 900 zaken werd niet gediscussieerd. 2

Voorbeeld #1: Niet-gedefinieerde binaire gegevens in het door MS Office gegenereerde MS-OOXML formaat verhinderen interoperabiliteit

Analyses hebben aangetoond dat de XLSX-documenten die gecreëerd worden door MS Office 2007 bovenop de inhoud beschreven in de voorgestelde MS-OOXML-specificaties ook binaire gegevens bevatten. Dit kan de interoperabiliteit verhinderen en kan de betrouwbaarheid van de documenten sterk verminderen. De analyses werden uitgevoerd door de XLSX-documenten te downloaden van microsoft.com en de bestanden te 'unzippen', zo kon men de interne bestandsstructuur bestuderen.3 4

De binaire inhoud bestaat uit drie door de implementatie gedefinieerde bestanden met de name printerSettings1.bin, printerSettings2.bin en printerSettings3.bin. Ze komen van Microsoft en hun inhoud wordt niet gedefinieerd in de voorgestelde specificaties. Als men de binaire bestanden bestudeert in een HEX-editor geven ze enkele verwijzingen vrij naar 'Microsoft OneNote Import' en 'Letter'. 'Letter' is blijkbaar een verwijzing naar de grootte van de pagina.

Naar de grootte van een pagina verwijzen in een binaire, door de implementatie gedefinieerde file is problematisch. Informatie over de grootte van de pagina is cruciaal om een correcte lay-out van de pagina te verkrijgen. Europese toepassingen die geen toegang hebben tot deze binaire informatie zouden een A4 pagina kunnen gebruiken waardoor meer gegevens op één pagina passen. Twee verschillende gebruikers kunnen de indruk krijgen over heel andere documenten bezig te zijn als hun paginanummering niet overeenkomt.

Voorbeeld #2: De clausule over de conformiteit heeft geen waarde

De voorgestelde specificatie heeft een erg vaag omschreven clausule om te bepalen of een toepassing conform is aan de specificaties. Er wordt gesteld dat een conforme 'klant' een conform document moet kunnen openen zonder foutmeldingen en een conforme 'producent' moet in staat zijn om een conform bestand te genereren. Elk onderdeel van de specificatie dat door de toepassing wordt geïmplementeerd moet overeen komen met de definities uit de voorgestelde specificaties. 5 Aan deze voorwaarden voldoen zelfs programma's die deze conforme documenten niet gebruiken.

Een voorbeeld van een programma dat voldoet aan de conformiteitsclausule uit de voorgestelde specificaties maar dat men moeilijk als een conforme toepassing kan beschouwen is GNU 'cp', een programma dat bestanden kopieert. 6 'cp' voldoet als 'klant' techisch gezien aan de voorgestelde specificatie aangezien het geen enkel conform document verwerpt en elk onderdeel van de specificatie dat geïmplementeerd is (er zijn er geen) voldoet aan de definitie ervan. 'cp' voldoet ook als 'producent' aan de voorgestelde specificaties aangezien het conforme bestanden creëert en elk onderdeel van de specificatie dat geïmplementeerd is (geen) voldoet aan de definitie ervan.

De conformiteitsclausule in de voorgestelde specificaties voldoet niet aangezien bijna elke toepassing die bestanden opent en opslaat volgens die regels conform is. Wat zo'n programma eigenlijk doet met een conform document wordt niet bekeken, zo kan men makkelijk de valse bewering maken dat een programma de specificatie ondersteunt. 7 Een conformiteitsclausule is één van de meest belangrijke delen van een standaard en de tekst die men daarvoor gebruikt in DIS29500 heeft in de praktijk geen enkele betekenis.

Voorbeeld #3: Microsofts Open Specification Promise is geen juridisch betrouwbaar middel voor volledige interoperabiliteit

MS-OOXML-bestanden gegenereerd door MS Office 2007 bevatten gegevens die door de implementatie gedefinieerd worden. Aangezien deze inhoud niet beschreven wordt in de voorgestelde specificaties stellen wij ons vragen bij de juridische status ervan onder Microsofts Open Specification Promise (OSP). De OSP is namelijk beperkt tot patenten "that are necessary to implement only the required portions of the Covered Specification that are described in detail and not merely referenced in such Specification."(die noodzakelijk zijn voor het implemeteren van het 'vereiste' deel van de voorgestelde specificaties die in detail beschreven worden en niet die delen waar slechts naar verwezen wordt in die specificatie.) 8

In de laatste zin van de tweede paragraaf stelt de OPD dat "No other rights except those expressly stated in this promise shall be deemed granted, waived or received by implication, exhaustion, estoppel, or otherwise"(geen andere rechten dan diegene die expliciet vermeld worden in deze belofte toegekend worden ...) 9 Het lijkt dus niet meer dan logisch om niet op de OSP te vertrouwen voor zaken die noodzakelijk zijn voor de interoperabiliteit maar die niet in detail beschreven zijn of waarnaar slechts verwezen wordt in de voorgestelde specificaties.

Deze bezorgdheid wint nog aan belang als het document wordt weggeschreven in één van de andere variaties van het voorgestelde formaat. XLSM-documenten bevatten zowel niet-gedefinieerde als binaire inhoud. XLSB-documenten bevatten inhoud die is opgeslagen volgens een methode die niet beschreven wordt in de voorgestelde specificaties. XSLX-documenten die worden beschermd met een paswoord worden opgeslagen in een soort container die blijkbaar ook niet beschreven wordt in de voorgestelde specificaties.

Besluit

Binaire gegevens, het ontbreken van een efficiënte conformiteitsclausule en juridische onzekerheid zijn slechts enkele van de bezwaren rond de voorgestelde MS-OOXML specificatie.

Als men weet dat het ISO-proces ongeveer 900 onopgeloste technische commentaren heeft en niet discussieert over juridische bedenkingen, kan men zich vragen stellen bij de geschiktheid van de voorgestelde specificaties. Het enige mogelijke resultaat van de voorgestelde specificatie en de praktische implementatie ervan in MS Office 2007 is het bemoeilijken van de interoperabiliteit, een grotere afhankelijkheid van één verkoper en een voortdurende verstoring van de markt.

Volgens de FSFE kunnen de nationale bureaus maar één zinvol antwoord geven: verwijder DIS29500 uit het FastTrack-proces door "AFKEURING, met commentaren" te stemmen. Stel voor om de specificaties via de normale procedures door ISO te loodsen, in het beste geval door integratie in ISO/IEC 26300, het Open Document Format (ODF).

Meer infomatie


[1] een voorbeeld op 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] De zip-container bevatte de volgende bestanden: ./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] De exacte formulering is "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."

[6] Begin met een conform document 'test.docx'. Voer het commando 'cp test.docx test_copy.docx' uit. U kan zien dat er geen foutmeldingen worden gegeven en dat er ook een conform document is gecreëerd.

[7] Voorbeelden van toepassingen die volgens Microsoft de voorgestelde specificaties ondersteunen: Apple Mac OS X, heeft geen ondersteuning voor afbeeldingen en ingebedde objecten. iWork, ondersteunt geen rekenbladen, kan slechts een beperkt deel van de documenten importeren en kan geen documenten opslaan. Google (Search, Preview) kan omgaan met de tekst maar ondersteunt geen layout, afbeeldingen en ingebedde objecten.

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

[9] Ibid