LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Programujeme s XML (8.) - XSL

XSL neboli eXtensible Stylesheet Language je prostředek, jenž nám umožní převádět naše XML dokumenty do jiných formátů.

20.7.2004 15:00 | Aleš Hakl | Články autora | přečteno 12934×

XSL se skládá ze dvou význačných částí (web konzorcia W3C uvádí ještě navíc XPath, ale ten necháme na později):

  • XSL Transformations, zkráceně XSLT (jako přípony souborů a prefix jmenného prostoru obvykle jen xsl)
  • XSL Formating Objects, zkráceně XSL:FO, XSL-FO nebo též XSLFO případně pouze FO (jako prefix jmenného prostoru a přípony souborů se nejčastěji používá právě pouze fo)

XSL Transformations neboli XSLT je vlastní jádro XSL, které řeší konverze XML dokumentů na jiné dokumenty XML, případně HTML nebo text. Děje se tak pomocí takzvané XSLT šablony (XSLT Stylesheetu), což je opět XML dokument určující, jak se různé části původního dokumentu převedou do výsledného dokumentu. Jedná se o poměrně silný transformační jazyk, přičemž většinu implementací je možno doplnit o další funkce v podobě modulů napsaných v nějakém programovacím jazyce.

XSL Formating Objects je značkovací jazyk zaměřený na vzhled dokumentu, s jeho pomocí definujeme jak bude výstup vypadat. Tento jazyk se téměř výhradně používá pro formátování dokumentu pro tisk (případně výstup do formátu ve stylu PDF) a vzhledem k jeho komplexnosti se málokdy zapisuje ručně. Místo toho se pro generování formátovacích objektů používá právě výše zmíněné XSLT.

Celé XSL je tedy dohromady způsob konverze XML dokumentu na tištěný dokument, tak tedy bylo původně zamýšlené. Ovšem XSLT je natolik univerzální nástroj, že jej je možné použít na valnou většinu konverzí XML dokumentů na jiné formáty, a pro konverze různych typů dokumentů XML mezi sebou (například OpenOffice.org používá XSLT v některých importních a exportních filtrech a v novějších verzích dokonce umožňuje přidání uživatelských filtrů v podobě XSLT šablon).

Pro kompletní zpracování XSL tedy ve většině případů potřebujeme dva programové celky (úmyslně nepíšu programy, protože stejně dobře se může jednat o knihovny či třídy v jazyce Java, které použijeme v nějakém našem programu), a to XSLT Procesor a XSL:FO procesor. V prvním případě si můžeme vybrat z velké škály implementací, jež jsou většinou svobodný software:

  • libxslt (nebo-li xsltproc, což je název spustitelného souboru) - V prostředí operačního systému GNU/Linux asi nejznámější implementace, součást projektu GNOME, napsáno v C nad objektovou knihovnou Glib.
  • Saxon - XSLT procesor napsaný v Javě pod licencí MPL, dělí se na dvě větve, komerční a nekomerční, kdy komerční navíc podporuje XML schémata.
  • Xalan-Java a Xalan-C++ jsou procesory od Apache Software Foundation napsané v Javě respektive C++, javová verze je dnes v podstatě standardním XSLT procesorem v Javě.
  • Sablotron - Český XSLT procesor od společnosti Ginger Alliance pod licencí MPL případně GPL, používaný například v PHP.

Ovšem situace v oblasti XSL:FO procesorů není až tak růžová, můžeme si vybrat v podstatě ze dvou možností:

  • PassiveTeX - Sada maker pro TeX fungující jako XSL:FO procesor, místy poněkud obskurní záležitost, ale v porovnání s FOPem dosahuje mnohem lepších výsledků.
  • FOP - XSL:FO procesor od Apache Software Foundation napsaný v Javě. Poslední verze je 0.20.5 a kvalita tomu bohužel odpovídá. I přesto je tento procesor použitelný pro většinu úkolů. Jediným problémem je, že na rozdíl od TeXu (potažmo PassiveTeXu) v distribucích bývá ve stavu kdy je potřeba dokonfigurovat, zejména kvůli podpoře českých znaků.

Samozřejmě existují komerční XSL:FO i XSLT procesory. Myslím ovšem, že jejich cena je dosti odrazující, zvlášť v případě existence ať již Free software nebo Open Source alternativ. Za druhé jim není potřeba dělat neplacenou reklamu, kdo má o takový procesor zájem, jistě najde vhodný sám.

Osobně budu v dalších dílech vše testovat pomocí libxslt a PassiveTeXu (protože na mém notebooku, kde budu nejspíše většinu článků psát, je Java nekonečně pomalá), ale zmíním se i ostatních možnostech, zejména o použití procesorů Xalan a FOP z Javy.

Myslím, že dnes můžeme naše povídání s klidem zakončit. Příště se vrhneme na praktickou ukázku jednoduché XSLT šablony pro převod našeho telefonního seznamu z minulých dílů do HTML.

Verze pro tisk

pridej.cz

 

DISKUZE

prosbička 6.10.2007 22:08 Federico Munez
  L Re: prosbička 7.10.2007 08:26 Petr Zajíc
    L Re: prosbička 7.10.2007 21:55 Federico Munez




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

13.9.2017 8:00 /František Kučera

Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tentokrát netradičně v pondělí: 18. září od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).


Přidat komentář

3.9.2017 20:45 /Redakce Linuxsoft.cz
PR: Dne 21. září 2017 proběhne v Praze konference "Mobilní řešení pro business". Hlavní tématy konference budou: nejnovější trendy v oblasti mobilních řešení pro firmy, efektivní využití mobilních zařízení, bezpečnostní rizika a řešení pro jejich omezení, správa mobilních zařízení ve firmách a další.
Přidat komentář

15.5.2017 23:50 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

15.4.2017 15:20 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).
Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

18.9.2017 14:37 / Rojas
high security vault

15.9.2017 7:33 / Wilson
new zealand childcare jobs

31.8.2017 12:11 / Jaromir Obr
Re: ukůládání dat ze souboru

30.7.2017 11:12 / Jaromir Obr
Národní znaky

27.7.2017 12:24 / Jaromir Obr
Cteni/zapis

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze