Přeskoč navigaci

Zde hledá Jyxo.

Jyxo

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ří:

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.

Tato stránka je přístupná libovolným prohlížečem, nejlépe však vypadá v prohlížeči, který podporuje HTML 4.0 a CSS 2 (Internet Explorer od verze 5, Mozilla, Opera a další). Pokud čtete tuto zprávu, váš prohlížeč zřejmě dostatečně nepodporuje CSS. Stránku sice vidíte bez pokročilejšího formátování, avšak veškerý obsah je plně přístupný i pro vás.