Deklarace typu dokumentu

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Deklarace typu dokumentu neboli DOCTYPE je instrukce, která SGML nebo XML dokumentu (např. webové stránce) přiřazuje definici typu dokumentu (DTD) (například formální definici určité verze HTML). V serializovaném tvaru dokumentu se vyjadřuje jako krátký řetězec ve značkovacím jazyce, který vyhovuje určité syntaxi.

Ve WWW prohlížečích je zpravidla specializovaný HTML parser, a proto uvedené DTD nenačítají, ani když stránka obsahuje jeho URL. Moderní webové prohlížeče však v dokumentu s typem text/html vyhledávají DOCTYPE, aby mohly přesně určit, v jakém režimu má knihovna pro rozvržení prvků HTML stránku vykreslit (zda má použít standardní režim nebo quirks mode kvůli zpětné kompatibilitě).

V HTML5 není serializace text/html založena na SGML, a DOCTYPE se používá pouze pro výběr režimu. DOCTYPE je zde zachováno jako „prakticky zbytečná, ale vyžadovaná“ informace, která přepne prohlížeč do standardního režimu.

Syntaxe DOCTYPE

Obecná syntaxe deklarace typu dokumentu je:

<!DOCTYPE kořenový-element PUBLIC "FPI" ["URI"] [ <!-- deklarace interní podsady --> ]>

nebo

<!DOCTYPE kořenový-element SYSTEM "URI" [ <!-- deklarace interní podsady --> ]>

Za DOCTYPE je vždy uveden kořenový-element, což je element, který obklopuje celý zbytek dokumentu. V XML je to první element v dokumentu; například v XHTML je to element <html>, který je otevřen jako první po deklaraci DOCTYPE, a jako poslední uzavřen. +more Výběr klíčového slova SYSTEM nebo PUBLIC určuje, zda DTD je soukromé v systému nebo veřejné.

Za klíčovým slovem PUBLIC je uveden zkrácený tvar „veřejného identifikátoru“ nazývaný formální veřejný identifikátor uzavřený v uvozovkách; následující „systémový identifikátor“ uzavřený v uvozovkách je nepovinný. Například pro XHTML 1. +more1 je FPI „-//W3C//DTD XHTML 1. 1//EN“ a systémový identifikátor lze podle potřeby zvolit ze 3 možných systémových identifikátorů; jedním z nich je URI „http://www. w3. org/TR/xhtml1/DTD/xhtml1-transitional. dtd“.

Za klíčovým slovem SYSTEM musí následovat systémový identifikátor. XML parser by měl v tomto případě hledat DTD podle URI reference DTD uzavřené v uvozovkách způsobem závislým na konkrétním systému.

Poslední část deklarace je nepovinná. Pokud je přítomná, je uzavřená v hranatých závorkách ([]) a nazývá se interní podsada . +more Umožňuje přidávání a úpravu entit nebo chování veřejně definovaných typů. V jednoduchých SGML profilech bývá deklarace interní podsady dokonce zakázaná, aby bylo možné používat jednoduché HTML parsery, které neimplementují kompletní parsování SGML.

V dokumentech založených na SGML (jako například HTML) jsou deklarace typu dokumentu poněkud odlišné. Veřejný identifikátor zde může být spojen se systémovým identifikátorem. +more Toto spojení může být provedeno např. pomocí katalogového souboru, pomocí kterého se FPI odkazuje na systémový identifikátor.

Příklady DTD

Začátek mnoha WWW stránek vypadá takto:

Jedná se o deklaraci typu dokumentu pro XHTML, která obsahuje veřejný identifikátor -//W3C//DTD XHTML 1.0 Transitional//EN i systémový identifikátor

Parser může použít libovolný z nich pro nalezení referované externí entity. +more Jako kořenový-element je uvedeno html, a proto je ve všech uvedených příkladech prvním tagem za deklarací DOCTYPE tag html. Poslední řádek obsahující značku html již není součástí deklarace DOCTYPE, je použit jenom jako příklad, jak může vypadat další text. Žádný z příkladů nepoužívá definici interní podsady.

DTD pro HTML 4.01

Strict DTD nepovoluje prezentační značky; místo nich je nutné používat kaskádové styly . Strict DTD vypadá takto:

Transitional DTD povoluje některé starší nedoporučované PUBLIC atributy:

Pro použití rámů je nutné použít Frameset DTD:

DTD pro XHTML 1.0

XHTML má také 3 DTD typy - Strict, Transitional a Frameset.

V XHTML Strict DTD nejsou povoleny nedoporučované tagy a kód musí být korektní:

XHTML Transitional DTD se podobá XHTML Strict DTD, ale nedoporučované tagy povoluje:

Jediné DTD, které povoluje rámy v XHTML, je XHTML Frameset DTD:

DTD pro XHTML 1.1

XHTML 1.1 je nejnovější dokončená verze XHTML, která zavádí podporu pro XHTML modularizaci. XHTML 1.1 je stejně striktní jako XHTML 1.0 Strict.

DTD pro XHTML Basic

XHTML Basic 1.0

XHTML Basic 1.1

DTD pro XHTML Mobile Profile

XHTML Mobile Profile 1.0

XHTML Mobile Profile 1.1

XHTML Mobile Profile 1.2

DOCTYPE pro HTML5 bez DTD

Deklarace DOCTYPE je v HTML5 velmi krátká, protože neobsahuje odkaz na DTD ve tvaru URL nebo FPI, ale jenom kořenový-element dokumentu, HTML. Slovy samotného standardu: bez rozlišování malých a velkých písmen.

Tento formát (. DOCTYPE HTML bez rozlišování malých a velkých písmen) je, až na chybějící URI a FPI, stejný jako DOCTYPE pro HTML 4. +more01 založené na SGML. Formální syntaxe je v HTML4 i v HTML5 definována pomocí velkých písmen, ale je povoleno i použití malých písmen nebo libovolné kombinace malých a velkých písmen.

V XHTML5 se musí v rozlišovat malá a velká písmena, protože XHTML syntaxe vyžaduje, aby všechny HTML PUBLIC používaly malá písmena včetně kořenového-elementu uvedeného v HTML5 DOCTYPE. XHTML dovoluje velká písmena jen ve specifikaci DOCTYPE.

V XHTML5 je DOCTYPE nepovinné. Pokud ale může být dokument zpracován jako XML i HTML, musí se DOCTYPE použít.

Odkazy

Reference

Související články

Document Type Definition obsahuje příklady * RDFa * XML Schema * Kaskádové styly (Cascading Style Sheets, CSS)

Externí odkazy

[url=http://www. corelangs. +morecom/html/introduction/doctype. html]HTML Doctype overview[/url] * [url=http://www. w3. org/QA/2002/04/valid-dtd-list. html]Recommended DTDs to use in your Web document[/url] - informativní (ne normativní) publikace o W3C Quality Assurance * [url=http://www. meyerweb. com/eric/dom/dtype/dtype-grid. html]DOCTYPE grid[/url] - další přehledná tabulka [Last modified 27 November 2006] * [url=http://www. quirksmode. org/css/quirksmode. html]Quirks mode and transitional mode[/url] * [url=http://www. quirksmode. org/css/box. html]Box model tweaking[/url].

Kategorie:Standardy založené na XML

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top