Extensible Hypertext Markup Language: Porovnání verzí

Smazaný obsah Přidaný obsah
mBez shrnutí editace
m typografické úpravy
Řádek 1:
'''XHTML''' ([[zkratka]] [[angličtina|anglického]] ''e'''x'''tensible '''h'''yper'''t'''ext '''m'''arkup '''l'''anguage'' – „rozšiřitelný hypertextový značkovací jazyk“) je [[značkovací jazyk]] pro tvorbu [[hypertext]]ových dokumentů v prostředí [[World Wide Web|WWW]] vyvinutý [[World Wide Web Consortium|W3C]]. Původně se předpokládalo, že se stane nástupcem jazyka [[HyperText Markup Language|HTML]], jehož vývoj byl verzí  4.01 ukončen. V roce [[2007]] však došlo k založení pracovní skupiny, která má za cíl vytvořit novou verzi HTML, která ponese označení [[HTML5|HTML 5]] a její [[Extensible Markup Language|XML]] variantu [[XHTML5|XHTML  5]].
 
== Verze ==
=== XHTML  1.0 ===
* [[World Wide Web Consortium|W3C]] doporučení z&nbsp;26. &nbsp;ledna 2000 revidovaný &nbsp;1.&nbsp;srpna 2002.<ref>{{en}} [http://www.w3.org/TR/xhtml1/ XHTML™ &nbsp;1.0 The Extensible HyperText Markup Language (Second Edition)]</ref><ref>[http://www.zralog.cz/translate/TR/REC-xhtml1-20020801/Overview.php XHTML™ &nbsp;1.0: Rozšířitelný hypertextový značkovací jazyk (český překlad)]</ref>
* První specifikace, jejíž cílem bylo převedení staršího jazyka [[HyperText Markup Language|HTML]] tak, aby vyhovoval podmínkám tvorby [[Extensible Markup Language|XML]] dokumentů a&nbsp;přitom byla zachována [[zpětná kompatibilita]].
* Existuje ve třech verzích: ''Strict'', ''Transitional'' a&nbsp;''Frameset''.
** '''XHTML &nbsp;1.0 Strict''' se používá, pokud chcete strukturovaný dokument osvobozený od formátovacích značek souvisejících s&nbsp;rozvržením stránky. Předpokládá se jeho užití společně s&nbsp;[[Cascading Style Sheets|CSS]], které vám umožní dosáhnout potřebných grafických efektů. Nicméně i&nbsp;tato verze obsahuje formátovací elementy, například <code>&lt;b></code> nebo <code>&lt;i></code> a&nbsp;naopak zavrhuje některé sémantické elementy, například <code><menu></code>.
** '''XHTML &nbsp;1.0 Transitional''' je přechodným [[DTD]] pro webové stránky, který vám umožní používat překonané [[tagy]]. Je vhodný pro formátování stránek vytvářených pro staré prohlížeče, které nerozumí kaskádovým stylům [[Cascading Style Sheets|CSS]] nebo chcete-li používat ve svých dokumentech některé zavržené, ale sémantické elementy, například již zmíněné <code><menu></code>.
** '''XHTML &nbsp;1.0 Frameset''' vám umožňuje používat zastaralé značky jako XHTML &nbsp;1.0 Transitional a&nbsp;přidává podporu pro rámce. V&nbsp;dnešní době by se mělo rámům vyhýbat použitím [[Cascading Style Sheets|CSS]], [[AJAX]]u nebo serverových skriptů jako například [[PHP]].
Přehlednou tabulku lze najít na [http://www.w3.org/TR/html4/index/elements.html stránkách W3C]. V&nbsp;kolonce „DTD“ lze vyčíst, ve které verzi XHTML se element vyskytuje (nic = Strict, L = Transitional, F = Frameset).
 
=== Modularizace XHTML ===
* Dalším krokem ve vývoji XHTML byla modularizace s&nbsp;cílem dosáhnutí vyšší flexibility napříč [[uživatelský agent|uživatelskými agenty]] (WWW prohlížeče, mobilní zařízení, tiskárny, čtečky apod.).
* Doporučení vyšlo 8. &nbsp;října 2008.<ref>{{en}} [http://www.w3.org/TR/xhtml-modularization/ XHTML™ Modularization &nbsp;1.1]</ref>
 
=== XHTML Basic &nbsp;1.1 ===
* [[World Wide Web Consortium|W3C]] pracovní koncept z&nbsp;29. &nbsp;července 2008.<ref>{{en}} [http://www.w3.org/TR/xhtml-basic/ XHTML™ Basic &nbsp;1.1]</ref>
* Příklad minimální sady modulů potřebné k&nbsp;vytvoření XHTML dokumentu, která je cílená na mobilní aplikace.
=== XHTML Mobile Profile ===
*[[XHTML Mobile Profile]] – někdy taky XHTML &nbsp;MP je postaveno na základě XHTML Basic a&nbsp;je určeno pro použití v&nbsp;mobilních telefonech. Někdy je také označováno jako [[Wireless Application Protocol|WAP]] &nbsp;2.0. XHTML MP podporuje na rozdíl od WAP &nbsp;1.0 a&nbsp;WAP &nbsp;1.1 barvu a&nbsp;barevné obrázky ve formátech [[GIF]], [[JPEG]] a&nbsp;[[Portable Network Graphics|PNG]].
 
=== XHTML &nbsp;1.1 – modulově založené XHTML ===
* [[World Wide Web Consortium|W3C]] doporučení ze 31. &nbsp;května 2001.<ref>{{en}} [http://www.w3.org/TR/xhtml11/ XHTML™ &nbsp;1.1 – Module-based XHTML]</ref>
* Příklad rozsáhlé sady modulů pro komplexnější tvorbu XHTML dokumentů.
* Vynechává již prakticky všechny prezentační vlastnosti.
* Je velice podobné XHTML &nbsp;1.0 Strict, ale na rozdíl od něj může vzhledem ke své modularizaci sloužit jako základ budoucím rozšířeným dokumentům z&nbsp;rodiny XHTML.
* Je [http://dsic.zapisky.info/XML/XHTML/FAQ/#mime11 výslovně zakázáno] odesílat takto zformátovaný dokument s&nbsp;MIME typem ''text/html'', ale je nutno ho odesílat s&nbsp;MIME typem ''application/xhtml+xml''. Tohoto lze docílit několika způsoby:
** pojmenování souboru ''*.xhtml'';
Řádek 32:
 
=== XHTML-Print ===
* Vývojové stádium ''[[World Wide Web Consortium#Doporučení a &nbsp;certifikace|Candidate Recommendation]]''. Poslední doporučení vyšlo 20. &nbsp;září 2006.<ref>{{en}} [http://www.w3.org/TR/xhtml-print/ XHTML-Print]</ref>
* Zaměření na tiskový výstup.
 
=== XHTML &nbsp;2.0 ===
* Vývojové stádium ''[[World Wide Web Consortium#Doporučení a &nbsp;certifikace|Working Draft]]''. Poslední pracovní návrh vyšel 26. &nbsp;července 2006.<ref>{{en}} [http://www.w3.org/TR/xhtml2/ XHTML™ &nbsp;2.0]</ref>
* Není zamýšleno tak, aby bylo zpětně kompatibilní se svými předchůdci.
* Vývoj XHTML2 byl ukončen na konci roku 2009 <ref>{{en}} [http://www.w3.org/News/2009#entry-6601 XHTML &nbsp;2 Working Group Expected to Stop Work End of 2009, W3C to Increase Resources on HTML &nbsp;5 ]</ref>
 
=== XHTML &nbsp;5 ===
* Součástí specifikace [[HTML 5]], vývojové stádium ''[[World Wide Web Consortium#Doporučení a &nbsp;certifikace|Working Draft]]''.
* Oproti předchozím verzím obsahuje řadu rozšíření (značky pro audio, video, možnost tvorby offline webových aplikací a&nbsp;další).
* Poslední pracovní návrh vyšel 25. &nbsp;srpna 2009.<ref>{{en}} [http://www.w3.org/TR/html5/ HTML 5]</ref>. Dev verze pak vyšla 21. &nbsp;prosince 2009.<ref>{{en}} [http://dev.w3.org/html5/spec/Overview.html dev: HTML 5]</ref>
 
== Rozdíly XHTML oproti HTML ==
 
* V&nbsp;XHTML na rozdíl od HTML musí být všechny tagy ukončené a&nbsp;to včetně nepárových jako jsou <tt>&lt;meta&gt;</tt>, <tt>&lt;link&gt;</tt>, <tt>&lt;br&gt;</tt>, <tt>&lt;hr&gt;</tt> nebo <tt>&lt;img&gt;</tt>. Zápis může mít více podob. Buď použijeme klasické (a&nbsp;validní) <tt>&lt;img&gt;&lt;/img&gt;</tt> nebo zkrácené <tt>&lt;img/&gt;</tt> nebo mírně upravené <tt>&lt;img /&gt;</tt>. První způsob se nedoporučuje používat, zasíláme-li XHTML dokument s&nbsp;typem text/html. Druhý způsob, bez mezery, se nedoporučuje používat kvůli postarším prohlížečům, které by v &nbsp;takovém případě mohly vynechat poslední atribut, je-li nějaký uvedený.<ref>{{en}} [http://www.w3.org/TR/xhtml1/#h-4.3 For non-empty elements, end tags are required]</ref>
* V &nbsp;XHTML na rozdíl od HTML musí být všechny tagy a&nbsp;jejich atributy zapsány malými písmeny a&nbsp;to z &nbsp;toho důvodu, že jsou takto deklarované v&nbsp;odkazované [[DTD]] a&nbsp;X(HT)ML je case sensitive, tedy záleží na velikosti písem. Pokud bychom si deklarovali vlastní DTD, můžeme směle používat i&nbsp;velká písmena.<ref>{{en}} [http://www.w3.org/TR/xhtml1/#h-4.2 Element and attribute names must be in lower case]</ref>
* Všechny hodnoty atributů musí být uzavřeny do uvozovek;<ref>{{en}} [http://www.w3.org/TR/xhtml1/#h-4.4 Attribute values must always be quoted]</ref>
* Dokument musí začínat '''XML deklarací'''. Její použití není povinné, pokud je dokument kódován v&nbsp;UTF-8 nebo pokud určujeme kódování vyšší protokolem ([[http]] například);<ref>{{en}} [http://www.w3.org/TR/xhtml1/#strict Strictly Conforming Documents]</ref>
* Pokud potřebujeme pracovat s&nbsp;rámy, můžeme deklarovat XHTML &nbsp;1.0 Frameset a&nbsp;pro jednotlivé stránky XHTML &nbsp;1.0 Transitional.
* XHTML dokument bychom měli zasílat s&nbsp;jiným MIME typem než klasické HTML dokumenty.<ref>{{en}} [http://www.w3.org/TR/xhtml-media-types/#media-types Recommended Media Type Usage]</ref>
* Další rozdíly již nejsou natolik důležité a&nbsp;časté <ref>{{en}} [http://www.w3.org/TR/2002/REC-xhtml1-20020801/#diffs XHTML: Differences with HTML &nbsp;4]</ref><ref>[http://atd.havrlant.net/jak-na-dokonale-xhtml Jak na dokonalé XHTML]</ref>
 
=== XHTML MIME typ ===
Klasické [[HyperText Markup Language|HTML]] stránky se zasílaly s&nbsp;[[Multipurpose Internet Mail Extensions|MIME]] typem text/html, který prohlížečům řekl, aby tento typ dokumentu zpracovaly jako HTML stránku. Je to podobné jako přípony (.jpg, .exe…exe …) ve Windows. XHTML má však odlišná pravidla na zpracování dokumentu, proto bychom měli zasílat XHTML dokumenty s &nbsp;MIME typem application/xhtml+xml<ref>[http://dero.name/weblog/xhtml-mime/ XHTML MIME]</ref><ref>{{en}} [http://www.w3.org/TR/2002/REC-xhtml1-20020801/#media Internet Media Type]</ref>, které prohlížečům poví, že mají tu čest s&nbsp;XHTML dokumentem. V&nbsp;praxi se změna MIME typu může provádět v&nbsp;zásadě třemi způsoby:
 
* Změnou přípony souborů na .xhtml. Většina serverů je nakonfigurována tak, aby soubory s &nbsp;touto koncovkou poslaly prohlížečům s&nbsp;typem application/xhtml+xml.
* Zasláním požadované [[http]] hlavičky, například pomocí [[php]] či jiného serverového jazyku.
* Pomocí souboru .htaccess můžeme změnit výchozí MIME typ pro jakoukoliv koncovku. Můžeme například nastavit, aby server posílal soubory s &nbsp;koncovkou .jemihorko s &nbsp;MIME typem application/xhtml+xml.
 
Ovšem při zasílání XHTML dokumentů s&nbsp;tímto typem je třeba počítat s&nbsp;jistými problémy:
 
* Při jakékoliv syntaktické chybě vůči správné sestavenosti musí prohlížeč zobrazit chybové hlášení a&nbsp;nepokračovat dále ve vykreslování stránky. Takže stačí jediná chyba programátora, ne úplně dotažená stránka (např. &nbsp;když je přetížený server) nebo když uživatel používá nevhodný [http://blog.ataxo.cz/article:xhtml-mime-typ akcelerátor stahování] a&nbsp;uživatel ze stránky nic neuvidí. Prohlížeč však přitom nekontroluje validitu – validita není nezbytná podmínka pro zobrazení.
* Stránka se v&nbsp;některých prohlížečích zobrazí až po úplném načtením stránky, což je způsobeno předchozím bodem – prohlížeč musí nejprve zkontrolovat, zda je dokument správně sestavený a&nbsp;až poté jej může začíst vykreslovat. Nicméně se od tohoto v&nbsp;novějších verzí prohlížečů ustupuje a&nbsp;zpracování stránky je průběžné.
* MIME typu application/xhtml+xml nerozumí jisté (velké) procento interpretů <ref>[http://programujte.com/?akce=clanek&cl=2006052301-xhtml-2-0-a-mime-typy-pro-xhtml programujte.com: XHTML 2.0 a&nbsp;MIME typy pro XHTML]</ref>. Mezi nejzásadnější patří Internet Explorer, až do své verze &nbsp;8. Dále pak různé hlasové čtečky a&nbsp;textové prohlížeče a&nbsp;v&nbsp;neposlední řadě také roboti vyhledávačů (například Seznam). Zasílání stránek s&nbsp;tímto MIME typem tedy rozhodně nevytváříme přístupné stránky. V&nbsp;praxi se to řeší buď zasíláním text/html pro všechny prohlížeče (prohlížeče však poté zpracují dokument podle pravidel HTML, ne jako XHTML) nebo se pomocí skriptu zjistí, zda prohlížeč zná application/xhtml+xml – pokud ano, pošle se mu stránka s&nbsp;tímto typem. Pokud ne, zašle se s&nbsp;typem text/html.
 
== Reference ==
Řádek 78:
== Externí odkazy ==
* [http://validator.w3.org W3C XHTML Validátor] – oficiální referenční validátor W3C
* [http://www.lupa.cz/clanky/soumrak-nad-modernim-x/ Soumrak nad moderním &nbsp;X] – Zamyšlení nad XHTML
* [http://interval.cz/clanky/proc-nepouzivam-xhtml/ Proč nepoužívám XHTML] – článek na Interval.cz
* [http://interval.cz/clanky/proc-pouzivam-xhtml/ Proč používám XHTML] – článek na Interval.cz
* [http://interval.cz/clanky/jak-pouzivam-xhtml/ Jak používám XHTML] – článek na Interval.cz
* [http://www.webylon.info/K.XHTML Kritika W3C: XHTML a &nbsp;XML] – Nevýhody XHTML
 
{{Pahýl}}