XHTML 2.0 a MIME typy pro XHTML
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

XHTML 2.0 a MIME typy pro XHTMLXHTML 2.0 a MIME typy pro XHTML

 

XHTML 2.0 a MIME typy pro XHTML

Google       24. 5. 2006       21 280×

MIME typ u XHTML a XHTML 2.0? Někteří z vás ani neví, že něco takového existuje. A právě těm to zkusím trochu přiblížit.

Co je to MIME typ, to si můžete v kapku zjednodušené míře přečíst v článku Přechod na XHTML – 3. díl – dokončení. Kdyby tomu někdo nerozuměl, popíšu to znova.

MIME typ jsou v doslovném překladu „Mnohoúčelová Rozšíření Elektronické Pošty“. Základ tomu dala situace z dob, kdy se elektronickou poštou šířily pouze texty. Někoho napadlo, že by se mohly posílat i obrázky a zvuky. Norma RFC 1341 tedy umožnila posílat i jiná než textová data. Ovšem v cestě šíření multimediálních dat ještě stojí jedno – klientská stanice nebude vědět, co že jí to vlastně přichází. A právě tady přichází na řadu MIME typ.

Tato informace předchází každým přijímaným datům. V e-mailu říká, že jde o text, pokud zašleme na vzdálený server požadavek na obrázek, přijde informace o tom, že jde o obrázek a v jakém je formátu. Až potom se začne odesílat samotný obrázek.

A proč je zrovna tohle důležité v XHTML? Myšlenka XHTML je totiž taková, že dokument už má blíže k XML než k HTML, a už tedy máme tu čest s aplikací, nikoliv s textem.

Toto však W3C neaplikuje od začátku. Ze všeho nejdříve si musíme tedy říci, jaké druhy XHTML vlastně máme, a do toho začlením i popis XHTML 2.0:

XHTML 1.0
Dnes se používá asi nejčastěji. Rozlišují se tři verze:
  • Strict (striktní)
  • Transitional (přechodové)
  • Frameset (pro práci s rámci)
XHTML 1.1
Není tak rozšířené jako XHTML 1.0 a je ještě o něco přísnější.
XHTML Basic
Jelikož ne všechna zařízení (např. PDA) jsou schopna interpretovat vše, co XHTML nabízí, bylo vytvořeno právě XHTML Basic obsahující pouze ty moduly, u kterých má autor jistotu, že je zobrazí všechna zařízení podporující tento standard. Osobně jsem však ještě neviděl jedinou stránku v tomto napsanou.
XHTML Print
Zatím nevydaný standard, měl by se zaměřit na tiskový výstup.
XHTML 2.0

Dnes je ještě ve stádiu návrhu. Podle W3C nebude zpětně kompatibilní. Přídomek 2.0 si plně zaslouží, novinek je celá řada:

  • Byl úplně vypuštěn tag img, je nahrazen tagem object. Místo zápisu

    <img src="./obrazky/foto1.png" alt="Moje fotka z&nbsp;Egypta" />

    budeme muset použít

    <object data="./obrazky/foto1.png" type="image/png">Moje fotka z&nbsp;Egypta</object>
  • XHTML 2.0 by měl sloužit každý element zároveň jako odkaz, přičemž tag a je stále zachován. V praxi je tedy validní (a funkční) zápis

    <dfn href="http://jakpsatweb.cz/css/">Kaskádové styly</dfn> jsou silným nástrojem nejednoho webmastera.
  • Byly zavedeny nové tagy, kterými by se mělo deklarovat menu. Jsou to nl (od „navigation list“) a name. Menu by potom v XHTML mělo vypadat takto:

    <nl>
      <name>Menu</name>
      <li href="/index.php">Úvod</li> <!-- odkazovat muze uz i polozka v seznamu /-->
      <li href="/navody.php">Návody</li>
      <nl>
        <name>Skripty</name>
        <li href="/skripty/php.php">PHP</li>
        <li href="/skripty/asp.php">ASP</li>
      </nl>
    </nl>

    Je to v podstatě náhrada již dříve vypuštěného tagu menu, místo kterého se měl kvůli sémantice užívat obyčejný seznam (ul).

  • Vypustily se některé nesémantické značky (b, i), některé „polo-sémantické“ značky (big, small) a značka tt. Na jednu stranu je to dobře, protože klesne počet webmasterů, kteří si pletou b a strong, na druhou stranu už není žádná značka pro zeslabení důrazu.

  • Místo značky q se bude používat quote (neplést s blockquote) a značka br byla označena jako překonaná. Nahradí ji značka line. Tento zápis

    <p>
    Tento text je vhodné<br />
    odřádkovat.
    </p>

    vymizí a objeví se něco jako tohle:

    <p>
    <line>Tento text je vhodné</line>
    odřádkovat.
    </p>
  • Sice se ponechávají současné nadpisy o šesti úrovních, byly ale zavedeny tagy h a section, které by je měly simulovat. Stránka se prostě rozdělí do sekcí a úroveň nadpisů bude odvozena z počtu sekcí, v nichž jsou obsaženy:

    <h>Nejvyšší nadpis</h>
    <p>Text, který mu náleží</p>
    <section>
      <h>Nadpis druhé úrovně</h>
      <p>Text</p>
      <h>Další nadpis</p>
      <p>Další text</p>
      <section>
        <h>Nadpis třetí úrovně</h>
        <p>Text</p>
      </section>
    </section>

To byly asi ty nejzajímavější změny, můžete si prohlédnout celý návrh.

Doporučený MIME typ se u jednotlivých verzí liší. V případě HTML je situace jednoduchá, to by mělo být zasíláno jako text/html. Tak to dělají všichni, to je v pořádku. U XHTML už nastává problém.

XHTML 1.0 může být zasíláno jako text/html, ale mělo by být zasíláno jako application/xhtml+xml. XHTML 1.1 by nemělo být zasíláno jako text/html, mělo by se servírovat jako application/xhtml+xml. Proč se to nemůže striktně nařídit, proberu níže.

Přestože XHTML 2.0 zatím nebylo schváleno, všechno naznačuje tomu, že nebude moci být zasíláno jako text/html.

Všude tam, kde se může nebo musí použít application/xhtml+xml, je také dovoleným typem application/xml, a dokonce i text/xml, v praxi se to však téměř nepoužívá, ale možnost to je.

MIME typy pro jednotlivé verze XHTML
MIME typ Jazyk
text/html HTML
XHTML 1.0 při dodržení kompatibility s HTML
application/xhtml+xml XHTML všeho druhu
text/xml XHTML všeho druhu
application/xml XHTML všeho druhu

Ne všechny MIME typy však mají plnou podporu. Tradičně zaostává Internet Explorer a pár dalších podřadných prohlížečů. V tabulce níže popisuji podporu jednotlivých typů nejdůležitějšími prohlížeči (text/html podporují všechny vyjma Exploreru 5.0, který nastavuje směr textu na rtl).

Podpora MIME typů v prohlížečích
Testovaný prohlížeč Testovací platforma application/ xhtml+xml text/xml application/ xml
Chimera 0.6 Mac OS X (10.2.1) rozpoznáno jako XHTML rozpoznáno jako XHTML rozpoznáno jako XHTML
Internet Explorer 7.0 Beta 2, 6.0 Windows XP SP2 nepodporováno rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla
Internet Explorer 5.5 Windows 98SE/2000 nepodporováno rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla
Internet Explorer 5.0 Windows 2000 nepodporováno rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla a směr textu byl chybně nastaven na rtl rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla a směr textu byl chybně nastaven na rtl
Internet Explorer 5.2.x/Mac Mac OS X nepodporováno aplikace si vyžádala moc paměti a/nebo „spadla“ aplikace si vyžádala moc paměti a/nebo „spadla“
Mozilla (všechny druhy a verze) Windows XP rozpoznáno jako XHTML rozpoznáno jako XHTML rozpoznáno jako XHTML
Netscape (jádro Gecko) Windows XP rozpoznáno jako XHTML rozpoznáno jako XHTML rozpoznáno jako XHTML
Netscape 8.0, 8.0.1 (jádro IE) Windows XP rozpoznáno jako XHTML zobrazena prázdná stránka zobrazena prázdná stránka
Netscape 8.0.2 (jádro IE) Windows XP rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla rozpoznáno jako XML, sémantika typická pro XHTML však rozpoznána nebyla
Opera 6.0 a vyšší Windows XP rozpoznáno jako XHTML rozpoznáno jako XHTML rozpoznáno jako XHTML
Opera 5.x Windows XP zobrazen zdrojový kód rozpoznáno jako XHTML, nebyly rozpoznány odkazované styly rozpoznáno jako XHTML, nebyly rozpoznány odkazované styly
Safari 1.2 a vyšší Mac OS X rozpoznáno jako XHTML rozpoznáno jako XHTML rozpoznáno jako XHTML
Safari 1.0 Mac OS X rozpoznáno jako XHTML, text za tabulkami se nezobrazuje rozpoznáno jako XHTML, text za tabulkami se nezobrazuje rozpoznáno jako XHTML, text za tabulkami se nezobrazuje
SeaMonkey 1.0 Windows XP rozpoznáno jako XHTML rozpoznáno jako XHTML rozpoznáno jako XHTML
Používat správný MIME typ je zbytečné, pokud se stránky
nezobrazují nebo pokud se zobrazují špatně.

Co tedy dělat, když chceme, aby se stránky zobrazily všude korektně? Doporuřený postup je používat vhodný MIME typ, pokud prohlížeč (vzdálený server) nepodporuje „vhodný“, naservírujeme mu aspoň ten, který funguje. Docílíme toho například pomocí PHP skriptu:

<?php
  if (isset ($_SERVER["HTTP_ACCEPT"]) AND stristr ($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")):
//kontrola, zda server podporuje to, co chceme
//application/xhtml+xml se samozrejme da nahradit pozadovanym typem
    header ("Content-type: application/xhtml+xml; charset=utf-8");
//nastaveni odesilane HTTP hlavicky
//Tady samozrejme uvedte znakovou sadu, kterou pouzivate vy. Pro UTF-8, kterou pouzivam ja, to vypada takto, upravte si to.
    $mimetyp = "application/xhtml+xml";
//definice hlavicky v META tagu
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?" . ">\n";
//XML prolog, ktery musi byt v kazdem XHTML dokumentu. Timto zapisem zamezime tomu, ze si PHP parser bude myslet, ze ten zapis patri jemu.
  else:
     header ("Content-type: text/html; charset=utf-8");
//odesilanou HTTP hlavicku nastavime na text/html
    $mimetyp = "text/html";
//nadefinujeme hlavicku pro META tag
  endif;
?>

Ovšem pozor, informace o HTTP hlavičkách musí předcházet jakémukoliv dalšímu výstupu, tento skript tedy musíte mít úplně na začátku kódu.

Tímto skriptem zajistíme zasílání HTTP hlaviček, teď už musíme jen nastavit MIME typ v META tagu:

<meta http-equiv="content-type" content="<?php echo $mimetyp; ?>; charset=UTF-8" />
<!-- tady samozrejme zase nastavte svou znakovou sadu /-->

Teď bychom měli mít zařízeno správné (v rámci možností prohlížeče) zobrazení stránek při použití nejvhodnějšího MIME typu. Zdánlivě by neměl být problém, ale až tak jednoduché to není – pokud odešlete application/… a budete mít v syntaxi chybu, dokument nebude zobrazen vůbec! Vypíše se pouze hláška podobná této (tady jsem neukončil nepárový tag):

Chybná syntaxe XHTML dokumentu

Další háček spočívá v tom, že pokud máte nastylovanou značku body, musíte si to změnit na html. Rozdíl je dosti patrný – přikládám obrázky stránek W3C i se stylopisem, v tom žlutém rámečku máte nahoře název elementu:

Rozdíl mezi body a html Rozdíl mezi body a html

Teď bychom měli být schopni vhodně nastavit MIME typ naší XHTML stránky a čelit nástrahám, které přináší. Kdyby s tím měl přece jenom někdo problém, klidně mu poradím, pokud budu moci.    

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Martin ŽákAutor je korektorem e-zinu, dělá v (X)HTML, CSS, PHP a X(S)LT a zajímá se o HW.
Web    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý