"XHTML definuje menej elementov ako HTML."
Demagógia. Poďme uvažovať o rozdieloch medzi HTML 4.01 a XHTML 1.0. Špecifikácia HTML 4.01 má tri verzie: Strict, Transitional a Frameset. Špecifikácia XHTML 1.0 má tri verzie: Strict, Transitional a Frameset. Keď sa pozrieme na elementy, zistíme, že HTML 4.01 Strict = XHTML 1.0 Strict, HTML 4.01 Transitional = XHTML 1.0 Transitional a HTML 4.01 Frameset = XHTML 1.0 Frameset. V samotnej špecifikácii XHTML 1.0 Strict sa nachádza, citujem:
"This is the same as HTML 4 Strict except for changes due to the differences between XML and SGML."
Približný preklad:
"Táto špecifikácia je zhodná s HTML 4 Strict, okrem zmien v dôsledku rozdielov medzi XML a SGML."
Rovnako je tomu aj v špecifikáciách XHTML 1.0 Transitional a XHTML 1.0 Frameset. XHTML 1.0 je len reformulácia HTML 4 do XML 1.0 (toto tvrdenie pochádza z nadpisu samotnej špecifikácie). Poďme však ďalej.
"Dokumenty písané v HTML používajú prezentačné elementy, v HTML dokumentoch je forma spätá z obsahom. XHTML ruší prezentačné elementy, dokonale oddeľuje formu od obsahu."
Demagógia. Ako som vyššie uviedol, špecifikácie HTML 4.01 a XHTML 1.0 sú zhodné, pokiaľ uvažujeme o elementoch. Všeobecne vládne mýtus, že XHTML webdesignérovi prikazuje nepoužívať prezentačné elementy, zatiaľ čo HTML tieto značky povoľuje. Opäť siahneme po špecifikácii a ako sme už zistili- elementy sú zhodné. Prezentačné elementy odstráňuje XHTML 1.0 Strict. A odkiaľ pochádzajú elementy z XHTML 1.0 Strict? No predsa z HTML 4.01 Strict. Takže prezentačné elementy zavrhuje len XHTML? Nie, toto nastalo už pri HTML 4.01 Strict. Teraz z opačnej strany. HTML 4.01 Transitional obsahuje prezentačné elementy a atribúty. Takže v HTML 4.01 Transitional je možné napísať dokument spätý s formou (použitie prezentačných elementov). A čo XHTML 1.0 Transitional? Elementy v tejto špecifikácii pochádzajú z HTML 4.01 Transitional. Takže to, čo je možné v HTML (napísať dokument s prezentačnými značkami), je rovnako možné v XHTML.
Navyše, XHTML 1.0 Strict (resp. HTML 4.01 Strict) neodstraňuje všetky prezentačné elementy a atribúty. Ide napríklad o elementy <b>, <i>, <big>, <small>, atď. Podobné je to u XHTML 1.1, ktoré neruší všetky prezentačné elementy. A vďaka svojej modularizácii je možné pripojiť "Legacy" modul, ktorý obsahuje všetky možné prezentačné elementy. Takže XHTML neruší žiadne prezentačné elementy.
Mnohí webdesignéri považujú XHTML za jazyk, ktorý im prikazuje vytvárať dokumenty s oddelenou formou od obsahu. To znamená písať dokumenty bez použitia prezentačných značiek, kód má vytvárať len štruktúru a sémantiku dokumentu. O formu sa treba postarať pomocou štýlopisu, najlepšie externého. Ale ako v tomto procese pomáha XHTML? Neruší žiadne prezentačné elementy, neprináša žiadne nové, sémantickejšie elementy. Z opačnej strany - HTML neprikazuje používať prezentačné elementy, neobsahuje menšie množstvo sémantických elementov. Výsledok? V HTML je možné napísať dokument s totožným stromom, s použitím rovnakých elementov ako v XHTML. Z toho vyplýva, že v HTML je možné písať dokumenty popisujúce štrukúru a sémantiku. Doplnením o štýlopis vzniká HTML dokument s oddelenou formou od obsahu.
"V HTML sa vytvárajú tabuľkové layouty, v XHTML beztabuľkové layouty."
Demagógia. Ako už z predošlých argumentov vyplýva, v HTML je možné tvoriť rovnako "správne" dokumenty ako v XHTML a naopak, v XHTML je možné tvoriť rovnako "nesprávne" dokumenty ako v HTML. Preto by bolo veľmi nerozumné domnievať sa, že tabuľkový layout je výsadou HTML a beztabuľkový layout "výsadou" XHTML.
"XHTML dokumenty majú oproti HTML dokumentom menšiu dátovú veľkosť, pretože prinášajú v prvom rade informácie a nie kilobajty zbytočných znakov navyše, ktoré len predĺžujú dobu sťahovania."
Demagógia. Je to presne naopak. XHTML, vďaka svojej prísnej syntaxi plynúcej z XML, prináša nutnosť vždy písať ukončovacie značky a nie je možné vynechať žiadne elementy. Naproti tomu, v HTML môžem vynechať ukončovacie značky niektorých elementov a niektoré elementy môžem dokonca vynechať úplne. Tento rozdiel pramení z toho, že SGML parser si určité elementy domyslí podľa kontextu a rovnako tak aj ukončovacie značky niektorých elementov. Ako dôkaz môžeme vytvoriť dva dokumenty. Jeden vytvoríme pomocou HTML 4.01 a druhý pomocou XHTML 1.0, v oboch prípadoch použijeme Strict verzie špecifikácií. Oba dokumenty budú mať rovnaký dokumentový strom (parse tree). Pomocou validátora si môžete overiť validitu oboch dokumentov. Oba dokumenty sú validné oproti špecifikácii, podľa ktorej sú vytvorené.
Budeme sa snažiť asi o takýto dokumentový strom:
<html><head>
<meta></meta>
<title>Pokus</title>
</head>
<body>
<p>
<strong>
Pokus, pri ktorom zistíme, ktorý dokument je dátovo menší.
</strong>
</p>
</body>
</html>
Dokument vytvorený pomocou XHTML 1.0:
<?xml version="1.0" encoding="windows-1250"?><!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="sk" lang="sk">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250"></meta>
<title>Pokus</title>
</head>
<body>
<p><strong>Pokus, pri ktorom zistíme, ktorý dokument je dátovo menší.</strong></p>
</body>
</html>
Teraz HTML 4.01:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Pokus</title>
<p><strong>Pokus, pri ktorom zistíme, ktorý dokument je dátovo menší.</strong>
Spočítajte si bajty. Ktorý dokument je väčší? Takže platí tvrdenie, že XHTML dokumenty sú dátovo menšie? Nie. V HTML je vždy možné vytvoriť dátovo menší dokument ako v XHTML. Praktický význam tejto skutočnosti je zanedbateľný. Momentálne ide len o vyvrátenie demagógie.
"XHTML prišlo s cieľom vybudovať čistý web."
Demagógia. Poznámka: toto tvrdenie je presnou citáciou. XHTML neprišlo s cieľom vybudovať čistý web. XHTML bolo vytvorené ako značkovací jazyk so sémantikou jazyka HTML, ktorý je zároveň kompatibilný s XML. Podstata XHTML vyplýva z možnosti parsovať XHTML dokumenty XML parserom. To by malo do webových dokumentov priniesť výhodu XML - rozšíriteľnosť. A rozšíriteľnosť je podstata XHTML (o tom hovorí už samotný názov - eXtensible HyperText Markup Language). Aj o týchto výhodách XML (XHTML) oproti SGML (HTML) existujú pochybnosti, ale to je už snáď niekde medzi nebom a zemou.
Čo dodať? Problém "internetových demagógov" je v tom, že sami protirečia štandardom. Áno, protirečia presne tým štandardom, za ktoré tak bojujú. Pre takýchto demagógických obhajcov štandardov by bolo lepšie najskôr zistiť, čo vlastne obhajujú a až potom by to mali obhajovať. Týmto článkom som určite nechcel odradiť od používania XHTML. Čo som chcel teda povedať? Otvorme si slovník cudzích slov a pozrime sa, ako vysvetľuje výraz "demagógia":
"Využívanie skreslených zjednodušených argumentov, pôsobiacich hlavne na city a predsudky, k ovplyvňovaniu jednotlivcov a skupín."
Znepokojuje ma, keď sa začiatočníkom podávajú skreslené informácie, resp. demagógické tvrdenia za účelom ovplyvnenia ich názoru na HTML. A potom vám začiatočník na inak krásny, správne štruktúrovaný, sémantický dokument s oddelenou formou od obsahu povie, že ide o amatérsky a staromódny výtvor len preto, že používate HTML. Pritom ani sám netuší, prečo tvorí v XHTML, dokonca ani netuší, že jeho XHTML dokument je v prehliadačoch vďaka nesprávnemu MIME typu rozoberaný rovnako ako HTML dokument. Ale to je už iná téma. Dúfajme, že demagógov bude čo najmenej. Dúfajme, že sa bude zvyšovať počet webdesignérov, ktorí svojej práci rozumejú a vedia odôvodniť svoje tvrdenia.