Před nějakým časem jste si na stránkách našeho týdeníku mohli přečíst krátkou zprávu o XML (eXtensible Markup Language). Dnes si o tomto novém standardu, který připravuje nám již dobře známé konsorcium W3C, povíme něco podrobnějšího a ukážeme si k čemu jej lze již dnes využít.
Než se však pustíme do podrobnějšího pitvání XML, uděláme si trochu jasno v různých *ML, které nás dnes při našich toulkách webem (a nejen jím) potkají. Pravidelným čtenářům rubriky Internet není třeba představovat zkratku HTML (HyperText Markup Language). Jedná se o značkovací jazyk, který se používá při tvorbě webovských stránek. Tento jazyk existuje v několika verzích a dnes nejaktuálnější je verze 3.2 známá rovněž pod kódovým označením Wilbur. Každá verze HTML definuje, jaké značky a kdy lze použít k označení významu jednotlivých částí webovské stránky.
Vývoj samozřejmě neustrnul a pracuje se na další verzi. Ta
prozatím nese kódové jméno Cougar a s největší
pravděpodobností jí bude příslušet číslo 4.0. Článek, který
vás seznámí s novými rysy Cougaru přineseme v některém
z brzkých vydání CW. Nedočkavci mohou své prohlížeče
nasměrovat na adresu
http://www.w3.org/pub/WWW/MarkUp/Cougar
, kde se nalézá
předběžný návrh standardu Cougar prozatím rozčleněný do
několika relativně samostatných dokumentů.
O pár let více než HTML se na světě užívá SGML (Standard Generalized Markup Language). Jeho význam a určení je však zcela jiné než u HTML. Jedná se sice také o značkovací jazyk, ale přívlastek generalized nám říká, že se jedná o 'zevšeobecněný značkový jazyk'. Jde sice o hrozné trojsloví, ale celou věc vystihuje velice dobře. SGML je totiž metajazyk, který umožňuje standardizovaným způsobem definovat další značkovací jazyky. To znamená, že si můžeme definovat jaké značky lze v dokumentech používat, v jakém mohou být vzájemném vztahu atd.
Po tom, co již víme, nás nepřekvapí, že to jaké značky lze
používat v HTML lze zapsat pomocí SGML. Použijeme-li
analogii s programováním, je SGML něco jako programovací
jazyk a HTML pak program zapsaný v tomto jazyce. Popisu
značek a jejich vzájemných možných vztahů se říká DTD
(Document Type Definition). (Podrobnější informace o DTD
jste si mohli přečíst v článku SGML: Standard Generalized
Markup Language v CW 44-45/96 --
http://www.kosek.cz/clanky/cw/sgml.html
)
Konkrétnímu dokumentu zapsanému podle pravidel nějakého DTD (např. webovské stránce zapsané v HTML) pak říkáme instance. Poslední pojem, kterým obtížíme náš mozek, je prolog. Prolog je počáteční část instance a určuje, podle kterého DTD je instance vytvořena. Na slušnějších nových stránkách, po kterých se brouzdáte, by mělo být na začátku uvedeno:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
Není to nic jiného než prolog, který říká, že následující
dokument je instancí DTD HTML 3.2.
Po tomto malém opakování se můžeme zodpovědně postavit k zodpovězení otázky "Co to XML vlastně je?". XML je podmnožinou SGML. Jde o jakousi zjednodušenou verzi, která obsahuje z SGML to nejdůležitější. Můžeme si tedy definovat vlastní značky (tagy) a pak pomocí nich vytvářet dokumenty a zpřístupňovat je ostatním pomocí webu. Ještě před tím než podrobněji rozebereme tyto možnosti, objasníme si to, co vám v tuto chvíli jistě vrtá hlavou. "Nač potřebujeme XML, když tu máme SGML, které zvládne vše, co XML?"
Námitka jistě zcela oprávněná. Pro pochopení přínosu XML si musíme uvědomit, že SGML je normou ISO (číslo 8879 z roku 1996). Nutno podotknout, že normou velice obsáhlou. V praxi to znamená, že se většinou nevyužívají zdaleka všechny možnosti SGML. Programy, které mají umožnit práci s SGML dokumenty, však musí odpovídat normě a proto jsou poměrně složité a jejich vývoj je nákladný a zdlouhavý. Právě tento problém XML brilantně řeší -- obsahuje vše potřebné a při tom je dostatečně jednoduchý, aby šly poměrně snadno psát aplikace pracující nad XML dokumenty.
Navíc díky tomu, že XML je podmnožinou SGML, lze pro práci s XML dokumenty využít všechny stávající SGML aplikace.
Jazyk HTML, který se dnes používá pro tvorbu webovských stránek má však některé rysy, které zabraňují používání efektivnějších prohledávacích metod. V HTML se jednotlivé části textu označují značkami, které textu přiřazují většinou čistě prezentační význam. Text lze označit jako nadpis, buňku tabulky nebo úsek, který bude zobrazen zvýrazněně. Tím, že XML umožňuje definovat vlastní sadu značek, můžeme těmito značkami mnohem výstižněji označit jednotlivé části textu. Text lze tedy označit např. jako název básně, jméno autora, kurz akcie, rodné číslo atd. -- záleží pouze na tom, jaké značky definujeme v DTD. Takto označkovaný a strukturovaný text má mnohem vyšší informační hodnotu než stránka zapsaná v HTML.
V dokumentech založených na XML můžeme snadno vyhledávat odpovědi na dotazy typu: 'Které básně napsal pan X?'. Při použití HTML můžeme klást pouze dotaz typu: 'Které stránky obsahují slovo X?'. Výhody prvního způsobu dotazování v dnešní informacemi přehlcené době netřeba zdůrazňovat.
Samozřejmě, že předchozí výhody půjde používat pouze v případech, kdy prohledávané dokumenty budou vyhovovat stejnému DTD (budou používat stejnou množinu značek). Již dnes existují DTD, které používají určité skupiny uživatelů a v budoucnosti patrně vzniknou ještě další. Své DTD tak budou používat matematici, historici, chemici, elektrotechnici, ...
Jazyk XML byl vytvořen proto, aby uspokojil stále vzrůstající nároky na kvalitu a kvantitu zpracovávání informací.
Dalším výrazným zlepšením XML oproti HTML je bohatší možnost tvorby odkazů. XML umožňuje kromě odkazů, které známe z HTML, vytvářet i obousměrné odkazy, odkazy na více míst či odkaz na celý úsek dokumentu.
XML rovněž již od začátku řeší podporu různých jazyků. Jako standardní znaková sada je používano ISO 10646, což je 32bitové kódování, které obsahuje všechny dnes používané znaky. V XML je i podpora pro text psaný zprava doleva či shora dolů.
Díky tomu, že v XML lze definovat téměř jakkoliv složitou strukturu, je možné vytvořit DTD, která budou používaná pro výměnu dat např. mezi lékaři a zdravotními pojišťovnami, mezi výrobci elektrotechnických součástek atd. XML poslouží jako univerzální na platformě nezávislý formát pro výměnu informací.
Firma Sun má i další vize: společně s XML dokumentem se ze
sítě stáhne i Java aplet, který umožní data zobrazovat
různými způsoby -- např. měnit položku, podle které se bude
nějaký seznam třídit. Podrobnější informace si můžete
přečíst v zajímavém článku XML, Java, and the future of the
Web od Jona Bosaka ze Sun Microsystems (http://sunsite.unc.edu/pub/sun-info/standards/xml/why/xmlapps.htm
).
Dosud jsme hovořili o tom, jak je důležitá struktura informací. Samozřejmě, že v konečné fázi dokument čte člověk. Mělo by tedy být možné specifikovat, jak se obsah určité značky zobrazí na obrazovce nebo na tiskárně. Pro tyto účely se používají styly. Narozdíl od HTML se však nepoužívá CSS (Cascading Style Sheets) ale DSSSL (Document Style Semantics and Specification Language). DSSSL je přibližně rok starý ISO standard s číslem 10179. Pro každou značku použitou v DTD může být pomocí DSSSL specifikováno, jak se má její obsah zobrazit. Kromě běžných parametrů jako typ a velikost písma, mezery před a za, způsob zarovnávání atd. lze používat i sazbu do více sloupců, otáčení textu nebo plovoucí objekty. Pro použití v aplikacích založených na XML se však nepředpokládá používání celého standardu DSSSL, ale pouze nejdůležitější podmnožiny -- tzv. DSSSL-O (DSSSL On-line).
V souvislosti se styly je velice zajímavý program Jade
(James' DSSSL Engine). Tento public domain software umožňuje
konvertovat SGML dokumenty na základě stylu DSSSL do formátů
RTF (Microsoft Word) a TeX (jeden z nejkvalitnějších systémů
pro sazbu). Formátování se samozřejmě řídí specifikací
uvedenou ve stylu a navíc lze automaticky generovat např.
obsah dokumentu. Kromě toho nám Jade poslouží při konverzi
dokumentů s rozdílnými DTD nebo při generování souboru
zachycujícího strukturu SGML dokumentu. Pokud potřebujete
výstup do jiného formátu, stačí dopsat příslušný modul
v C++ -- Jade je totiž distribuován včetně zdrojových textů.
Pro první pokusy však vystačíme s binární verzi pro Win32
(http://www.jclark.com/jade/
).
Nám nezbývá než doufat, že na trh se brzy dostanou
prohlížeče a editory, které budou podporovat XML. Umožní tak
široké nasazení XML všude, kde je to výhodné. Samozřejmě, že
vás se všemi novinkami včas seznámíme a až bude ten pravý
čas, tak pro vás připravíme seriál o tvorbě XML dokumentů.
S předběžnou verzí návrhu standardu XML se můžete seznámit
na adrese
http://www.w3.org/pub/WWW/TR/WD-xml-961114.html
.