Toto je český překlad doporučení W3C "XHTML™ 1.0: The Extensible HyperText Markup Language" z 26. ledna 2000 (ve znění revize z 1. srpna 2002). Tento dokument může obsahovat chyby v překladu. Normativní anglická verze je na http://www.w3.org/TR/2002/REC-xhtml1-20020801
V případě, že naleznete nějakou chybu, ohlašte ji, prosím, překladateli.
Děkuji všem, kteří se přímo či nepřímo podíleli na vzniku tohoto překladu.
Tento dokument je chráněn autorským zákonem, Copyright © 1999 - 2000 W3C® (MIT, INRIA, Keio). Všechna práva vyhrazena. Práva k překladu patří překladateli, Copyright © 2002 Jiří Hrazdil.
Podívejte se na seznam oprav k tomuto dokumentu, který obsahuje normativní opravy. Viz též překlady.
Tento dokument je také dostupné v těchto nenormativních formátech: Více-dílný XHTML soubor, PostScriptová verze, PDF verze, zazipovaný archiv, a gzipovaný TAR archiv.
Copyright ©2002 W3C® (MIT, INRIA, Keio), All Rights Reserved. Na tento dokument se vztahují W3C pravidla spolehlivosti, obchodní značky, použití dokumentu a licencování software.
Tato specifikace definuje druhé vydání XHTML 1.0, reformulaci HTML 4 jako XML 1.0 aplikaci, a tři DTD odpovídající těm definovaným v HTML 4. Význam elementů a jejich atributů je definován v doporučení W3C pro HTML 4. Tyto významy poskytují základ pro pozdější rozšíření XHTML. Kompatibilita s existujícími uživatelskými agenty je umožněna užíváním několika základních směrnic.
Tento oddíl popisuje statut tohoto dokumentu v době jeho zveřejnění. Ostatní dokumenty jej mohou nahradit. Poslední verze statutu tohoto dokumentu je spravována W3C.
Tento dokument je druhým vydáním specifikace XHTML 1.0 a jsou v něm zahrnuty opravy k 1. srpnu 2002. Změny mezi touto a předchozí verzí doporučení jsou vyznačeny ve verzi s vyznačením rozdílů.
Toto druhé vydání není novou verzí XHTML 1.0 (prvně vydáno 26. ledna 2000). Změny v tomto dokumentu odrážejí opravy, které jsou výsledkem součinnosti Pracovní skupiny HTML (HTML Working Group) a uživatelů. V tomto dokumentu nejsou žádné podstatné změny - jen začlenění nejrůznějších oprav.
Seznam známých chyb v této specifikaci je k dispozici na http://www.w3.org/2002/08/REC-xhtml1-20020801-errata.
Chyby v tomto dokumentu, prosím, oznamte na www-html-editor@w3.org (archiv). Veřejná diskuse o vlastnostech HTML probíhá na mailing listu www-html@w3.org (archiv).
Tento dokument je vydán jako součást W3C HTML Aktivity. Cíle pracovní skupiny HTML (jen pro členy) jsou vytyčeny v Chartě pracovní skupiny HTML.
Pracovní skupina si není vědoma, že by v době vydání existovaly nějaké patenty relevantní k této specifikaci. Aktuální seznam patentů relevantních k této specifikaci je na stránce patentů pracovní skupiny.
Seznam aktuálních doporučení W3C a ostatních technických dokumentů je dostupný na http://www.w3.org/TR.
lang a xml:langTento oddíl je informativní.
XHTML je rodina nynějších a budoucích typů dokumentů a modulů, které kopírují a rozšiřují HTML 4 [HTML4]. Rodina typů dokumentů XHTML je založena na XML, a je konečně založena ve shodě s uživatelskými agenty založenými na XML. Podrobnosti o této rodině a jejím vývoji jsou uvedeny v [XHTMLMOD].
XHTML 1.0 (tato specifikace) je prvním typem dokumentu rodiny XHTML. Jde o reformulaci tři typů dokumentů HTML 4 jako aplikací XML 1.0 [XML]. Je zamýšlen jako jazyk pro definici obsahu, který je na jednu stranu ve shodě s XML, a v případě dodržení některých jednoduchých směrnic je schopen provozu s uživatelskými agenty podporujícími HTML 4. Vývojáři přecházející na XHTML 1.0 si povšimnou těchto výhod:
Rodina XHTML je dalším krokem vývoje Internetu. Přechodem k XHTML vstoupí vývojáři do světa XML s vědomím, že jejich výtvory jsou zpětně i budoucně kompatibilní.
HTML 4 [HTML4] je aplikace SGML (Standardní nerozlišený značkovací jazyk), vyhovující mezinárodní normě ISO 8879, a je považována za standard poskytování informací na WWW.
SGML je jazykem pro popis značkovacích jazyků, hlavně těch použitých při elektronické výměně dokumentů, správě dokumentů a vydávání dokumentů. HTML je příkladem jazyka definovaného s SGML.
SGML existuje do poloviny 80. let a zůstává celkem stálé. Mnoho z této stability je dáno tím, že SGML má mnoho vlastností a je flexibilní. Tato flexibilita ovšem přináší úskalí. Jeho složitost zpomalila jeho rozvoj v rozmanitých prostředích, například i ve World Wide Webu.
HTML bylo původně zamýšleno jako jazyk pro výměnu vědeckých a ostatních technických dokumentů, vhodných pro použití specialisty na jiné věci než dokumenty. HTML potlačilo problém složitosti SGML vytvořením malé množiny strukturálních a sémantických značek vhodných ke tvoření relativně jednoduchých dokumentů. Podporou hypertextu došlo k dalšímu zjednodušení struktury dokumentu. Později byla přidána i podpora multimédií.
Ve výjimečně krátkém čase se HTML stalo velmi populárním a rychle přerostlo původní účel. Od počátku se rychle objevovaly nové elementy pro HTML (jako standard) a pro přizpůsobení HTML vysoce specializovaným trhům. Tyto nové elementy vedly k problémům kompatibility dokumentů napříč různými platformami.
XML™ je zkratka pro Rozšířitelný značkovací jazyk (Extensible Markup Language) [XML].
XML bylo navrženo jako způsob dosažení síly a flexibility SGML jednoduchou cestou. Ačkoli je XML omezenou formou SGML, stále zachovává většinu jeho síly, a navíc zachovává většinu používaných vlastností.
Zatímco zachovává tyto užitečné vlastnosti, odstraňuje mnoho složitostí SGML, které udělaly z tvoření vhodného software náročnou a drahou záležitost.
Výhody přechodu na XHTML 1.0 jsou popsány výše. Některé z výhod přechodu k XHTML jsou:
Tento oddíl je normativní
V této specifikaci jsou použity následující termíny. Tyto termíny rozšiřují definice v [RFC2119] ve smyslu podobných definic v ISO/IEC 9945-1:1990 [POSIX.1]:
Poznámka překladatele:
Definice "should" nebyla přeložena.
Poznámka překladatele:
Definice "unspecified" nebyla přeložena.
Poznámka překladatele:
Validovat své (X)HTML stránky můžete českým XHTML a HTML validátorem.
Tento oddíl je normativní.
Tato verze XHTML obsahuje definici striktně shodných XHTML 1.0 dokumentů, které jsou omezeny elementy a atributy jmenných prostorů XML a XHTML 1.0. Viz Oddíl 3.1.2 pro informace o používání XHTML s ostatními jmennými prostory, například vložení metadat vyjádřených ve formátu RDF do dokumentu XHTML.
Striktně shodný XHTML dokument je XML dokument, který vyžaduje jen povinné vybavení uvedené v této specifikaci. Takovýto dokument musí splňovat tato kritéria:
Musí vyhovovat omezením jednoho ze tří DTD (DTD a v Příloze B).
Kořenovým elementem dokumentu musí být html.
Kořenový element dokumentu musí obsahovat deklaraci xmlns pro jmenný prostor XHTML [XMLNS]. Jmenný prostor XHTML je určen jako http://www.w3.org/1999/xhtml. Ukázkový kořenový element může vypadat takto:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
V každém dokumentu musí být před kořenovým elementem deklarace DOCTYPE. Veřejné identifikátory obsažené v DOCTYPE definici musí odkazovat na alespoň jeden ze tří DTD použitím Formálních veřejných identifikátorů. Systémové identifikátory se mohou měnit s ohledem na místní systémové konvence.
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Podmnožina DTD nesmí být použita k překrytí jakýchkoliv parametrických entit v DTD.
Deklarace XML není vyžadována ve všech XML dokumentech; nicméně doporučujeme všem XHTML autorům používat XML deklaraci ve všech svých dokumentech. Takováto deklarace je potřebná, je-li kódování dokumentu jiné než UTF-8 nebo UTF-16 a nadřazeným protokolem nebylo určeno jiné. Toto je ukázka XHTML dokumentu, obsahujícího XML deklaraci.
<?xml version="1.0" encoding="UTF-8"?>
<!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="en" lang="en">
<head>
<title>Virtuální knihovna</title>
</head>
<body>
<p>Přesunuta na <a href="http://example.org/">example.org</a>.</p>
</body>
</html>
Jmenný prostor XHTML může být použit s ostatními jmennými prostory XML [XMLNS], ačkoliv takovéto dokumenty nejsou striktně shodné s XHTML 1.0. Činnost W3C je zaměřena též na určení shody dokumentů obsahujících více jmenných prostorů. Pro příklad viz [XHTML+MathML].
Následující příklad ukazuje možnost použití XHTML 1.0 ve spojení s doporučením MathML:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Matematický příklad</title>
</head>
<body>
<p>Následuje zápis v MathML:</p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply> <log/>
<logbase>
<cn> 3 </cn>
</logbase>
<ci> x </ci>
</apply>
</math>
</body>
</html>
Následující příklad ukazuje způsob začlenění XHTML 1.0 kódu do jiných jmenných prostorů XML:
<?xml version="1.0" encoding="UTF-8"?>
<!-- počátečním jmenným prostorem je "books" -->
<book xmlns='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en">
<title>Cheaper by the Dozen</title>
<isbn:number>1568491379</isbn:number>
<notes>
<!-- učiň HTML jmenný prostorem pro hypertextový komentář -->
<p xmlns='http://www.w3.org/1999/xhtml'>
Je též dostupná <a href="http://www.w3.org/">online</a>.
</p>
</notes>
</book>
Shodný uživatelský agent musí splnit všechny následující požadavky:
ID (např. atribut id u většiny XHTML elementů) jako částečné identifikátory.Bílé znaky (white space) se zpracovávají podle následujících pravidel. Následující znaky jsou v [XML] definovány jako bílé znaky:
XML procesor sjednocuje kódy konců řádků na různých systémech do jednoho znaku ŘÁDKOVÉHO POSUNU, který předá aplikaci.
Uživatelský agent musí pro zpracování bílých znaků užít definici CSS [CSS2]. Povšimněte si, že doporučení CSS2 se explicitně nezabývá manipulací bílých znaků v ne-latinských znakových sadách. Toto bude začleněno až do budoucích verzí CSS. Zároveň s tímto dojde k aktualizaci tohoto odkazu.
K tomu, aby vznikl kanonický XHTML dokument, musí být dodržena výše uvedená pravidla i pravidla v [XMLC14N].
Tento oddíl je informativní.
Vzhledem k faktu, že XHTML je XML aplikací, musí dojít ke změně některých postupů, které byly v HTML 4 [HTML4], založeném na SGML, možné.
Správnost struktury je novým postupem zavedeným v [XML]. Znamená to, že všechny elementy musí mít buď uzavírací značku, nebo musí být zapsány určitým způsobem (popsáno níže), a také všechny elementy musí být správně zanořeny.
Ačkoliv je překrývání elementy v SGML nepřípustné, množství prohlížečů jej toleruje.
SPRÁVNĚ: vnořené elementy.
<p>toto je zdůrazněný <em>odstavec</em>.</p>
NESPRÁVNĚ: překrývající se elementy
<p>toto je zdůrazněný <em>odstavec.</p></em>
V dokumenty XHTML musí pro všechny názvy elementů a atributů být použita malá písmena. Tato odlišnost je způsobena faktem, že XML rozlišuje velikost písmen. Např. <li> a <LI> jsou rozdílné značky.
V HTML 4, založeném na SGML, bylo u některých elementů možné vynechat ukončovací značku. To není v XML dovoleno. Všechny elementy kromě těch, definovaných v DTD jako PRÁZDNÉ (EMPTY), musí mít ukončovací značku. Elementy, které jsou v DTD definované jako PRÁZDNÉ (EMPTY), mohou mít uzavírací značku nebo mohou použít zkrácený zápis (viz Prázdné elementy).
SPRÁVNĚ: ukončené elementy
<p>toto je odstavec.</p><p>toto je další odstavec.</p>
NESPRÁVNĚ: neukončené elementy
<p>toto je odstavec.<p>toto je další odstavec.
Všechny hodnoty atributů musí být v uvozovkách, dokonce i ty číselné.
SPRÁVNĚ: hodnoty atributů v uvozovkách
<td rowspan="3">
NESPRÁVNĚ: hodnoty atributů bez uvozovek
<td rowspan=3>
XML nepodporuje minimalizaci atributů. Dvojice atribut-hodnota musejí být zapsány celé. Názvy atributů jako compact a checked se nesmějí vyskytovat bez určení jejich hodnoty.
SPRÁVNĚ: neminimalizované atributy
<dl compact="compact">
NESPRÁVNĚ: minimalizované atributy
<dl compact>
Prázdné elementy musí mít buď ukončovací značku, nebo musí počáteční značka končit />. Například <br/> nebo <hr></hr>. Viz Směrnice kompatibility s HTML pro více informací o zajištění kompatibility s uživatelskými agenty podporujícími HTML 4.
SPRÁVNĚ: ukončené prázdné elementy
<br/><hr/>
NESPRÁVNĚ: neukončené prázdné elementy
<br><hr>
Při zpracování atributů uživatelskými agenty postupují tito podle Oddílu 3.3.3 [XML]:
V XHTML mají elementy script a style obsah typu #PCDATA. Výsledkem toho je, že znaky < a & budou považovány za počátek kódu a entity jako < a & budou XML procesorem převedeny na <, resp. &. Obalením obsahu elementů script a style do oddílu CDATA předejdete reprezentaci těchto entit.
<script type="text/javascript"> <![CDATA[ ... obsah skriptu, může obsahovat znaky &, <, > ... ]]> </script>
Oddíly CDATA jsou procesorem XML rozpoznány a v dokumentovém modelu objektu jsou jako uzly. Viz Oddíl 1.3 Doporučení DOM Level 1 [DOM].
Další možností je použití vnějšího skriptu nebo dokumentu se stylem.
SGML dává tvůrci DTD možnost vyloučit, aby určité elementy byly obsaženy v jiných elementech. Tyto zákazy ("výjimky") nejsou v XML možné.
Například HTML 4 Strict DTD zakazuje vnoření elementu 'a' do jiného elementu 'a' v jakékoliv hloubce. V XML není možné takovýto zákaz vyjádřit. Ačkoliv nemohou tyto zákazy být v DTD definovány, určité elementy by neměly být zanořovány. Seznam těchto elementů je v normativním oddílu Zákazy týkající se elementů.
V HTML 4 byl atribut name definován k elementům a, applet, form, frame, iframe, img a map. V HTML 4 byl též zaveden atribut id. Oba tyto atributy jsou určeny pro použití jako částečné identifikátory.
V XML mají částečné identifikátory typ ID. V jednom elementu může být jen jeden atribut typu ID. Proto je v XHTML 1.0 definován atribut id typu ID. K zajištění správné struktury dokumentů XHTML 1.0 MUSÍ být při definici částečných identifikátorů u výše uvedených elementů použit atribut id. Viz Směrnice kompatibility s HTML pro více informací o zajištění zpětné kompatibility při reprezentaci XHTML dokumentů jako text/html.
Povšimněte si, že v XHTML 1.0 je atribut name u těchto elementů překonaný (deprecated) a v následujících verzích XHTML bude odstraněn.
Jak HTML 4, tak XHTML mají některé atributy, které mají předdefinované a omezené množiny hodnot (např. atribut type elementu input). V SGML a XML jsou tyto nazývány vyjmenované atributy (enumerated attributes). V HTML 4 se nerozlišovala při interpretaci malá a velká písmena, takže hodnota TEXT byla stejná jako hodnota text. V XML se malá a velká písmena rozlišují a v XHTML 1.0 jsou všechny tyto hodnoty definovány malými písmeny.
Jak SGML tak XML povoluje odkazování na znaky s využitím hexadecimálních hodnot. V SGML se tyto odkazy tvoří následovně: &#Xnn; nebo &#xnn;. V XML dokumentech je nutno použít verze s malými písmeny (např. &#xnn;).
Tento oddíl je normativní.
Ačkoliv není pro dokumenty XHTML 1.0 žádný požadavek na kompatibilitu s existujícími uživatelskými agenty, lze jí snadno dosáhnout. Směrnice pro vytváření kompatibilních dokumentů jsou v Příloze C.
Dokumenty XHTML, které dodržují směrnice uvedené v Příloze C, mohou používat typ "text/html" [RFC2854], neboť jsou kompatibilní s většinou prohlížečů. Tyto dokumenty a všechny ostatní dokumenty vyhovující této specifikaci mohou též použít typ "application/xhtml+xml" [RFC3236]. Pro více informaci o použití typů médií viz informativní poznámku [XHTMLMIME].
Tato příloha je normativní.
Tyto DTD a množiny entit tvoří normativní část této specifikace. Úplná množina DTD souborů dohromady s deklarací XML a SGML Open Catalog, vztahující se k této specifikaci, je obsažena v souboru zip a v gzipovaném TAR souboru. Uživatelé hledající místní kopie DTD, aby s nimi mohli pracovat, by si raději měli stáhnout a používat tyto archivy než používat určité DTD odkazované níže.
Tyto DTD jsou podobné DTD HTML 4. W3C doporučuje používat při validaci obsahu autoritativní verze těchto DTD se svými SYSTEM identifikátory. Jestliže potřebujete pracovat s těmito DTD lokálně, měli byste si stáhnout jeden z archivů této verze. Pro úplnost jsou normativní verze DTD uvedeny zde:
Soubor DTD/xhtml1-strict.dtd je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.
Soubor DTD/xhtml1-transitional.dtd je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.
Soubor DTD/xhtml1-frameset.dtd je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.
Sada entit XHTML je stejná jako v HTML 4, ale některé entity byly upraveny, aby splňovaly požadavky XML 1.0. Povšimněte si, že znak pro měnu Euro (€ nebo
€ nebo €) je definován ve speciálních znacích.
Soubor DTD/xhtml-lat1.ent je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.
Soubor DTD/xhtml-special.ent je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.
Soubor DTD/xhtml-symbol.ent je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupná v samostatném oddílu.
Tato příloha je normativní.
U následujících elementů je omezeno, které elementy mohou obsahovat (viz Výjimky ze SGML). Tato omezení platí ve všech hloubkách zanoření.
aa.preimg, object, big, small, sub, ani sup.buttoninput, select, textarea, label, button, form, fieldset, iframe ani
isindex.labellabel.formform.Tato příloha je informativní.
Tato příloha shrnuje směrnice pro autory, kteří chtějí zobrazovat XHTML dokumenty na existujících HTML uživatelských agentech. Povšimněte si, že toto doporučení neurčuje způsob zpracování HTML shodnými uživatelskými agenty, ani nedefinuje význam typu text/html. Pro tyto definice viz [HTML4] a [RFC2854].
Uvědomte si, že v některých uživatelských agentech jsou instrukce pro zpracování zobrazeny jako text. Někteří uživatelští agenti též zpracují XML deklaraci a domnívají se, že jde o HTML dokument. Proto může dojít k jinému než očekávanému zobrazení. Pro maximální kompatibilitu s těmito starými prohlížeči se snažte vyhnout použití instrukcí pro zpracování a XML deklarací. Nicméně pamatujte, že není-li v dokumentu XML deklarace, může mít dokument jen kódování UTF-8 nebo UTF-16.
Poznámka překladatele:
Pro více informací o instrukcích pro zpracování viz [ISO8879].
V prázdných elementech udělejte před ukončovací / a > jednu mezeru, např. <br />, <hr />
a <img src="karen.jpg" alt="Karen" />. Používejte zkrácený zápis prázdných elementů, neboť např. alternativní zápis <br></br>, ačkoliv je v XML povolen, může vyprodukovat neurčitý výsledek v mnoha uživatelských agentech.
U elementu, jehož typ není EMPTY (například prázdný titulek nebo odstavec), se nepoužívá zkrácený zápis (např. použijte
<p> </p> a ne <p />).
Používejte externí stylové předpisy, jestliže obsahují < nebo & nebo ]]> nebo --. Používejte externí skripty, jestliže obsahují < nebo & nebo ]]> nebo --. Povšimněte si, že parsery XML mohou odstranit obsah poznámek. Proto praktika "skrývání" skriptů a stylových předpisů do "poznámek", aby byly zpětně kompatibilní, nevede v uživatelských agentech kompatibilních s XML k očekávaným výsledkům.
Vyhněte se řádkovým zlomům a více bílým znakům za sebou v hodnotách atributů. Uživatelští agenti je zpracovávají protichůdně.
Nepoužívejte více než jeden element isindex v části head. Element isindex je překonaný (deprecated) elementem input.
lang a xml:langPři určování jazyka elementu používejte jak atribut lang tak xml:lang. Hodnota atributu xml:lang má přednost.
V XML se URI-odkazy [RFC2396] končící částečným identifikátorem tvaru "#foo" nevztahují k elementům s atributem name="foo", ale k elementům s atributem typu ID, např. atribut id v HTML 4. Mnoho existujících HTML klientů nepodporuje takovéto použití atributů typu ID, takže pro zajištění maximální zpětné kompatibility je možné do obou těchto atributů vložit stejnou hodnotu (např. <a id="foo" name="foo">...</a>).
Neboť množina přípustných hodnot atributů typu ID je mnohem menší než těch typu CDATA, byl změněn typ atributu name na NMTOKEN. Tento atribut může mít pouze stejné hodnoty jako typ ID, nebo jako Name v XML 1.0 Oddílu 2.3,
produkci 5. Bohužel toto omezení nemůže být vyjádřeno v XHTML 1.0 DTD. Kvůli této změně musí být převod existujících HTML dokumentů opatrný. Hodnoty těchto atributů musí být v celém dokumentu jedinečné a platné, a všechny odkazy k těmto částečným identifikátorům (jak vnitřním tak vnějším) musí být při změně hodnot během převodu upraveny.
Povšimněte si, že množina možných hodnot podle XML 1.0 Oddíl 2.3, produkce 5 je mnohem větší než ta povolená typy ID a NAME, definovanými v HTML 4. Pro zpětnou kompatibilitu by měly částečné identifikátory být řetězec vyhovující vzoru[A-Za-z][A-Za-z0-9:_.-]*. Viz Oddíl 6.2 [HTML4] pro více informací.
Nakonec si povšimněte, že v XHTML 1.0 je atribut name elementů a, applet, form, frame, iframe,
img a map označen jako překonaný (deprecated) a v následujících verzí XHTML bude odstraněn.
V minulosti bylo kódování HTML dokumentu určeno buď webserverem přes parametr charset HTTP hlavičky Content-Type, nebo elementem meta v samotném dokumentu. V XML je kódování dokumentu určeno v XML deklaraci (např. <?xml version="1.0" encoding="EUC-JP"?>). Nejlepším postupem k dosažení správného zobrazování dokumentů s různými kódováními je nastavení webserveru k zasílání správných hlaviček. Jestliže to není možné, je třeba explicitní deklarace kódování v dokumentu - jak v XML deklaraci tak v elementu meta atributem http-equiv (např. <meta
http-equiv="Content-type" content="text/html; charset=EUC-JP" />). V uživatelských agentech vyhovujících XHTML má vždy přednost kódování určené v XML deklaraci.
Poznámka: jestliže má dokument určeno kódování přes zápis meta http-equiv, může být vždy tento vyhodnocen HTTP serverem a/nebo uživatelským agentem jako dokument internetového typu média určeného v tomto zápise. Jestliže dokument obsahuje více typů médií, musí být pro určení kódování použit HTTP server.
Někteří HTML uživatelští agenti nejsou schopni zpracovat logické atributy, jestliže se vyskytují ve svém úplném (ne minimalizovaném) zápisu, jak je to vyžadováno XML 1.0. Povšimněte si, že tento problém neovlivňuje uživatelské agenty kompatibilní s HTML 4. Týká se to následujících atributů: compact, nowrap, ismap, declare, noshade, checked,
disabled, readonly, multiple, selected, noresize a defer.
Doporučení Document Object Model level 1 [DOM] definuje rozhraní objektového modelu dokumentu pro XML a HTML 4. V HTML 4 jsou názvy elementů a atributů vraceny ve velkých písmenech. V XML dokumentech jsou vraceny ve velikosti písmen ve které byly určeny. V XHTML 1.0 jsou elementy a atributy zapisovány malými písmeny. S tímto zjevným rozdílem se dá pracovat dvěma způsoby:
text/html přes DOM, mohou použít HTML DOM a spolehnout se, že jména atributů a elementů budou vraceny ve velkých písmenech.text/xml, application/xml nebo application/xhtml+xml mohou také použít XML DOM. Elementy a jejich atributy budou vraceny v malých písmenech.Některé XHTML elementy se mohou nebo nemusí objevit v objektovém stromě, neboť jsou v obsahovém modelu volitelné (např. element tbody uvnitř elementu table). Toto nastává, protože v HTML 4 byla u některých elementů povolena minimalizace spočívající ve vynechání počáteční i koncové značky (vlastnost SGML). To není v XML možné. Místo nucení autorů dokumentů vkládat další (nepotřebné) elementy byly tyto v XHTML učiněny volitelnými. Uživatelští agenti se tomu musí přizpůsobit. Pro více informací o tomto tématu viz [DOM2]Jak v SGML tak v XML je znak ampersand ("&") používán k počátku odkazu na entitu (např. ® pro symbol registrované obchodní značky "®"). Naneštěstí mnoho HTML uživatelských agentů ignorovalo nesprávné použití ampersandu v HTML dokumentech - zpracovávaly ampersandy, které nebyly odkazy na entity, jako samostatné znaky. V uživatelských agentech založených na XML nebudou tato nesprávná použití tolerována, a jakýkoliv dokument s nesprávně použitými ampersandy nebude "validní" a následně nebude vyhovovat této specifikaci. K zajištění kompatibility HTML a XML uživatelských agentů je třeba ampersandy, které mají být považovány za samostatné znaky, zapisovat pomocí entity (např. "&"). Jestliže napřiklad atribut href elementu a odkazuje na CGI skript volaný s parametry, musí být zapsán http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user spíše než http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.
Doporučení Cascading Style Sheets level 2 [CSS2] určuje stylové vlastnosti, které jsou použity na strom HTML nebo XML dokumentů. Kvůli rozdílům při zpracování vzniknou v závislosti na použitých selektorech odlišné vizuální nebo akustické výstupy. Následující tipy vám pomohou omezit toto chování u dokumentů, které jsou shodně zpracovávány jako oba typy médií:
Poznámka překladatele:
Pro srovnání ponechávám první větu předchozího odstavce:
In tables, the tbody element will be inferred by the parser of an HTML user agent, but not by the parser of an XML user agent.
Znáte-li lepší překlad, napište na <jiri@hrazdil.info>.
V HTML 4 a XHTML může být element style využit k definici interních stylových pravidel dokumentu. V XML se k definici stylových pravidel používá deklarace xml-stylesheet. Z důvodů zajištění kompatibility s touto konvencí by měly mít elementy style vlastní částečné identifikátory nastavené v atributu id a v deklaraci xml-stylesheet potom odkaz na tento identifikátor. Například:
<?xml-stylesheet href="W3C-REC.css" type="text/css"?>
<?xml-stylesheet href="#internalStyle" type="text/css"?>
<!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="en" lang="en">
<head>
<title>An internal stylesheet example</title>
<style type="text/css" id="internalStyle">
code {
color: green;
font-family: monospace;
font-weight: bold;
}
</style>
</head>
<body>
<p>
This is text that uses our
<code>internal stylesheet</code>.
</p>
</body>
</html>
Některé znaky, které jsou povolené v dokumentech HTML, jsou v XML dokumentech zakázané. Například v HTML je znak "Formfeed" (U+000C) považován za bílý znak, avšak v XHTML je díky definici znaků zakázaný.
Jmenný odkaz entity ' (apostrof, U+0027) byl zaveden v XML 1.0, ale v HTML neexistuje. Proto by autoři měli používat zápis ' místo '.
Tato příloha je informativní.
Tato specifikace byla sestavena za součinnosti členů W3C HTML Working Group.
V době vydání druhé edice to byli:
V době vydání první edice to byli:
Tato příloha je informativní.