Faq/General/045/it

LibreOffice e XML
Avete senza dubbio sentito parlare spesso di XML, ho sentito che il formato dei file di LibreOffice era XML, ma che cos'è esattamente e soprattutto che cosa significa, che cosa alla fine è XML?

Cosa è XML?
È l'acronimo di eXtensible Markup Language (Linguaggio estesi di marcatura).

XML fa parte della classe dei metalinguaggi, in realtà è un sottoinsieme di SGML. Va bene, allora qual è l'SGML (Standard Generalized Markup Language)? È un linguaggio che ti consente di creare documenti strutturati e modulari. Concretamente questo significa che è possibile creare un documento da dati diversi come suoni, dati da un database o testo e immagini. SGML è stato definito per una vasta gamma di applicazioni e deve essere mantenuto a lungo termine. Questo linguaggio è piuttosto esteso e complesso, l'XML è stato creato per semplificare SGML.

Ciò che può essere fonte di confusione all'inizio è che l'HTML è molto simile all'XML. È un linguaggio con tag che si aprono e si chiudono. La grande differenza però è che l'HTML è stato definito con tag che descrivono la presentazione, mentre i tag XML si occupano del contenuto. Ma sì, l'HTML è un sottoinsieme di SGML, ma solo per l'elaborazione dei dati sul Web.

Se volessimo riassumere l'XML è un modo chiaro (e non un linguaggio di programmazione o un nuovo HTML) per strutturare, descrivere e scambiare dati. Il contenuto e il layout sono separati per consentire lo scambio. Il contenuto può quindi essere riutilizzato in altre forme o altri modi. I dati possono essere di tutti i tipi: formule chimiche, dati finanziari, dati musicali, testo ...

Un esempio del contenuto xml di un documento di LibreOffice:

Vedete i tag <> distinguere il contenuto del documento. Un tag aperto deve essere sempre chiuso:  sarà completato da   Per aggiungere informazioni al documento, gli diamo attributi, sempre seguiti da un valore. L'attributo  ha il valore   (il documento ha 17 pagine). Possiamo anche inserire commenti come questo: contiene informazioni sul documento (autore, data dell'ultimo backup). Le immagini vengono salvate nel formato nativo all'interno dello zip. Ora capite perché i file di LibreOffice occupano così poco spazio sul disco rigido!
 * contiene gli stili utilizzati nel documento.
 * contiene il contenuto del documento principale (testo, immagini, grafica ...).
 * , solitamente specifico per un'applicazione, contiene alcuni parametri come la stampante selezionata ...
 * Il  contiene informazioni aggiuntive su altri file (come il tipo MIME o la crittografia).

Per conoscere di più sui formati dei file di LibreOfficam, su veda il sito web http://xml.openoffice.org

Si noti che un documento XML non può essere visualizzato così com'è, ha bisogno di un linguaggio di trasformazione (XSLT) e un linguaggio di formattazione per gli oggetti (XSL-FO) per essere in grado di visualizzare correttamente tutte le informazioni (es. Necessità: se il documento è fatto di varie parti organizzate separatamente o se contiene una tabella con formattazione ...)

DTD Document Type definition (Definizione del Tipo di Documento)
Il DTD specificherà quali elementi e attributi verranno utilizzati nel documento XML e ne descriverà la struttura e il contenuto. Il DTD può essere interno al documento (include le definizioni nel documento stesso) o esterno (si trova in un file locale o chiamato da URL). Lo standard XML non impone il DTD e parliamo di documento XML se ha un documento DTD o XML valido ben formato se non include (ma rispetta lo standard XML).

Esempio di contenuto di un LibreOffice DTD

Elenca gli autori iniziali in questo modulo (con iniziale = "true"). Initial Writers è un termine dal PDL (Licenza). Se uno di questi autori ha assegnato il copyright a qualcun altro, ad es. l'azienda per cui lavorano, usa l'attributo copyright = "..." e nominare il detentore del copyright. -->     <!ELEMENT authors ( author+ ) > <!ELEMENT author (#PCDATA)> <!ATTLIST author id     ID    #REQUIRED initial CDATA #IMPLIED email  CDATA #REQUIRED> <!--

Schema XML
Uno schema definisce anche la struttura di un documento XML, tuttavia è più flessibile di una DTD per definire i tipi di elemento. Esso usa il DTD acquisito per definire i modelli. Gli schemi sono soggetti a una specifica W3C.

XSLT : eXtensible Style Language Transformation
È un linguaggio di programmazione per trasformare documenti XML in altre forme, come RTF, HTML o PDF, ecc. Questo linguaggio è dichiarativo e non procedurale (nessun algoritmo), il che rende più facile l'accesso per i non sviluppatori. Lo stesso scritto in XML, può essere reinterpretato. Infatti, XSLT trasforma l'albero XML in regole di modelli che descrivono un foglio di stile. È spesso paragonato al CSS, perché come CSS produce tali regole, l'ordine di comparsa di queste regole non ha importanza nel documento, ha anche la priorità quando possono essere applicate più regole. La differenza è che se un CSS è vuoto, non influenzerà il documento generato in html, sarà semplicemente ignorato essendo solo una presentazione, mentre l'XSLT genererà un documento vuoto (in realtà, questo non è completamente vero perché la specifica ha definito regole interne ancora presenti, quindi il documento non è mai veramente vuoto :)

XPATH
Questa è un linguaggio dichiarativo associato a XSLT che consente di definire la posizione dei percorsi all'interno dell'albero XML.

XSL-FO : eXtensible Style Language for Formating Object
È un linguaggio per la definizione di presentazioni di oggetti generici (come elenchi, tabelle ...) spesso utilizzati per l'output PDF. Viene dopo una trasformazione XSLT e consente un'interpretazione visuale degli oggetti elaborati.

OASIS
Oasis (Organisation for the Advancement of Structured Information Standard = Organizzazione per la promozione dello standard di informazioni strutturate) è un consorzio globale che guida lo sviluppo, la convergenza e l'adozione di standard per l'e-business. Definisce quindi lo standard XML. Questa definizione è basata sui formati di file LibreOffice, sono aperti e coerenti con un DTD pubblicato. Ulteriori informazioni possono essere trovate qui: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office

Il formato di file di LibreOffice è lo stesso di OpenOffice.org ed è anche usato da Calligra, Google Docs, e Zoho.