XHTML – základní struktura dokumentu
Vedle dodržení struktury XHTML dokumentu je vhodné nezapomínat na informace o jazyku dokumentu. Vysvětlím vám proč a současně vše doplním upřesněním elementu html.
Základní struktura XHTML dokumentu
Každý XHTML dokument musí obsahovat tyto čtyři základní sekce, a to v uvedeném pořadí:
-
XML deklarace – tato sekce je povinná, jen pokud váš dokument používá jiné kódování než UTF-8 nebo UTF-16, ovšem silně se doporučuje uvádět ji pokaždé. Musí se nacházet na prvním řádku dokumentu.
-
Deklarace typu dokumentu – připomínám, že tato deklarace určuje, podle jakého DTD je dokument napsán. Pro XHTML 1.0 si můžete vybrat jednu z těchto deklarací:
XHTML 1.0 Strict:
<!DOCTYPE html
PUBLIC „-//W3C//DTD XHTML 1.0 Strict//EN“
„http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>XHTML 1.0 Transitional:
<!DOCTYPE html
PUBLIC „-//W3C//DTD XHTML 1.0 Transitional//EN“
„http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>XHTML 1.0 Frameset:
<!DOCTYPE html
PUBLIC „-//W3C//DTD XHTML 1.0 Frameset//EN“
„http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd“>Systémový identifikátor (URI) v těchto deklaracích může být modifikován podle potřeb systému, aniž by se tím narušila valididita (správnost) dokumentu.
-
Hlavička dokumentu – tato sekce je celá uzavřena v elementu
head
. Uvádějí se v ní takzvaná metadata, tedy informace o dokumentu (například titulek dokumentu, stručné shrnutí jeho obsahu, jeho vztah k jiným dokumentům a podobně). Tyto informace prohlížeč nezobrazuje jako součást stránky, k jejich reprezentaci může (ale nemusí) použít jiné způsoby (například uvedení titulku dokumentu v titulku okna). -
Tělo dokumentu – tato sekce se kompletně nachází uvnitř elementu
body
. Nachází se v ní samotný obsah stránky, který je určen k přímé interpretaci.
Hlavička a tělo dokumentu (tedy elementy head
a body
) se navíc musí kompletně nacházet uvnitř elementu html
. Element html
musí obsahovat deklaraci jmenného prostoru, což vysvětlím za chvíli. Nyní se podívejte na příklad minimálního XHTML dokumentu, který by vyhověl specifikaci XHTML 1.0 Strict:
<!DOCTYPE html
PUBLIC „-//W3C//DTD XHTML 1.0 Strict//EN“
„http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>
<html xmlns=“http://www.w3.org/1999/xhtml“>
<head>
<title>Minimální XHTML stránka</title>
</head>
<body>
<p>Toto je minimální XHTML stránka, která by vyhověla specifikaci XHTML.</p>
</body>
</html>
Tato stránka má několik „ale“. Jednak v ní chybí XML deklarace, takže musí používat kódování UTF-8 nebo UTF-16, neobsahuje deklaraci používaného jazyka (tedy češtiny) a také v ní chybí deklarace použitého kódování pro starší prohlížeče, které ho neumí určit z XML deklarace. Proto ji trochu poupravíme:
<?xml version=“1.0″ encoding=“UTF-8″?>
<!DOCTYPE html
PUBLIC „-//W3C//DTD XHTML 1.0 Strict//EN“
„http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>
<html xmlns=“http://www.w3.org/1999/xhtml“ xml:lang=“cs“ lang=“cs“>
<head>
<meta http-equiv=“content-type“ content=“text/html; charset=UTF-8″ />
<meta http-equiv=“content-language“ content=“cs“ />
<title>XHTML stránka</title>
</head>
<body>
<p>Toto již je XHTML stránka se všemi nutnými náležitostmi.</p>
</body>
</html>
Významem elementů a atributů v příkladu si zatím nemusíte až tolik lámat hlavu, protože se k nim ještě dostaneme podrobněji. Přesto bych ale poznamenal, že u elementů meta
udávající kódování a jazyk je vhodné, aby se nacházely v dokumentu dříve, než jakýkoli text v lidské řeči, aby interpreti XHTML ihned věděli, jak mají s tímto textem nakládat.
Nyní, když už víme, jak by měla vypadat základní XHTML stránka, můžeme přikročit k představení prvního elementu. Ještě předtím bych vás ale chtěl upozornit na soubor strict-dtd.html. Tento XHTML soubor obsahuje celé XHTML 1.0 Strict DTD, což znamená, že ho můžete otevřít v prohlížeči a pomocí odkazů se po něm snadno pohybovat (nevytvořil jsem ho já, jedná se o upravený soubor ze specifikace XHTML 1.0). To je důležité hlavně proto, že v celém DTD se velmi hojně užívá parametrických entit, které si nebudeme zdlouhavě vypisovat u každého elementu či atributu, a proto vás budu odkazovat na tento soubor, kde se pouhým kliknutím na jméno entity přenesete na její deklaraci. Elementy i atributy si budeme představovat pomocí fragmentů z DTD, kterými jsme se zabývali v úvodu seriálu. Pokud tedy něčemu nerozumíte, doporučuji vám předchozí části seriálu.
Element html
Povolený obsah: (head
, body
)
Atributy:
%i18n;
- Tato parametrická entita obsahuje atributy internacionalizace, tedy
lang
,xml:lang
adir
– jejich významu a syntaxi se budeme věnovat dále v článku. id ID #IMPLIED
- Obsahem tohoto atributu je jméno elementu, které musí být jedinečné pro celý dokument. Tomuto atributu se budeme věnovat podrobně v příštím článku.
xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
- Tento atribut deklaruje jmenný prostor XHTML, musí být přítomen v každém XHTML dokumentu a vždy musí mít hodnotu
http://www.w3.org/1999/xhtml
.
Element html v XHTML 1.0 Strict DTD
Element html
je kořenovým prvkem XHTML dokumentů, tzn. musí v něm být obsažen celý obsah dokumentu. Povinně v něm musíte uvést atribut xmlns
s danou hodnotou a měli byste uvést i atributy internacionalizace.
Entita %i18n; – atributy internacionalizace
Atributy z této entity slouží k poskytnutí údajů o přirozeném (lidském) jazyku dokumentu. Jedná se o tyto tři atributy:
lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED- Tyto atributy shodně udávají kód jazyka, ve kterém je uveden celý jejich obsah včetně elementů (zde existují výjimky u tabulek, ke kterým se dostaneme v jednom z dalších dílů) i všechen text jejich atributů, pokud se jedná o text v přirozené lidské řeči. Pokaždé, když chcete definovat jazyk elementu, musíte k tomu v XHTML 1.0 použít jak atribut
lang
, tak ixml:lang
, přičemž oba musí mít stejný obsah. První atribut kvůli zpětné kompatibilitě s HTML a prohlížeči HTML, ten druhý je pak speciálním atributem XML, vyhrazeným pro tento účel. V XHTML 1.1 se již používá pouzexml:lang
.
Entitu%LanguageCode;
jsme si představovali již dříve, proto nyní jen připomenu, že kódy jazyků jsou obsaženy v RFC 1766. Tyto kódy nejsou citlivé na velikost písmen. Za kódem jazyka můžete navíc použít řetězec-varianta_jazyka
, napříkladen-US
(americká angličtina) nebox-klingon
(x
udává experimentální označení). dir (ltr|rtl) #IMPLIED
- Tento atribut udává směr textu (
ltr
– left-to-right – pro text zleva doprava artl
– right-to-left – pro text zprava doleva). Stejně jako elementbdo
najde využití pouze ve spojení s exotickými jazyky, a proto ho většina z nás nikdy nebude potřebovat. Z tohoto důvodu se těmito prvky XHTML nebudeme zabývat.
Nyní bych rád uvedl pár důvodů, proč je vhodné na informace o jazyku dokumentu nezapomínat:
- Vyhledávací roboti mohou vaši stránku snadno zařadit do jedné z jazykových skupin a uživatelé vás díky tomu snadno najdou.
- Hlasové prohlížeče mohou snadno určit, jakou výslovnost mají použít u vaší stránky.
- Vizuální prohlížeče mohou dodržovat typografická pravidla příslušející danému jazyku (což se týká zejména uvozovek a mezer).
- Automatické kontrolory pravopisu mohou s vaší stránkou lépe pracovat.
U variant jazyka chápou interpreti XHTML element jako psaný v základním jazyce, navíc určeném jeho zvláštní variantou. Vysvětlím to na příkladě: Pokud bychom měli dokument, který by měl v „jazykových atributech“ uvedeno en-US
a hlasový prohlížeč obsahoval speciální výslovnost pro angličtinu, ale již ne pro americkou angličtinu, četl by dokument s anglickou výslovností. Pokud by ale obsahoval i výslovnost pro americkou angličtinu, četl by ho americkou angličtinou.
Díky dědičnosti stačí udat jazyk pouze pomocí základních mechanismů (element meta
a atributy lang
, xml:lang
elementu html
). Pokud potřebujeme použít uvnitř dokumentu jiný než takto nastavený jazyk, uděláme to nastavením „jazykových atributů“ u příslušného elementu (tyto atributy lze použít téměř u jakéhokoli elementu, u kterého to dává smysl). Vše si ukážeme na příkladě, ve kterém do české stránky vložíme odstavec v angličtině:
<?xml version=“1.0″ encoding=“UTF-8″?>
<!DOCTYPE html
PUBLIC „-//W3C//DTD XHTML 1.0 Strict//EN“
„http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>
<html xmlns=“http://www.w3.org/1999/xhtml“ xml:lang=“cs“ lang=“cs“>
<head>
<meta http-equiv=“content-type“ content=“text/html; charset=UTF-8″ />
<meta http-equiv=“content-language“ content=“cs“ />
<title>Použití angličtiny v české stránce</title>
</head>
<body>
<p>odstavec česky <!–element p zde zdědil nastavení jazyka z elementu html ––></p>
<p xml:lang=“en“ lang=“en“>a paragraph in <strong>English</strong> <!–– anglický text, element p zde má své vlastní nastavení jazyka – to se aplikuje na jeho obsah včetně vnořených elementů (zde je takovým elementem strong) i jeho atributy ––></p>
</body>
</html>
Tímto jsme tedy probrali atributy internacionalizace. Jak už jsem řekl, vyskytují se u většiny elementů, takže při jejich dalším probírání si už tuto entitu vysvětlovat nebudeme, pouze si připomeneme, že se jedná o atributy internacionalizace. Příště se budeme zabývat dalšími základními elementy a atributy.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Užitečné nástroje pro bezpečnost na internetu
17. října 2024 -
Lék na phishing a apatii ve světě e-mailového marketingu
18. března 2024 -
Vaše pošta může být špatně nastavena – svěřte ji profesionálům
13. července 2023 -
Gaming na HDR monitoru: Stojí to za to?
12. srpna 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024