Co přináší XML nového

Zda bude XML skutečnou revolucí ve způsobu práce s informacemi pro každého uživatele osobního počítače, ukáže jen čas. XML na to rozhodně ambice a možnosti má. Podívejme se na to, čím se XML odlišuje od ostatních technologií a formátů, které se dnes používají.

Standardní formát pro výměnu a sdílení informací

Dnešní doba přeje komunikaci. Komunikace není nic jiného, než výměna informací. V dnešním globálním světě není možné pro výměnu dat používat nějaké proprietární formáty, které jsou svázány s konkrétním softwarem nebo hardwarem. Nesluší se posílat informace ve wordovském formátu DOC, protože někdo s unixovým počítačem si je asi nepřečte. Centrále nadnárodní společnosti asi nebudeme výroční zprávu české pobočky posílat ve formátu T602, protože ve své americké verzi kancelářského balíku si ji nikdo nepřečte. Je potřeba používat nějaký jednoduchý otevřený formát, který není úzce svázán s nějakou platformou nebo proprietární technologií.

Takovým formátem je například XML. Otevřený formát je to proto, že jeho specifikace je každému zdarma k dispozici na serveru konsorcia W3C, které se stará i mnoho dalších technologií souvisejících s Webem. Každý tak může bez problémů do svých aplikací implementovat podporu XML. To je velký rozdíl oproti firemním formátům, k nimž není k dispozici žádná dokumentace a navíc se jedná v porovnání s XML o velice složité, často binární, formáty.

Práci s XML usnadňuje i to, že celý formát je založen na obyčejném textu. I když pro většinu lidí zůstane XML kód skryt a budou ho používat pouze aplikace pro vzájemnou komunikaci, není problém kdykoliv otevřít XML dokument v Poznámkovém bloku nebo jiném jednoduchém textovém editoru a pár potřebných úprav provést ručně. Použití textového formátu může někomu připadat jako zbytečné plýtvání místem. Dnes se však mnohem větší důraz klade na srozumitelnost a snadnou práci s daty – to jestli ušetříme pár kilobajtů paměti dnes již nikoho příliš netrápí. Navíc většina protokolů pro síťovou komunikaci (včetně protokolu HTTP používaného na Webu) umožňuje zcela transparentně pro potřeby přenosu data zkomprimovat a u příjemce zase dekomprimovat do původní podoby.

Mezinárodní podpora

XML je asi vůbec první formát, který hned od samého počátku myslel na potřeby i jiných jazyků než je angličtina. Jako znaková sada se používá ISO 10646. Pod tím si asi nepředstavíte nic konkrétního. ISO 10646 je 32bitová znaková sada, která dokáže pojmout všechny dnes používané znaky všech jazyků. (Dokonce je v ní tolik místa, že existují návrhy na zařazení klingonského písma z televizního seriálu StarTrek.)

V XML proto můžeme vytvářet dokumenty, které obsahují texty v mnoha jazycích najednou – můžeme míchat např. češtinu, angličtinu, ruštinu, arabštinu a korejštinu zcela dle libosti. Pokud by dokumenty obsahovaly pouze český text, bylo by ukládání přímo v ISO 10646 zbytečné plýtvání místem. XML dokument proto může být v libovolném kódování (např. windows-1250, iso-8859-2). Kódování je však v každém dokumentu přesně určeno, takže odpadají problémy s konverzí z jednoho kódování do druhého. Každému je hned jasné, v jakém kódování dokument je.

Vysoký informační obsah

Pomocí XML značek vyznačujeme v dokumentu význam jednotlivých částí textu. Říkáme "toto je název výrobku, tohle zase telefonní číslo a tohle je číslo našeho účtu". Dokumenty obsahují mnohem více informací, než kdyby se používalo prezentační značkovaní – tohle je tučným písmem Arial o velikosti 12 bodů zarovnané vlevo.

XML dokumenty jsou informačně bohatší. To lze samozřejmě s výhodou využít v mnoha oblastech. Největší přínos bude samozřejmě pro prohledávání. Dnešní vyhledávací služby Internetu jako AltaVista podporují pouze fulltextové vyhledávání. Zadáme hledaná slova a doufáme, že se nám vrátí dokumenty, které chceme. Pokud bychom mohli určit, že např. hledané slovo nás zajímá ve významu název firmy, bylo by při použití XML a vhodném označkování hledání mnohem přesnější.

Snadná konverze do dalších formátů

V mnoha případech potřebujeme XML dokument zobrazit na nějakém běžném médiu – na obrazovce, na papíře. V tomto případě už samozřejmě chceme přesně ovlivnit, jak se obsah jednotlivých značek zobrazí. XML samo o sobě žádné takové prostředky nenabízí. Existuje však naštěstí hned několik stylových jazyků, které umožňují definovat, jak se mají jednotlivé elementy zobrazit. Souboru pravidel nebo příkazů, které definují jak se dokument převede do jiného formátu se říká styl.

Výhodou je, že jeden styl můžeme aplikovat na mnoho dokumentů stejného typu. Dosáhneme tak jednotného formátování. Zároveň můžeme na jeden dokument aplikovat několik různých stylů. Jedním stylem vygenerujeme postscriptový soubor pro naše DTP studio, druhým HTML kód pro zařazení na naše stránky a třetím třeba jen obsah dokumentu, který pošleme mailem šéfovi.

Stylových jazyků existuje dnes několik. Mezi nejznámější patří asi kaskádové styly (CSS). Ty lze použít pouze pro jednoduché formátování, které dobře poslouží pro zobrazení dokumentu na obrazovce v XML editoru nebo v prohlížeči. Pro náročnější aplikace slouží jazyk XSL (eXtensible Stylesheet Language). Ten umožňuje před samotným zformátováním dokument různě upravovat a transformovat (části dokumentu třeba vypustit nebo naopak automaticky vygenerovat obsah dokumentu). Společně s XML lze použít i velice výkonný, i když pro některé aplikace příliš složitý, jazyk DSSSL (Document Style Semantics and Specification Language), který byl původně vyvinut pro potřeby jazyka SGML.

Automatická kontrola struktury dokumentu

XML nám umožňuje definovat si vlastní sadu značek, které chceme v dokumentu používat. Tuto možnost samozřejmě využít nemusíme – můžeme používat jaké značky chceme. Pokud si však předem pomocí DTD definujeme, jaké značky může dokument obsahovat, máme další život mnohem lehčí. Zcela automaticky můžeme kontrolovat, zda dokument obsahuje pouze povolené značky. Programu, který kontroluje správnost XML dokumentů, se říká parser. To má velký význam i při vývoji aplikací. Pro čtení dat můžeme použít parser, který za nás detekuje většinu chyb v datech – obrovsky nám to ušetří práci. Kdo programuje sám nejlépe ví, že většina kódu stejně ošetřuje různé chybové stavy a chyby ve vstupních datech.

DTD není jediný jazyk, který umožňuje definovat značky použitelné v dokumentech. DTD se hodí pro popis formátů, které reprezentují především textové dokumenty. Neobsahuje však nástroje na kontrolu různých typů dat jako čísla, měnové údaje, údaje o datu a čase. To je přitom velice důležité pro aplikace, které si pomocí XML posílají data spíše databázového charakteru. Pro tyto potřeby existuje několik dalších jazyků pro určení správného "schéma" dokumentu. V současné době se pod názvem XML schémata pracuje na půdě konsorcia W3C na vytvoření jednotného standardu.

Příliš svobody může i škodit. Je sice hezké, že si každý může pojmenovat značky, jak chce, ale to zase přinese problémy při vyhledávání informací. Někdo název firmy označí pomocí značky <název>, někdo pomocí <obchodníNázev>, nebo třeba jako <NázevFirmy>. Jak se s tím pak má vyhledávací stroj vypořádat? Existují proto různé skupiny a sdružení, které vydávají DTD nebo schémata, jež by se měla používat v dané oblasti. Sem patří i iniciativa Microsoftu známá pod názvem BizTalk. Nejde přitom o nic jiného, než se shodnout na pár značkách, které se budou standardně používat pro označování určitých částí dokumentu. Dnes existují rozmanité sady značek počínaje těmi, které uspokojí potřeby e-businessu a konče u možnosti zachycovat informace o složitých chemických strukturách nebo astronomických údajích. Mezi tím si samozřejmě své místo našla např. i technická dokumentace nebo značky pro zápis matematických vzorců.

Velkou výhodou XML je to, že v jednom dokumentu můžeme používat najednou nezávisle na sobě několik druhů značkovaní díky tzv. jmenným prostorům (namespaces). Můžeme tak vytvářet dokumenty, které používají značky definované pro naše specifické účely a pouze části dokumentu důležité pro vyhledávání označkujeme navíc pomocí nějakého standardizovaného DTD nebo schéma.

Hypertext a odkazy

XML samozřejmě umožňuje vytváření odkazů v rámci jednoho dokumentu i mezi dokumenty. Nabízí však mnoho možností nad rámec odkazů v HTML. Můžeme vytvářet i vícesměrné odkazy, které spojují více dokumentů dohromady. Užitečná je i možnost uložení odkazů zcela mimo dokumenty, kterých se týkají. Tímto způsobem půjde vytvářet různé anotace a komentáře k již existujícím stránkám.

Tvorba odkazů je dnes popsána ve třech standardech – XLink, XPointer a XPath.

XPath (XML Path Language) je jazyk, který umožňuje adresovat jednotlivé části dokumentu. Jeho možnosti dále rozšiřuje jazyk XPointer (XML Pointer Language). XPointer se používá k určování jednotlivých částí dokumentu ve stylu: „zajímá mě první odstavec třetí kapitoly“. Není proto potřeba všechny části dokumentu, na které chceme odkazovat, explicitně označovat pomocí návěstí jako v HTML.

XLink (XML Linking Language) je samotný jazyk pro tvorbu odkazů. Jednotlivé dokumenty se samozřejmě určují pomocí jejich URL adresy, za kterou lze uvést ještě XPointer pro přesnější určení části dokumentu.

© Jiří Kosek 2000-2001