Extensible Stylesheet Language Transformations
Author
Albert FloresPříklad XSL transformace v editoru jEdit Transformace XSLT (Extensible Stylesheet Language Transformations) slouží k převodům zdrojových dat ve formátu XML do libovolného jiného požadovaného formátu, nejčastěji HTML, jiného XML nebo libovolných jiných datových struktur.
Obecný úvod
XSLT je transformace, která se provádí pomocí procesoru XSLT. Procesorem je míněn program podporující tuto transformaci. +more Procesor XSLT může být napsán v libovolném programovacím jazyce nebo využít knihovny XSLT daného programovacího jazyka.
K provedení transformace jsou potřeba dva soubory: * První soubor obsahuje zdrojová data, která budou transformována. Struktura tohoto souboru vyjma obecných vlastností XML není blíže specifikována. +more * Druhý soubor obsahuje vzorec pro transformaci a musí být napsán v jazyce XSL.
Vlastnosti XSLT
Standardní způsob transformování dat
Transformace se provádí pouze na známých datových strukturách. Tyto datové struktury, které a pomocí kterých se bude transformovat, jsou definovány mezinárodním konzorciem W3C. +more Správnost implementace a podpora všech standardem definovaných vlastností je v kompetenci a na zodpovědnosti autorů konkrétního procesoru XSLT.
Mezinárodní podpora
Zdrojová data pro transformaci mohou obsahovat libovolné znakové sady, nejen angličtinu, ale též např. znaky s diakritikou nebo znaky asijských písem, popřípadě jejich kombinace. +more V zdrojovém dokumentu však musí být v záhlaví označeno kódování znaků. V poslední době se často užívá a je doporučeno užívat kódování UTF-8 pro správnou funkci jiných znaků než ASCII. Většina operačních systémů, programovacích jazyků a editorů je již podporou kódování UTF-8 vybavena.
Vysoká přístupnost k datům
Soubory pro XSLT jsou v textovém formátu, který je čitelný bez žádného zvláštního editoru. Díky tomuto principu je i možné tyto soubory snadno generovat pomocí počítačových programů. +more Příkladem může být získání dat z databáze či jiných datových struktur, jejich konverze do XML, která je velmi snadná, a následovná aplikace XSLT například pro převod do HTML.
Nezávislost na platformě
Procesory nebo též programy pro provedení vlastní transformace existují pro všechny známé platformy používané na PC nebo na serverech. V mnoha programovacích jazycích jsou dnes již implementovány knihovny pro XSLT.
Cíle XSLT
Smyslem XSLT je na základě zdrojového souboru a šablony vygenerovat jiný, třetí dokument nebo obecně soubor. Struktura tohoto výstupu XSLT není definována přímo standardem a je závislá na procesoru XSLT. +more Nejčastěji se používá výstup do HTML nebo XML, případně prostý textový formát, označovaný též TXT. Dalšími velmi známými výstupy jsou formáty PDF a RTF. Zcela pochopitelně to však mohou být i libovolné jiné soubory nebo formáty dat.
Procesory XSLT
Procesory XSLT se obvykle nachází jako součást programovacích jazyků nebo jako knihovny, které lze dodatečné získat z internetu. Příkladem jsou knihovny Xalan, Saxon, libxslt, přímou implementaci lze nalézt např. +more v jazycích PHP, Java, C#. Více aktuálních informací na stránkách konzorcia W3C [url=http://www. w3. org/Style/XSL/]XSL a XSLT[/url].
Příklad užití XSLT
V následujícím příkladu je reálná ukázka z WWW stránek. Zdrojem dat je diskový soubor XML a transformační soubor, který je též diskový. +more Výstupem je HTML, přesněji řečeno dle standardu HTML5. Jako procesor je užit interní procesor XSLT v PHP5 nebo PHP7. Pozn. autora: „Bez bližšího vysvětlení principu uvedu příklad reálného využití XSLT na www stránkách. Nerad bych, aby toto někdo vnímal jako skrytou reklamu. “.
Ukázka zdrojového souboru (XML)
Zdrojový soubor XML (menu.xml):
Ukázka definičního souboru (DTD) - není třeba pro XSLT
Následující soubor není nezbytný, je přiložen pro úplnost (menu.dtd):
Ukázka transformačního souboru (XSL)
Transformace v jazyce XSL, soubor XML (menu.xsl):
ABC
Napis
last
window.open(this.href,'');return(false);
Ukázka aplikace XSLT v jazyce PHP
Vlastní transformační proces v jazyce PHP (index.php):
load(". /menu. +morexml"); $doc->validate; $xslt = new DomDocument; $xslt->load(". /menu. xsl"); $xsltProc = new XsltProcessor; $xsltProc->importStylesheet($xslt); $outputDom = $xsltProc->transformToDoc($doc); echo $outputDom->saveHTML($outputDom);.
Ukázka výstupu
Výstup zmíněné transformace - v tomto případě data ve formátu HTML:
ABC
Napis
Osobní vozy
C1 C2 C3 C4 C4 Picasso Xsara Picasso Berlingo Leasing Vozy na prodejně
Předváděcí vozy Autobazar Další informace
Co je to Acrobat Reader? Prodej odtahové služby Akce zimní pneu 2006 Akce a novinky!
Odkazy
Literatura
Steven Holzner: XSLT Příručka internetového vývojáře, http://knihy.cpress.cz/pocitac/Book.asp?ID=454
Související články
XML - značkovací jazyk * Jazyky pro transformace XML * XSL - jazyk pro transformace * Deklarace typu dokumentu - vysvětluje význam značky <!DOCTYPE> * PHP - programovací jazyk, hypertextový preprocesor
Externí odkazy
[url=http://www. w3c. +moreorg]W3C[/url] - mezinárodní konzorcium vydávající standardy * [url=http://www. w3. org/XML/]W3C - XML[/url] - standardy XML * [url=http://www. w3. org/Style/XSL/]W3C - XSL[/url] - standardy XSL a XSLT * [url=https://web. archive. org/web/20150826005133/http://www. w3schools. com/xsl/]Škola XSL[/url] - užití XSLT * [url=https://web. archive. org/web/20051216070345/http://www. w3schools. com/xslfo/]Škola XSL-FO[/url] - užití formátovacích objektů XSL-FO * [url=http://www. kosek. cz/xml/xslt/]XSLT od J. Koska[/url] - XSLT v příkladech * [url=https://web. archive. org/web/20090322155411/http://www. biz-portal. net/xslt]XSLT [/url] - užití XSLT, příklady * [url=http://zvon. org/xxl/XSLTreference/Output/index. html]ZVON XSLT reference [/url] * [url=http://zvon. org/xxl/XSLTutorial/Output/index. html]ZVON XSLT 1. 0 tutorial [/url] * [url=https://web. archive. org/web/20081021005216/http://www. zvon. org/xxl/XSL-Ref/Tutorials/index. html]ZVON XSLT 2. 0 tutorial [/url] * [url=http://www. data2type. de/xml-xslt-xslfo/xslt]XSLT - Představujeme transformace jazyka[/url] * [url=http://www. data2type. de/xml-xslt-xslfo/xslt/xslt-referenz]Komplexní XSLT Reference[/url] * [url=https://web. archive. org/web/20100602185558/http://www. data2type. de/xml-xslt-xslfo/xslt/xsltundxpathreferenz]XSLT a XPath Reference[/url] * [url=http://www. zdrojak. cz/clanky/generujeme-jednoduchy-web-pomoci-xml/]Generujeme jednoduchý web pomocí XML[/url] - článek o generování jednoduchého webu pomocí XSLT * [url=https://web. archive. org/web/20121118160607/https://trac. frantovo. cz/xml-web-generator/]XML Web generátor[/url] - program pro generování statických www stránek pomocí XSLT.