XHTML – další prvky XHTML a DTD

12. srpna 2002

Tentokrát se zaměříme na vytváření komentářů, znakové entity a vysvětlíme si XML deklaraci, Definici typu dokumentu (DTD) a Deklaraci typu dokumentu.

Komentáře

Jako každý programovací jazyk, také XHTML podporuje komentáře. Jsou to speciálně označené fragmenty kódu, které interpret XHTML nezpracovává, slouží pouze autorovi. Obvykle se do nich zapisují různé poznámky ke kódu, aby se v něm později bylo možno orientovat.

Komentář se může nacházet kdekoli v kódu, kromě otevírací či uzavírací části elementů, přičemž začíná znaky <!--, následuje obsah komentáře a končí znaky -->. Příklad komentáře:

<!– Tady je komentář –>

V komentáři nesmíte použít dvě nebo více pomlček bezprostředně za sebou, protože by je interpret XHTML považoval za konec komentáře. Naopak zde můžete zapsat elementy, aniž by byly interpretovány (to se hodí například k dočasnému vypouštění určité pasáže ze stránky při ladění).

Poznámka: Komentáře jsou plnohodnotnou součástí stromu XHTML dokumentu, mimo jiné k nim proto můžete přistupovat pomocí DOMu.

Znakové entity

Někdy se dostanete do situace, kdy nebudete moci zapsat určitý znak do stránky, protože vám to nebude umožňovat váš textový editor nebo znak nebude součástí znakové sady, kterou chcete pro dokument použít (u nás se toto týká například písmen řecké abecedy). V takovém případě potřebujete tento znak nějak opsat pomocí znaků, které obsahuje každá ASCII-kompatibilní znaková sada i každá klávesnice, a také potřebujete, aby tento opis převedl interpret XHTML při zpracování kódu na znak, který jste původně zamýšleli. A právě k tomu slouží znakové entity.

Zápis znakové entity je &identifikátor-znaku;, přičemž jako identifikátor-znaku se používá znak „#“, následovaný pozicí znaku ve znakové sadě ISO 10646, vyjádřenou číslem v desítkové nebo šestnáctkové soustavě. V případě, že použijete šestnáctkové číslo, musíte před něj ještě předřadit znak „x“. Zde je několik příkladů ze specifikace HTML 4.01:

&#229; <!– znak pro a s kroužkem, používaný např. v norštině –>
&#xE5; <!– stejný znak, zapsaný pomocí šestnáctkového čísla (hexadecimálně) –>
&#x6C34; <!– čínský znak pro vodu –>

Některé častěji používané entity mají navíc v XHTML přiřazeny textové řetězce (jako svůj identifikátor), aby si autoři nemuseli pamatovat jejich číselné vyjádření: například &copy; pro ©, &reg; pro ®, &euro; pro znak Eura nebo &aring; pro zmiňované a s kroužkem. Tyto entity již jsou citlivé na velikost písmen, takže &aring; odkazuje na malé a s kroužkem, zatímco &Aring odkazuje na velké A s kroužkem. Jména entit jsou definována v DTD, jejich definicí se budeme ještě zabývat.

XHTML obsahuje také pět entit se speciálním významem. Jejich „speciálnost“ spočívá v tom, že jsou sice součástí stabilní výbavy každé klávesnice i ASCII-kompatibilní znakové sady, avšak mají v XHTML speciální význam, a proto musí být v běžném textu nahrazovány entitami. Řadíme sem entity &lt; (less than, tedy menší než) pro <, &gt; (greater than, tedy větší než) pro >, &amp; (ampersand) pro &, &quot; (quote, uvozovka) pro " a &apos; (apostrophe, apostrof) pro '. První dvě entity musíte použít, kdykoli chcete vložit znaky < nebo > do dokumentu, aniž by byly součástí otevírací/uzavírací části elementu. Kdykoli chcete v dokumentu použít znak &, aniž by to byl začátek znakové entity, musíte použít zápis &amp;.

Nyní k entitám &quot; a &apos;. Pokud chcete v hodnotě atributu použít uvozovku, musíte hodnotu uzavřít do apostrofů (a naopak – pokud chcete v hodnotě atributu použít apostrof, musíte hodnotu uzavřít do uvozovek), nebo musíte tuto uvozovku/apostrof zapsat pomocí znakové entity, interpret XHTML by ji jinak považoval za konec atributu. Nyní se podívejte na několik příkladů správného zápisu. Do atributu title chceme přiřadit v prvních dvou případech text článek "Odstraňte bariéry svého webu" a poté článek 'Odstraňte bariéry svého webu':

<a href=“…“ title=’článek „Odstraňte bariéry svého webu“‚>článek</a>
<a href=“…“ title=“článek &quot;Odstraňte bariéry svého webu&quot;“>článek</a>
<a href=“…“ title=“článek ‚Odstraňte bariéry svého webu'“>článek</a>
<a href=“…“ title=’článek &apos;Odstraňte bariéry svého webu&apos;‘>článek</a>

Entity &quot; a &apos; tedy naleznou svoje využití hlavně u atributů. Můžete je ale samozřejmě používat i u obsahu elementů, to záleží na vás.

Ještě poznámka k entitě &apos;. Některé moderní prohlížeče ji neznají, a proto doporučuji její zápis pomocí číselného tvaru &#39;.

Znakovou entitu můžete použít kdekoli v dokumentu, ať už jako obsah elementu, atributu nebo komentáře (i když zde nebudou entity nijak zpracovávány).

Na konec bych se chtěl zmínit o tom, jak je to s nahrazováním entit znaky u interpretů XHTML. Vše záleží na tom, jestli interpret zná znakovou sadu ISO 10646. Pokud ano, pak nedojde k žádnému problému. Pokud interpret nezná nějakou jmennou entitu, musí ji celou opsat, na stránce se tedy objeví řetězec &jméno-entity;. Pokud nezná nějaký znak ze znakové sady dokumentu nebo znak vyjádřený číselnou entitou, může ho úplně vynechat nebo nahradit nějakým zástupným znakem (například ?), to záleží na konkrétním interpretu.

XML deklarace

V minulém článku jsme si vysvětlovali základní prvky XHTML na příkladu XHTML stránky, přičemž jsme se zatím nevěnovali prvním dvěma řádkům. To nyní napravíme. Pro připomenutí je zde vypíšu:

<?xml version=“1.0″ encoding=“iso-8859-2″?>
<!DOCTYPE html PUBLIC „-//W3C//DTD XHTML 1.0 Strict//EN“ „DTD/xhtml1-strict.dtd“>

První řádek je XML deklarace. Obsahuje dva takzvané pseudo-atributy, version a encoding. Obsahem prvního pseudo-atributu je verze XML, která je pro XHTML 1.0 a 1.1 vždy 1.0. Druhý pseudo-atribut obsahuje kódování použité ve stránce. Pokud používáme kódování UTF-8 nebo UTF-16, nemusíme tento pseudo-atribut uvádět, jinak je povinný. A proč hovoříme o pseudo-atributech? Protože to nejsou skutečné atributy, záleží u nich na pořadí, které musí být přesně takové, jaké vidíte v příkladu. Kromě pořadí pseudo-atributů musíme samozřejmě dodržet i <?xml na začátku a ?> na konci deklarace.

Definice typu dokumentu (DTD)

Pro každý značkovací jazyk je třeba určit jistá syntaktická pravidla, která stanoví, například, které elementy se v něm smí používat, jaký obsah smí daný element obsahovat nebo jaké atributy smí daný element mít. Tato pravidla se v XHTML zatím určují pomocí takzvané DTD (Document Type Definition). Pracuje se i na implementaci těchto pravidel pomocí XML schémat, což je daleko jasnější, mocnější, a podle mě i daleko pochopitelnější jazyk pro tvorbu syntaktických pravidel, založený na XML. Zatím se ale musíme spokojit s DTD.

Pokud píšeme stránky v XHTML 1.0, můžeme si vybrat 3 DTD: Strict, Transitional a Frameset. Každé z těchto DTD obsahuje pravidla pro tu kterou variantu XHMTL 1.0. XHTML 1.1 je tvořeno jen jedním DTD, které se ale skládá z mnoha modulů, definovaných v Modularizaci XHTML (ještě se k tomuto tématu dostaneme).

Deklarace typu dokumentu

Aby libovolné zařízení pracující s XML (a tím pádem i s XHTML) vědělo, podle jakého DTD je dokument napsán, musíme toto DTD deklarovat v takzvané Deklaraci typu dokumentu. V našem příkladu je to druhá řádka (hned pod XML deklarací):

<!DOCTYPE html PUBLIC „-//W3C//DTD XHTML 1.0 Strict//EN“ „DTD/xhtml1-strict.dtd“>

Deklarace typu dokumentu se skládá z <!DOCTYPE, mezery, jména kořenového elementu dokumentu (to je ten, ve kterém je obsažen celý dokument – každý XML dokument musí mít takový element, v případě XHTML je to html), mezery, klíčového slova PUBLIC (udává, že deklarace obsahuje veřejný identifikátor), mezery, veřejného identifikátoru (uzavřeného do uvozovek), mezery, systémového identifikátoru (opět uzavřen do uvozovek) a >.

Veřejný identifikátor je textový řetězec, který označuje známé a často používané soubory (například DTD), aby nemusely vždy být stahovány z Internetu, často totiž bývají součástí samotného programu nebo systému. Veřejné identifikátory XHTML DTD obsahují jako první znak „-“, což znamená, že identifikátor není zaregistrován. Další část (části jsou zde odděleny znaky „//“) obsahuje jméno organizace, které identifikátor náleží (W3C), další část obsahuje typ souboru (v našem případě DTD), mezeru a samotný textový řetězec identifikující dokument (v našem případě XHTML 1.0 Strict). Poslední část potom obsahuje kód jazyka, ve kterém je dokument napsán (pro XHTML DTD je to angličtina, tedy EN).

Systémový identifikátor obsahuje webovou adresu souboru s DTD (na který ukazuje i veřejný identifikátor).

Příště se podíváme na to, jak se v DTD definují syntaktická pravidla XHTML.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *