Sova v síti - 3/3 - vydáno 5.8.2003 do rukou se vám dostává třetí číslo třetího ročníku Sovy v síti. Najdete v něm článek Romana "Dagi" Pichlíka, který vás uvede do světa XSL transformací. Pokud pro vás XSL, XSLT a XSL-FO dosud byly jen záhadné zkratky, článek vám jistě pomůže získat jasnější představu, o co se jedná. Ještě lépe na tom ale budete koncem léta, kdy vyjde pokračování s konkrétními příklady použití. Do té doby vás ale čeká ještě jedno číslo, které bude pro změnu určeno méně technicky orientovaným čtenářům. Snad vás nepřipravím o překvapení, když prozradím, že se bude jednat o český překlad známého zahraničního autora. O české překlady zahraničních článků jste totiž několikrát požádali ve svých dopisech a vaše přání je mi rozkazem. - - - Krásný den či večer vám přeje, Marek Prokop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Denně aktualizované novinky, odkazy na články, zajímavé stránky: Weblog Sovy v síti -- http://www.sovavsiti.cz/weblog/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ XSLT, SVĚT TRANSFORMACÍ Roman Pichlík 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ří (odkazy na konci článku): + Apache Xalan (součást od verze 1.4), + MS XML (součást .NET), + Saxon, + Sablotron (od 4.x v PHP jako experimentální podpora), + Xesalt, + XT. 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 = + XSL specifikace - http://www.w3.org/Style/XSL/ + XSLT 1.0 - http://www.w3.org/TR/xslt + XSL-FO - http://www.w3.org/TR/xsl/ + XPath - http://www.w3.org/TR/xpath = XSLT procesory = + IBM XSL Editor http://www.alphaworks.ibm.com/tech/xsleditor + MSXML (odkaz je zalomen) http://msdn.microsoft.com/library/default.asp?url=/library/en- us/xmlsdk/htm/sdk_intro_6g53.asp + Sablotron http://www.gingerall.com/charlie/ga/xml/p_sab.xml + Saxon http://users.iclway.co.uk/mhkay/saxon/ + Xalan http://xml.apache.org/xalan/ + XT http://www.jclark.com/xml/xt.html + Unicorn XSLT http://www.unicorn-enterprises.com/products_uxt.html = Další informace = + Jazyk XSL na stránkách Jiřího Koska http://www.kosek.cz/clanky/swn-xml/xsl.html (c) 2003 Roman Pichlík, mailto: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, který najdete na adrese http://www.sweb.cz/pichlik/ HTML verzi tohoto článku naleznete na adrese: http://www.sovavsiti.cz/2003/xslt-1.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ukázky z knihy CSS - Kaskádové styly pro webdesignéry http://www.sovavsiti.cz/css-pro-webdesignery/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A to je pro dnešek vše. Na shledanou za dva týdny. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nechcete, nebo naopak chcete dostávat Sovu v síti? Odběr lze odhlásit odesláním zprávy na unsubscribe@sovavsiti.cz. Přihlásit se lze odesláním zprávy na subscribe@sovavsiti.cz, nebo formulářem na adrese http://www.sovavsiti.cz/. Chcete nám cokoli sdělit? Uvítáme vaše náměty, připomínky, kritiku, atd. na adrese mailto:redakce@sovavsiti.cz. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Není-li v konkrétním případě uvedeno jinak, je autorem publikovaných textů Marek Prokop. Tento ezin, nebo jeho část můžete volně šířit dále, pokud současně uvedete údaje o autorech a odkaz na Sovu v síti. _________________________________________________________________ Sova v síti -- (c) 2003 Marek Prokop -- http://www.sovavsiti.cz/