XML pro web aneb od teorie k praxi, 1.díl

Magická zkratka XML provází vývoj webových technologií již několik let. Přes tuto skutečnost si dnes stále mnoho lidí neví rady, jak a k čemu lze XML a přidružené standardy prakticky použít. Cílem seriálu, který právě začíná, je vyplnit tuto mezeru a představit XML komplexněji - od základů až po praktické aplikace při tvorbě webu.

Co vás tedy čeká?

První díly seriálu budou věnovány seznámení s jazykem XML, jeho syntaxí a pravidly použití. Poté se zaměříme na možnosti, které nám dává jazyk XML při prezentaci dokumentů v současných prohlížečích (Microsoft Internet Explorer, Mozilla, Opera). Téma se tedy bude točit kolem často diskutované otázky, do jaké míry může XML přímo nahradit jazyk HTML. Podíváme se na XML ve spojení s CSS, použití jmenných prostorů (namespace) a proprietální technologii "datových ostrůvků" (data islands). Padne také zmínka o transformaci XML do HTML pomocí XSL/XSLT. Další díly budou věnovány XML v klientském Javascriptu. Nakonec se budeme věnovat podpoře XML ve skriptovacím jazyce PHP a tímto výletem do server-side problematiky náš seriál zakončíme.

Jak vidíte, tematika seriálu bude poměrně pestrá a tak je pravděpodobné, že ne vše z nabízeného "mixu" bude pro každého čtenáře stejně zajímavé, na druhou stranu se snad najde něco pro každého. V každém případě základem pro toto téma je znalost jazyka HTML. V další části budou mít výhodou ti, co něco vědí o CSS. Použití XML v Javascriptu vyžaduje (kromě znalosti Javascriptu...) povědomí o rozhraní W3C DOM (všechny, kdo chtějí vědět více o DOM, bych rád upozornil na seriál o W3C DOM a jeho implementaci v Javascriptu). W3C DOM se vám bude hodit i v poslední části, kde si přijdou na své "Péhápéčkaři".

Nyní se tedy pojďme věnovat tématu. Úvodní lekce o jazyku XML bude spíše seznamovací a tedy vhodná pro začátečníky.

Co je XML a proč vznikl?

Značkovací jazyk XML (eXtensible Markup Language, tj. "rozšiřitelný značkovací jazyk") vznikl ze staršího a obecnějšího jazyka SGML (Standard Generalized Markup Language). Možná víte, že aplikací jazyka SGML je také HTML (Hyper Text Markup Language). Jazyk XML je vyvíjen konsorciem W3C od roku 1996. Motivace k vytvoření XML byla vcelku jasná - SGML, používané hlavně pro tvorbu rozsáhlých dokumentací, je dosti komplexní standard a jeho použití není příliš jednoduché; HTML, které se díky své relativní jednoduchosti stalo dominantním nástrojem pro web, je zase příliš specifické a svázané s potřebami interpretace v prohlížečích.

Něco o tom, proč XML vzniklo, vypovídají cíle, které byly stanoveny při vývoji jazyka XML:

  1. XML má být přímo použitelné na internetu.
  2. XML má podporovat širokou škálu aplikací.
  3. XML má být kompatibilní se SGML.
  4. Vytvoření programu, který zpracovává XML, musí být jednoduché.
  5. Počet volitelných vlastností v jazyce XML má být omezen na minimum, v ideálním případě žádné.
  6. XML dokumenty by měly být čitelné člověkem.
  7. Norma XML by měla být připravena rychle.
  8. Norma XML by měla být přesná a stručná.
  9. Vytváření XML dokumentů by mělo být jednoduché.
  10. Hutnost XML značkování není prioritou.

Vše bylo tedy směřováno k tomu, aby se XML stalo jednoduše použitelným nástrojem, který díky své univerzálnosti dodá webu jednotný základ, který je předpokladem redukce chaosu, vzniklého živelným vývojem webu. Recept použitý při vývoji XML tedy vypadal asi takto: vezmeme to nejlepší ze SGML, abychom zachovali obecnost a neomezovali škálu možných aplikací, přidáme syntaxi podobnou HTML, avšak jednodušší a striktní, aby byl pořádek a interpretery s tím měly méně práce, zamícháme, povaříme na mírném ohni a servírujeme na web :-). Kdo si však myslí, že výsledná hmota je určena k bezprostřednímu požití, je trochu na omylu - XML je mnohem více něco jako "korpus bez chuti", který se dnes používá jako základ pro upečení leckterého šťavnatého standardu či aplikace XML (jmenujme např. XLink, XPointer, XPath, XSL/XSLT, XML schemas, SVG...v neposlední řadě XHTML a WML), než něco, co už nepotřebuje žádné dochucení...

Opusťme však gurmánská přirovnání. Nyní by bylo záhodno stručnou a jasnou formou popsat základní vlastnosti jazyka XML:

XML je určeno ke strukturování dat

XML není programovací jazyk, nýbrž jazyk značkovací. XML je vlastně sada pravidel pro vytvoření textového formátu, který umožnuje uchovávat strukturovaná data (typickým příkladem jsou tabulky, adresáře, konfigurační soubory, atd.). Výhodou XML je snadné zpracování počítačem - čtení, vytváření či ověření správné struktury. Jazyk XML je rozšiřitelný a platformě nezávislý. Díky podpoře Unicode je připraven pro použití v různých jazycích, není závislý na angličtině.

XML vypadá podobně jako HTML

Struktura jazyka (syntaxe) XML je podobná jazyku HTML. I v XML se setkáme s tagy a atributy. Rozdíl je v tom, že v HTML je definován i význam tagů a atributů. V XML jsou tagy a atributy použity pro strukturaci dat, intepretace je zcela ponechána na aplikaci, která daný XML dokument zpracovává. Takže element <p>, který v HTML uvozuje odstavec, se může vyskytovat v jakémkoliv XML dokumentu, nicméně jeho význam může být velmi různorodý v závislosti na kontextu (může být například určen pro vyznačení příjmení...). Další zásadní rozdíl mezi HTML a XML jsou přísnější syntaktická pravidla v jazyce XML - např. musí být všechny, i prázdné tagy ukončeny a všechny atributy uvedeny v uvozovkách. Při jakémkoliv porušení syntaktických pravidel (tj. pokud dokument není well-formed), musí aplikace skončit zpracování XML dokumentu a oznámit chybu.

XML je textový formát

Programy, které zpracovávají strukturovaná data, nezřídka používají pro uložení dat binární formáty. Výhodou textového formátu je to, že v případě nutnosti umožňuje člověku přečíst data i bez použití aplikace, která tato data zpracovává, v libovolném textovém editoru. Výhodou textového formátu je i snadnější odstraňování chyb při vývoji aplikací. Stejně jako HTML není XML určeno pro přímé čtení lidmi, ale v případě nutnosti to umožňuje.

Důsledkem skutečnosti, že XML je konstruováno jako textový formát (s výhodami uvedenými výše), je větší velikost XML souborů oproti souborům v binárních formátech. Může se to jevit jako nevýhoda - ovšem při bližším pohledu se ukazuje, že tento nedostatek je řešitelný. Existují totiž kompresní algoritmy, které dokáží textová data spakovat do souborů, jejichž velikost je v podstatě srovnatelná s nativními binárními formáty. Protokol HTTP 1.1 umožňuje při transportu textových dat použít gzip kompresi, která se dnes také poměrně běžně používá.

XML je celá rodina technologií

Jak již bylo řečeno, k XML se váže skupina dalších modulů postavených na tomto jazyku. Každý z těchto modulů plní nějakou důležitou či často požadovanou úlohu. Standardy XLink a XPointer jsou určeny k obsluze odkazů (hyperlinků). Stylový jazyk XSL řeší prezentační zobrazení XML dokumentů - transformační část XSL zvaná XSLT se používá pro transformaci XML na jiný XML dokument, HTML dokument, nebo text. Skupina standardů DOM byla vyvinuta za účelem přístupu k objektové reprezentaci XML dokumentu v programovacích jazycích. XML schema umožňuje definovat strukturu vlastního formátu založeného na XML (podobně jako starší DTD, přejaté z jazyka SGML). SVG je formát pro tvorbu vektorové grafiky. Existují samozřejmě i další standardy založené na XML.

XML změní HTML na XHTML

Asi nejdůležitějším aplikovaným formátem, založeným na XML, je XHTML (eXtensible HyperText Markup Language). V první fázi (XHTML 1.0) se jednalo v podstatě o reformulaci jazyka HTML, který je odvozen od SGML, do syntaxe slučitelné s XML. Další vývoj XHTML jde cestou universalizace a vytváření specifičtějších modulů, které umožní interpretovat XHTML široké škále různorodých klientských aplikací.

XML je modulární

V možnostech jazyka XML je vytváření vlastních libovolných formátů pro dokumenty. To je možné pomocí XML schémat, nebo DTD. Mechanizmem, který řeší možné konflikty při vzájemném "soužití" těchto formátů, jsou tzv. jmenné prostory (namespaces).

XML je základem RDF a sémantického webu

RDF (Resource Description Framework) je formát pro popis metadat a zdrojů na internetu. Význam RDF je v určení významu dat obsažených v dokumentu. Sémantický web je označení pro novou dimenzi webu, který bude lidem poskytovat relevantnější informace díky tomu, že budou existovat standardní mechanismy, jak určit význam většiny dat na webu. Všeobecný formát pro zaznamenání a výměnu těchto sémantických informací má být právě RDF, postavené nad XML.

XML nepodléhá žádné licenci, je zadarmo a je platformě nezávislé

Co dodat - většinou to bereme jako samozřejmost, ale podívejme se např. na stále velmi rozšířený grafický formát GIF, jehož použití je vázáno licenčními poplatky. Tam se ukazuje důležitost otevřených formátů pro web.

Tolik tedy úvodem o XML. Možná, že tento úvodní díl ve vás více otázek vyvolal, než jich zodpověděl. Doufám, že tyto otázky budou uspokojivě zodpovězeny v průběhu dalších dílů.

Diskuze (6) Další článek: Unikátní počítačová skříň od Morexu

Témata článku: , , , , , , , , , , , , , , , ,