ODF z technického hlediska
28.6.2025 Italo Vignoli (překlad Barbora Svobodová)
Originál článku: https://blog.documentfoundation.org/blog/2025/06/28/a-technical-dive-into-odf/
Při psaní tohoto článku jsem překročil hranice svých technických znalostí, které odpovídají znalostem pokročilého uživatele, který se podrobně zabýval standardními formáty a jejich vlastnostmi, abych pochopil, proč standardní formáty – jeden z pilířů digitální suverenity – a proprietární formáty – jejich opak a jedna z největších překážek digitální suverenity – nejsou vnímány jako problém většinou uživatelů PC, kteří nadále používají proprietární formáty společnosti Microsoft a svěřují přístup a dostupnost svého obsahu do rukou této americké společnosti.
Abych se pokusil tento problém napravit, pokusím se co nejjednodušeji a bez použití technického jazyka (což může šokovat vývojáře, ale tento článek není určen jim) vysvětlit některé technické vlastnosti formátu Open Document Format (ODF), které z něj činí základní kámen otevřeného a na dodavateli nezávislého ekosystému pro kancelářské dokumenty, bránícího digitální svobody všech uživatelů a správu jejich obsahu.
Nejprve vysvětlím, jak rozbalit soubor ODF, který není nic jiného než množství souborů XML a dalších souborů (pro obrázky a videa) zabalených ve složce ZIP, aby bylo možné prozkoumat jeho vnitřní součásti, zejména soubor content.xml, který obsahuje tělo dokumentu (tj. duševní vlastnictví uživatele).
Cílem není tolik posoudit shodu (soulad se specifikacemi) a interoperabilitu (schopnost konzistentní výměny souborů mezi nástroji), protože těmito aspekty se vždy zabývají odborníci, ale spíše pochopit výhody otevřeného a standardního formátu pro uživatele oproti uzavřenému a proprietárnímu formátu (který je falešně standardní, protože byl schválen ISO/IEC v rozporu s „jejich“ definicemi standardů).
Z tohoto důvodu se na závěr krátce zmíním o vlastnostech formátu OOXML (Office Open XML) používaného v Microsoft Office a Microsoft 365, opět s cílem objasnit uživatelům rizika, kterým čelí, a škody, které způsobují sobě i ostatním uživatelům, když používají formáty DOCX, XLSX a PPTX, a také o „dárku“, který dávají společnosti Microsoft, které fakticky svěřují správu a budoucnost svého obsahu.
Analýza souboru ODF
Vezměte jakýkoli dokument, který jste vytvořili v LibreOffice. Pro větší pohodlí doporučuji začít s textovým dokumentem vytvořeným v LibreOffice Writer s příponou ODT. Než uděláte cokoli jiného, duplikujte soubor, protože chyba v postupu by mohla způsobit jeho nečitelnost, a přesuňte originál do jiné složky.
Přejmenujte kopii tak, že nahradíte příponu ODT příponou ZIP, aniž byste odstranili tečku. Ikona souboru se změní na ikonu komprimovaného souboru. Pokud se ikona změní na bílou nebo prázdnou, udělali jste něco špatně nebo jste odstranili tečku. Zkontrolujte všechny kroky, dokud se ikona nezmění na ikonu komprimovaného souboru.
V tomto okamžiku klikněte pravým tlačítkem myši na ikonu a vyberte možnost „rozbalit“ nebo „extrahovat“, aby se obsah komprimovaného souboru extrahoval do složky se stejným názvem jako soubor bez přípony.
Složka bude obsahovat následující položky:
-
složku META-INF, která bude obsahovat soubor manifest.xml
-
složku Thumbnails, která může obsahovat soubor thumbnail.png
-
soubor content.xml, který obsahuje tělo dokumentu
-
soubor styles.xml, který obsahuje definice stylů
-
soubor meta.xml, který obsahuje metadata souboru (autor, datum vytvoření, datum poslední úpravy atd.)
-
soubor settings.xml, který obsahuje nastavení aplikace
Každý soubor XML v dokumentu ODF musí být v souladu se schématem RelaxNG XML, neboli REgular LAnguage for XML Next Generation, vytvořeným organizací OASIS v letech 2001 a 2002, které je jednodušší – a tudíž přístupnější pro uživatele bez technických znalostí – než jiná schémata XML. Pravidla balení jsou definována specifikacemi OpenDocument Packaging.
Kromě ověření schématu musí splňovat řadu podmínek.
Strukturální shoda: prvky souborů ZIP a manifest.xml.
Funkční shoda: všechny standardní a volitelné funkce (metadata, styly, tabulky, grafika atd.).
Shoda vzorců: vzorce v tabulkách musí být kompatibilní se sémantikou OpenFormula.
Bezpečnostní shoda: profily ODF, šifrování, digitální podpis.
Soubor manifest.xml obsažený ve složce META-INF musí obsahovat seznam všech souborů v souboru ZIP s uvedením jejich typu média:
<manifest:manifest xmlns:manifest=”urn:oasis:names:tc:opendocument:xmlns:manifest:1.0″>
<manifest:file-entry manifest:full-path=”/” manifest:media-type=”application/vnd.oasis.opendocument.text”/>
<manifest:file-entry manifest:full-path=”content.xml” manifest:media-type=”text/xml”/>
<manifest:file-entry manifest:full-path=”styles.xml” manifest:media-type=”text/xml”/>
<!– thumbnails, settings, etc. –>
</manifest:manifest>
Stačí jednoduše vynechat soubor nebo udělat chybu v popisu jeho typu média a soubor ODF bude strukturálně nekompatibilní.
ODF: význam souboru content.xml
Abychom pochopili výhody otevřeného standardního formátu, jako je ODF, oproti proprietárnímu formátu, i když je teoreticky otevřený, jako je OOXML, stačí provést rychlou analýzu souboru content.xml v souborech ODF a jeho ekvivalentu v souborech OOXML, který se liší v závislosti na typu souboru (a již to samo o sobě je známkou toho, že při vývoji OOXML nebyly vůbec zohledněny potřeby uživatelů, ale byl kladen důraz na umělé zvyšování složitosti).
Vezměme si první příklad založený na jedné z nejslavnějších frází v historii světové literatury, a to „být, či nebýt, to je otázka“, kterou pronesl protagonista Hamleta Williama Shakespeara.
Soubor content.xml textového dokumentu obsahujícího pouze tuto větu má 32 řádků: prvních 18 obsahuje odkazy na všechny použité standardy (například X-Forms a MathML), seznam fontů použitých ve stylech dokumentu a definici stylů (v tomto případě pouze jeden, vzhledem k délce textu a absenci formátování).
Dalších 13 řádků je následujících:
<office:body>
<office:text>
<office:forms form:automatic-focus=”false” form:apply-design-mode=”false”/>
<text:sequence-decls>
<text:sequence-decl text:display-outline-level=”0″ text:name=”Illustration”/>
<text:sequence-decl text:display-outline-level=”0″ text:name=”Table”/>
<text:sequence-decl text:display-outline-level=”0″ text:name=”Text”/>
<text:sequence-decl text:display-outline-level=”0″ text:name=”Drawing”/>
<text:sequence-decl text:display-outline-level=”0″ text:name=”Figure”/>
</text:sequence-decls>
<text:p text:style-name=”P1″>Být, či nebýt, to je otázka</text:p>
</office:text>
</office:body>
První řádky definují tělo dokumentu a skutečnost, že se jedná o text. Následující řádky jsou deklarace, které v tomto případě nic nepřidávají, ale v jiných kontextech by poskytovaly informace o dalších prvcích dokumentu.
Klíčový řádek je tento: <text:p text:style-name=‘P1’>Být, či nebýt, to je otázka</text:p>, který definuje odstavec, deklaruje jeho styl (P1) a poskytuje obsah: Být, či nebýt, to je otázka. Jasné a čitelné pro každého uživatele, který nyní má klíče k přístupu k dokumentu a správě jeho obsahu, tj. produktu svého mozku.
Složitější dokumenty a obsahy by samozřejmě odpovídaly složitějšímu souboru content.xml, ale vždy by byla zachována čitelnost obsahu a jednoduchost schématu XML.
OOXML: co se děje uvnitř souboru
Podívejme se, co se děje v případě stejného dokumentu uloženého ve formátu DOCX, uzavřeném a proprietárním, a uměle složitém. Soubor se jmenuje document.xml a ne content.xml, což by samozřejmě nebylo významné, kdyby to nebylo dalším znakem složitosti formátu, vzhledem k tomu, že v případě Excelu se soubor jmenuje workbook.xml a v případě PowerPointu se jmenuje slide1.xml atd.
Soubor document.xml textového dokumentu obsahujícího pouze větu „Být, či nebýt, to je otázka“ (zde v anglickém originále “To be, or not to be, that is the question”) má 41 řádků: první obsahuje odkazy na všechny použité proprietární prvky (například wordprocessingCanvas, VML a WordML) a všechny následující řádky se týkají obsahu:
<w:body>
<w:p xmlns:wp14=”http://schemas.microsoft.com/office/word/2010/wordml” wp14:paraId=”2DC08235″ wp14:textId=”776AF5CB”>
<w:r w:rsidR=”6B254FF6″>
<w:rPr/>
<w:t xml:space=”preserve”>To be, or </w:t>
</w:r>
<w:r w:rsidR=”6B254FF6″>
<w:rPr/>
<w:t>not</w:t>
</w:r>
<w:r w:rsidR=”6B254FF6″>
<w:rPr/>
<w:t xml:space=”preserve”> to be, </w:t>
</w:r>
<w:r w:rsidR=”6B254FF6″>
<w:rPr/>
<w:t>that</w:t>
</w:r>
<w:r w:rsidR=”6B254FF6″>
<w:rPr/>
<w:t xml:space=”preserve”> </w:t>
</w:r>
<w:r w:rsidR=”6B254FF6″>
<w:rPr/>
<w:t>is</w:t>
</w:r>
<w:r w:rsidR=”6B254FF6″>
<w:rPr/>
<w:t xml:space=”preserve”> the question</w:t>
</w:r>
</w:p>
<w:sectPr>
<w:pgSz w:w=”11906″ w:h=”16838″ w:orient=”portrait”/>
<w:pgMar w:top=”1440″ w:right=”1440″ w:bottom=”1440″ w:left=”1440″ w:header=”720″ w:footer=”720″ w:gutter=”0″/>
<w:cols w:space=”720″/>
<w:docGrid w:linePitch=”360″/>
</w:sectPr>
</w:body>
Nezřetelné a nečitelné. Vyzývám každého uživatele, aby z takového XML dokumentu rekonstruoval text jakékoli složitosti, pokud je původní soubor poškozen. V případě ODF jsme byli schopni rekonstruovat i dokumenty o stovkách stran nebo prezentace o desítkách snímků, protože obsah byl čitelný pro každého uživatele, i pro ty, kteří nemají technické znalosti.
Zkusme si představit velikost souboru content.xml a souboru document.xml, kdyby místo věty prince Hamleta obsahovaly všech 5 566 řádků celé tragédie v původní verzi napsané Williamem Shakespearem. V tomto případě rozdíl mluví sám za sebe: soubor content.xml má 5 598 řádků (o 32 řádků více než text), soubor document.xml má 93 289 řádků (o 87 723 řádků více než text).
Složitost souborů jako nová strategie uzamčení
Tato složitost souborů je záměrně skryta před uživatelem, který na obrazovce vidí normálně vypadající dokument a nemá tušení, že píše soubor na svůj pevný disk nebo do cloudu, který má velmi podobné vlastnosti jako proprietární soubory používané v minulém století, které jsou nečitelné bez softwaru, ve kterém byly napsány.
Uživatel, který se domnívá, že dosáhl významného pokroku v oblasti digitální suverenity, protože používá formát, který považuje za otevřený a standardní, ale který je naopak ještě horší než binární formáty z počátku 20. století – které nebyly ničím jiným než zápisem toho, co bylo v paměti –, protože je založen na XML, je potomkem algoritmu, který lze vzdáleně modifikovat rutinní aktualizací (jak se děje ve skutečnosti, kde je stejný dokument zapsán ve formátu DOCX, ale pokaždé s úplně odlišnou syntaxí XML, založenou na parametrech známých pouze dodavateli, tj. společnosti Microsoft).
Jedná se tedy o ještě uzavřenější a proprietárnější formát než binární formáty, které nahradil v roce 2006. Ty byly výsledkem zápisu obsahu paměti do souborů, byly předvídatelné a daly se emulovat, zatímco OOXML je díky algoritmu nepředvídatelný, a proto je téměř nemožné jej emulovat bez neustálého studia jeho mnoha vývojových změn.
OOXML je teoreticky otevřený a standardní formát, který je ve skutečnosti uzavřený a proprietární a představuje nejnovější vývoj strategie uzamčení, na které jsou založeny všechny produkty společnosti Microsoft pro individuální produktivitu, bránící odhadovaný obrat přes 25 miliard dolarů ročně s odhadovaným čistým ziskem přes 20 miliard dolarů ročně (všechny údaje jsou odhady, protože údaje analytiků již nejsou k dispozici a jsou pravděpodobně nižší než skutečné údaje).
Možná nastal čas, aby nadnárodní organizace, ústřední a místní vlády a pravděpodobně i jednotliví uživatelé otevřeli oči a učinili jednoduchý krok směrem k digitální suverenitě, tj. správě dokumentů a jejich obsahu nezávislé na komerčních rozhodnutích jedné společnosti, a to přijetím formátu ODF a opuštěním formátu OOXML.

Sledujte nás