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 16409×
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
|
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|