V p°edchozφm dφle naÜeho serißlu jsme si ukßzali, jak lze kaskßdovΘ styly pou₧φt p°i zobrazovßnφ XML dokument∙. V mnoha p°φpadech nßm mo₧nosti kaskßdov²ch styl∙ nestaΦφ, a pak sßhneme po jazyku XSL (eXtensible Stylesheet Language).
Kdy₧ vznikal jazyk XSL, m∞l to b²t skuteΦn∞ jen starÜφ brat°φΦek kaskßdov²ch styl∙ (CSS). Umo₧≥oval samoz°ejm∞ definovat vzhled jednotliv²ch element∙ û zp∙sob jejich zarovnßnφ, velikost a styl pφsma, barvy apod. Krom∞ toho jej Ülo pou₧φt i k takov²m v∞cem, jako je automatickΘ generovßnφ obsahu, Φφslovßnφ obrßzk∙, kapitol apod. Postupn∞ se ukßzalo, ₧e XSL mß slou₧it ke dv∞ma pom∞rn∞ odliÜn²m v∞cem û ke transformaci XML dokument∙ a k definici vzhledu jejich formßtovßnφ.
B∞hem p°φprav standardu XSL z n∞j proto byla vy°azena jeho Φßst slou₧φcφ k transformaci dokument∙, pro kterou se pou₧φvß nßzev XSLT (XSL Transformations). Pomocφ XSLT lze vytvß°et styly, kterΘ definujφ, jak se XML dokumenty majφ p°evßd∞t do formßtu HTML, do XML dokument∙ s jinou strukturou nebo do obyΦejn²ch textov²ch soubor∙. ZejmΘna mo₧nost konverze do HTML je dnes hojn∞ vyu₧φvßna, proto₧e v∞tÜina prohlφ₧eΦ∙ si zatφm se samotn²mi XML dokumenty neporadφ.
DruhΘ Φßsti XSL, kterß slou₧φ k p°esnΘmu popisu vzhledu dokumentu, se Φasto °φkß XSL FO (formßtovacφ objekty), n∞kdy jen zkrßcen∞ XSL. K dispozici mßme vÜe, co znßme z CSS, navφc lze p°esn∞ urΦit layout strßnky û vΦetn∞ sazby do vφce sloupc∙, hlaviΦek, patiΦek apod.
Standard XSLT byl p°ijat jako standard konsorcia W3C na konci minulΘho roku. K dispozici je dnes celß °ada softwarov²ch procesor∙, kterΘ umo₧≥ujφ zpracovßnφ XML dokument∙ na zßklad∞ XSLT stylu. V∞tÜina z nich je p°itom napsanß v Jav∞, n∞kterΘ jsou k dispozici i v C++. Mezi voln∞ Üφ°enΘ procesory pat°φ XT, Saxon a Xalan. Vlastnφm XSLT procesorem se m∙₧e pochlubit i Microsoft, Oracle, IBM a n∞kterΘ dalÜφ firmy. Je tedy z Φeho vybφrat.
Pokud se XSLT pou₧φvß pro p°evod XML dokument∙ do HTML nebo WML v reßlnΘm Φase (nap°. na hodn∞ zatφ₧en²ch webov²ch serverech), narß₧φ se na v²konnostnφ problΘmy dneÜnφch XSLT procesor∙. Postupn∞ se vÜak objevujφ techniky, kterΘ proces n∞kolikanßsobn∞ zrychlujφ. VelkΘ ·silφ je dnes v∞novßno kompilßtor∙m XSLT styl∙, kterΘ ze stylu vygenerujφ p°φmo zdrojov² k≤d jedno·ΦelovΘho transformaΦnφho programu. B∞h tohoto programu je pak mnohem rychlejÜφ, proto₧e nenφ pot°eba po°ßd dokola naΦφtat a vyhodnocovat styl. Firma Sun u₧ vymyslela i p∞kn² nßzev pro zkompilovanΘ styly û v jejφm podßnφ jsou to translety a jsou samoz°ejm∞ zapsßny v Jav∞.
Na poli program∙, kterΘ podporujφ formßtovacφ objekty XSL je u₧ situace mnohem horÜφ. Je to dßno takΘ tφm, ₧e tato Φßst XSL dosud nebyla standardizovßna. Z open-source implementacφ m∙₧eme sßhnout po Passive TeXu nebo po FOPu. Firma RenderX p°ed nedßvnem uvolnila zkuÜebnφ verzi formßtovaΦe XEP. Podporu XSL nalezneme i v poslednφ verzi WYSIWYG editoru Epic.
Pokud chceme pou₧φt formßtovacφ objekty pro zformßtovßnφ naÜeho dokumentu, musφme si vytvo°it odpovφdajφcφ styl. Ten se pomocφ XSLT aplikuje na zdrojov² XML dokument û dostaneme tedy XML dokument, kter² se bude sklßdat z jednotliv²ch formßtovacφch objekt∙. Tento dokument pak umφ interpretovat XSL FO procesor, kter² z n∞j vytvo°φ t°eba PDF soubor nebo v²sledek zobrazφ na obrazovce. N∞kterΘ programy oba dva kroky provßdφ automaticky najednou a cel² proces pak m∙₧e u₧ivateli p°ipadat jednoduÜÜφ.
V∞tÜinu procesor∙ lze vyu₧φt bu∩ jako samostatnΘ programy, nebo jako knihovnu vhodnou pro zaΦlen∞nφ do vlastnφch program∙. P°i prvnφch pokusech je asi nejlepÜφ pou₧φvßnφ samostatn²ch procesor∙, abychom si mohli prohlΘdnout v²sledek transformace. Procesor se obvykle volß se t°emi parametry, nap°φklad:
xt dokument.xml styl.xsl vystup.html
Nßvod na instalaci procesoru XT naleznete na p°ilo₧enΘm cΘdeΦku.
Pokud chceme pou₧φt XSLT pro p°evod XML dokument∙ do formßt∙ pou₧φvan²ch na Webu, m∙₧e procesor b∞₧et bu∩ p°φmo v prohlφ₧eΦi, nebo se konverze do HTML provede p°φmo na serveru. Dnes se pou₧φvß p°edevÜφm druh² p°φstup, proto₧e podpora XSLT v prohlφ₧eΦφch nenφ moc dobrß. Jedin² prohlφ₧eΦ, kter² XSLT podporuje, je Internet Explorer 5.0. Ten navφc podporuje starÜφ verzi nßvrhu standardu, kterß nenφ kompatibilnφ s finßlnφ verzi standardu. Ze strßnek Microsoftu si naÜt∞stφ lze stßhnout program, kter² provede aktualizaci prohlφ₧eΦe.
Vzhledem k tomu, ₧e podpora formßtovacφch objekt∙ ze strany aplikacφ nenφ nikterak slavnß, podφvßme se nynφ detailn∞ji jen na XSLT.
Soubor s XSLT stylem je sßm o sob∞ XML dokument, proto₧e pou₧φvß syntaxi XML. Pro jeho editovßnφ proto m∙₧eme vyu₧φt b∞₧nΘ XML editory. V dokumentu se p°itom mφchajφ dva druhy znaΦek û °φdφcφ p°φkazy pro procesor a znaΦky v²slednΘho dokumentu (nap°. HTML tagy). Aby Ülo v jednom dokumentu kombinovat dv∞ sady znaΦek, pou₧φvajφ se jmennΘ prostory. To znamenß, ₧e p°ed jmΘna vÜech element∙, kterΘ mß XSLT procesor zpracovßvat, se pφÜe specißlnφ prefix xsl:. Cel² styl p°itom musφ b²t uzav°en v elementu stylesheet.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> definice stylu </xsl:stylesheet>
URL adresa http://www.w3.org/1999/XSL/Transform, kterß identifikuje jmenn² prostor, je p°itom velmi d∙le₧itß. XSLT procesor podle nφ poznß, ₧e dokument opravdu obsahuje styl. Pokud toto URL zapomene uvΘst nebo v n∞m ud∞lßme p°eklep, procesor nebude instrukce ve stylu v∙bec zpracovßvat.
Samotn² styl se sklßdß p°edevÜφm z Üablon, kterΘ definujφ, jak se jednotlivΘ Φßsti XML dokumentu budou p°evßd∞t do tvaru v²stupnφho dokumentu. P°i v²b∞ru Φßstφ dokumentu se pou₧φvß jednoduch² dotazovacφ jazyk XPath.