Potřebujete pomoci s XSLT?
Nabízím školení, konzultace, vývoj XSLT kódu na zakázku. Nevájte a kontaktujte mne.

Podpořte provoz stránek
Platba probíhá pomocí služby PayPal a je možné platit kartou nebo převodem z vašeho PayPal účtu.

1.3 Dostupné implementace

1.3.1. Saxon
1.3.2. XT
1.3.3. Xalan
1.3.4. libxslt/xsltproc
1.3.5. MSXML
1.3.6. System.Xml.Xsl

K dispozici je dnes celá řada softwarových procesorů, které umožňují zpracování XML dokumentů na základě XSLT stylu.

Mezi nejznámější procesory, které jsou šířeny včetně zdrojových textů, patří:

Z komerčně dostupných XSLT procesorů je asi nejpoužívanější

Vlastními XSLT procesory se může pochlubit i mnoho dalších firem – Oracle, IBM, Unicorn, …. 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ě. Obdobným způsobem je XSLT implementováno i v .NET Frameworku 2.0, kdy se styly opět automaticky před spuštěním kompilují.

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.

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 dlouhou dobu nebyla dostatečná. Prvním prohlížečem, který XSLT plně podporoval, byl Internet Explorer 6.0. Předchozí verze Internet Exploreru 5.x podporují 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. Poslední verze Mozilly, Opery a Safari rovněž obsahují podporu XSLT.

1.3.1 Saxon

  • napsaný v Javě, novější verze i pro .NET

  • dostupný včetně zdrojových textů

  • úplně implementuje XSLT a XPath

  • mnoho užitečných rozšíření:

    • více výstupních dokumentů

    • množinové operace s uzly

    • víceprůchodové zpracování dokumentů

    • možnost definice vlastních funkcí

    • umožňuje kombinovat javový kód s XSLT

    • od verze 8.9 podporuje XSLT 2.0 a XPath 2.0 (a i XQuery 1.0)

    • lze měnit obsah proměnných

  • standardní distribuce podporuje na výstupu i česká kódování iso-8859-2 a windows-1250

  • na vstupu lze použít libovolný parser

  • neustále se velmi rychle vyvíjí

1.3.2 XT

  • napsaný v Javě

  • dostupný včetně zdrojových textů

  • téměř úplně implementuje XSLT a XPath

  • několik užitečných rozšíření:

    • více výstupních dokumentů

    • několik množinových operací s uzly

    • možnost definice vlastních funkcí

  • existuje upravená verze s podporou kódování windows-1250 a iso-8859-2

  • vývoj je již zastaven, šlo pouze o ověřovací implementaci standardu

1.3.3 Xalan

  • existuje ve verzi pro Javu a C++

  • dostupný včetně zdrojových textů

  • úplně implementuje XSLT a XPath

  • mnoho užitečných rozšíření:

    • více výstupních dokumentů

    • možnost definice vlastních funkcí v libovolném jazyce, který podporuje rozhraní BSF (Bean Scripting Framework) – Java, JavaScript, VBScript, ReXX, Python, Perl, …

  • C++ verze na vstupu podporuje mnoho kódování včetně těch českých (používá se ICU knihovna), po překompilování lze využít různá kódování i na výstupu

  • na vstupu lze použít libovolný parser

  • neustále se vyvíjí, původní kód pochází z laboratoří IBM (resp. Lotus) a vývojáři IBM se na vývoji nyní dále podílejí s ostatními

  • javová verze je používána jako výchozí XSLT procesor v Javě, od verze 1.5 se používá kompilátor XSLTC

1.3.4 libxslt/xsltproc

  • napsáno v C, existují rozhraní pro C a pro další jazyky (např. Perl)

  • dostupný včetně zdrojových textů

  • úplně implementuje XPath a XSLT

  • užitečná rozšíření:

    • podporuje většinu z EXSLT (množinové operace s uzly, výstup do více souborů apod.)

    • možnost definice vlastních rozšíření v C

    • s knihovnou iconv podporuje velké množství kódování

  • původně vyvinuto pro Gnome, dnes jde o dominantní XML/XSLT knihovnu v unixovém světě, která existuje samozřejmě i pro Windows

1.3.5 MSXML

  • napsaný v C++, lze využívat pomocí COM rozhraní

  • úplně implementuje XSLT a XPath

  • několik možností rozšíření:

    • definice vlastních funkcí pomocí libovolného skriptovacího jazyka (typicky VBScript nebo JScript)

    • převod části XML na množinu uzlů

  • uzavřený kód Microsoftu, úzce spjatý s jejich parserem, velice rychlý

  • součástí mnoha MS produktů – IE5+, SQL Server, Exchange Server apod.

  • od verze MSXML 4.0 se jedná o velice výkonný XSLT procesor

1.3.6 System.Xml.Xsl

  • součást .NET Frameworku

  • úplná implementace XSLT a XPath

  • velmi rychlý

  • možnost definice vlastních funkcí v jazycích podporovaných v .NET

  • existuje řádkové rozhraní od třetí strany – nxslt

    • součástí je implementace EXSLT

    • podpora výstupu do více souborů

© Jiří Kosek 2014

Tento dokument je určen výhradně pro osobní potřebu seznámení s jazykem XSLT. Jakékoliv jiné použití, včetně dalšího šíření, pořizování kopií, použití při školeních a výuce apod. je výslovně zakázáno a bude považováno za porušení autorských práv.


Copyright © 2000-2014 Jiří Kosek