S rychlým vývojem webových technologií se pořád častěji opakuje potřeba správného ukládání dat vzhledem možnosti jejich smysluplné výměny a vyhledávání. Dosud nejrozšířenější formát WWW prostředí - HTML (HyperText Markup Language) - má kromě řady výhod i množství nedostatků, z nichž některé jsou nepřekonatelnou překážkou právě pro potřeby kvalitního vyhledávání a výměnu informací. V této části seriálu o XML si stručně zmapujeme stávající situaci v oblasti technologií pro prostředí Internetu a vrátíme se i trochu zpátky v čase, abychom pochopili kontinuitu vývoje.
Historie značkovacích jazyků spadá do šedesátých let, kdy IBM řešila problém ukládání velkého množství strukturovaných dokumentů. Bylo potřeba vymyslet formát s dlouhou životností a potřebnou nezávislostí na programovém prostředí. Vzniklý formát se osvědčil a dále vyvíjel, až se v roce 1986 stal standardem. Řeč je samozřejmě o SGML (Standard Generalized Markup Language)1 - standardním jazyku určeném k formálnímu popisu struktury dokumentů. SGML je zcela otevřeným standardem nezávislým na platformách a aplikacích. Nenabízí přesně určenou sadu tagů, ale prostředky na vytváření tagů vlastních. SGML je vlastně metajazyk, který umožňuje definování dalších značkovacích jazyků. V tzv. DTD definici typu dokumentu (Document Type Definition) jsou určeny elementy - značky, které je možné v dokumentu použít, a vztahy mezi nimi. SGML se vyznačuje velkou flexibilitou, která je ale zároveň jeho největší slabostí. Psaní parserů - programů, které umožňují rozpoznávat obsah dokumentu označkovaného v souladu s určitým DTD - není vůbec jednoduché. SGML nabízí tolik možností, že nástroje, které je dokáží všechny využívat, jsou příliš komplikované. To je také příčinou, proč SGML nepodporují ani dva v současnosti nejrozšířenější WWW prohlížeče Netscape Navigator a Internet Explorer. Možností, jak dostat SGML dokumenty na současný web, je jejich konverze do HTML. Při této transformaci ale dochází ke ztrátě významných informací (zejména o struktuře dokumentu), a tím vlastně ke znehodnocení dat.
První masově rozšířenou aplikací SGML se stal jazyk HTML. Ze začátku se jednalo o malou množinu tagů, které umožňovaly vytváření hypertextových dokumentů. Pak ale výrobci WWW prohlížečů repertoár HTML nekoordinovaně obohacovali a začaly vznikat problémy s kompatibilitou. Konsorcium W3C se rozhodlo situaci vzít do svých rukou a stalo se autoritou pro vývoj a údržbu DTD jazyka HTML (i webu obecně). V současnosti je poslední verzí HTML verze 4.01 uvolněná v prosinci 1999. HTML je velice oblíbeným jazykem pro svou jednoduchost a snadnost použití. Je nutno říci, že je dostačující pro vytváření jednoduchých dokumentů. Zásadním rozdílem proti SGML a také nedostatkem tohoto jazyka je však omezená sada tagů, které jsou navíc určeny v první řadě pro specifikaci zobrazování dokumentů na webu, nikoliv pro zápis struktury. Tímto je popřena jedna z hlavních zásad SGML - oddělení informací od jejich formátování. Následkem je omezené opakované využití informací v případě potřeby publikování stejného dokumentu na webu a v tištěné podobě, nebo omezení výměny HTML dokumentů pro nemožnost vyznačení sémantiky uvnitř dokumentu. Vyhledávání na webu je další kapitolou, která ilustruje současný nežádoucí stav. Jedním z pozitiv webového prostředí je možnost fulltextového vyhledávání pomocí klíčových slov. Narůstající množství informací na webu má však za následek, že objem dat, která se vracejí jako výsledek dotazu, je neúměrný. Situaci neřeší ani META tag pro uložení vnořených metadat v hlavičce HTML dokumentu už z toho důvodu, že nemůže dostatečně popsat podstatu a všechny atributy dokumentu.
Potřeba nové technologie, která by spojila kvalitu SGML s alespoň částečnou jednoduchostí charakteristickou pro HTML, je namístě. Požadavky je možné shrnout do následujících bodů:
V únoru 1998 spatřila světlo světa první verze jazyka XML (Extensible Markup Language). Co je XML? Podmnožina SGML vytvořená za účelem ukládání a výměny strukturovaných dokumentů v prostředí Internetu. XML je univerzální a otevřený formát umožňující kontextové vyhledávání a opakované využití informací.
XML pouze specifikuje, co se nachází v dokumentu. Oproti HTML neříká nic o tom, jak má daný dokument vypadat. Informace o formátování pro tisk, pro zobrazení na Webu nebo pro jakékoliv jiné zobrazení se nacházejí v stylovém jazyku - tzv. style sheet. Jinými slovy řečeno - z jedné předlohy lze vygenerovat mnoho cílových verzí dokumentu, a to bez toho, že bychom do dokumentu samotného vůbec zasahovali. Vše se odehrává na úrovni stylů. Další výhodou je, že si autoři mohou definovat vlastní tagy, které dokáží přesně označit význam prezentovaných informací.
Rozdíl mezi XML a SGML spočívá například v tom, že pro zpracování SGML dokumentu musí mít aplikace k dispozici DTD i data, ale XML pro zpracování nemusí DTD nutně potřebovat. XML implicitně obsahuje prostředky, které naznačují strukturu dat. Tím, že DTD není v průběhu zpracování požadováno a nemusí se přenášet po síti, zmenšuje se velikost zpracovávajících aplikací a šetří se propustnost sítě. Pro jistý druh informací může být práce bez DTD výhodou, ale pokud chceme využívat všechny výhody, které tradičně poskytuje SGML, budeme nadále pracovat s DTD.
Oblasti potenciálního využití XML jsou velice široké. Právě uvedená možnost různých podob výstupů otevírá možnosti ve sféře klasického i elektronického publikování. Očekává se, že významný posun může nastat i v oblasti elektronického obchodování při výměně informací mezi zákazníkem, virtuálním obchodním domem a bankou. Knihovnický a informační svět zajímá také přenos a zpracování metadat jako součásti jejich zpracovatelské činnosti.
Syntaxe XML je velice podobná SGML, a tedy i HTML. Prvním požadavkem je, aby byl celý XML dokument uzavřen v jednom kořenovém elementu mezi počátečním a ukončovacím tagem (v HTML to je vždy <html></html>). Například:
<dokument> tělo dokumentu </dokument>
Tagy musí být párové - pro počáteční tag musí vždy existovat také ukončovací tag. Tagy (elementy) tvoří stromovou strukturu a mohou se do sebe vnořovat, ale nesmí se křížit. Mohou mít jeden nebo více atributů, hodnoty těchto atributů musí být vždy uzavřeny v uvozovkách nebo apostrofech. Další odlišností od HTML je skutečnost, že u jmen elementů a atributů se rozlišují malá a velká písmena, proto je doporučeno sjednotit zápis výlučně malými písmeny.
XML už od začátku řeší podporu různých sad znaků. Jako standardní znaková sada je používáno ISO 10646, což je 32 bitové kódování, které obsahuje všechny dnes používané znaky.
Jak už bylo řečeno, vzhled celého dokumentu se definuje pomocí stylu. V současnosti se nabízejí tři zástupci stylových jazyků: CSS, DSSSL a XSL.
CSS (Cascading Stylesheet) známe už z prostředí HTML. Když začali výrobci prohlížečů rozšiřovat HTML o nestandardní prvky za účelem zlepšení grafické úrovně dokumentů, CSS se měl stát nástrojem k lepší kontrole formátování a měl pomoci udržet HTML v co možná nejčistší podobě. Zatím se mu nedostalo takové pozornosti, jakou by si zasloužil. V roce 1998 vznikla verze CSS2 se zlepšenou podporou pro XML jazyk s možností přiřadit styl i na základě hodnoty atributu. Internet Explorer 5.0 i vývojová verze Netscape Navigator 5.0 - Mozilla deklarují jeho podporu. CSS má poměrně jednoduchou syntaxi, která umožňuje oddělit obsah dokumentu od jeho formátování. Neumožňuje ale měnit strukturu dokumentu a ani generování obsahu dokumentu. Postačí pro jednoduché, zejména on-line prezentace.
DSSSL (Document Style Semantics and Specification Language) - nástupce FOSI (Formatting Output Specification Instance) - má úzkou spojitost s jazykem SGML, ale je možné jej používat i s XML. Jedná se o programovací jazyk, který umožňuje specifikovat vzhled jednotlivých elementů při transformaci obsahu dokumentu na jeho konkrétní zobrazitelnou podobu. Výsledkem tohoto procesu může být dokument ve formátu HTML, RTF (Rich Text Format) nebo vstupní soubor TeXu. DSSSL je velice komplexní a složitý a zatím jej nepodporuje mnoho aplikací.
XSL (Extensible Stylesheet Language) je poměrně novou záležitostí a existuje zatím pouze jako návrh standardu. Je podobně silným nástrojem jako DSSSL a umožňuje aplikaci stylu do obsahu elementů, změnu uspořádání elementů a transformaci dokumentů téměř libovolným způsobem. XSL se skládá ze dvou částí: z transformačního jazyka ke konverzi jedné třídy XML dokumentů na jiný XML dokument a z formátovacího jazyka pro specifikaci vzhledu elementů v rámci stromové struktury XML.
Oproti HTML, který umožňoval zapsání CSS přímo do dokumentu, u XML musí být styl definován v externím souboru. Takto můžeme jeden styl aplikovat na libovolné množství dokumentů stejného typu.
XLink (XML Linking Language) je jazyk, který rozšiřuje možnosti vytváření hypertextových vazeb vazeb tak, jak je známe z HTML. Poskytuje rámec na tvorbu základních jednostranných vazeb i komplexnějších vazebních struktur. XML dokumentům umožňuje:
XPointer (XML Pointer Language) přichází s novou technologií, prostřednictvím níž je možné vytvořit vazbu nejen na konkrétní dokument, ale i na konkrétní části daného dokumentu. XPointer je založen na XPath - výrazovém jazyku umožňujícím dotazování ve stromové struktuře XML. XPointer by měl umět vyjádřit jakýkoliv uživatelský výběr v rámci dokumentu.
XML má od svého vzniku celou řadu aplikací a o některých z nich si povíme příště. Také se zamyslíme, kde by mohlo být místo knihoven v této rychle se rozvíjející oblasti.
[1] | Extensible Markup Lamguage (XML) Dostupný na: http://www.w3c.org/XML |
[2] | Téměř vše o www.kosek.cz Dostupný na: http://www.kosek.cz/ |
[3] | The XML Bible Dostupný na: http://metalab.unc.edu/xml/books/bible/ |
[4] | XMLINFO Dostupný na: http://www.xmlinfo.com/ |
[5] | Zvon Dostupný na: http://zvon.vscht.cz/ |
1 | viz A. Svoboda. SGML. Zpravodaj ÚVT MU. ISSN 1212-0901, 1997, roč. 8, č. 1,
s. 6-9.
... zpět do textu |