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

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       15 085×

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.

Reklama
Reklama

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 Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý