V minulých týdnech se na Lupě objevila série (zatím) dvou článků o XHTML. Oplývají atraktivními názvy, Soumrak nad moderním X a Život s krvelačným X, za které by se nemusel stydět ani Blesk. Autor, pan Chamurappi, se v nich obouvá do jazyka XHTML. Shodou okolností ve stejný den jako první z těchto článků vyšel na Rootu můj článek, ve kterém se podivuji nad tím, že autoři HTML5 víceméně ignorují XML a XHTML. Už z toho by mohlo být zřejmé, že můj pohled na XHTML se od pohledu páně Chamurappiho velmi liší.
První z článků vyvrací čveřici údajných mýtů. Nic proti tomu, jsou to buď rovnou nesmysly, nebo o nich lze přinejmenším pochybovat. Uniká mi ale celková logika článku, která vyznívá takto: Není pravda, že XHTML 1.0 má lepší sémantiku než HTML4. Dále není pravda, že XHTML je přístupnější, upřednostňované vyhledávači a že je není podporováno prohlížečem MS IE. Z toho plyne, že XHTML je mrtvola a kdo se ho zastává je nosorožec. Připadám si jako mimořádně nechápavý nosorožec.
Druhý článek už nemá tak kompaktní logickou stavbu.Vyčítá XHTML, že to je XML, přičemž zvláštní kritiky se dostává tzv. drakonické kontrole správného zformování (well-formedness). Jde o to, že chyby se v XML neodpouští. Dokument buď je well-formed, nebo není – nic mezi tím. I „malá“ chyba těsně před koncem musí způsobit odmítnutí dokumentu. O tomto principu se v době vzniku XML hodně diskutovalo. Měl své zastánce i odpůrce. Nakonec převážili zastánci a drakonické parsování se stalo charakteristikou XML.
Naproti tomu parsery HTML jsou maximálně tolerantní. Snaží se přežvýkat všechno a zobrazit stránku, jak jen to nejlépe jde. V prostředí webového prohlížeče je to pochopitelný přístup. Úkolem prohlížeče je totiž zobrazit stránku pro lidské oči. K těm většinou patří i lidský mozek, což je velmi mocný nástroj pro práci s kontextem, a neúplnými nebo částečně chybnými informaceni. Drakonické XML je narozdíl od tolerantního HTML primárně určeno ke strojovému zpracování. A stroje zatím neumí tak dobře ignorovat nepodstatné chyby a orientovat se v nevyřčeném kontextu. Proto je třeba jim dodat dokument bez chyb obsahující všechny potřebné informace.
Teď se dostávám k jádru. Pokud jde jen o zobrazení v prohlížeči, nepřináší XHTML opravdu nic nového a v mnoha ohledech situaci spíš komplikuje. Hlavní výhodou XHTML ale je, že stejná stránka může být zobrazena člověku i zpracována automaticky. Automatické zpracování HTML je očistec, troufám si říct, že větší, než zobrazování XHTML. Napsat použitelný HTML procesor není žádná legrace a výsledné knihovny jsou pořádní bumbrlíčci. Proto se XHTML dobře uplatňuje tam, kde je málo zdrojů – dnes zejména na mobilních telefonech. To je další velká výhoda XHTML. S přihlédnutím k současnému mobilnímu boomu si dovolím tvrdit, že XHTML má k mrtvé technologii hodně daleko.
2> To není úplně přesný – při použití MIME application/xhtml prohlížeč použije XML parser, takže se může lišit zpracování stránky (CDATA, JavaScript, zpracování tagů a podobně). Například Opera renderuje posloupnost <br></br> jako dva konce řádku, ale když použije XML parser, už funguje správně. (Nicméně ano, jsou to zatím [podle mě] převážně prkotiny.)
Na Chamurappiho článcích je podle mě nejsmutnější to, že mají technickou pointu – jakkoliv jsou například jeho ukázky s DTD zahnané do extrému, jejich odstranění by XHTML zjednodušilo. Když ale bude psát tímhle stylem, bude ho mít hodně lidí jen za idiota a každý pokus o rozumnou diskusi budou doprovázet desítky flamů, což omrzí. Kdyby rovnou napsal, že XHTML má takové a takové problémy, které se dají řešit tak a tak, většina lidí by před jeho technickýma znalostma smekla. Nechápu, proč jsou někteří lidi proti XML tak a priori vysazení – není bez chyby, ale je to praktický nástroj.
Ano prazdne tagy, taky tagy :)
... ale napriklad pri vytvareni XML dokumentu nejakym parserem nemusi byt vysledek vzdy stejny. Mezi nami devcaty: nektere parsery proste Element s zadnym obsahem "nerozchodi":D ... ale to samozrejme nemeni nic na teorii ...
11> Zobrazí to syntaktickou chybu, takže to člověk většinou opraví a je klid. Krom toho, generování validního XML zase není taková věda – jak se jednou člověk spálí o zapomenutý ampersand nebo ostrou závorku, většinou už není co řešit a všechno funguje. Pro mě osobně je mnohem větší problém Internet Explorer, který XHTML se správným MIME typem prakticky nepodporuje[, ať si Chamurappi říká co chce].
[13] Hmm... sak to, ze to zobrazi syntakticku chybu... Ked ju zobrazi mne, tak mi to nevadi, ale uzivatelovi...
Ze nieje problem vygenerovat validne XHTML mi je jasne...Moje skripty generuju validny kod vsetky... Ale aj tak... Clovek nikdy nevie... SW bez chyb neexistuje
No... Ak ho IE nepodporuje, naozaj nieje co riesit... (clovek aby sa stale prisposoboval tomu najhorsiemu... :( )
15> Ono jde spíš o chyby, které se zavlečou v provozu, nikoliv chyby jednoduše dohledatelné během vývoje. Člověk importuje obsah z jiného zdroje, zapomene zkontrolovat tagy a už se veze, přičemž o tom vůbec nemusí vědět. Ani validátor není úplně ideální, protože se špatně cpe do běžného vývojového cyklu. Pokud má člověk většinu výstupů statických, může si je zvalidovat v rámci buildu. Jakmile ale nějakou část staví dynamicky, automatická validace už je složitější a vzniká prostor pro chyby. (Čímž se věci snažím spíš vysvětlit než obhájit.)
Přečteno 7 922×
Přečteno 6 030×
Přečteno 6 020×
Přečteno 5 947×
Přečteno 5 814×