Co je XHTML
Marek Prokop, vydáno/aktualizováno: 1.10.2001/13.01.2002
(Následující článek v zájmu srozumitelnosti lecos zjednodušuje. Odborníkům se omlouvám.)
Poměrně často se v redakční poště objevují dotazy, co je XHTML, jak se liší od tradičního HTML a zda má význam se jím zabývat. Protože by odpověď přesáhla rozsah rubriky dotazů, napsal jsem raději tento článek.
Definice praví, že XHTML je reformulací HTML jako aplikace XML. Nejste z toho moudří? Není divu. Nejprve totiž musím vysvětlit, co to je XML.
Základem je XML
Extensible Markup Language, neboli rozšiřitelný značkovací jazyk, zkráceně XML je velmi obecný jazyk pro vytváření dokumentů obsahujících alespoň částečně strukturovaná data. Něco podobného, jako jsou databáze (třeba Access, nebo stará dobrá Foxka). S databázemi byla ale vždy potíž — co výrobce, to jiný formát, navíc jsou zde omezení daná relačním modelem.
Proto vzniklo XML. Není sice vhodné pro ukládání rozsáhlých dat, zato přináší standardní a tudíž obecně "srozumitelný" formát. Proto je velmi vhodné zejména pro výměnu dokumentů (např. objednávek či faktur), komunikaci (např. mezi 2 aplikačními servery v internetu), ale i pro prezentaci informací na WWW.
Dost však teorie, XML nejlépe pochopíte na praktickém příkladu.
<article>
<title>Javascript napříč okny prohlížeče</title>
<perex>Rámce, okna, a JavaScript podle Martina Kopty</perex>
<url>http://www.sovavsiti.cz/c01211.html</url>
</article>
<article>
<title>Jak psát nadpisy</title>
<perex>Jak psát nadpisy, aby upoutaly vaše návštěvníky</perex>
<url>http://www.sovavsiti.cz/c01212.html</url>
</article>
To, co zde vidíte je popis dvou článků Sovy ve formátu pro systém WebSpy (přibližně). V podstatě se jedná o XML, s jehož pomocí jsou popsány jednotlivé články (prvek <article
>) a jejich tituly, perexy a url. Jelikož znáte HTML, je to jednoduché, že ano.
Zkusme si nyní do tohoto popisu článků doplnit ještě údaje o autorovi článků. Lze to udělat dvojím způsobem. Buď přidáme nový prvek <author
>, nebo použijeme atribut prvku <article>. První způsob by vypadal takto:
<article>
<author>Martin Kopta</author>
<title>Javascript napříč okny prohlížeče</title>
<perex>Rámce, okna, a JavaScript podle Martina Kopty</perex>
<url>http://www.sovavsiti.cz/c01211.html</url>
</article>
a druhý takto:
<article author="Martin Kopta">
<title>Javascript napříč okny prohlížeče</title>
<perex>Rámce, okna, a JavaScript podle Martina Kopty</perex>
<url>http://www.sovavsiti.cz/c01211.html</url>
</article>
Na rozdíl od tradičního HTML, má však XML o něco přísnější pravidla. Např. všechny názvy značek (tagů) a atributů musí být malými písmeny, všechny prvky musí být uzavřeny (i nepárové značky), atd. A na rozdíl od HTML, XML žádné značky předem nedefinuje. Kdybych v příkladu výše použil <clanek
> místo <article
> a <nazev
> místo
<title
>, bylo by to stále platné a správně strukturované (well-formed) XML.
Nyní si jistě řeknete, k čemu je vlastně XML dobré, když je definováno jen pár syntaktických pravidel a nic víc. Vždyť dáme-li náš příklad Číňanovi, stejně z něho nic nepochopí. Tak jakýpak univerzálně srozumitelný jazyk? A máte pravdu. Aby náš příklad měl smysl a alespoň dva lidé si takto mohli předávat data, musí se dohodnout, co jaká značka znamená. Takové dohodě se říká aplikace XML.
Aplikace XML
Jednoduše shrnuto, XML je vlastně jakýsi "nadjazyk" a jeho aplikace pak jsou již konkrétními jazyky pro praktické použití. Aplikace mohou k základnímu XML přidávat další pravidla a tím ho omezovat a významově zpřesňovat. Např. jedno pravidlo pro náš příklad říká, že prvek <article
> musí obsahovat právě jeden prvek <title>. Zároveň však, a to je zásadní, musí každá aplikace dodržovat základní množinu pravidel XML.
Dnes již existuje mnoho aplikací XML používaných okrajově, většinou privátně. Existují ale i aplikace všeobecně rozšířené, například jazyk pro transformaci jedné aplikace XML do druhé. Dokonce i jazyk, kterým se definují upřesňující pravidla aplikací XML, tzv. DTD (Document Type Definition, definice typu dokumentu) je aplikací XML. A jednou z aplikací XML je i XHTML.
XHTML
Jak jste si jistě všimli na uvedeném příkladu, XML se od HTML, kromě použitých značek, moc neliší. Proto se od HTML ani nijak podstatně neliší XHTML. Trochu jinak vypadá definice typu dokumentu (první řádek), hlavička, která je povinná, o malých písmenech a povinných koncových značkách už jsem hovořil. K tomu patří ještě uvozovky, do kterých se povinně uzavírají hodnoty atributů a je to skoro vše.
Proč tedy o XHTML vůbec uvažovat a proč se ho učit? Stojí to za to? Dle mého názoru, stojí. Většina expertů se totiž shoduje, že XML a tím pádem i XHTML patří budoucnost. Důvodů je několik, mj.:
Díky přísným a zároveň jednoduchým pravidlům, mohou počítače XML a tedy i XHTML velmi snadno automatizovaně zpracovávat. Kdyby prohlížeči stačilo "umět" XHTML, byl by mnohem jednodušší (a tedy menší a rychlejší), než když musí zvládat veškeré "nevyzpytatelnosti" HTML.
Všechny aplikace XML mohou s výhodou těžit ze stejného základu syntaktických pravidel. Již nyní tedy existuje mnoho univerzálních programů a knihoven funkcí, které velmi usnadňují vznik a implementaci každé nové aplikace XML.
Dá se očekávat, že právě díky vyšší srozumitelnosti počítačům, budou časem stránky vytvořené v XHTML "oblíbenější" u vyhledávačů, katalogů stránek, výměnných reklamních systémů a dalších automatizovaných služeb.
Dříve nebo později začnou prohlížeče podporovat pouze XHTML (případně jiné aplikace XML) a neuškodí, budete-li na to připraveni. Mimochodem IE již od verze 4 a NN od verze 6 "umí" čisté XML a v kombinaci s CSS, nebo ještě lépe XSL (obdoba CSS v XML) s ním dokáže velmi zajímavé věci.
Zbývá poslední otázka, zda se již dnes vyplatí převést vaše HTML dokumenty do XHTML. Po pravdě řečeno si to nemyslím. Snížíte tím kompatibilitu svých stránek se staršími prohlížeči, zkomplikujete si práci s JavaScripty a nic moc positivního nezískáte. To však brzy nemusí platit. Určitě tedy stojí za to XML a XHTML alespoň trochu nastudovat.