Documentazione - Markup del formato ODF

    From The Document Foundation Wiki
    This page is a translated version of the page Documentation/ODF Markup and the translation is 100% complete.
    Other languages:

    Esistono diversi motivi per i quali alcune persone vogliono usare il markup di un file ODF, per esempio:

    • Volete imparare com'è strutturato il markup.
    • Volete assicurarvi che il file non contiene informazioni confidenziali nascoste.
    • Volete comparare il markup di altri produttori con quello generato da LibreOffice.
    • Volete verificare che un bug non sia un errore nel formato del file format.
    • Volete riparare manualmente un errore nel markup.
    • Volete fare manualmente delle operazioni per le quali LibreOffice non è ha un'adeguata interfaccia grafica.
    • Volete generare direttamente dei file ODF senza usare LibreOffice.
    • Volete applicare un foglio di stile XSLT al documento senza usare LibreOffice.

    L'articolo seguente è una racconta di dritte, trucchi e suggerimenti per aiutarvi in queste operazioni.


    Markup XML

    Un file ODF è costituito da un singolo file XML o da un file zip compresso che contiene dei file XML. Non avete bisogno di una conoscenza approfondita di XML per comprendere la struttura di un file di testo. Alcune nozioni relative agli elementi ed agli attributi di XML sono sufficienti.

    Per esempio, una linea disegnata sarà rappresentata in un file di testo con il seguente markup:

    <draw:line
      draw:style-name="gr1"
      draw:text-style-name="P1"
      draw:layer="layout"
      svg:x1="2.801cm"
      svg:y1="1.992cm"
      svg:x2="9.711cm"
      svg:y2="6.723cm">
      <text:p/>
    </draw:line>

    Potete trovare delle introduzioni ad XML su internet, ad esempio all'indirizzo https://www.w3schools.com/xml/default.asp

    In ODF gli elementi e gli attributi hanno dei prefissi relativi al loro namespace. Lo standard permette l'uso di propri namespace per implementare e sviluppare nuove funzionalità, prima che queste diventino parte dello standard. Per questo scopo LibreOffice usa il prefisso “loext:” nella maggior parte dei casi. La pagina LibreOffice ODF extensions elenca queste funzionalità.


    File ODF ‘XML semplice’

    Un file ODF può essere sia un file zip compresso o un singolo file ‘ODF XML semplice’. Quest'ultimo ha come estensione predefinita fodt, fods, fodp o fodg. Per generare un file ‘ODF XML semplice’ salvate il documento nel formato ‘Documento XML ODF non compresso’, che trovate nell'elenco a discesa della finestra di dialogo per il salvataggio.

    SelectFileTypeOnSave.png

    La struttura di un file ‘ODF XML semplice’ è simile alla seguente:

    <?xml version="1.0" encoding="UTF-8"?>
    <office:document
     xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
     ⁞
     office:version="1.3"
     office:mimetype="application/vnd.oasis.opendocument.graphics">
      <office:meta>…</office:meta>
      <office:settings>…</office:settings>
      <office:scripts>…</office:scripts>
      <office:font-face-decls>…</office:font-face-decls>
      <office:styles>…</office:styles>
      <office:automatic-styles>…</office:automatic-styles>
      <office:master-styles>…</office:master-styles>
      <office:body>
        <office:drawing>
          ⁞
        </office:drawing>
      </office:body>
    </office:document>

    L'elemento radice “document” elenca i namespace, la versione di ODF ed il mime-type del documento, in questo caso per un documento di Draw.

    L'elemento “meta” contiene queste informazioni, che potete vedere tramite il menu File > Proprietà.

    L'elemento “settings” contiene le informazioni che avete impostato in Strumenti > Opzioni. Contiene inoltre le informazioni relative allo stato del documento prima dell'ultima chiusura ed alla stampante utilizzata.

    L'elemento “script” contiene le macro incorporate nel documento.

    L'elemento ”font-face-decls” contiene le informazioni relative ai caratteri usati nel documento.

    L'elemento “styles” contiene gli stili, che potete vedere nel pannello “Stili” della Barra laterale, la definizione degli elenchi, la definizione dei fine riga, i motivi, le informazioni sui riempimenti come la definizione dei gradienti e dei tratteggi, nonché i modelli per le tabelle.

    L'elemento “automatic-styles” contiene informazioni simili all'elemento “styles”, che però non sono direttamente visibili all'utente. Ad esempio qui sono memorizzate le impostazioni della formattazione diretta.

    L'elemento “master-styles” contiene le informazioni sulle diapositive schema e sugli stili di pagina.

    Nell'elemento “body” si trova il contenuto. Gli elementi del contenuto non possiedono di per se informazioni relative allo stile, ma fanno uso di attributi come “style-name” o “text-style-name” per fare riferimento alla definizione di uno stile presente negli elementi “styles” o “automatic-style”.

    Le immagini incorporate sono codificate in base64.

    Quando ispezionate un file ‘ODF XML semplice’ è caldamente raccomandato l'uso di un editor in grado di collassare ed indentare gli elementi. Dovreste almeno abilitare l'opzione Pretty Printing.


    Lavorare con il formato zip

    Tutti gli altri file in formato ODF non ‘semplici’ ODF sono dei file zip compressi. Troverete dei suggerimenti che vi indicano di modificare in ‘zip’ l'estensione del nome del file prima di usare un programma di decompressione. Nella maggior parte dei casi questo non è necessario. La gran parte dei programmi di compressione moderni riconosce i formati zip anche senza che questi abbiano l'estensione 'zip'.

    7-Zip su Windows 10 permette di aprire un archivio senza effettivamente decomprimerlo. Visualizza il contenuto in modo simile ad un gestore di file.

    7ZipFileManager.png

    Gli elementi menzionati nella sezione ‘ODF XML semplice’ sono inseriti in file distinti. Inoltre vedrete delle cartelle. A parte META-INF, il nome delle cartelle non è standardizzato. Ad esempio MS Office usa ‘media’ invece di ‘Pictures’.

    Le cartelle ‘Object 1’, ‘Object 2’ … contengono, ad esempio, gli oggetti OLE incorporati, le formule di Math ed i grafici. La cartella ‘ObjectReplacements’ contiene le immagini di questi oggetti OLE, che permettono ad altre applicazioni di visualizzare qualcosa, nel caso in cui non siano in grado di gestire gli oggetti OLE.

    La cartella META-INF contiene un file ‘manifest.xml’ che elenca tutti i file contenuti nell'archivio e fornisce le informazioni necessarie, nel caso in cui un file criptato sia criptato.

    Se decomprimete l'archivio e successivamente lo ricomprimete, dovete tenere a mente quanto segue:

    • Non comprimete la cartella che avete ottenuto dalla decompressione, ma spostatevi all'interno della cartella, selezionate i contenuti e create un file zip da qui.
    • Il formato Open Document prevede alcune restrizioni per la struttura del file zip. In particolare il file ‘mimetype’ deve essere il primo all'interno del pacchetto e non compresso. Troverete i dettagli nella parte “Packages” delle Specifiche ODF.

    Nel caso abbiate compresso di recente l'archivio, potete aprire in LibreOffice il file ottenuto e quindi salvarlo. LibreOffice spesso tollera degli errori strutturali e crea una struttura valida al momento del salvataggio.

    7-Zip su Windows 10 permette questo flusso di lavoro:

    1. ‘Apri’ per vedere l'archivio senza modificarne l'estensione nel nome del file. Senza usare ‘Estrai’.
    2. Usare ‘Modifica’ o ‘Visualizza’ dal menu contestuale all'interno di un file. Questa procedura apre il file in un editor. L'editor utilizzato può essere configurato in 7-Zip.
    3. Apportare le modifiche all'interno dell'editor. Salvare il file e chiudere l'editor.
    4. A questo punto 7-Zip vi chiederà se desiderate aggiornare il file all'interno dell'archivio. Acconsentite e chiudete 7-Zip. Questo è tutto.

    In questo modo, la struttura dell'archivio viene preservata. Un flusso di lavoro simile è possibile anche con altri programmi di compressione e su altri sistemi operativi.

    Come sempre è fortemente raccomandato fare un backup del file prima di modificarlo manualmente.

    Tra l'altro, anche i file in formato OOXML (ad esempio '.pptx') sono dei file zip compressi e possono essere gestiti allo stesso modo.


    Pretty Printing

    Per impostazione predefinita LibreOffice salva i file in forma compatta, rimuovendo tutte le interruzioni di riga e gli spazi non necessari. Questo è scomodo se volete visualizzare il file in un semplice editor. Otterrete delle righe molto lunghe, che spesso gli editor semplici non sono in grado di gestire. Impostate LibreOffice in modo che salvi con l'opzione ‘pretty printing’. Premete i tasti Alt + F12 per aprire la finestra di dialogo delle Opzioni. Aprite la sezione LibreOffice ▸ Avanzate e fate clic sul pulsante Apri la configurazione avanzata. Cercate il termine ‘pretty’. Otterrete un solo risultato. Fate doppio clic su questo in modo da modificare il suo valore in ‘true’.

    PrettyPrinting.png

    Editor specialistici

    Più pratici dei semplici editor sono gli strumenti in grado di riconoscere e gestire la struttura degli XML. Per esempio, questi strumenti forniscono l'evidenziazione della sintassi, aggiungono interruzioni ed indentazioni di riga per ottenere una maggiore leggibilità, oppure mettono a disposizione opzioni di raggruppamento ed espansione degli elementi dell'XML. Possono lavorare direttamente con i nodi della struttura ad albero del documento. Chiedete nei forum o in mailing list quali sono gli strumenti più adatti al vostro sistema operativo.

    Per Windows 10 questi sono strumenti adatti:

    • Notepad++ con l'estensione ‘XML Tools’
    • Microsoft XML Notepad

    /Altri editor adeguati saranno aggiunti./


    Evitare Markup che può creare confusione in Writer

    Writer può inserire delle informazioni aggiuntive al fine di ottenere risultati migliori durante la comparazione dei documenti. Questa caratteristica è attiva per impostazione predefinita, ma rovina un po' il documento con del markup che non è rilevante per il contenuto effettivo. Per disabilitarla, aprite la finestra di dialogo delle Opzioni, quindi andate nella sezione LibreOffice Writer > Confronto. Deselezionate l'opzione ‘Memorizzalo mentre modifichi il documento’.


    File ODF validi

    Gli errori nella struttura dell'xml possono essere rilevati dall'editor. Per trovare gli errori relativi al formato ODF, usate il validatore https://odfvalidator.org/. Qui dovete selezionare la versione di ODF, l'opzione 'auto-detect' non funziona in modo affidabile.

    Usando il formato ODF versione “1.3” durante il salvataggio con LibreOffice dovreste ottenere dei file validi, mentre salvando nella versione “1.3 esteso” alle volte vengono scritte delle cose in modo non valido, ma queste sono necessarie per compatibilità con versioni precedenti. Per modificare il formato del file, andate nella sezione Carica/Salva > Generale della finestra di dialogo delle Opzioni e selezionate il formato di file dall'elenco a discesa ‘Versione del formato ODF’. Fate attenzione che alcune funzionalità di LibreOffice sono disponibili solamente nel formato “1.3 esteso” e non nel formato ODF “1.3” strict. D'altro canto, queste funzionalità estese non sono conosciute da altri programmi.


    Altri strumenti per i file ODF

    L'ODF Toolkit fornisce alcuni strumenti in Java per lavorare con i file ODF senza avviare LibreOffice o aprire manualmente il file zip compresso.

    Nella pagina Analisi dei documenti sono elencati alcuni strumenti per Linux.

    La pagina Strumenti per la generazione di documenti ODF contiene un lungo elenco commentato di strumenti.


    Specifiche ODF

    Il formato dei file ODF è specificato dallo standard “Open Document Format for Office Applications”, che potete ottenere dal sito di OASIS https://www.oasis-open.org/standards/

    La versione 1.3 di ODF è disponibile da https://docs.oasis-open.org/office/OpenDocument/v1.3/os/ [da agosto 2021].

    La versione 1.2 dello standard ODF è disponibile anche come ISO/IEC 26300 e può essere scaricata senza addebiti dalla pagina https://standards.iso.org/ittf/PubliclyAvailableStandards/index.html