Office Open XML
Office Open XML (OOXML) je specifikace pro souborový formát na ukládání dokumentů kancelářských balíků jako textových dokumentů, tabulek či prezentací. Formát byl navržen společností Microsoft a poprvé byl použit v Microsoft Office 2007. Finální specifikace byla vytvořena pod hlavičkou sdružení ECMA v rámci pracovní skupiny TC45, jejímiž členy jsou například také společnosti a organizace, mezi které patří: Apple, Barclays Capital, BP, Britská knihovna, Essilor, Intel, Microsoft, NextPage, Novell, Statoil, Toshiba a Knihovna kongresu USA. Tento standard dostal označení ECMA-376. Schvalování vyvolalo kontroverze.
Charakteristika
Formát Office Open XML je soubor ZIP, který v sobě obsahuje XML a další potřebné soubory. Výsledkem jsou tak menší soubory, než byly původní binární soubory, které byly vytvářeny předchozími verzemi kancelářského balíku Microsoft Office. Hlavním cílem zavedení formátu bylo především zajištění splnění podmínek standardizačního procesu a úplná zpětná kompatibilita s doposud existujícími dokumenty, které uživatelé nadále používají, nebo je mají archivované, včetně plné podpory všech jejich rozšiřujících vlastností.[zdroj?!]
Dokumentace
Seznam oficiální dokumentace ke specifikaci:
- Part 1: Fundamentals – základní úvod do částí specifikace
- Part 2: Open Packaging Convention – podrobný popis vnitřní struktury dokumentů, popis zabezpečení dokumentů
- Part 3: Primer – v podstatě rozšířený a rozvedený dokument Part 1: Fundamentals, tento dokument je doporučován jako výchozí pro seznámení s OOXML
- Part 4: Markup Language Reference – velmi podrobná referenční příručka ke všem elementům specifikace, včetně ukázek a použití
- Part 5: Markup Compatibility and Extensibility – informace jak rozšiřovat stávající specifikaci
Části specifikace
Specifikace je rozdělena do několika částí.
- Open Packaging Conventions (OPC) – popisuje vnitřní strukturu souborů
- WordProcessingML – popisuje XML pro textové procesory
- SpreadsheetML – popisuje XML pro tabulkové kalkulátory
- PresentationML – popisuje XML pro prezentace
- DrawingML – popisuje XML pro grafické elementy dokumentů
- Podpůrné „ML“ – sada XML pro velmi specifické úkoly, např. matematické vzorce
- Custom XML – definuje způsob jak vkládat uživatelská XML do dokumentu a propojavat je s obsahem
Open Packaging Conventions (OPC)
Popisuje vnitřní strukturu archívu ZIP, který obsahuje dokument. Základním prvkem jsou soubory s příponou .rels, které udržují informace o vztazích mezi ostatními soubory. Příkladem může být vztah mezi sešitem v tabulkovém kalkulátoru a listy, které sdružuje. Pomocí OPC lze vytvářet i vlastní formáty, protože se jedná o obecnou specifikaci. K obsahu dokumentu lze přistupovat dvěma způsoby – s využitím OPC nebo přes adresářovou strukturu archivu.
WordProcessingML
Struktura vychází ze schématu body – paragraph – run. Tělo dokumentu je děleno na odstavce (text, obrázek, tabulka, …) a tyto části jsou dělené na tzv. runs. Zjednodušeně řečeno, run nastavuje formátování informace. Všechny textové informace, které se mají zobrazit uživateli, jsou umístěny vždy v elementu <w:t>.
SpreadsheetML
Dokument tabulkového kalkulátoru se nazývá sešit (workbook) a skládá se s listů (sheet). Sešit i listy jsou umístěny v samostatných souborech, typicky workbook.xml, sheet1.xml, sheet2.xml, … Velmi specifické je ukládání textové informace v tabulkách. Existují dva způsoby – inlinestring nebo sharedstring. Inlinestring ukládá informace přímo v buňce tabulky. Tento způsob je v podstatě identický s html. Sharedstring ukládá texty do samostatného souboru, který je sdílený pro všechny listy a každý textový obsah buňky je v něm unikátní. Buňky se pak odkazují na hodnotu v tomto seznamu.
PresentationML
Obsah dokumentu s prezentací se dělí na snímky (slide), jejich obsah a animace. Každý snímek je opět uložen v samostatném XML souboru. To samé platí např. i pro poznámky ke snímkům.
DrawingML
DrawingML popisuje vektorovou grafiku, která se používá v rámci WordProcessingML, SpreadsheetML a PresentationML. Kromě DrawingML se pro vektorovou grafiku používá i VML, které má být nahrazeno právě DrawingML.
Používané přípony souborů
- docx – dokumenty pro textové procesory
- xlsx – dokumenty pro tabulkové kalkulátory
- pptx – dokumenty s prezentací
ISO/IEC 29500
Během standardizace u ISO došlo k několika podstatným změnám ve standardu ECMA-376 na základě požadavků národních standardizačních institutů. V České republice se problematikou standardizace dokumentů zabývá ÚNMZ. Nejdůležitější přijatou změnou bylo vydefinování dvou typů dokumentů, podobně jako u XHTML, Strict a Transitional. Verze Strict neobsahuje žádné elementy, které jsou zatížené zpětnou kompatibilitou směrem ke starším dokumentovým formátům. Verze Transitional pak může obsahovat elementy, které jsou pro zpětnou kompatibilitu nezbytné. Tyto verze byly schváleny jako samostatné části standardu ISO pod číslem ISO/IEC 29500. Ve standardu se přímo uvádí, že verze Transitional slouží jen pro přechodné období a nedoporučuje se používat pro vytváření dalších nových dokumentů.
Kritika a kontroverze
Formát Office Open XML byl schválen v režimu fast-track Joint Technical Committee 1 ISO a IEC v dubnu 2008, což vyvolalo vlnu kontroverze a rozhořčení[1] s diskuzí o specifikaci a standardizačním procesu[2]a jeho neregulérností.[3]
OOXML byl rozporován z mnoha důvodů jako nepotřebný, protože softwaroví vývojáři mohli použít OpenDocument formát (ODF), který je méně komplikovaný a byl již v té době mezinárodním standardem—InfoWorld, [1]
Společnost IBM (která podporovala OpenDocument formát, tj. ODF) opustila standardizační komisi s tím, že dovoluje dominantním společnostem, jako je společnost Microsoft, mít neoprávněný vliv. Společnost Microsoft byla ve zmíněném článku obviněna z kooptace procesu normalizace tím, že se opřela o jisté země, aby zajistila, že bude mít k dispozici dostatek hlasů v ISO pro schválení OOXML, ačkoli neuvádí přesně, kdo obvinil společnost Microsoft.
Ve stručnosti lze konstatovat, že firma Microsoft využila svého vlivu na to, aby schválení standardu OOXML proběhlo v režimu schvalování, který pro takovou situaci nebyl určen. Tento režim nebyl určen pro schválení proprietárního standardu jedné firmy, nýbrž pro rychlé schválení nějakého široce přijímaného nekontroverzního de-fakto standardu. Tím Microsoft dosáhl stavu, kdy se sice ke všem připomínkám musel vyjádřit, ale nemusel na ně nijak reagovat, ani je vypořádat a ani zapracovat do předkládaného standardu a po jeho vyjádření byl OOXML automaticky schválen (bez možnosti jakéhokoliv odvolání či nápravného opatření).
Richard Stallman z Free Software Foundation oznámil, že „Společnost Microsoft nabízí bezplatnou patentovou licenci pro OOXML za podmínek, které neumožňují bezplatné implementace“.[4]
Dále bylo předkladatelům nového návrh vyčítáno, že předlohou pro tento formát byl původně uzavřený formát pro dokumenty kancelářské balíku Microsoft Office. Obavy byly zejména ohledně technologické neutrality navrženého standardu. Jako vedlejším efekt potom byla možná nekompatibilita některých atributů (např. formátu data a času či barevných kódů) s již existujícími standardy ISO.
Mezi specifické odlišnosti jednotlivých formátu patří zejména tyto oblasti:
- Používání DrawingML a VML místo SVG, které je doporučováno W3C.
- Používání Office Math ML místo MathML, které je doporučováno W3C.
- Používání makro-jazyka, který však není ve standardu OOXML definován a je ponechán čistě na aplikaci.
- Příliš velká délka specifikace standardu - OOXML je dlouhý 6546 stran, zatímco specifikace ODF má pouze 867 stran.
Reference
- KIRK, Jeremy. ISO publishes Office Open XML specification. InfoWorld. 19 November 2008. Dostupné online [cit. 12 June 2010]. (anglicky)
- Norwegian standards body implodes over OOXML controversy [online]. Ars Technica. Dostupné online. (anglicky)
- http://noooxml.wikidot.com/irregularities
- STALLMAN, Richard. We Can Put an End to Word Attachments [online]. 17 May 2009 [cit. 2010-06-12]. Dostupné online. (anglicky)
Související články
- Open Document Format (celým jménem OASIS Open Document Format for Office Applications, dále jen ODF) – je konkurenční otevřený formát dokumentů, za kterým stojí širší portfolio dalších výrobců software. Byl vyvinut skupinou „Open Office XML“ v rámci organizace OASIS. Formát je rovněž postaven na bázi XML. Jako standard ISO/IEC 26300 byl přijat první a odpočátku je zcela otevřený.
Externí odkazy
- Obrázky, zvuky či videa k tématu Office Open XML na Wikimedia Commons
- Přišel mi docx, jak ho mám otevřít ?
- Server o Office Open XML
- Blog Briana Jonese o Office Open XML
- Stránky Ecma International
- Analýza problémů návrhu standardu OOXML
- Připomínky ČNI ke standardizaci OOXML
- Ukázky pro vývojáře v češtině
- Knihovna pro generování SpreadsheetML pomocí PHP
- Knihovna pro generování SpreadsheetML pomocí .NET
- Editor vazeb formulářových polí na Custom XML
- Open XML Format SDK
- Standardization of Office Open XML