10.1. Struktura a typy dokumentů

Každý XML dokument musí v záhlaví obsahovat několik informací.

První řádek dokumentu musí obsahovat XML prolog. Ten obsahuje verzi XML dokumentu (vždy 1.0) a použité kódování češtiny. Ačkoliv kódování lze použít libovolné (windows-1250, iso-8859-2), doporučujeme dávat přednost kódování utf-8.

ikona
<?xml version='1.0' encoding='utf-8'?>

Ihned za prologem by měla následovat deklarace typu dokumentu dokumentu - DTD a cesta k němu (veřejný identifikátor a systémový identifikátor). DTD nám umožňuje dokumenty validovat v případě speciálních XML editorů usnadní editaci textu. Proto bychom měli vždy uvádět. Veřejný identifikátor PUBLIC označuje obecně používanou identifikaci gramatiky pro XML dokument. Systémový identifikátor obsahuje konkrétní odkaz na gramatiku. Zpravidla je to URL. Můžeme však uvést i přímo soubor na lokálním disku. V tom případě napíšeme před cestu file:///. Usnadní nám to transformaci dokumentu pomocí XSL procesoru, avšak ztratíme zase přenositelnost dokumentu (na jiném počítači může být soubor s gramatikou úplně jinde).

Procesor při validaci nebo transformaci dokumentu vždy prohledává systémový identifikátor za účelem získání gramatiky dokumentu. Pokud však je na webu, snaží se jej procesor stáhnout, což není možné např. pokud pracujeme v prostředí bez připojení k Internetu. Můžeme však použít XML katalog a přemapovat pomocí nich URL na lokální soubor.

ikona
Příklad 10.1: Specifikace DTD s cestou na lokálním disku
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
          "file:///c:/docbook/xml/4.3/docbookx.dtd">

Jaké použijeme DTD závisí na typu dokumentu, který píšeme. DocBook nám nabízí několik typů dokumentů. Pro naše potřeby budou asi nejzajímavější knihy (book) a články (article). U knihy se předpokládá generování do výstupních formátů pro prohlížení (HTML) i tisk (PDF), článek je určen spíše pro HTML formát. Dalšími dokumenty mohou být sady FAQ (qandaset) a manuálové stránky (reference).

Jak je v XML zvykem, celý dokument musí být uzavřen v jediném elementu. V případě knihy je to element book u článku pak article. Atributem tohoto elementu je specifikace jazyku dokumentu lang.

ikona
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
          "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<book lang="cs">
 ...
</book>
ikona
Důležité:

Atribut lang="cs" uvádějte pro české dokumenty vždy. Ovlivňuje mimo jiné správné české názvy automaticky generovaných kapitol (rejstřík), správné uvozovky apod.