XSLT, svět transformací
Roman Pichlík, vydáno/aktualizováno: 5.8.2003/05.08.2003
Když jsem přemýšlel o tomto článku napadaly mě nejrůznější představy o tom, jak vpravit čtenáře do obrazu a zároveň odkrýt úžasné možnosti XSLT. Tento jazyk si určitě zaslouží pozornost, a proto mi dovolte, abych vás uvedl do světa transformací.
Ke kořenům XSLT
XSLT (Extensible Stylesheet Language Transformations) je součástí specifikace XSL (Extensible Stylesheet Language), která slouží k určení přesného vzhledu dokumentu. XSL bylo původně koncipováno jako vylepšení kaskádových stylů CSS. Postupem času se XSL vyprofilovalo ke dvěma hlavním účelům. První, tzv. transformační část (XSLT), slouží k transformaci dokumentu a druhá, tzv. formátovací část (XSL-FO), která sledovala původní myšlenku CSS, slouží k definici jejich výsledného vzhledu. Často se proto používá rovnice XSL = XSLT + XSL-FO.
Můžeme říci, že XSLT je podmnožinou specifikace XSL. Jedná se však o samostatnou specifikaci, kterou vydalo konsorcium W3C 16. listopadu 1999 jako W3C doporučení verze 1.0 a v současnosti se dokončuje práce na verzi 2.0.
Vlastnosti XSLT
XSLT samo o sobě je „pouze“ jazyk sloužící k manipulaci s obsahem dokumentu XML. Připravená XSLT šablona společně se zdrojovými XML daty slouží jako vstup pro XSLT procesor, který na výstupu produkuje šablonou předepsaný formát. K samotným XSLT procesorům se dostaneme záhy. Síla XSLT spočívá v tom, že z jednoho zdrojového XML dokumentu můžeme generovat několik různých druhů dokumentů jiných. Mezi nejobvyklejší transformace patří:
- XML na HTML nebo XHTML,
- XML na jiné XML (MathML, MusicML, VML),
- XML na prostý text.
Ve spojení s formátovacími objekty (XSL-FO) pak z jednoho XML dokumentu můžeme vytvořit soubor ve formátu PDF, RTF, JavaHelp, HTMLHelp (soubor nápovědy Windows), PostSrcipt a mnoha dalších.
XSLT se hojně používá na straně serveru, kde aplikační logika místo homogenního formátu HTML generuje XML data, která jsou před odesláním klientovi formátována na požadovaný výstup. V případě prohlížeče to je HTML stránka, v případě tenkých klientů to mohou být jiná XML data. Takto postavený systém je velice flexibilní z hlediska dalšího rozšíření nebo úpravy výstupního formátu dat. Navíc umožňuje důsledné oddělení aplikační vrstvy (generuje XML data) od vrstvy prezentační (zpracování XSLT transformací).
XSLT procesory
Alfou a omegou celé transformace je kromě předepsaných šablon XSLT procesor, který provede vlastní transformaci dokumentu. V současnosti můžeme nalézt mnoho implementací splňujících XSLT specifikaci 1.0. Staly se nedílnou součástí platforem .NET a Java, od verze 4.x i PHP a integrují se přímo nebo jako pluginy do prohlížečů (např. Internet Explorer, Mozilla, atd.). XSLT procesorů je celá řada a je celkem jedno, který zvolíte. Záleží jen na prostředí, ve kterém bude provozován.
Mezi nejznámější patří:
- Apache Xalan (součást od verze 1.4),
- MS XML (součást .NET),
- Saxon,
- Sablotron (od 4.x v PHP jako experimentální podpora),
- Xesalt,
- XT.
K tvorbě a editaci XSLT šablony stačí obyčejný editor, který se používá na HTML stránky. Ostatně jedná se přece pouze o XML. S takový editorem si vystačíte asi pouze ze začátku. S rostoucí složitostí šablon zřejmě sáhnete po lepším editoru, který umožní doplňovat atributy, kontrolovat syntaxi, apod.
V závěru dnešního povídaní ještě uvedu užitečné zdroje a pokud bude zájem můžeme se příště vrhnout do prvních transformačních pokusů. Ukážeme si jednoduché příklady funkční v Jave, PHP, Mozille či Internet Exploreru a bude jenom na vás, kde budete transformaci realizovat.
Odkazy a zdroje
XSL specifikace
XSLT procesory
Další informace
© 2003 Roman Pichlík, roman.pichlik@asei.cz
O autorovi
Roman „Dagi“ Pichlík se specializuje na na webové skriptování. Od konce roku 2002 vydává vlastní weblog pro kodéry Dagblog.