Jazyk XML se těší stále větší oblibě snad už téměř ve všech odvětvích, která se na Internetu prosazují. Před programátory však zůstává mnohdy téměř neřešitelný úkol – jak přetransformovat dokument v jazyku XML do dokumentu ve formátu DOC, RTF, JScript, TXT, HTML nebo třeba i XML (s jinou vnitřní strukturou). Právě tento problém řeší XSLT (Extensible Stylesheet Language Transformations). Dostupných informací o tomto jazyku je bohužel poměrně málo, obzvláště pak těch kvalitních. A právě proto vydalo v letošním roce nakladatelství New Rider's Publishing knihu Inside XSLT. Její překlad od nakladatelství Computer Press se brzy objevil i na pultech českých obchodů.
Kniha je rozdělena do dvanácti částí a dvou dodatků. Postupně se v ní dozvíme téměř vše, co nás o jazyku XSLT vůbec může zajímat. Povíme si o základech jazyka, vytváření porovnávacích vzorů nebo třeba o vytváření šablon a stylů. Vše je doplněno srozumitelnými příklady, které také nalezneme na přiloženém CD.
Ale nepředbíhejme a proberme si jednotlivé části knihy postupně. První část nese název Základy XSLT. Její obsah je tedy zřejmý. Dozvíme se tady něco o struktuře jazyka, něco málo o XML a o tom, jak probíhá samotná transformace dokumentu pomocí XSLT. Tato kapitola je jakýmsi „nudným úvodem“, který je však pro další pochopení předkládané látky zcela nezbytný. Když se prokoušeme přes tuto první část, dostaneme se k dalšímu oddílu knihy, kterým je Tvorba a používání stylů XSLT. Asi nemá příliš smysl tuto část komentovat. Na necelých čtyřiceti stránkách je rozebrána problematika tvorby stylů dokumentů. Mimo jiné se zde dozvíme i něco málo o šablonách, které jsou však mnohem podrobněji probrány v další části – Tvorba a používání šablon. Konečně se dostáváme k něčemu, co zavání skutečným programováním. Nejprve se naučíme vytvořit si novou šablonu, zpracovat vnořené uzly a následně bude řeč o přístupu k hodnotám uzlů. Když jsem kdysi hledal dokumenty o XSLT na Internetu, právě tyto části bývaly silně zanedbány. V této knize se o nich však dozvíme poměrně dost. Co také oceňuji, je přítomnost nejrůznějších rad pro zabezpečení činnosti, upozorňování na nejčastější chyby apod. Je vidět, že autor je skutečný profesionál. Jako čtvrtá se na řadu dostává Tvorba porovnávacích vzorů. Ačkoli to v mnohém vývojáři může vzbuzovat asociace s regulárními výrazy, není tomu tak. :-) Řeč bude především o skokových vzorech a o způsobech vyhledávání. Pátou v pořadí je kapitolka Rozhodovací procesy a třídění dat. Zde se dozvíme něco o podmínkách a cyklech, které můžeme v jazyku XSLT používat. Samozřejmě, že jejich činnost je mírně odlišná od klasických konstrukcí, které známe třeba z C, ale význam je stejný – zhodnotit činnost a rozhodnout o dalším postupu. Jako šestá je v knize zařazena kapitola s názvem Transformace z XML na XML, HTML, XHTML, RTF a úprava obsahu dokumentu. Tuto část knihy bych považoval vůbec za jednu z nejdůležitějších v celé knize. Dozvíme se zde právě o hlavním smyslu jazyka XSLT, který slouží k převádění dokumentů v jazyku XML na dokumenty v XML s jinou strukturou nebo na jiné formáty (už zmíněné HTML, RTF, XHTML,…). Kromě toho zde nalezneme i něco málo o vytváření jedinečných identifikátorů a některých zajímavých funkcích, které s těmito oblastmi souvisí. Sedmá část knihy volně navazuje na čtvrtou a prohlubuje čtenářovi znalosti o jazyku XPath, který je v XSLT využíván mimo jiné právě i pro tvorbu porovnávacích vzorů. Název kapitoly – Jak pochopit a používat jazyk XPath – vůbec nelže. Skutečně se zde dozvíte maximum informací, které o jazyku XPath budete kdy potřebovat. V závěru této kapitoly se také čtenář dozví něco o chystaných vylepšeních v jazyku XPath 2.0, který by se měl brzy objevit. Osmá kapitola – Používáme funkce jazyků XSLT a XPath – je jakousi náhradou za referenční příručku, dá-li se to tak říci. Obsahuje stručný popis všech používaných funkcí, s nimiž se v jazycích XSLT a XPath můžeme setkat. O něco zajímavější, z praktického hlediska, je devátá část knihy – Pojmenované šablony, argumenty a proměnné. Po odlehčení u čtení popisu funkcí jsme drasticky vtaženi zpět do světa programování. Naučíme se tvořit proměnné v jazyku XSLT, povíme si něco o jejich platnosti a především o jejich použití. Obdobný proces se opakuje ještě s argumenty. Dále se zde dozvíme něco o generování stylů XSLT. Desátou část knihy – Aplikační rozhraní procesorů XSLT – ocení především „okenní uživatelé“. Je zde rozebrána problematika spolupráce XSLT s JavaScriptem v MSIE a řada dalších témat, vztahujících se právě k Internet Exploreru. Autor se zde také zaměřuje na transformaci XML na databázi SQL nebo použití XSLT na stránkách ASP a JSP. Předposlední kapitola knihy – Práce s XSLT při tvorbě dokumentů XSL-FO: Text a tabulky – se podrobněji zabývá jazykem XSL-FO, který výrazně překračuje rámec specifikace jazyka XSLT a slouží pro různé pokročilejší úkony. Dozvíme se zde o formátovacích vlastnostech jazyka XSL-FO a objektech, které používá. Podrobně je rozebrána transformace stylu XSLT na formát XSL-FO. V této kapitole zkrátka získá zkušenější čtenář větší jistotu v oblastech, ve kterých si dříve nebyl příliš jistý a které by chtěl prohloubit. Celou knihu pak zakončuje kapitola Práce s XSLT při tvorbě dokumentů XSL-FO: Seznamy, obrázky, novinové sloupce a rozvržení. Tady získá čtenář poslední zbytky informací, které mu zatím ještě unikaly. Autor se zde zaměřuje především na doplnění různých znalostí týkajících se stylů, apod. V přílohách pak nalezneme úryvek ze XSLT DTD (Document Type Definition) a především kompletní popis formátovacích vlastností jazyka XSL-FO.
Zní to hezky, co říkáte? Řekněme si ale, jaká tato kniha vlastně je. Především je to učebnice kombinovaná s referenční příručkou. Je určena začátečníkům, ale předpokládá alespoň základní znalost jazyků HTML a XML. Bez splnění těchto předpokladů bude snaha o pochopení probíraných témat vesměs marná. Veškerá probíraná témata jsou okořeněna celou řadou výstižných příkladů, což jistě oceníte především u méně srozumitelných pasáží (v knize jsem jich moc neobjevil, snad jen datové typy v jazyku XPath mohly být lépe popsány). Tyto příklady, samozřejmě s plnou lokalizací, nalezneme na přiloženém CD. To je ostatně kapitola sama pro sebe – na tomto CD nás kromě příkladů čekají také nejznámější editory a procesory jazyka XSLT (Saxon, XT, Xalan,…) a některé zajímavé programy, které oceníte hlavně při práci se styly XSL.
Přemýšlel jsem, co bych knize vytknul. Moc mě toho nenapadlo, protože ji nemohu porovnat s jinými knihami o XSLT – v ČR jich, pokud vím, více nevyšlo. Po obsahové stránce se mi kniha zdá zcela dostačující k pochopení jazyka XSLT a práce s ním. Občas má ale autor tendenci sklouzávat k extrémům, co se sdílnosti týče – někdy je výřečný až příliš a čtenář málem usne (to je případ hlavně úvodních kapitol) a jindy bývá zase poměrně stručný a nezabývá se podrobnějším rozebíráním problematiky. Průměrně inteligentní člověk se však brzy zorientuje a rychle pochopí některé nejasnosti, které mohou vzniknout. Nezbývá mi tedy, než tuto publikaci doporučit.
Knihu vydalo nakladatelství Computer Press v roce 2002 a prodejní cena byla stanovena na 690 Kč (včetně CD). K recenzi ji poskytlo Internetové knihkupectví Mareček, kde ji můžete získat za zvýhodněnou cenu 552 Kč.