15.4. Struktura XHTML dokumentu

Struktura XHTML dokumentu je opět podobná struktuře libovolného jiného XML dokumentu. S našimi znalostmi z předchozích kapitol by pro nás neměla být nijak překvapivá.

ikona
<?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="cs" lang="cs">
<head>
  <title>Ukázková stránka</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" media="screen" href="style.css" />
</head>

<body>
 <h1>Toto je ukázková stránka v XHTML</h1>
 <p>Nějaký text s <a href="http://www.test.com">odkazem</a>.</p>
</body>
</html>

První řádek - XML prolog s sebou však bohužel přináší jeden velmi diskutovaný problém, který vede k otázce „Mám opravdu používat XHTML?“.

Tento problém souvisí s prohlížečem Microsoft Internet Explorer a jeho špatným XML parserem. Díky tomu nelze v tomto prohlížeči použít standardní MIME typ pro XML (text/xml) respektive XHTML (application/xhtml+xml), protože XML parser tohoto prohlížeče si s dokumentem neporadí a zkolabuje.

Musíme XHTML dokument poslat s MIME typem pro HTML (text/html) ale to přináší zase jiné problémy. Pokud totiž v dokumentu uvedeme XML prolog, která tam má být povinně pokud není dokument kódován v UTF-8 či UTF-16, MSIE se přepne do historického režimu parsování HTML. Při tomto způsobu parsování zpracuje dokument nestandardně a chybně. Pokud XML prolog chybí, MSIE zpracuje dokument korektně a striktně.

Řešení jsou tedy v zásadě tři

Nejvhodnějším řešením je zřejmě porušit normu XHTML a používat tento moderní jazyk i za cenu, že dokumenty vytvoříme s úmyslnou chybou. I s touto chybou totiž stránka funguje správně. Hlavně ale nezavrhneme novou moderní technologii jen díky tomu, že ji jeden prohlížeč (ač majoritní) nezpracovává korektně.

Pro bližší prozkoumání tohoto problému a utvoření vlastního názoru doporučujeme prostudovat články [WWW-02] a [WWW-03], které byly publikovány na serveru http://www.interval.cz.