Kdy₧ se podφvßm na zdrojov² k≤d n∞kter²ch webov²ch strßnek,
naleznu na jeho zaΦßtku podivnou °ßdku obsahujφcφ zßhadnou znaΦku
<!DOCTYPE>
. Rßd bych v∞d∞l, k Φemu je tato znaΦka
dobrß a zda ji mßm na sv²ch strßnkßch pou₧φvat?
Asi jste ji₧ n∞kde slyÜeli o tom, ₧e jazyk HTML je aplikacφ jazyka
SGML (Standard Generalized Markup Language). Pomocφ jazyka SGML m∙₧eme
vytvß°et definice libovoln²ch znaΦkovacφch jazyk∙, kter²m °φkßme DTD
(Document Type Definition). TakovΘto definice samoz°ejm∞ existujφ i pro
jazyk HTML. ZnaΦka <!DOCTYPE>
urΦuje jakΘmu DTD dan²
dokument odpovφdß a °φkß se jφ prolog.
Jeliko₧ existuje vφce verzφ HTML, mß ka₧dß verze vlastnφ DTD. Pomocφ
znaΦky <!DOCTYPE>
pak m∙₧eme urΦit, kterou verzi HTML
v dokumentu pou₧φvßme. Na zaΦßtku strßnek, kterΘ pou₧φvajφ HTML 3.2,
bychom tedy mohli nalΘzt:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
Rozeberme si podrobn∞ji jednotlivΘ Φßstu prologu. Za slovem
DOCTYPE
nßsleduje HTML
. Toto slovo urΦuje
nßzev pou₧itΘho znaΦkovacφho jazyka pro dokument. V naÜem
p°φpad∞ se samoz°ejm∞ jednß o jazyk HTML.
DalÜφ Φßst prologu jednoznaΦn∞ identifikuje pou₧itou verzi DTD. K dispozici jsou dv∞ mo₧nosti. Bu∩ DTD definumeme pomocφ ve°ejnΘho identifikßtoru (jako v naÜem p°φpad∞) nebo pomocφ odkazu na soubor obsahujφcφ DTD.
╚ast∞jÜφ je pou₧itφ ve°ejnΘho identifikßtoru, kdy za slovo
PUBLIC
zapφÜeme °et∞zec oznaΦujφcφ pou₧itΘ DTD. Druhou
mo₧nostφ je pou₧itφ klφΦovΘho slova SYSTEM
nßsledovanΘho
URL adresou, kterß ukazuje na p°φsluÜnΘ DTD.
Poslednφ mo₧nostφ je kombinace obou p°echozφch metod. Za klφΦov²m
slovem PUBLIC
uvedeme ve°ejn² identifikßtor a za nφm URL
ukazujφcφ na DTD.
Prolog tedy urΦuje, jakou verzi HTML jsme pou₧ili. JakΘ to mß v²hody? Pravdou je, ₧e dneÜnφ prohlφ₧eΦe zcela ignorujφ pou₧itou verzi HTML. Existuje vÜak mnoho dalÜφch nßstroj∙ pro prßci s HTML a obecn∞ SGML dokumenty, kterΘ prolog velice efektivn∞ vyu₧ijφ. Tyto nßstroje v∞tÜinou spadajφ do svou skupin podle toho, jakou nabφzejφ funkci. K dispozici je n∞kolik program∙, kterΘ umo₧≥ujφ kontrolovat syntaktickou sprßvnost strßnek. Druhß skupina program∙ umo₧≥uje HTML dokumenty p°evßd∞t do jin²ch formßt∙ nebo je formßtovat pro tiÜt∞n² v²stup. Podle pou₧itΘ verze HTML mohou tyto nßstroje m∞nit zp∙sob formßtovßnφ.
Pro vyzkouÜenφ mo₧nostφ kontroly sprßvnosti dokument∙ nemusφme pracn∞
shßn∞t ₧ßdn² software. Konsorcium W3C na adrese
http://validator.w3.org
provozuje slu₧bu, kterß nßm umo₧nφ kontrolu libovolnΘ strßnky umφst∞nΘ
na Internetu. V∞tÜinou ji vyu₧ijeme pro kontrolu vlastnφch strßnek, ale
m∙₧eme si ji pustit na strßnky n∞kterΘho znßmΘho serveru a zjistit, zda
jeho auto°i dodr₧ujφ standardy.
Aby mohla slu₧ba zkontrolovat naÜi strßnku, musφme na zaΦßtek strßnky umφstit prolog. Pro HTML 4.0 mß tento prolog tvar:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
DTD, kterΘ odpovφdß tomuto prologu, obsahuje pouze definici element∙
a atribut∙ pro vyznaΦovßnφ struktury. Neobsahuje vÜak definici element∙
jako je nap°. FONT
pro zm∞nu pφsma nebo atribut∙
ALIGN
a VALIGN
°φdφcφch zp∙sob zarovnßnφ. V
dokumentech, kterΘ vyhovujφ tomuto striktnφmu DTD, pro definici vzhledu
strßnky pou₧φvßme kaskßdovΘ styly.
Pokud na strßnce pou₧φvßme formßtovacφ elementy a atributy, musφme pou₧φt odliÜnΘ DTD, kterΘmu odpovφdß prolog:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
Standard HTML 4.0 definuje jeÜt∞ t°etφ DTD, kterΘ se pou₧φvß pro
strßnky, kterΘ obsahujφ definici rozlo₧enφ rßm∙ (element
FRAMESET
). Odpovφdajφcφ prolog je:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
Pou₧itφ slu₧by si ukß₧eme na jednoduchΘ strßnce, ve kterΘ pou₧ijeme neexistujφcφ atribut a p°ek°φ₧φme elmenty. P°i zßpisu strßnky musφme dbßt na to, aby byl prolog prvnφm °ßdkem dokumentu.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Pokusna stranka</TITLE> </HEAD> <BODY> <P VALIGN=TOP> <EM><STRONG>Text, ktery se prekrizi</EM></STRONG> </BODY> </HTML>
ValidaΦnφ slu₧b∞ staΦφ zadat URL strßnky a za chvφli se objevφ v²sledek anal²zy (viz obrßzek).
Vidφme, ₧e validßtor s p°ehledem odhalil vÜechny chyby. Oznßmil
pou₧itφ nep°φpustnΘho atributu VALIGN
u tagu
<P>
. Rovn∞₧ odhalil p°ek°φ₧enφ element∙
EM
a STRONG
.