Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

OpenDocument, un formato da ufficio

Oltre lo scoglio dei formati proprietari per lo scambio di documenti con un formato standard per applicazioni SOHO
Oltre lo scoglio dei formati proprietari per lo scambio di documenti con un formato standard per applicazioni SOHO
Link copiato negli appunti

Nel maggio del 2005 OASIS, il consorzio internazionale per la definizione di standard per l'e-business, ha definito OpenDocument, un formato aperto per la memorizzazione e lo scambio di documenti.

Si tratta di un formato basato su XML che ha l'obiettivo di essere indipendente dalla piattaforma e dall'applicazione che genera i documenti. Nel maggio 2006 il formato è stato riconosciuto come standard ISO (ISO/IEC 26300).

Questi eventi portano in sé una vera rivoluzione nel campo delle applicazioni di Office Automation: è disponibile un formato standard ed aperto per la memorizzazione di documenti di testo, fogli di calcolo, grafici, presentazioni multimediali. In altre parole, gli stessi documenti possono essere scritti, letti, revisionati, usando applicazioni diverse tra loro ma ottenendo il medesimo risultato.

Il formato OpenDocument prende lo spunto dal formato di memorizzazione utilizzato da OpenOffice.org e proprio la versione 2.0 della suite libera di programmi per l'ufficio è il primo prodotto a supportare questo nuovo formato, anche se a breve seguiranno altri grossi produttori di software.

Tipi di documento

Lo standard definisce i tipi di documenti che può rappresentare identificandoli con appositi tipi MIME. Ne riportiamo alcuni:

Tipo di documento Tipo MIME
Documento di testo application/vnd.oasis.opendocument.text
Foglio di calcolo application/vnd.oasis.opendocument.spreadsheet
Presentazione application/vnd.oasis.opendocument.presentation
Grafico application/vnd.oasis.opendocument.chart
Formula application/vnd.oasis.opendocument.formula

Per ciascun tipo di documento è possibile creare anche dei modelli (template). Anche in questo caso il tipo di modello è identificato da un apposito tipo MIME.

Tipo di modello Tipo MIME
Documento di testo application/vnd.oasis.opendocument.text-template
Foglio di calcolo application/vnd.oasis.opendocument.spreadsheet-template
Presentazione application/vnd.oasis.opendocument.presentation-template
Grafico application/vnd.oasis.opendocument.chart-template
Formula application/vnd.oasis.opendocument.formula-template

Un documento OpenDocument in realtà è una collezione di documenti XML ed eventuali altri file di supporto. Le specifiche del formato prevedono che, per comodità, la collezione di file che compongono un documento possa essere racchiusa in un unico archivio. Quest'ultima è la soluzione adottata da OpenOffice.org. Infatti, se proviamo ad aprire con WinZip un documento creato con OpenOffice.org possiamo vedere la collezione di file che lo compongono.

Struttura di un documento

Un documento OpenDocument compresso contiene al suo interno una serie di file e cartelle:

Figura 1. File e cartelle di un archivio OpenDocument
File e cartelle di un archivio OpenDocument

Nel file content.xml si trova il contenuto del documento, tranne i dati binari come ad esempio le immagini.

Il file styles.xml contiene informazioni sugli stili da applicare al documento.

Nel file meta.xml sono contenute informazioni sul documento, come ad esempio l'autore, la data e l'ora dell'ultima modifica, il numero totale di pagine, di parole, di caratteri, ecc.

Il file settings.xml contiene informazioni utilizzate dall'applicazione, come ad esempio la posizione del cursore, il fattore di zoom ed altre impostazioni legate al documento.

Il file mimetype contiene il tipo MIME del documento. È questo file che determina effettivamente il tipo di documento e non l'estensione del file compresso.

La cartella META-INF contiene il file manifest.xml. Questo file descrive il contenuto del file compresso.

La cartella Pictures contiene le eventuali immagini utilizzate nel documento, mentre in Thumbnails sono contenute le eventuali anteprima delle immagini.

Infine la cartella Configurations 2 può contenere eventuali configurazioni avanzate dipendenti dall'applicazione.

Come si può dedurre da questa organizzazione dei file, è evidente lo sforzo per rendere il più possibile indipendente il contenuto dalle informazioni di stile, dai metadati e dalle impostazioni dipendenti dalla specifica applicazione.

Curiosando nei file

Se diamo uno sguardo al file content.xml, che rappresenta il file più interessante, potremo vedere qualcosa di analogo a questo blocco di codice XML che corrisponde al contenuto del documento di testo visualizzato in figura.

Figura 2. Esempio di documento
Esempio di documento

Analizzando il codice XML vediamo che l'elemento root del documento è <office:document-content>. Questo elemento contiene una lunga serie di dichiarazioni di namespace tramite l'attributo xmlns. Infatti, data la complessità delle informazioni da modellare, la grammatica di OpenDocument prevede numerosi namespace per organizzare al meglio i vari elementi XML utilizzabili nei diversi file. Ad esempio, il namespace

urn:oasis:names:tc:opendocument:xmlns:office:1.0

individua l'insieme degli elementi per definire le parti strutturali di un documento (dichiarazioni, script, corpo, ecc.). Per consentire una maggiore leggibilità, a ciascun namespace viene associato un prefisso standard. Ad esempio, per questo namespace viene utilizzato il prefisso office.

OpenDocument prevede namespace per definire elementi testuali, per le tabelle, le immagini, le presentazioni, gli script, gli stili, ecc. Ma supporta anche namespace standard, come ad esempio XLink, MathML, XForms.

La struttura essenziale di content.xml è sintetizzata nel seguente codice:

Listato 1. Struttura tipica di un file content.xml

<?xml version="1.0" encoding="UTF-8" ?>
<office:document-content ...>
  <office:scripts />
  <office:font-face-decls>
  ...
  </office:font-face-decls>
  <office:automatic-styles>
  ...
  </office:automatic-styles>
  <office:body>
    <office:text>
      <office:forms form:automatic-focus="false" form:apply-design-mode="false" />
      <text:sequence-decls>
      ...
      </text:sequence-decls>
      <text:p text:style-name="P1">Prova</text:p>
      <text:p text:style-name="Standard">Questo 柵n documento di prova</text:p>
    </office:text>
  </office:body>
</office:document-content>

Essenzialmente essa è formata da una serie di elementi che contengono eventuali script ed una serie dichiarazioni di stile incorporati nel documento. Segue quindi un blocco che rappresenta il corpo del documento (<office:body>), all'interno del quale si trova il contenuto vero e proprio. Nel nostro caso il contenuto del corpo è costituito da testo (<office:text>), ma può contenere presentazioni multimediali (<office:presentation>), fogli di calcolo (<office:spreadsheet>) o altro.

Il contenuto testuale vero e proprio, nel nostro esempio, è racchiuso in paragrafi rapresentati tramite gli elementi <text:p>.

Conclusioni

Come abbiamo potuto vedere in questa rapida escursione, un documento in formato OpenDocument è accessibile anche con semplici strumenti come un editor di testo. Ovviamente non è questo l'utilizzo per cui è stato pensato OpenDocument, ma questo aspetto suggerisce che è possibile a chiunque implementare una applicazione per generare e gestire documenti di questo tipo, naturalmente senza il pagamento di royalties ed indipendentemente dalla piattaforma hardware e software.

Altri vantaggi di un formato aperto basato su XML sono: l'interoperabilità tra le applicazioni, l'estensibilità, quindi l'indipendenza dal produttore dell'applicativo. Credo che questi tre aspetti siano sufficienti per far preferire OpenDocument ad altri formati proprietari.

Bibliografia

OASIS, OpenDocument Format for Office Applications ver. 1.0.

Ti consigliamo anche