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
.