V dnešním článku se podíváme na problematiku prezentací dokumentů. Speciálně na to, co nám nabízí technologie XML, jaké jsou její výhody a použití.
14.5.2004 08:00 | Josef "jose" Kadlec | read 7627×
DISCUSSION
Co stálo za vznikem značkovacích jazyků a samotného XML?
Byla to jistě složitá situace, která začala se vznikem počítaců
někdy v šedesatých letech, kdy byl tisk hodně složitý. Pokud někdo
chtěl tisknout třeba noviny nebo časopisy, musel složitými procedurami
převádět text na speciálni média, ze kterých mohly jistá zařízení tisknout.
Problém byl v tom, že výrobců těchto zařízení bylo více a nebyly
navzájem kompatibilní. Možná by se hodilo přirovnání k tomu, že zhruba
v téhle době, v době sálových počítačů, běžel na každém počítači jiný OS
(resp. později jiný UNIX), takže tu opět nebyla vzájemná kompatibilita
a pokud chtěl administrátor jednoho počítače přijít pracovat k jinému,
bylo to složité. Zní to asi dost hrozně, když žijeme v době postscriptových
tiskáren a systémů, které se snažíme standardizovat například POSIXem, atd.
Pak přišla éra TeXu od matematika Donalda Knutha a jemu příbuzných jazyků.
Byla to jistá revoluce, vždyť TeX, resp. LaTeX, jakožto sada maker pro TeX,
se používá hojně do dnes. Tyto programy byly ovšem určeny především pro tisk,
ale co když potřebujeme text prezentovat jak tiskem, tak například na
webových stránkách? To byl podnět k tomu, aby vznikl jakyk, kde není možné
určit pouze vzhled (jako u TeXu), ale i samotný význam jednotlivých částí
textu - např. odstavec, nadpis, kapitola apod. Do této skupiny patří právě XML
(eXtensible Markup Language). A není zdaleka jediné a první. Z této
skupiny můžeme jmenovat ještě GML, které bylo asi jako prvni jazyk této
skupiny. Dále např. SGML (Standard Generalized Markup Language), ze kterého
se později pomocí určitého DTD (Document Type Definition), vyvinulo HTML, které
jistě mnozí důvěrně znají. Problém je v tom, že značky určující význam textu
určené pomocí DTD pro HTML se stávají postupem času nedostačující a bylo nutné
vytvořit jazyk, který by umožňoval definici vlastních DTD značek.
Co je to tedy XML?
XML je jazyk podřízený SGML, který ovšem narozdíl od SGML umožňuje
definování vlastních značek (sada těchto značek dohromady tvoří DTD).
Na druhou stranu je to ovšem jazyk přísný na dodržování synstaxe. Abych
uvedl příklad. V HTML si můžete například dovolit udělat plně funkční
stránku tímto zápisem:
<HTML>
<BODY>
Nejake telo dokumentu.
Všiměte si, že tagy <HTML> a <BODY> nejsou sparované, ale přes parser vše vesele
projde. Tohle bychom si v XML dovolit nemohli a parserem by to neprošlo.
Možná to vypada jako nevýhoda pro vývojáře, ale naopak. To že má jazyk daný
pevný a přísný řád zjednodušuje výrobu parserů, zpracování samotného dokumentu,
takže je zobrazení rychlejší a je možno jej využít například v mobilech.
Mohu vás, kteří se chystají psát XML dokumenty, uklidnit, že lepší XML editory
doplňují parové tagy sami;-) Další věcí syntaxe je to, že se v tazích
rozlišují velká a malá písmena, takže <firma> a <Firma> jsou dva odlišné tagy.
V HTML bylo opět jedno, jestli jste napsali <HTML> ci <html>.
Co dál...
Podle mě asi největší výhodou psaní v XML je univerzálnost dokumentu. Pokud mě
někdo pošle dokument v XML, budu vždy schopen převést tento dokument do jiného
formátu nebo ho editovat v kterémkoliv textovém editoru. Pokud mě někdo pošlě
dokument v proprietárním formátu MS Word, tak tento soubor na svém GNU/Linux boxu při velkém stěstí
možná správně otevřu. O nějakém převádení na jiné formáty se nedá
skoro mluvit. XML je vlastně ještě univerzálnější než například TeX.
Na tuto výhodu těsně navazuje další a to, že si každý může pomocí vlastních
prostředků definovat samotný vzhled a formátování. Někdo potřebuje daný
dokument prezentovat na webu, tak zřejmě nasadí CSS (Cascading Style Sheets),
což jsou mnohým důvěrně známé kaskádové styly.
Někdo jiný může použít sofistikovanější XSL (eXtensible Stylesheet Language),
které se hodí spíše na dokumenty konvertované třeba do formátu PDF.
Ne méně důležitou výhodou je i podpora širokého spektra jazyků - někdy i dost
bizardních. XML používá 32bitovou znakovou sadu ISO 10646.
Co je to přesně to DTD?
DTD (Document Type Definition) je vlastně sada značek, která celkově definuje
určitý typ dokumentu většinou dané pro konkrétní typy dokumentů.
Takže například značky <nazevfaktury>, <nazevfirmy>, <ICO>, <DPH>, ...
by patřily k DTD, které specifikuje fakturu. Ovšem jaká je pravděpodobnost toho,
že si dvě firmy zvoli uplně stejné značky? Co když jedna použije pro název faktury
tag <nazevfaktury> a druha <faknazev>? Právě proto vznikají skupiny, které se
snazi standardizovat DTD pro určité oblasti. Asi nejznámější DTD se nazýva DocBook
a je určeno pro psaní knih.
Co je to tedy DocBook?
DocBook je DTD vytvořené ve dvou verzích - jedna pod SGML a jedna pod XML.
Jak už sem zmiňoval, je tento formát určen pro psaní knih a dokumentace. Asi
si to neuvědomujete, ale v DocBooku je napsána např. dokumentace k PHP,
GNU/Linuxu, FreeBSD, KDE či Gnome. Někdy v době 1999 se udržování DocBooku
přesunulo pod záštitu sdružení OASIS, které se stará o mnoho dalších DTD.
V DocBooku lze psát skoro jakýkoliv rozsáhlejší strukturovaný text - např. i bakalářskou
práci. Existují editory,
které DocBook podporují.
Jak s tim vším souvisí XHTML?
XHMTL je vlastně jakési zkřížení HTML (jakožto jazyka založeného na SGML) a
XML. XHMTL a HTML jsou si velmi podobní. Vlastně používané značky jsou
prakticky stejné. Rozdíl je pouze v tom, že XHTML využívá syntaxi XML.
Výhody tohoto jazyka opět plynou z vlastností XML. XHTML se například zobrazí
v každém prohlížeči stejně, narozdíl od HTML, kde jsou mnohdy patrné velké rozdíly
při použití různých prohlížečů. Další výhody nemá cenu ani jmenovat - patří
sem opět vytvoření svých nových jmených prostorů (DTD), atd.
Sami jistě vidíte, jak může XML zjednodušit život. Možná XML používáte a ani o
tom nevíte. XML je totiž používáno mnoha aplikacemi (např. v podobě
konfiguračních souborů), do kterých byste to možná
ani neřekli. Do důsledku je XML jakousi normalizační technologií. Snaží se
sjednodit a standardizovat formáty, aby se usnadnila implementace a s tím
plynoucí výšše uvedené výhody. XML prostě ruluje:-)
http://www.xml.org/
http://www.root.cz/clanek/1472 - seriál
http://www.kosek.cz/clanky/swn-xml/index.html
http://zvon.org/index.php?nav_id=173 - slovník XML pojmů
http://www.kosek.cz/xml/index.html
http://www.oasis-open.org/docbook/
http://www.docbook.org
http://www.kosek.cz/xml/db/index.html
http://www.root.cz/clanek/1570
http://www.root.cz/clanek/1587
http://www.fi.muni.cz/~xpavlov/xml/