V poslednφ dob∞ se Φasto hovo°φ o formßtu XHTML, kter² slou₧φ k vyjßd°enφ HTML-dokument∙ v XML. Poj∩me se tedy blφ₧e podφvat, jakΘ v²hody formßt XHTML p°inßÜφ.
Co to je HTML?
Formßt nazvan² HTML (Hyper-Text Markup Language) byl navr₧en pro v²m∞nu a prezentaci dokument∙ v rßmci sφt∞. To znamenß, ₧e dokumenty zapsanΘ v HTML lze Φφst a zobrazovat pomocφ standardnφch sφ¥ov²ch prohlφ₧eΦ∙, kterΘ jsou schopny tento formßt akceptovat a zobrazovat takto zapsanΘ dokumenty do znaΦnΘ mφry obdobn∞, bez ohledu na typ a verzi prohlφ₧eΦe.
Formßt HTML se inspiroval starÜφm a obecn∞jÜφm standardem SGML (Standard Generalized Markup Language û ISO 8879). Dokumenty v HTML HTML HjjjjkkkHT jsou sprßvn∞ vytvo°enΘ dokumenty dle SGML û HTML je rovn∞₧ jazyk pou₧φvajφcφ znaΦky (markups). Formßt HTML ovÜem p°ekonal p∙vodnφ oΦekßvßnφ a doznal znaΦnΘho rozÜφ°enφ. V souvislosti s jeho oblibou se vyvφjely dalÜφ verze; v souΦasnosti se pou₧φvß verze 4.01, kterß oproti p∙vodnφmu formßtu obsahuje °adu novinek. P°esto je stßle orientovßna na prezentaci dokument∙ û sada znaΦek HTML je pevnß a slou₧φ k vyjßd°enφ prezentaΦnφ podoby dokumentu.
Co to je XML?
Formßt XML (eXtensible Markup Language) je definice vytvo°enß pracovnφ skupinou W3C (World Wide Web Consortium) jako formßt pro p°enos obecn²ch dokument∙. Princip XML je zalo₧en na jednoduchΘ myÜlence û p°enßÜet spolu s dokumentem i popis jeho struktury (spolu s daty i metadata).
P°i nßvrhu XML vyu₧ili auto°i rovn∞₧ podmno₧inu standardu SGML. Dokumenty v XML jsou tedy automaticky i dokumenty SGML (XML je aplikace SGML). SGML je ale slo₧it∞jÜφ a komplikovan∞jÜφ, co₧ je pravd∞podobn∞ p°φΦina, proΦ zatφm nedoÜlo k jeho ÜirÜφmu u₧itφ.
Na rozdφl od HTML je XML orientovßno nikoliv na prezentaΦnφ strßnku dokumentu, ale na jeho strukturu. Zp∙sobem prezentace se XML nezab²vß û prezentaci ponechßvß XML na prohlφ₧eΦi, p°φpadn∞ jsou popsßny transformace XML do prezentaΦnφch formßt∙ (vΦetn∞ HTML). Konsorcium W3C navrhlo rovn∞₧ standard XSL (eXtensible Stylesheet Language), jako prost°edek pro popis transformace XML do prezentaΦnφ podoby.
Rozdφl mezi XML a HTML
Rozdφl mezi HTML a XML lze p°iblφ₧it Φtenß°i na p°φkladu tzv. "styl∙" u textovΘho procesoru. Textov² procesor umo₧≥uje psßt text r∙zn²m pφsmem. M∙₧eme tedy nap°. nadpisy kapitol psßt v∞tÜφm pφsmem a tuΦn∞ û ka₧d² nadpis kapitoly musφme takto systematicky oznaΦit. To je zp∙sob odpovφdajφcφ HTML û vyznaΦφme, jak by m∞l dokument vypadat.
Jinou mo₧nostφ je oznaΦit vÜechny nadpisy (stejnΘ ·rovn∞) jednφm stylem. Zm∞nou stylu pak lehce zm∞nφme prezentaci vÜech nadpis∙. To je zp∙sob odpovφdajφcφ XML û vyznaΦφme, co je nadpis. Zp∙sob zobrazenφ nenφ tak podstatn², rozhodne jej prohlφ₧eΦ. Uva₧me jako p°φklad tento Φlßnek zapsan² v HTML.
<HTML>
<HEAD>
<TITLE> HTML v XML = XHTML </TITLE>
</HEAD>
<BODY>
<H1> HTML v XML = XHTML </H1>
<H3> Karel Richta </H3>
<H2> Co to je HTML? </H2>
<P> Formßt nazvan² <B>HTML</B> à </P>
<P> Formßt HTML se inspiroval à </P>
<H2> Co to je XML? </H2>
<P> Formßt <B>XML</B> à </P>
<P> P°i nßvrhu XML vyu₧ili à </P>
à
<H2>Literatura</H2>
<OL>
<LI></LI>
<LI></LI>
</OL>
</BODY>
</HTML>
Je zde jasn∞ vid∞t orientace HTML na prezentaci. TotΘ₧, zapsßno v XML, mnohem lΘpe vystihuje podstatu struktury danΘho dokumentu û XML dovoluje pou₧φt specißlnφ znaΦky pro vyznaΦenφ struktury tohoto typu dokumentu.
<clanek>
<nazev> HTML v XML = XHTML </nazev>
<autor> Karel Richta </autor>
<sekce>
<nazev> Co to je HTML? </nazev>
<odstavec> Formßt nazvan² <B>HTML</B> à </odstavec>
<odstavec> Formßt HTML se inspiroval à </odstavec>
</sekce>
<sekce>
<nazev> Co to je XML? </nazev>
<odstavec> Formßt <B>XML</B> à </odstavec>
<odstavec> P°i nßvrhu XML vyu₧ili à </odstavec>
</sekce>
à
<literatura>
<citace></citace>
<citace></citace>
</literatura>
</clanek>
V²Üe uveden² dokument je sprßvn∞ vytvo°en dle pravidel XML û je sprßvn∞ uzßvorkovßn (well-formed). Na rozdφl od HTML vÜak obsahuje nestandardnφ znaΦky, vyjad°ujφcφ strukturu p°esn∞ tohoto typu dokumentu. V XML m∙₧eme navφc strukturu dokumentu p°edepsat tzv. definicφ typu dokumentu û DTD (Document Type Definition). Pokud chceme strukturu dokumentu v XML kontrolovat, je definice struktury dokumentu (v naÜem p°φkladu dokumentu typu "clanek") dokonce nutnß.
Strukturu Φlßnku lze p°edepsat nßsledujφcφ definicφ DTD (specißlnφ gramatikou pro Φlßnky). Tato gramatika stanovφ, ₧e dokument typu "clanek" obsahuje prßv∞ jeden element "nazev", neprßzdnou posloupnost element∙ typu "autor" a "sekce", jeden element "literatura" a voliteln∞ i element "priloha".
Definice typu dokumentu umo₧≥uje libovolnΘmu prohlφ₧eΦi, Φi jinΘ aplikaci, strukturu dokumentu (v naÜem p°φpad∞ Φlßnku) kontrolovat. Navφc je pro XML definovßn standardnφ nßstroj zvan² XML-procesor, kter² umφ Φφst libovolnΘ XML-dokumenty a p°edßvat aplikacφm jednotlivΘ elementy. Je-li validujφcφ, umφ dokonce p°φmo kontrolovat sprßvnost (validitu) dokumentu podle stanovenΘho DTD.
Co to je XHTML?
HTML mß pevnou sadu znaΦek, kterou vÜak bylo t°eba v ka₧dΘ verzi dopl≥ovat. XML mß u₧ivatelsky definovanou, a tedy libovolnou sadu znaΦek. P°idßvat novΘ znaΦky nenφ problΘm. Strukturu dokument∙ lze p°edepsat a kontrolovat. Existujφ standardnφ nßstroje pro zpracovßnφ XML-dokument∙.
Podle odhadu konsorcia W3C se p°edpoklßdß, ₧e ji₧ v roce 2002 bude cca 75 % dokument∙ na internetu v XML. Aby byly jednoduÜe pou₧itelnΘ i dokumenty v HTML, navrhlo konsorcium W3C formßt XHTML, kter² slou₧φ pro vyjßd°enφ HTML-dokument∙ v XML. Smyslem je, aby bylo mo₧no HTML-dokumenty zpracovßvat stejn∞ jako XML-dokumenty a aby bylo mo₧no je jednoduÜe dopl≥ovat o novΘ konstrukty.
XHTML je sada dokument∙ (aktußlnφch i budoucφch), kterΘ popisujφ HTML 4 jako aplikaci v XML. Pru₧nost XML umo₧≥uje snadnΘ rozÜi°ovßnφ mo₧nostφ. Druhou v²hodou je interoperabilita dokument∙ zapsan²ch v XML. Dokumenty v XHTML jsou v₧dy XML-dokumenty a lze je zpracovßvat nßstroji XML. XHTML 1.0 je prvnφ specifikace formßtu XHTML (souΦasnß verze). Jednß se o reformulaci t°φ typ∙ dokument∙ dle HTML 4 na XML-dokumenty (aplikace XML 1.0).
Striktn∞ konformnφ dokument v XHTML 1.0 je sprßvn∞ uzßvorkovan² (well-formed) dokument v XML 1.0, kter² je validnφ proti jednΘ ze t°φ definic DTD (Strict, Transitional, Frameset). Navφc musφ spl≥ovat nßsledujφcφ podmφnky:
ko°enem XML stromu musφ b²t element <html>;
atribut xmlns (XML Namespace) tohoto elementu musφ mφt hodnotu: http://www.w3c.org/1999/xhtml;
p°ed elementem <html> musφ b²t v dokumentu stanoveno DTD odkazem na jeden ze t°φ formßt∙ HTML 4.
NejjednoduÜÜφ XHTML-dokument tedy vypadß nßsledovn∞.
V p°φkladu jsou vid∞t n∞kterΘ rozdφly, kterΘ nutn∞ musφ mezi HTML 4 a XHTML 1.0 existovat. Jeden d∙le₧it² rozdφl spoΦφvß v tom, ₧e XML rozliÜuje malß a velkß pφsmena (je case-sensitive). VÜechny znaΦky XHTML jsou proto povinn∞ mal²mi pφsmeny.
DalÜφ rozdφly vypl²vajφ z toho, ₧e XML vy₧aduje, aby dokument byl sprßvn∞ uzßvorkovßn û v HTML se Φasto p°ipouÜtφ zkratky (nap°. konstrukce m∙₧e b²t bez koncovΘ zßvorky, kterß se automaticky doplnφ). Elementy se nesmφ p°ekr²vat, co₧ °ada prohlφ₧eΦ∙ HTML tolerovala. Navφc musφ b²t popsßny vÜechny hodnoty atribut∙ (nelze je zkracovat) a je nutno je v₧dy uvßd∞t v uvozovkßch (i kdy₧ se jednß o Φφsla).
Nakonec jeÜt∞ jeden tip û validaci sprßvnosti dokumentu v XHTML si m∙₧ete nechat ov∞°it na adrese uvedenΘ v nßsledujφcφm dokumentu.
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Minimal document</title>
</head>
<body>
<p>
<a href="http://validator.w3.org/check/referer">
validate</a>
</p>
</body>
</html>
Literatura
Bray, T. û Paoli, J. û Sperberg-McQueen, C. M. (eds.): Extensible Markup Language (XML) 1.0. W3C Recommendation 10-February-1998. World Wide Web Consortium, 1998, URL: www.w3c.org/TR/REC-xml
Clark, J. û Deach, S. (eds.): Extensible Stylesheet Language (XSL) 1.0. W3C Working Draft 16-December-1998. World Wide Web Consortium, 1998, URL: www.w3c.org/TR/WD-xsl
Clark, J. (ed.): XSL Transformations (XSLT) 1.0. W3C Proposed Recommendation 8-October-1999. World Wide Web Consortium, 1999, URL: www.w3.org/TR/xslt
Raggett, D. û Hors, A. L., Jacobs, I. (eds.): HTML 4.0 Specification. W3C Recommendation 24-April-1998. World Wide Web Consortium, 1998, URL: www.w3c.org/TR/REC-html40
Richta, K.: ProΦ XML? Chip, vol. 2, 2000, str. 98 û 99