|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
XSLT (ang. XSL Transformations, Extensible Stylesheet Language Transformations, w wolnym tłumaczeniu Przekształcenia Rozszerzalnego Języka Arkuszy Stylów) jest opartym na XML-u językiem przekształceń dokumentów XML. Pozwala na przetłumaczenie dokumentów z jednego formatu XML na dowolny inny format zgodny ze składnią XML-a (np. na stronę WWW XHTML, wzór matematyczny MathML lub dokument biurowy ODF), jak również na zwykły HTML i czysty tekst.[1] Dzięki dużej sile wyrazu[2], łatwości implementacji i powszechnemu stosowaniu XML-a jako standardu dla zapisu informacji, XSLT jest uniwersalnym narzędziem znajdującym zastosowanie w wielu rodzajach oprogramowania. Najbardziej popularne to generowanie stron WWW w serwisach internetowych oraz konwersja pomiędzy alternatywnymi formatami np. w pakietach biurowych. XSLT jest rozwijany przez W3C jako część rodziny języków XSL (obok XPath i XSL-FO). Powstał pod wpływem języków funkcyjnych oraz języków opartych na dopasowywaniu wzorców (ang. pattern matching) jak awk. Jego bezpośrednim poprzednikiem jest DSSSL, odpowiednik XSLT dla SGML-a. Aktualnie obowiązującą wersją XSLT jest 2.0.
edytuj OmówienieXSLT przypomina języki funkcyjne - arkusze XSLT zbudowane są z reguł opisujących, w jaki sposób zamienić poszczególne elementy wejściowego XML-a. Warsztat programisty XSLT obejmuje m.in. instrukcje sterujące, możliwość definicji własnych funkcji (tzw. szablonów nazwanych), funkcje wbudowane realizujące na przykład sortowanie. Do znajdowania i wskazywania elementów źródłowego XML-a używany jest XPath. edytuj Składnia i semantykaArkusze XSLT są poprawnymi dokumentami XML. Elementem głównym jest edytuj Algorytm transformacjiKażdy procesor XSLT posługuje się przedstawionym poniżej w skrócie algorytmem. 1. Przygotowanie do transformacji:
2. Transformacja:
Każdy element drzewa wejściowego przetwarzany jest następująco:
edytuj PrzykładPowiedzmy, że procesor XSLT transformuje poniższy fragment dokumentu XML: ... <cokolwiek> <dzieckoCokolwiek skąd="skądkolwiek">bum</dzieckoCokolwiek> po bum </cokolwiek> ... mając do dyspozycji następujące reguły: <xsl:template match="cokolwiek/dzieckoCokolwiek[@skąd='skądkolwiek']" priority="-1"> <i>(szablon 1)</i> </xsl:template> <xsl:template match="cokolwiek/dzieckoCokolwiek"> <i>(szablon 2)</i> </xsl:template> <xsl:template match="dzieckoCokolwiek"> <i>(szablon 3)</i> </xsl:template> Produktem transformacji będzie <i>(szablon 2)</i> po bum
edytuj Zastosowanie w tworzeniu stron WWWXSLT jest szeroko stosowany przy tworzeniu stron WWW. Pozwala na oddzielenie warstwy informacji od warstwy prezentacji, które w HTML-u są mocno pomieszane. Procesory XSLT wbudowane są w nowoczesne przeglądarki WWW. edytuj PrzykładZałóżmy, że mamy do przedstawienia jakąś książkę. Możemy informacje o niej zapisać w formacie XML: <?xml version="1.0" encoding="UTF-8"?> <książka> <id> <tytuł>Pobawmy się w webmasterów</tytuł> <isbn>123456789</isbn> <autor>Jeszcze nieznany</autor> </id> <spisTreści> <r>Rozdział 1</r> <r>Rozdział 2</r> <r>Rozdział 3</r> </spisTreści> </książka> Powyżej zawarte są wszystkie informacje, jakie posiadamy o tej książce. Jednak aby wyświetlić ją w przeglądarce potrzebne są jeszcze instrukcje, jak to zrobić. Do tego służy dokument XSLT: <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output method="xml" indent="yes" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> <xsl:template match="książka"> <html> <head> <title>Książka ,,<xsl:value-of select="./id/tytuł"/>''</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="id"> <h3>Dane identyfikacyjne książki</h3> Tytuł: <xsl:value-of select="tytuł"/><br/> ISBN: <xsl:value-of select="isbn"/><br/> Autor: <xsl:value-of select="autor"/><br/> </xsl:template> <xsl:template match="spisTreści"> <h3>Spis treści</h3> <table> <xsl:apply-templates /> </table> </xsl:template> <xsl:template match="r"> <tr><td><xsl:value-of select="."/></td></tr> </xsl:template> </xsl:stylesheet> Aby transformacja zadziałała, zakładając że szablon znajduje się w pliku książka.xsl, w dokumencie XML dodajemy linijkę <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="książka.xsl"?> <książka> ... </książka> Przypisy
edytuj Zobacz teżedytuj Linki zewnętrzne
Technologie związane z XML-em (Extensible Markup Language)
Rdzenne technologie XML-a: Namespaces in XML • XML Inclusions (XInclude) • XML Information Set • xml:id Języki stylistyczne: Cascading Style Sheets (CSS) • Document Style Semantics and Specification Language (DSSSL), Rodzina Extensible Stylesheet Language: Języki z rodziny XML Linking: XML Linking Language (XLink) • XML Base • XML Pointer Language (XPointer) Języki zapytań dokumentów XML: XML Path Language (XPath) • XML Query Language (XQuery) • XML Syntax for XQuery (XQueryX) Rodzaje schematów dokumentów XML: Document Type Definition (DTD) • XML Schema • REgular LAnguage for XML Next Generation (RELAX NG) |
| All Right Reserved © 2007, Designed by Stylish Blog. |