Faq/General/045/it

From The Document Foundation Wiki
< Faq‎ | General
Jump to: navigation, search
This page is a translated version of the page Faq/General/045 and the translation is 100% complete.

Other languages:
čeština • ‎dansk • ‎English • ‎français • ‎italiano


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:

  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE office:document-meta PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "office.dtd">
  <office:meta>
        <meta:generator>LibreOffice/3.3$Win32 LibreOffice_project/330m18$Build-4</meta:generator>
        <meta:initial-creator>Sophie Gautier</meta:initial-creator>
        <meta:creation-date>2011-01-12T19:07:36</meta:creation-date>
        <meta:document-statistic meta:table-count="0" meta:image-count="31" meta:object-count="0" meta:page-count="17" meta:paragraph-count="213"
          meta:word-count="2647" meta:character-count="16353"/>
  </office:meta>

Vedete i tag <> distinguere il contenuto del documento. Un tag aperto deve essere sempre chiuso:   <office:meta> sarà completato da   </office:meta> Per aggiungere informazioni al documento, gli diamo attributi, sempre seguiti da un valore meta: page-count="17". L'attributo meta: numero di pagine ha il valore "17" (il documento ha 17 pagine). Possiamo anche inserire commenti come questo:

Perché XML?

Se osservate il codice XML sopra, ci sono alcune cose che sorprendono:

  • XML è leggibile da solo, ma anche dalla macchina. Questo è uno dei suoi grandi vantaggi.
  • È Unicode (Unicode: un numero univoco è definito per ogni carattere, indipendentemente dalla piattaforma, lingua, programma). Ciò significa che può essere memorizzato in diverse codifiche. Qual è la differenza? Probabilmente sapete che i documenti erano (ancora sono) codificati in ASCII, ma si riferisce solo a un alfabeto e un sistema di scrittura. Il frammento di codice mostra una codifica UTF-8, che è supportata da molti alfabeti.
  • L'XML è orientato agli oggetti: invece di suddividere i dati in tabelle normalizzate collegate da relazioni, descrive gli oggetti (concreti e astratti) modellando le loro proprietà così come sono, il che rende i documenti XML più intuitivi da comprendere.
  • Infine, l'XML distingue tra il contenuto e la presentazione, la presentazione dei dati forniti da linguaggi di terze parti come CSS, XSL ...
  • L'XML genera un basso costo in termini di componenti software, quindi la sua integrazione con successo nel settore IT.

L'XML in LibreOffice

E come vedete che LibreOffice è XML? LibreOffice ha un formato di file nativo .xml compresso. Ciò significa che i file che costituiscono il vostro documento LibreOffice sono incapsulati in un archivio. Un esempio: prendete il vostro strumento di decompressione preferito (vedete Qual è il formato di LibreOffice?) E aprite qualsiasi file di LibreOffice. Vedrete una raccolta di file diversi, alcuni dei quali hanno l'estensione .xml.

Quale modulo di LibreOffice usa XML?

Tutti i moduli di LibreOffice utilizzano l'XML come formato di file nativo. Il modulo Math utilizza una struttura del pacchetto un po 'diversa, ma alcuni xml all'interno del pacchetto: MathML è uno standard XML per le formule. Inoltre, alcuni file di configurazione utilizzano XML. La struttura di questi file sarà sempre lì:

  • Il meta.xml contiene informazioni sul documento (autore, data dell'ultimo backup).
  • styles.xml contiene gli stili utilizzati nel documento.
  • Content.xml contiene il contenuto del documento principale (testo, immagini, grafica ...).
  • Settings.xml, solitamente specifico per un'applicazione, contiene alcuni parametri come la stampante selezionata ...
  • Il META-INF/manifest.xml contiene informazioni aggiuntive su altri file (come il tipo MIME o la crittografia).

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!

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, schema XML, XSLT... che cosa è?

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.