Frequently asked questions - General

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 96% complete.

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


LibreOffice a XML

Bezpochyby jste často slyšeli o XML, slyšeli jste, že formátu souboru, který používá LibreOffice, je XML, ale co přesně to je, co konkrétně to znamená a co vlastně je XML?

Co je XML?

Je to zkratka ze slov eXtensible Markup Language (v překladu rozšiřitelný značkovací jazyk).

XML patří do třídy metajazyků, která je podmožinou SGML. Dobře, co je tedy SGML (Standard Generalized Markup Language - v překladu "standardní generalizovaný značkovací jazyk")? Jedná se o jazyk, který umožňuje vytvářet strukturované a modulární dokumenty. Konkrétně to znamená, že můžete vytvořit dokument z dat tak různorodých jako zvuk, data z databáze nebo text a obrázky. SGML byl definován pro široký okruh aplikací a musí být dlouhodobě udržován. Tento jazyk je docela rozsáhly a komplexní. XML bylo vytvořeno jako zjednodušení SGML.


Zpočátku může být matoucí, že jazyk HTML je velmi podobný jazyku XML. Je to jazyk s otevíracími a uzavíracími značkami(tzv. tagy). Velký rozdíl však spočívá v tom, že HTML tagy popisují prezentaci, zatím co XML tagy pracují s obsahem. Ano, HTML je podmnožinou SGML, ale pouze pro zpracování dat na webu.


Pokud to tedy shrneme, XML je jasný způsob (ne programovací jazyk nebo nový HTML) pro strukturování, popisování a výměnu dat. Obsah lze poté znovu použít v jiných formách nebo na jiných médiích Data mohou být různá: chemické vzorce, finanční data, hudební data, text ...

Zde vidíte příklad XML obsahu dokumentu 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>

Vidíte značky <>, které oddělují obsah dokumentu. Otevřené tagy musí být vždy uzavřeny: <office:meta> musí být doplněn </office:meta> Chcete-li přidat do dokumentu informace, můžete to udělat pomocí atributů, za kterými následuje hodnota: meta:page-count="17". Atribut meta:page-countvalue "17" (dokument má 17 stránek). V XML můžete také přidávat komentáře:

Proč XML?

Pokud se podíváte na úryvek XML výše, může vás překvapit několik věcí:

  • XML je čitelné vámi, ale i "stroji" (počítači, telefony atp.). Toto je jedna z velkých výhod.
  • Používá Unicode (Unicode: každý znak má své unikátní číslo, které platí bez ohledu na platformu, jazyk nebo program). To znamená, že může být uložen v různých typech kódování. V čem je rozdíl? Pravděpodobně víte, že dokumenty byly (stále jsou) kódovány v ASCII. Toto kódování však zvládá pouze jednu abecedu a jeden systém psaní. Uvedený kus kódu ukazuje kódování UTF-8, které podporuje více abeced.
  • XML je objektově orientovaný: namísto rozdělení dat na normalizované tabulky propojené relacemi, popisuje objekty (konkrétní a abstraktní) modelováním jejich vlastností tak, jak jsou, což umožňuje intuitivnější pochopení dokumentů XML.
  • Nakonec XML rozlišuje mezi obsahem a vzhledem, vzhled dat je poskytován jazyky třetích stran, jako je CSS nebo XSL.

...

  • pokud jde o softwarové komponenty, je XML nízkonákladové, což je říčinou jeho úspěšné integrace do IT průmyslu.

XML v LibreOffice

A jak zjistíme, že LibreOffice je XML? LibreOffice používá komprimovaný nativní formát .xml souboru. To znamená, že soubory tvořící váš LibreOffice dokument jsou zapouzdřeny v archivu. Například: vezměte váš oblíbený dekomprimační nástroj (viz Jaký formát souboru používá LibreOffice?) a otevřete libovolný soubor LibreOffice. Uvidíte sbírku různých souborů a některé z nich budou mít příponu .xml.

Který modul LibreOffice používá XML?

Všechny moduly LibreOffice používají XML jako svůj nativní formát souboru. Module Math používá trochu odlišnou strukturu balíčku, ale i tak uvnitř balíčku najdeme xml: MathML je XML standard pro vzorce. Také některé konfigurační soubory používají XML. Následující soubory budou ve struktuře balíčku vždy existovat:

  • meta.xml obsahuje informace o dokumentu (autor, datum poslední zálohy).
  • styles.xml obsahuje styly použité v dokumentu.
  • Content.xml obsahuje hlavní obsah dokumentu (text, obrázky, grafiku...).
  • Settings.xml, obvykle obsahuje specifické údaje pro aplikaci, např. zvolenou tiskárnu.
  • META-INF/manifest.xml obsahuje dodatečné informace o dalších souborech (jako je MIME type nebo kódování).

Soubory jsou ukládany v nativním formátu uvnitř zip. Není ted víte, proč soubory LibreOffice zabírají na vašem pevném disku tak málo místa.

Pokud se chcete dozvědět více o formátech souborů LibreOffice, navštivte stránku http://xml.openoffice.org .

Všimněte si, že XML dokument nelze zobrazit tak, jak je, ale potřebujete transformační jazyk (XSLT) a formátovací jazyk pro objekty (XSL-FO), aby mohly být všechny informace zobrazeny správně (např. potřebujete: jestliže je váš dokument tvořen z různých částí uložených odděleně nebo pokud obsahuje tabulku s formátováním ...)

DTD, XML schema, XSLT... co to je?

Definice typu dokumentu DTD (Document Type Definition)

DTD určí, které prvky a atributy budou použity v dokumentu XML, a popíše jeho strukturu a obsah. DTD může být interní v dokumentu (zahrnuje definice v samotném dokumentu) nebo externí (je umístěn v místním souboru nebo je volán pomocí URL). Standard XML nenařizuje DTD a mluvíme o XML, pokud má XML dokument platný DTD nebo pokud je XML dokument správně naformátovaný, ale neobsahuje DTD (ale respektuje XML standardy).

Příklad obsahu LibreOffice DTD

              List the initial writers in this form (with initial="true"). Initial Writers is a term from the PDL (License).
              If one of these authors assigned copyright to somebody else, e.g. the company they are working for, use the attribute copyright="..."
              and name the copyright holder.
      -->
      <!ELEMENT authors ( author+ ) >
      <!ELEMENT author (#PCDATA)>
      <!ATTLIST author
                  id      ID    #REQUIRED
                  initial CDATA #IMPLIED
                  email   CDATA #REQUIRED>
      <!--

XML Schéma

Schéma také definuje strukturu dokumentu XML, je však flexibilnější pro definování typů prvků než DTD. Získané DTD používá k definování modelů. Schémata podléhají specifikace W3C.

XSLT : eXtensible Style Language Transformation (rozšiřitelná transformace stylu jazyka)

Jedná se o programovací jazyk pro transformaci dokumentu XML do jiným formátů, jako jsou RTF, HTML nebo PDF atd. Tento je jazyk je deklarativní a neprocedurální (bez algoritmů), což usnadňuje přístup pro ne-vývojáře. XSLT samotné je napsané v XML a může být reinterpretován. Ve skutečnosti XSLT transformuje strom XML do pravidel modelů popisujících šablonu stylů. Často je srovnáván s CSS, protože CSS vytváří podobná pravidla, na pořadí těchto pravidel v dokumentu nezáleží a má také prioritu, pokud je pravidlo použito v dokumentu opakovaně. Rozdíl je v tom, že pokud je CSS prázdný, nebude to mít žádný vliv na generovaný dokument html, rozložení prvků bude jednoduše ignorováno, zatímco v případě XSLT se vygeneruje prázdný dokument (ve skutečnosti to není úplně pravda, protože specifikace má definovaná interní pravidla, která stále existují, takže dokument není nikdy úplně prázdný :)

XPATH

Toto je deklarativní jazyk spojený s XSLT, který umožňuje definovat umístění cest ve stromu XML.

XSL-FO : eXtensible Style Language for Formating Object

Jazyk pro definování prezentace obecných objektů (jako jsou seznamy, tabulky ...) často používaný pro výstup PDF. Následuje po XSLT transformaci a umožňuje vizuální interpretaci zpracovaných objektů.

OASIS

Oasis (Organisation for the Advancement of Structured Information Standard, v překladu Organizace pro rozvoj standardu strukturovaných informací) je celosvětové konsorcium, které řídí vývoj, konvergenci a přijetí standardů pro elektronické obchodování. Proto definuje standard XML. Tato definice je založena formátu souborů LibreOffice, které jsou otevřené a konzistentní s publikovaným DTD. Více informací můžete najít zde: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office

Formát souborů LibreOffice je stejný jako v OpenOffice.org a je také používaný systémy Calligra, Google Docs a Zoho.