Faq/General/045/cs

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:

Vidíte značky <>, které oddělují obsah dokumentu. Otevřené tagy musí být vždy uzavřeny:  musí být doplněn  Chcete-li přidat do dokumentu informace, můžete to udělat pomocí atributů, za kterými následuje hodnota:. Atribut   má   (dokument má 17 stránek). V XML můžete také přidávat komentáře:  obsahuje informace o dokumentu (autor, datum poslední zálohy). 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.
 * obsahuje styly použité v dokumentu.
 * obsahuje hlavní obsah dokumentu (text, obrázky, grafiku...).
 * , obvykle obsahuje specifické údaje pro aplikaci, např. zvolenou tiskárnu.
 * obsahuje dodatečné informace o dalších souborech (jako je MIME type nebo kódování).

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 ...)

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.