XHTML 1.0: Rozšířitelný hypertextový značkovací jazyk

Český překlad

Tato verze:
http://www.zralog.cz/translate/TR/REC-xhtml1-20020801/
Nejnovější verze:
http://www.zralog.cz/translate/TR/REC-xhtml1-20020801/
Předchozí verze:
není
Přeložil:
Jiří Hrazdil <jiri@hrazdil.info>

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.

XHTML™ 1.0 Rozšířitelný hypertextový značkovací jazyk (druhé vydání)

Reformulace HTML 4 v XML 1.0

Doporučení W3C z 26. ledna 2000, revidováno 1. srpna 2002

Tato verze:
http://www.w3.org/TR/2002/REC-xhtml1-20020801
Poslední verze:
http://www.w3.org/TR/xhtml1
Předchozí verze:
http://www.w3.org/TR/2000/REC-xhtml1-20000126
Verze s vyznačením rozdílů:
http://www.w3.org/TR/2002/REC-xhtml1-20020801/xhtml1-diff.html
Autoři:
Viz poděkování.

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.


Přehled

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.

Statut tohoto dokumentu

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.

Stručný obsah

Úplný obsah

1. Co je to XHTML?

Tento 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í.

1.1. Co je to HTML 4?

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.

1.2. Co je to XML?

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.

1.3. Proč potřebujeme XHTML?

Výhody přechodu na XHTML 1.0 jsou popsány výše. Některé z výhod přechodu k XHTML jsou:

2. Definice

Tento oddíl je normativní

2.1. Terminologie

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]:

Moci (May)
Slovo "moci" vyjadřuje volitelnou vlastnost, která není specifikací vyžadována, ale může být nabídnuta. S ohledem na Shodu dokumentu vyjadřuje "moci", že volitelná vlastnost nesmí být použita. Termín "volitelný" má stejnou definici jako "moci".
Muset (Must)
Slovo "muset" vyjadřuje závazný požadavek na implementaci nebo Striktně shodné XHTML dokumenty, v závislosti na kontextu. Termín "shall" má stejnou definici jako "muset".
Volitelný (Optional)
Viz "moci".
Rezervovaný (Reserved)
Hodnota nebo chování není stanoveno, ale nesmí být použito ve Shodných dokumentech ani nesmí být podporováno Shodnými uživatelskými agenty.
Shall
Viz "muset".
Should
With respect to implementations, the word "should" is to be interpreted as an implementation recommendation, but not a requirement. With respect to documents, the word "should" is to be interpreted as recommended programming practice for documents and a requirement for Strictly Conforming XHTML Documents.

Poznámka překladatele:

Definice "should" nebyla přeložena.

Podporovaný (Supported)
Určité vlastnosti této specifikace jsou volitelné. Jestliže je vlastnost podporovaný, platí pro ni to stejné, jako kdyby byla specifikovaná touto specifikací.
Neurčený (Unspecified)
When a value or behavior is unspecified, the specification defines no portability requirements for a facility on an implementation even when faced with a document that uses the facility. A document that requires specific behavior in such an instance, rather than tolerating any behavior when using that facility, is not a Strictly Conforming XHTML Document.

Poznámka překladatele:

Definice "unspecified" nebyla přeložena.

2.2. Obecné pojmy

Atribut
Atribut je parametr elementu definovaný v DTD. Typ a rozsah hodnoty atributů (včetně výchozí hodnoty) jsou určeny v DTD.
DTD
DTD, nebo definice typu dokumentu, je takovou kolekcí deklarací v XML, aby určila strukturu, elementy a atributy, které se mohou použít v dokumentu shodném s DTD.
Dokument
Dokument je proudem dat, která ve spojení s ostatními proudy, na které odkazuje, je strukturovaná - je tvořen daty obsaženými v elementech, které vyhovují struktuře podle DTD. Pro více informací viz Shoda dokumentu.
Element
Element je jednotka struktury dokumentu definovaná v DTD. Obsah elementu je též definován v DTD. Všechna doplnění mohou být uvedena v popisu elementu.
Vybavení (Facilities)
Vybavením jsou elementy, atributy a významy přidružené k těmto elementům a atributům.
Implementace
Viz uživatelský agent.
Parsování (Parsing)
Parsování je činnost, při které je procházen dokument, a informace obsažené v dokumentu jsou dávány do souvislosti s elementy, ve kterých jsou informace uloženy.
Zobrazování (Rendering)
Zobrazování je činnost, při které jsou informace obsažené v dokumentu prezentovány. Tato prezentace je prováděna nejvhodnějším způsobem (např. akusticky, vizuálně, tiskem).
Uživatelský agent (User agent)
Uživatelský agent je systém, který zpracovává XHTML dokumenty podle této specifikace. Pro více informací viz Shodu uživatelských agentů.
Validace
Validace je proces, při kterém jsou dokumenty ověřovány proti příslušným DTD, zajišťující, že struktura, použití elementů a atributů je ve shodě s definicemi v DTD.

Poznámka překladatele:

Validovat své (X)HTML stránky můžete českým XHTML a HTML validátorem.

Správně strukturovaný (Well-formed)
Dokument je správně strukturovaný, jestliže jeho struktura odpovídá pravidlům uvedeným v Oddílu 2.1 doporučení XML 1.0 [XML].

3. Normativní definice XHTML 1.0

Tento oddíl je normativní.

3.1. Shoda dokumentu

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.

3.1.1. Striktně shodné dokumenty

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:

  1. Musí vyhovovat omezením jednoho ze tří DTD (DTD a v Příloze B).

  2. Kořenovým elementem dokumentu musí být html.

  3. 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">
    
  4. 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">
    
  5. 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>

3.1.2. Použití XHTML s ostatními jmennými prostory

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>

3.2. Shoda uživatelských agentů

Shodný uživatelský agent musí splnit všechny následující požadavky:

  1. Kvůli souladu s doporučením XML 1.0 [XML] musí uživatelský agent zkontrolovat XHTML dokument, je-li správně zformátovaný. Jestliže je uživatelský agent validujícím, musí též zkontrolovat dokumenty oproti odkazovaným DTD podle[XML].
  2. Jestliže uživatelský agent podporuje vybavení (facilities) definované v této specifikaci nebo požadované skrz normativní odkazy, musí být tato podpora ve shodě s definicí vybavení.
  3. Jestliže zpracovává uživatelský agent XHTML dokument jako čisté XML, měl by rozlišovat pouze atributy typu ID (např. atribut id u většiny XHTML elementů) jako částečné identifikátory.
  4. Jestliže narazí uživatelský agent na element, který nezná, musí zpracovat jeho obsah.
  5. Jestliže narazí uživatelský agent na atribut, který nezná, musí ignorovat celou specifikaci atributu (atribut i jeho hodnotu).
  6. Jestliže narazí uživatelský agent na hodnotu atributu, kterou nezná, musí použít výchozí hodnotu.
  7. Jestliže narazí na odkaz entity (jiné než definované v tomto doporučení nebo doporučení XML), pro nějž nezpracoval uživatelský agent žádnou deklaraci, měla by být entita zpracována jako posloupnost znaků (začínající ampersandem a končící středníkem), které tvoří zápis entity.
  8. Jestliže při zpracování obsahu narazí uživatelský agent na znaky nebo znakové entity, které rozpozná, ale nemůže je zobrazit, může je nahradit jiným zobrazením se stejným obsahem, nebo musí zobrazit dokument tak, aby bylo zřejmé, že nedošlo k normálnímu zobrazení.
  9. 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].

4. Rozdíly oproti HTML 4

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é.

4.1. Dokumenty musí být správně strukturované

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>

4.2. Názvy elementů a atributů musí být napsány malými písmeny

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.

4.3. Pro neprázdné elementy jsou vyžadovány ukončovací 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.

4.4. Hodnoty atributů musí být v uvozovkách

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>

4.5. Minimalizace atributů

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>

4.6. Prázdné elementy

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>

4.7. Zpracování bílých znaků v hodnotách atributů

Při zpracování atributů uživatelskými agenty postupují tito podle Oddílu 3.3.3 [XML]:

4.8. Elementy Script a Style

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 &lt; a &amp; 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.

4.9. Výjimky ze SGML

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ů.

4.10. Elementy s atributy 'id' a 'name'

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.

4.11. Atributy s předdefinovanými množinami hodnot

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.

4.12. Odkazování na entity hexadecimálními hodnotami

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;).

5. Otázky kompatibility

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.

5.1. Internetové typy médií

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].

A. DTD

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.

A.1. Definice typu dokumentu

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:

A.1.1. XHTML-1.0-Strict

Soubor DTD/xhtml1-strict.dtd je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.

A.1.2. XHTML-1.0-Transitional

Soubor DTD/xhtml1-transitional.dtd je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.

A.1.3. XHTML-1.0-Frameset

Soubor DTD/xhtml1-frameset.dtd je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.

A.2. Sady entit

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 (&euro; nebo &#8364; nebo &#x20AC;) je definován ve speciálních znacích.

A.2.1. Znaky Latin-1

Soubor DTD/xhtml-lat1.ent je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.

A.2.2. Speciální znaky

Soubor DTD/xhtml-special.ent je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupný v samostatném oddílu.

A.2.3. Symboly

Soubor DTD/xhtml-symbol.ent je normativní částí této specifikace. Anotovaný obsah tohoto souboru je dostupná v samostatném oddílu.

B. Zákazy týkající se elementů

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í.

a
nesmí obsahovat jiné elementy a.
pre
nesmí obsahovat elementy img, object, big, small, sub, ani sup.
button
nesmí obsahovat elementy input, select, textarea, label, button, form, fieldset, iframe ani isindex.
label
nesmí obsahovat další element label.
form
nesmí obsahovat další element form.

C. Směrnice kompatibility s HTML

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].

C.1. Instrukce pro zpracování (Processing Instructions) a XML deklarace

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].

C.2. Prázdné elementy

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.

C.3. Minimalizace elementů a obsah prázdných elementů

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 />).

C.4. Vložené stylové předpisy a skripty

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.

C.5. Řádkové zlomy uvnitř hodnot atributů

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ě.

C.6. Isindex

Nepoužívejte více než jeden element isindex v části head. Element isindex je překonaný (deprecated) elementem input.

C.7. Atributy lang a xml:lang

Při určování jazyka elementu používejte jak atribut lang tak xml:lang. Hodnota atributu xml:lang má přednost.

C.8. Částečné identifikátory

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.

C.9. Kódování znaků

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.

C.10. Logické atributy

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.

C.11. Objektový model dokumentu a XHTML

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:

  1. Uživatelští agenti, kteří přistupují k XHTML dokumentům typu 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.
  2. Uživatelští agenti, kteří přistupují k XHTML dokumentům typů 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]

C.12. Použití ampersandů (&) v hodnotách atributů (a jinde)

Jak v SGML tak v XML je znak ampersand ("&") používán k počátku odkazu na entitu (např. &reg; 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ř. "&amp;"). 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&amp;name=user spíše než http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.

C.13. Kaskádové styly (CSS) a XHTML

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í:

  1. Ve stylových předpisech pro XHTML by měla být pro názvy elementů a atributů použita malá písmena.
  2. V tabulkách bude element tbody domýšlen parserem HTML uživatelského agenta, ale ne parserem XML uživatelského agenta. Proto byste měli vždy explicitně přidat element tbody, jestliže je na něj odkazováno CSS selektorem.

    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>.

  3. Uvnitř jmenného prostoru XHTML rozeznávají uživatelští agenti atribut "id" jako atribut typu ID. Proto by mělo být možné požívat ve stylových předpisech zkratku "#" v zápisu selektoru, dokonce i když uživatelský agent nepřečte DTD.
  4. Uvnitř jmenného prostoru XHTML rozeznávají uživatelští agenti atribut "class". Proto by mělo být možné používat ve stylových předpisech zkratku "." v zápisu selektoru.
  5. V CSS jsou definována rozdílná pravidla pro HTML a XML dokumenty. Jestliže je XHTML dokument předán jako HTML, vztahují se na něj pravidla HTML. Jestliže je XHTML dokument předán jako XML, vztahují se na něj pravidla XML.

C.14. Odkazování na elementy stylu v XML

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>

C.15. Bílé znaky v HTML a XML

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ý.

C.16. Jmenný odkaz entity &apos;

Jmenný odkaz entity &apos; (apostrof, U+0027) byl zaveden v XML 1.0, ale v HTML neexistuje. Proto by autoři měli používat zápis &#39; místo &apos;.

D. Poděkování

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:

Steven Pemberton, CWI/W3C (předseda HTML Working Group)
Daniel Austin, Grainger
Jonny Axelsson, Opera Software
Tantek Çelik, Microsoft
Doug Dominiak, Openwave Systems
Herman Elenbaas, Philips Electronics
Beth Epperson, Netscape/AOL
Masayasu Ishikawa, W3C (HTML Activity Lead)
Shin'ichi Matsui, Panasonic
Shane McCarron, Applied Testing and Technology
Ann Navarro, WebGeek, Inc.
Subramanian Peruvemba, Oracle
Rob Relyea, Microsoft
Sebastian Schnitzenbaumer, SAP
Peter Stark, Sony Ericsson

V době vydání první edice to byli:

Steven Pemberton, CWI (předseda HTML Working Group)
Murray Altheim, Sun Microsystems
Daniel Austin, AskJeeves (CNET: The Computer Network through July 1999)
Frank Boumphrey, HTML Writers Guild
John Burger, Mitre
Andrew W. Donoho, IBM
Sam Dooley, IBM
Klaus Hofrichter, GMD
Philipp Hoschka, W3C
Masayasu Ishikawa, W3C
Warner ten Kate, Philips Electronics
Peter King, Phone.com
Paula Klante, JetForm
Shin'ichi Matsui, Panasonic (W3C visiting engineer through September 1999)
Shane McCarron, Applied Testing and Technology (The Open Group through August 1999)
Ann Navarro, HTML Writers Guild
Zach Nies, Quark
Dave Raggett, W3C/HP (HTML Activity Lead)
Patrick Schmitz, Microsoft
Sebastian Schnitzenbaumer, Stack Overflow
Peter Stark, Phone.com
Chris Wilson, Microsoft
Ted Wugofski, Gateway 2000
Dan Zigmond, WebTV Networks

E. Odkazy

Tato příloha je informativní.

[CSS2]
"Specifikace Cascading Style Sheets, level 2 (CSS2)", B. Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 May 1998.
Poslední verze dostupná na http://www.w3.org/TR/REC-CSS2
[DOM]
"Specifikace Object Model (DOM) Level 1", Lauren Wood et al., 1 October 1998.
Poslední verze dostupná na http://www.w3.org/TR/REC-DOM-Level-1
[DOM2]
"Specifikace Document Object Model (DOM) Level 2 Core", A. Le Hors, et al., 13 November 2000.
Poslední verze dostupná na http://www.w3.org/TR/DOM-Level-2-Core
[HTML]
"Specifikace HTML 4.01", D. Raggett, A. Le Hors, I. Jacobs, 24 December 1999.
Poslední verze dostupná na http://www.w3.org/TR/html401
[POSIX.1]
"ISO/IEC 9945-1:1990 Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language]", Institute of Electrical and Electronics Engineers, Inc, 1990.
[RFC2045]
"Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", N. Freed and N. Borenstein, November 1996. Note that this RFC obsoletes RFC1521, RFC1522, and RFC1590.
[RFC2046]
"RFC2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", N. Freed and N. Borenstein, November 1996.
Dostupné v http://www.ietf.org/rfc/rfc2046.txt. Tento dokument zastarává RFC1521, RFC1522, a RFC1590.
[RFC2119]
"RFC2119: Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, March 1997.
Dostupné v http://www.ietf.org/rfc/rfc2119.txt
[RFC2376]
"RFC2376: XML Media Types", E. Whitehead, M. Murata, July 1998.
Tento dokument je zastarán [RFC3023].
Dostupné v http://www.ietf.org/rfc/rfc2376.txt
[RFC2396]
"RFC2396: Uniform Resource Identifiers (URI): Generic Syntax", T. Berners-Lee, R. Fielding, L. Masinter, August 1998.
Tento dokument aktualizuje RFC1738 a RFC1808.
Dostupné v http://www.ietf.org/rfc/rfc2396.txt
[RFC2854]
"RFC2854: The text/html Media Type", D. Conolly, L. Masinter, June 2000.
Dostupné v http://www.ietf.org/rfc/rfc2854.txt
[RFC3023]
"RFC3023: XML Media Types", M. Murata, S. St.Laurent, D. Kohn, January 2001.
Tento dokument zastarává [RFC2376].
Dostupné v http://www.ietf.org/rfc/rfc3023.txt
[RFC3066]
"Tags for the Identification of Languages", H. Alvestrand, January 2001.
Dostupné v http://www.ietf.org/rfc/rfc3066.txt
[RFC3236]
"The 'application/xhtml+xml' Media Type", M. Baker, P. Stark, January 2002.
Dostupné v http://www.ietf.org/rfc/rfc3236.txt
[XHTML+MathML]
"XHTML plus Math 1.1 DTD", "A.2 MathML as a DTD Module", Mathematical Markup Language (MathML) Version 2.0. Dostupné v http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd
[XHTMLMIME]
"XHTML Media Types", Masayasu Ishikawa, 1 August 2002.
Poslední verze dostupná na http://www.w3.org/TR/xhtml-media-types
[XHTMLMOD]
"Modularization of XHTML", M. Altheim et al., 10 April 2001.
Poslední verze dostupná na http://www.w3.org/TR/xhtml-modularization
[XML]
"Extensible Markup Language (XML) 1.0 Specification (Second Edition)", T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, 6 October 2000.
Poslední verze dostupná na http://www.w3.org/TR/REC-xml
[XMLNS]
"Namespaces in XML", T. Bray, D. Hollander, A. Layman, 14 January 1999.
XML namespaces provide a simple method for qualifying names used in XML documents by associating them with namespaces identified by URI.
Poslední verze dostupná na http://www.w3.org/TR/REC-xml-names
[XMLC14N]
"Canonical XML Version 1.0", J. Boyer, 15 March 2001.
This document describes a method for generating a physical representation, the canonical form, of an XML document.
Poslední verze dostupná na http://www.w3.org/TR/xml-c14n

Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0