Document Type Definition

P. Klapzobacsek

Každý správně formátovaný HTML dokument by měl na začátku obsahovat informace o verzi použitého HTML a typu DTD (Document Type Definition). DTD je jinými slovy návod pro prohlížeč zpracovávající dokument. Říká mu, jaké elementy dokument používá a jak s nimi zacházet. Element DOCTYPE není součástí HTML dokumentu, není elementem HTML a nemusí mít koncovou značku. 

Doctype v HTML 4.01

HTML 4.01 definuje 3 základní definice DTD:

Striktní: HTML 4.01 Strict DTD

deklarace:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

případně:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

Přechodovou: HTML 4.01 Transitional DTD

deklarace:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

případně:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

S podporou rámců: HTML 4.01 Frameset DTD

deklarace:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

případně:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

Starší typy doctype

Těžko by chtěl dnes někdo používat např. "

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

tj. konečnou verzi HTML 3.2, nebo dokonce 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Draft//EN">

tj. návrh verze HTML 3.2 z roku 1996.

Pozor: není-li uvedeno nic, je deklarován typ Strict! Např. toto je striktní:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

Ideální řešení

V současné době (jaro 2003 pozn. redakce) je ideální řešení používat pro normální stránky HTML 4.01 Transitional DTD, protože může obsahovat vše až do verze HTML 4.01 včetně (i dále nepodporované tagy), a pro stránky s framesety HTML 4.01 Frameset DTD (stejné jako Transitional DTD + definice FRAMESET tagů). Stejně tak není asi pro tvůrce dobré používat Strict DTD u jakékoliv verze, protože kód potom správně nesmí obsahovat tagy (ani z předešlých verzí), které jsou ve standardu označovány jako nedoporučované.

Varianty zápisu viz výše - stačí používat zkrácenou verzi:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

Poznámka na okraj (nechci jí nikoho urazit): //EN neznamená jazykovou verzi HTML, ale DTD! Nelze tedy uvádět //CZ, protože DTD HTML je definován vždy pouze v //EN.

Doctype pro XHTML

Pro lidi, kteří se tím živí a musí být v obraze nebo pro ty, co chtějí být v obraze, je tu již dnes XHTML 1.0 resp. 1.1, které má taky tři definice DTD, korespondující s definicemi pro HTML 4.01:

Striktní:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Přechodovou:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

S podporou rámců:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Myslím, že i přes nechutně rozsáhlou dokumentaci HTML od W3C je použití DTD průhledné (bacha -- určitě jsem deformován povoláním). 

Takže: všichni směle používejme Document Type Definition!

Redakční poznámky

Tento text napsal P. Klapzobacsek.

Upravil Yuhů.

Poznámka autora pro Yuhůa: když z toho uděláš nějakej inteligentní vejcuc, tak to bude stravitelný i pro široký masy.

Poznámka Yuhůa pro široký masy: tak schválně.

o tvorbě, údržbě a zlepšování internetových stránek

Píše Yuhů, dusan@pc-slany.cz

Hledání:

Jak psát web: www.jakpsatweb.cz

Píše Yuhů: http://dusan.pc-slany.cz, mail: dusan@pc-slany.cz

Poslední aktualizace 10.12.2003