All?interno del formato

Un file OpenDocument può essere sia un semplice file XML che usa <office:document> come elemento radice o un archivio Jar contenente una serie di file e cartelle. Vista l?impossibilità di definire contenuto binario o thumbnails in maniera diretta attraverso l?XML, si tende a privilegiare il formato basato sugli archivi Jar. A supporto di tale affermazione c?è la possibilità che alcune applicazioni che usano OpenDocument non supportino il salvataggio ed il caricamento del solo file XML (cosa che ovviamente non si verifica col file Jar). L?algoritmo di compressione assai semplice rende i file creati con OpenDocument significativemente più piccoli per dimensioni dell?equivalente file creato con Microsoft Office, dettaglio da non sottovalutare, soprattutto da parte di quelle aziende che hanno la necessità di conservare un ampio numero di file per un lungo periodo o che si trovano nelle condizioni di dover scambiare file attraverso la rete senza appesantirne il traffico. Una volta decompressi, la gran parte dei dati è contenuta in file XML che possono essere facilmente interpretati e modificati come si fa con un qualunque altro file XML. Possono essere incluse anche cartelle che contengono immagini e suoni in formati differenti rispettivamente dall?SVG e lo SMIL e qualunque altro tipo di file che è contenuto in un documento ma che non è espresso in XML.

Grazie all?ampia specifica del formato di compressione utilizzato, è possibile per un utente estrarre i file e modificarli manualmente; ciò consente, ad esempio, la riparazione di file corrotti o qualsiasi manipolazione di livello semplice. Ovviamente è possibile per l?utente definire un livello di compressione preferito, magari utilizzando altri programmi per la compressione di file. Ciò, unito all?uso di programmi per l?ottimizzazione delle dimensioni delle immagini, permette un?ulteriore riduzione del 40% dello spazio occupato dal file.

OpenDocument fornisce una separazione tra contenuti, layout e metadata ben definita (per una descrizione delle componenti più importanti si rimanda ai paragrafi successivi). All?interno del file compresso si trovano infatti i seguenti file e cartelle:

  • File XML:
    • content.xml
    • meta.xml
    • settings.xml
    • styles.xml
  • Altri file:
    • mimetype
  • Cartelle:
    • META-INF/
    • Thumbnails/

I file in formato XML sono oltretutto creati utilizzando il linguaggio Relax NG, che permette la definizione degli schemi XML. Tale linguaggio è anch?esso definito da una specifica dell?OASIS ed è anche contenuto nello standard ISO/IEC 19757: Document Schema Definition Languages (DSDL).

content.xml

content.xml è senza dubbio il file più importante tra quelli che si trovano nell?archivio. In esso si trova il contenuto del documento (ad eccezione di dati binari, come ad esempio le immagini). Il formato di base è ispirato all?HTML e, benché sia più complicato, resta comunque di facile interpretazione da parte dell?utente:

<text:h text:style-name="Heading_2">Questo è un titolo</text:h>
<text:p text:style-name="Text_body">
Questo è un paragrafo. Le informazioni di formattazione si
trovano in Text-body style. Il seguente tag vuoto text:p è
un paragrafo vuoto (una linea priva di caratteri).
</text:p>
<text:p text:style-name="Text_body"/>

styles.xml

styles.xml contiene la maggior parte delle informazioni relative allo stile (una piccola porzione è contenuta infatti in content.xml). I tipi di stile includono:

  • Stile dei paragrafi
  • Stile delle pagine
  • Stile dei caratteri
  • Stile dei frame
  • Stile delle liste

Qualunque operazione sulla formattazione appare in questo file.

meta.xml

meta.xml contiene i metadati del file (ad es.: autore o ultima modifica). Il contenuto ha più o meno questa struttura:

<meta:creation-date>2003-09-10T15:31:11</meta:creation-date>
<dc:creator>Daniel Carrera</dc:creator>
<dc:date>2005-06-29T22:02:06</dc:date>
<dc:language>es-ES</dc:language>
<meta:document-statistic
meta:table-count="6" meta:object-count="0"
meta:page-count="59" meta:paragraph-count="676"
meta:image-count="2" meta:word-count="16701"
meta:character-count="98757"/>

I nomi dei tag <dc:?> sono quelli definiti nello standard XML Dublin Core.

settings.xml

settings.xml contiene informazioni come il fattore di zoom o la posizione del cursone, ovvero tutte quelle informazioni che non hanno nulla a che fare con il contenuto o il layout.

mimetype (file)

mimetype è un semplice file di una sola linea contenente il tipo mime del documento; è necessario poiché la semplice estensione del file non basta per rendere il file riconoscibile, essendo solo un modo semplice per permettere all?utente di individuare velocemente il file.

Utilizzo dei formati esistenti

Lo standard OpenDocument ha lo scopo di utilizzare solo ed esclusivamente quanto descritto dallo standard XML e crea nuove tag solo quando gli standard esistenti non implementano la funzionalità richiesta. Come abbiamo visto, infatti, OpenDocument utilizza DublinCore per i metadata, MathML per le formule, SVG per la grafica vettoriale, SMIL per i contenuti multimediali ecc.