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