XSLT — разлика између измена
мНема описа измене |
Спашавам 1 извора и означавам 0 мртвим.) #IABot (v2.0.9.5 |
||
(Није приказано 36 међуизмена 14 корисника) | |||
Ред 1: | Ред 1: | ||
__БЕЗКН__ |
|||
{{МАТФДПЈ2016}} |
|||
'''-{XSLT}-''' ('''-{Extensible Stylesheet Language Transformations}-''') je jezik za transformisanje -{[[XML]]}- dokumenata-{<ref name="Transformation">{{cite web|url=http://www.w3.org/standards/xml/transformation|title=Transformation|date |
'''-{XSLT}-''' ('''-{Extensible Stylesheet Language Transformations}-''') je jezik za transformisanje -{[[XML]]}- dokumenata-{<ref name="Transformation">{{cite web|url=http://www.w3.org/standards/xml/transformation|title=Transformation|date=19. 9. 2012}}</ref>}- koji kasnije mogu biti konvertovani i u ostale formate kao što su -{[[Portable Document Format|PDF]]}-, -{[[PostScript]]}- i -{[[PNG]]}-.-{<ref>{{cite web|url=http://www.w3.org/TR/xslt#output|title=XML Output Method|date=19. 9. 2012}}</ref>}- -{XSLT 1.0}- je podržan u svim današnjim pretraživačima. |
||
Ulazni dokumenti su -{XML}- fajlovi, ali se može koristiti bilo šta od čega se može kreirati -{[[XQuery]]}- i -{[[XPath]]}- model podataka, kao što su [[Релационе базе података|relacione baze podataka]].-{<ref name="Transformation" /> |
Ulazni dokumenti su -{XML}- fajlovi, ali se može koristiti bilo šta od čega se može kreirati -{[[XQuery]]}- i -{[[XPath]]}- model podataka, kao što su [[Релационе базе података|relacione baze podataka]].-{<ref name="Transformation" />}- |
||
Prema -{XSL}- transformacijama se odnosimo kao prema programskom jeziku, jer je sistem upita koji se može opisati Tjuringovom mašinom, tj. -{XSLT}- je [[Тјурингова потпуност|Turing-potpun]].-{<ref>{{cite web|url=http://conferences.idealliance.org/extreme/html/2004/Kepser01/EML2004Kepser01.html|title=A Simple Proof for the Turing-Completeness of XSLT and XQuery|last=Kepser|first=Stephan|publisher=Proceedings of Extreme Markup Languages| |
Prema -{XSL}- transformacijama se odnosimo kao prema programskom jeziku, jer je sistem upita koji se može opisati Tjuringovom mašinom, tj. -{XSLT}- je [[Тјурингова потпуност|Turing-potpun]].-{<ref>{{cite web|url=http://conferences.idealliance.org/extreme/html/2004/Kepser01/EML2004Kepser01.html|title=A Simple Proof for the Turing-Completeness of XSLT and XQuery|last=Kepser|first=Stephan|date=|website=|publisher=Proceedings of Extreme Markup Languages|access-date=30. 11. 2016|archive-date=04. 05. 2012|archive-url=https://web.archive.org/web/20120504003613/http://conferences.idealliance.org/extreme/html/2004/Kepser01/EML2004Kepser01.html|url-status=dead}}</ref>}- |
||
== Istorija == |
== Istorija == |
||
[[Функционално програмирање| |
[[Функционално програмирање|Funkcionalni jezici]] su imali ogroman uticaj na -{XSLT}-.-{<ref>{{cite web|url=http://www.ibm.com/developerworks/library/x-xslt/|title=What kind of language is XSLT?|last=|first=|date=|website=|publisher=|author=Michael Kay}}</ref>}- Najveći uticaj je imao -{[[DSSSL]]}-, koji je formatirao -{[[SGML]]}- kao što i -{XSLT}- formatira -{XML}-.-{<ref>{{cite web|url=http://www.w3.org/TR/NOTE-XSL.html|title=A Proposal for XSL|last=|first=|date=|website=|publisher=W3C}}</ref>}- |
||
* -{XSLT 1.0}-: -{XSLT}- je bio deo |
* -{XSLT 1.0}-: -{XSLT}- je bio deo -{[[World Wide Web Consortium]]}-ovog -{(W3C)}- -{[[Extensible Stylesheet Language]] (XSL)}- 1998–1999 projekta u kome su takođe nastali -{[[XSL-FO]]}- i -{[[XPath]]}-. Neki članovi koji su kreirali -{XSLT}-, uključujući -{[[James Clark (XML expert)|James Clark-a]]}-, urednika, prethodno su radili na kreiranju -{DSSSL}-. -{XSLT 1.0}- objavljen u novembru 1999.-{<ref name="timelinehistory">{{cite web|url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|title=XML and Semantic Web W3C Standards Timeline|access-date=30. 11. 2016|archive-date=24. 04. 2013|archive-url=https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|url-status=dead}}</ref>}- |
||
* -{XSLT 2.0}-: nakon neuspešnog pokušaja da se napravi varzija 1.1 2001. godine,-{<ref>{{cite web|url=http://www.w3.org/TR/xslt11/|title=XSL Transformations (XSLT) Version 1.1|date |
* -{XSLT 2.0}-: nakon neuspešnog pokušaja da se napravi varzija 1.1 2001. godine,-{<ref>{{cite web|url=http://www.w3.org/TR/xslt11/|title=XSL Transformations (XSLT) Version 1.1|date=24. 8. 2001|publisher=W3.org|accessdate=12. 7. 2014}}</ref>}- radna grupa -{XSL}- je udružila snage sa -{[[XQuery]]}-jevom radnom grupom i napravili su -{[[XPath 2.0]]}-,-{<ref>{{cite web|url=http://www.w3.org/TR/xpath20/|title=XML Path Language (XPath) 2.0 (Second Edition)|date=14. 12. 2010|publisher=W3.org|accessdate=12. 7. 2014}}</ref>}- sa bogatijim modelom podataka i sistemom zasnovanim na -{[[XML Schema (W3C)|XML Schema]]}-. Najnovija verzija je -{XSLT 2.0}-,-{<ref>{{cite web|url=http://www.w3.org/TR/xslt20/|title=XSL Transformations (XSLT) Version 2.0|date=23. 1. 2007|publisher=W3.org|accessdate=12. 7. 2014}}</ref>}- razvijena je od strane -{[[Michael Howard Kay|Michael Kaya]]}-. Od 2010, -{XSLT 1.0}--{<ref>{{cite web|url=http://www.w3.org/TR/xslt|title=XSL Transformations (XSLT)|date=16. 11. 1999|publisher=W3.org|accessdate=12. 7. 2014}}</ref>}- se i dalje široko upotrebljava, ali 2.0 verzije nije podržan od strane [[Веб-прегледач|veb pregledača]] ili u okruženjima poput -{[[LAMP]]}-a. |
||
* Od oktobra 2014. godine karaktersistike -{XSLT 3.0}- obuhvataju:-{<ref name="new-in-3">{{cite web|url=http://www.w3.org/TR/xslt-30/#whats-new-in-xslt3|title=What's New in XSLT 3.0?|publisher=w3|accessdate |
* Od oktobra 2014. godine karaktersistike -{XSLT 3.0}- obuhvataju:-{<ref name="new-in-3">{{cite web|url=http://www.w3.org/TR/xslt-30/#whats-new-in-xslt3|title=What's New in XSLT 3.0?|publisher=w3|accessdate=6. 1. 2014}}</ref> }- |
||
** [[Streaming XML|Streaming transformacija]]: u prethodnim verzijama potpuni unos dokumenata je morao biti učitan u memoriju pre obrade,-{<ref>{{cite web|url=http://www.balisage.net/Proceedings/vol5/html/Kay01/BalisageVol5-Kay01.html|title=A Streaming XSLT Processor|last=Kay|first=Michael|publisher=Balisage: The Markup Conference 2010 Proceedings|accessdate |
** [[Streaming XML|-{Streaming}- transformacija]]: u prethodnim verzijama potpuni unos dokumenata je morao biti učitan u memoriju pre obrade,-{<ref>{{cite web|url=http://www.balisage.net/Proceedings/vol5/html/Kay01/BalisageVol5-Kay01.html|title=A Streaming XSLT Processor|last=Kay|first=Michael|publisher=Balisage: The Markup Conference 2010 Proceedings|accessdate=15. 2. 2012}}</ref>}- a ispis nije mogao biti prikazan dok procesuiranje nije bilo završeno. Radna verzija -{[[XML Streaming|XML streaminga]]}- će biti korišćena za procesiranje dokumenata koji su isuviše veliki da stanu u memoriju, ili kada su transformacije pisane u -{[[XML Pipelines]]}-. |
||
** Poboljšanja u modularnost velikih -{stylesheet}--ova. |
** Poboljšanja u modularnost velikih -{stylesheet}--ova. |
||
** Poboljšano upravljanje dinamičkim grešakama, na primer -{xsl:try}- instrukcija. |
** Poboljšano upravljanje dinamičkim grešakama, na primer -{xsl:try}- instrukcija. |
||
Ред 18: | Ред 18: | ||
== Dizajn i modeliranje procesa == |
== Dizajn i modeliranje procesa == |
||
[[Датотека:XSLT_en.svg|мини|Dijagram toka procesa i osnovnih elemenata XSLTa.]] |
[[Датотека:XSLT_en.svg|мини|Dijagram toka procesa i osnovnih elemenata XSLTa.]] |
||
-{XSLT}- koristi jedan ili više -{XML}- izvornih dokumenata i jedan ili više XSLT stylesheet-ova i procesuira ih da bi napravio izlazni dokument. U poređenju sa široko upotrebljavanim [[Императивно програмирање|imperativnim programiranjem]], kome, na primer, pripada i jezik [[C (програмски језик)|C]], -{XSLT}- je [[Декларативно програмирање|deklarativni jezik]].-{<ref>{{cite web|url=http://www.developer.com/xml/article.php/3357231#Coding%20styles|title=Discover the Wonders of XSLT: XSLT Quirks|quote=XSLT is a very specialized language with a distinct declarative flavor.}}</ref>}- Osnova procesne paradigme je povezivanje obrazaca.-{<ref name="IBM">{{cite web|url=http://www.ibm.com/developerworks/library/x-xslt/|title=What kind of language is XSLT?|last=Kay|first=Michael|publisher=IBM|accessdate=13 |
-{XSLT}- koristi jedan ili više -{XML}- izvornih dokumenata i jedan ili više -{XSLT stylesheet}-ova i procesuira ih da bi napravio izlazni dokument. U poređenju sa široko upotrebljavanim [[Императивно програмирање|imperativnim programiranjem]], kome, na primer, pripada i jezik [[C (програмски језик)|-{C}-]], -{XSLT}- je [[Декларативно програмирање|deklarativni jezik]].-{<ref>{{cite web|url=http://www.developer.com/xml/article.php/3357231#Coding%20styles|title=Discover the Wonders of XSLT: XSLT Quirks|quote=XSLT is a very specialized language with a distinct declarative flavor.|access-date=30. 11. 2016|archive-date=09. 07. 2011|archive-url=https://web.archive.org/web/20110709015528/http://www.developer.com/xml/article.php/3357231#Coding%20styles|url-status=dead}}</ref>}- Osnova procesne paradigme je povezivanje obrazaca.-{<ref name="IBM">{{cite web|url=http://www.ibm.com/developerworks/library/x-xslt/|title=What kind of language is XSLT?|last=Kay|first=Michael|publisher=IBM|accessdate=13. 11. 2013}}</ref>}- Umesto nabrajanja imperativnog niza naredbi koje se izvodule u okruženju, treba definisati samo kako rukovati sa povezivanjem čvorova određenog -{XPath}- obrazca, a ako se desi da procesor naiđe na neki, sadržaj obrazaca efikasno obrađuje funkcionalne izraze koji direktno predstavljaju svoj dobijeni formular - rezultujuće drvo, koje je osnova za procesorev izlaz. |
||
Procesor prati fiksiran algoritam.-{<ref>{{cite web|url=http://microsoftechies.wordpress.com/2010/09/16/xslt-definitions/|title=XSLT Definitions|quote=XSLT declarations define a set of rules and guidelines that are applied during processing according to a predefined algorithm.}}</ref>}- Na početku, uz pretpostavku da je -{stylesheet}- učitan i pripremljen, procesor gradi izvorno drvo od ulaznog -{XML}- dokumenta. Zatim se obrađuje korijenski čvor izvornog drveta, nalazi se odgovarajući šablon za taj čvor u -{stylesheet}--u, i proverava se sadržaj šablona. Instrukcije u svakom šablonu uglavnom usmeravaju procesor ili da stvara čvorove u rezultujućem drvetu, ili da obradi više čvorova u izvornom drveta na isti način kao i korenski čvor. Izlaz predstavlja rezultatirajuće drvo. |
Procesor prati fiksiran algoritam.-{<ref>{{cite web|url=http://microsoftechies.wordpress.com/2010/09/16/xslt-definitions/|title=XSLT Definitions|quote=XSLT declarations define a set of rules and guidelines that are applied during processing according to a predefined algorithm.}}</ref>}- Na početku, uz pretpostavku da je -{stylesheet}- učitan i pripremljen, procesor gradi izvorno drvo od ulaznog -{XML}- dokumenta. Zatim se obrađuje korijenski čvor izvornog drveta, nalazi se odgovarajući šablon za taj čvor u -{stylesheet}--u, i proverava se sadržaj šablona. Instrukcije u svakom šablonu uglavnom usmeravaju procesor ili da stvara čvorove u rezultujućem drvetu, ili da obradi više čvorova u izvornom drveta na isti način kao i korenski čvor. Izlaz predstavlja rezultatirajuće drvo. |
||
== Implementacija porcesora == |
== Implementacija porcesora == |
||
* -Altova -{RaptorXML}- Server: -{cross}--platforma koja podržava -{XSLT 1.0}- i 2.0, većinu -{XPath}- 3.0, i neke delove iz -{XSLT 3.0}- radnog nacrta; takođe i -{XQuery}-. Dozvoljava operacije komandne linije i interfejsa -{COM}-, -{[[Java (programming language)|Java]]}- i -{[[.NET Framework|.NET]]}--{<ref>{{cite web|url=http://www.altova.com/raptorxml.html|title=RaptorXML|accessdate |
* -Altova -{RaptorXML}- Server: -{cross}--platforma koja podržava -{XSLT 1.0}- i 2.0, većinu -{XPath}- 3.0, i neke delove iz -{XSLT 3.0}- radnog nacrta; takođe i -{XQuery}-. Dozvoljava operacije komandne linije i interfejsa -{COM}-, -{[[Java (programming language)|Java]]}- i -{[[.NET Framework|.NET]]}--{<ref>{{cite web|url=http://www.altova.com/raptorxml.html|title=RaptorXML|accessdate=21. 8. 2013}}</ref>}- i takođe uključuje ugrađen -{HTTP}- server. |
||
* -{Exselt}-:-{<ref>{{cite web|url=http://exselt.net/|title=Exselt XSLT Processor|date |
* -{Exselt}-:-{<ref>{{cite web|url=http://exselt.net/|title=Exselt XSLT Processor|date=6. 6. 2015|publisher=Exselt|accessdate=30. 11. 2016|archive-url=https://web.archive.org/web/20161018155618/http://www.exselt.net/|archive-date=18. 10. 2016|url-status=dead}}</ref>}- -{XSLT 3.0}- procesor koji radi na -{[[.NET Framework|.NET frameworku]]}- napisanom u -{[[F Sharp|F#]]}-. Potpuno podržava -{XSLT 3.0}- nacrt, -{XPath 3.0}- preporuku i -{XDM 3.0}- preporučene standarde. |
||
* -{[[libxslt]]}- je besplatna biblioteka realizovana pod |
* -{[[libxslt]]}- je besplatna biblioteka realizovana pod [[МИТ лиценца|MIT licencom]] koja se može ponovo koristiti u komercijalnim aplikacijama. Bazirana je na -{[[libxml]]}- i implementirana na -{[[C (програмски језик)|C]]}-- u zbog brzine i portabilnosti. Podržava -{XSLT 1.0}- i -{[[EXSLT]]}- ekstenzije.-{<ref>{{cite web|url=http://xmlsoft.org/XSLT/index.html|title=The XSLT C library for GNOME: libxslt|accessdate=23. 11. 2012}}</ref>}- |
||
** Može biti korištena u komandnoj liniji preko -{[[xsltproc]]<ref>{{cite web|url=http://xmlsoft.org/XSLT/xsltproc2.html|title=The XSLT C library for GNOME: The xsltproc tool|accessdate=23 |
** Može biti korištena u komandnoj liniji preko -{[[xsltproc]]}--{<ref>{{cite web|url=http://xmlsoft.org/XSLT/xsltproc2.html|title=The XSLT C library for GNOME: The xsltproc tool|accessdate=23. 11. 2012}}</ref>}- koji je uključen u -{[[OS X]]}--{<ref>{{cite web|url=http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/xsltproc.1.html|title=xsltproc man page|accessdate=23. 11. 2012}}</ref>}- i mnogim [[Дистрибуција Линукса|-{Linux}- distribucijama]] i može biti korišćena na -{[[Microsoft Windows|Windowsu]]}- preko -{[[Cygwin]]}-a.-{<ref>{{cite web|url=http://www.cygwin.com/ml/cygwin-announce/2002/msg00018.html|title=New package: libxslt|accessdate=23. 11. 2012}}</ref>}- |
||
** [[WebKit]] i [[Blink (raspoređivačka mašina)|Blink]], korišćeni u [[Сафари (веб-прегледач)|Safari]] i [[Google Chrome|Chrome]] veb pregledačima respektivno, koriste libxslt biblioteku za obavljanje XSL transformacija.<ref>{{cite web|url=http://webkit.org/projects/xslt/index.html|title=The WebKit Open Source Project - XSLT|accessdate |
** -{[[WebKit]]}- i -{[[Blink (raspoređivačka mašina)|Blink]]}-, korišćeni u -{[[Сафари (веб-прегледач)|Safari]]}- i -{[[Google Chrome|Chrome]]}- veb pregledačima respektivno, koriste -{libxslt}- biblioteku za obavljanje -{XSL}- transformacija.-{<ref>{{cite web|url=http://webkit.org/projects/xslt/index.html|title=The WebKit Open Source Project - XSLT|accessdate=25. 10. 2009|archive-date=05. 09. 2015|archive-url=https://web.archive.org/web/20150905064858/http://www.webkit.org/projects/xslt/index.html|url-status=}}</ref>}- |
||
** [[Language binding|Bindings]] postoji za [[Пајтон (програмски језик)|Python]],<ref>{{cite web|url=http://xmlsoft.org/python.html|title=The XML C parser and toolkit of Gnome: Python and bindings|accessdate=23 |
** -{[[Language binding|Bindings]]}- postoji za -{[[Пајтон (програмски језик)|Python]]}-,-{<ref>{{cite web|url=http://xmlsoft.org/python.html|title=The XML C parser and toolkit of Gnome: Python and bindings|accessdate=23. 11. 2012}}</ref>}- -{[[Перл (програмски језик)|Perl]]}-,-{<ref>{{cite web|url=https://metacpan.org/module/XML::LibXSLT|title=XML::LibXSLT - Interface to the GNOME libxslt library|publisher=CPAN|accessdate=23. 11. 2012}}</ref>}- -{[[Руби (програмски језик)|Ruby]]}-,-{<ref>{{cite web|url=http://rubygems.org/gems/libxslt-ruby|title=libxslt-ruby|accessdate=23. 11. 2012.}}</ref>}- -{[[PHP]]}-,-{<ref>{{cite web|url=http://www.php.net/manual/en/book.libxml.php|title=libxml|last=|first=|date=|website=|publisher=|accessdate=23. 11. 2012.}}</ref>}- -{[[Common Lisp]]}-,-{<ref>{{cite web|url=https://code.google.com/p/cl-libxml2/|title=cl-libxml2 High-level wrapper around libxml2 and libxslt libraries}}</ref>}- -{[[Tcl]]}-,-{<ref>{{cite web|url=http://tclxml.sourceforge.net/|title=TclXML|accessdate=21. 5. 2013}}</ref>}- i -{[[C++]]}-.-{<ref>{{cite web|url=http://libxmlplusplus.sourceforge.net/|title=libxml++|publisher=sourceforge.net|accessdate=23. 11. 2012}}</ref>}- |
||
* [[MSXML]] i .NET. MSXML uključuju XSLT 1.0 procesor. Od MSXML 4.0 uključena je alatka komandne linije <code>msxsl.exe</code>.<ref>{{cite web|url=http://www.microsoft.com/en-us/download/details.aspx?id=21714|title=Command Line Transformation Utility (msxsl.exe)|publisher=Microsoft|accessdate |
* -{[[MSXML]]}- i -{.NET}-. -{MSXML}- uključuju -{XSLT 1.0}- procesor. Od -{MSXML 4.0}- uključena je alatka komandne linije -{<code>msxsl.exe</code>}-.-{<ref>{{cite web|url=http://www.microsoft.com/en-us/download/details.aspx?id=21714|title=Command Line Transformation Utility (msxsl.exe)|publisher=Microsoft|accessdate=22. 10. 2012}}</ref>}- |
||
* [[Saxon XSLT|Saxon]]: XSLT (2.0 i delom 3.0) i XQuery 3.0 procesor sa [[Open source|otvorenim kodom]] i [[Власнички софтвер|vlasničkim softverom]] za samostalne operacije i za [[Јава (програмски језик)|Java]], [[JavaScript]]<ref>{{cite web|url=http://www.saxonica.com/welcome/welcome.xml|title=Saxon Client Edition 1.0|publisher=Saxonica|accessdate |
* -{[[Saxon XSLT|Saxon]]}-: -{XSLT}- (2.0 i delom 3.0) i -{XQuery 3.0}- procesor sa [[Open source|otvorenim kodom]] i [[Власнички софтвер|vlasničkim softverom]] za samostalne operacije i za -{[[Јава (програмски језик)|Java]]}-, -{[[JavaScript]]}--{<ref>{{cite web|url=http://www.saxonica.com/welcome/welcome.xml|title=Saxon Client Edition 1.0|publisher=Saxonica|accessdate=14. 8. 2012}}</ref>}- i -{[[.NET Framework|.NET]].}- |
||
* QuiXSLT: XSLT 3.0 procesor koji radi streaming implementiran u [[Јава (програмски језик)|Javi]] od strane Innovimaxa i [[INRIA]].<ref>{{cite web|url=https://project.inria.fr/quix-tool-suite/quixslt/|title=QuiXSLT » QuiX-Tool Suite|date |
* -{QuiXSLT}-: -{XSLT 3.0}- procesor koji radi streaming implementiran u -{[[Јава (програмски језик)|Javi]]}- od strane -{Innovimaxa}- i -{[[INRIA]]}-.-{<ref>{{cite web|url=https://project.inria.fr/quix-tool-suite/quixslt/|title=QuiXSLT » QuiX-Tool Suite|date=14. 11. 2013|publisher=Project.inria.fr|accessdate=12. 7. 2014}}</ref>}- |
||
* [[Xalan]]: XSLT 1.0 procesor otvorenog koda od [[Apache Software Foundation]] dostupan samostalno ali i za Javu i C++. |
* -{[[Xalan]]}-: -{XSLT 1.0}- procesor otvorenog koda od -{[[Apache Software Foundation]]}- dostupan samostalno ali i za -{Javu}- i -{C++}-. |
||
* Veb pregledači: Safari, Chrome, Firefox, Opera i Internet Explorer podržavaju XSLT 1.0. Ni jedan izvorno ne podržava XSLT 2.0, iako proizvodi treće strane kao što su Saxon-CE<ref>{{cite web|url=http://www.saxonica.com/ce/index.xml|title=About Saxon-CE|author=Saxonica|accessdate |
* Veb pregledači: -{Safari, Chrome, Firefox, Opera}- i -{Internet Explorer}- podržavaju -{XSLT 1.0}-. Ni jedan izvorno ne podržava -{XSLT 2.0}-, iako proizvodi treće strane kao što su -{Saxon-CE}--{<ref>{{cite web|url=http://www.saxonica.com/ce/index.xml|title=About Saxon-CE|author=Saxonica|accessdate=16. 6. 2012}}</ref>}- i -{Frameless}--{<ref>{{cite web|url=http://www.frameless.io/|title=Frameless XSLT/XPath 2.0 processor|author=Frameless|accessdate=9. 6. 2014}}{{Мртва веза}}</ref>}- mogu obezbediti ovu funkcionalnost.-{<ref>{{Cite journal|last=Delpratt|first=O'Neil|year=2013|title=XML on the web: is it still relevant?|url=http://xmllondon.com/2013/presentations/delpratt/|journal=XML London 2013|pages=35-48|doi=10.14337/XMLLondon13.Delpratt01|isbn=978-0-9926471-0-0|access-date=30. 11. 2016|archive-date=13. 03. 2017|archive-url=https://web.archive.org/web/20170313120039/http://xmllondon.com/2013/presentations/delpratt/|url-status=}}</ref>}--{<ref>{{Cite journal|last2=Van der Kolk|first2=Yolijn|year=2014|title=Frameless for XML - The Reactive Revolution|url=http://xmllondon.com/2014/presentations/broersma|journal=XML London 2014|pages=128-132|doi=10.14337/XMLLondon14.Broersma01|isbn=978-0-9926471-1-7|first=Robbert|last=Broersma|access-date=30. 11. 2016|archive-date=03. 03. 2016|archive-url=https://web.archive.org/web/20160303220655/http://xmllondon.com/2014/presentations/broersma|url-status=}}</ref>}- Veb pregledači mogu obavljati transformacije nad -{XML}- datotekama u hodu i prikazati rezultat obrade u prozoru pregledača. Ovo se obavlja ugrađivanjem -{XSL}- u -{XML}- dokument ili se upućuje na fajl koji sadrži -{XSL}- instrukcije iz -{XML}- dokumenta. Ovaj drugi metod ne može da radi sa -{Chrom}-om zbog bezbednosnog modela.-{<ref>{{cite web|url=https://stackoverflow.com/questions/4094912/cant-read-an-xml-and-or-xslt-in-google-chrome|title=Can't read an XML and/or XSLT in Google Chrome|year=2014|work=Stack Overflow|accessdate=12. 7. 2014}}</ref>}- |
||
* [[XMLStarlet]] je "lista alatki komandne linije koje mogu biti korištene da transformišu, izaberu, testiraju i urede XML dokumenta". Može "primeniti XSLT stylesheet-ove na XML dokumenta" i ne zahteva Javu. Koristi libxslt i podržava XSLT 1.0. |
* -{[[XMLStarlet]]}- je "lista alatki komandne linije koje mogu biti korištene da transformišu, izaberu, testiraju i urede -{XML}- dokumenta". Može "primeniti -{XSLT stylesheet}--ove na -{XML}- dokumenta" i ne zahteva -{Javu}-. Koristi -{libxslt}- i podržava -{XSLT 1.0}-. |
||
* Xuriella<ref>{{cite web|url=http://common-lisp.net/project/xuriella/|title=Xuriella XSLT}}</ref> i Plexippus-xpath<ref>{{cite web|url=http://common-lisp.net/project/plexippus-xpath/|title=Plexippus XPath}}</ref> su XSLT 1.0 procesori pisani u [[Lisp (programski jezik)|Common Lispu]]. |
* -{Xuriella}--{<ref>{{cite web|url=http://common-lisp.net/project/xuriella/|title=Xuriella XSLT}}</ref> i Plexippus-xpath<ref>{{cite web|url=http://common-lisp.net/project/plexippus-xpath/|title=Plexippus XPath}}</ref>}- su -{XSLT 1.0}- procesori pisani u -{[[Lisp (programski jezik)|Common Lispu]]}-. |
||
=== Performanse === |
=== Performanse === |
||
Većina ranijih XSLT procesora su prevodioci. U skorije vreme, kod sve učestalije koristi prenosive srednje jezike (kao što su [[Java bajtkod|Java bytecode]] ili .NET [[Common Intermediate Language]]) kao cilj. Međutim, čak i interpretativni proizvodi uglavnom nude zasebne analize i faze izvršavanja, omogućavajući da se optimalno izrazno drvo kreira u memoriji i ponovo koristiti za obavljanje raznih transformacija. |
Većina ranijih -{XSLT}- procesora su prevodioci. U skorije vreme, kod sve učestalije koristi prenosive srednje jezike (kao što su -{[[Java bajtkod|Java bytecode]]}- ili -{.NET}- -{[[Common Intermediate Language]])}- kao cilj. Međutim, čak i interpretativni proizvodi uglavnom nude zasebne analize i faze izvršavanja, omogućavajući da se optimalno izrazno drvo kreira u memoriji i ponovo koristiti za obavljanje raznih transformacija. |
||
Ovo omogućava značajne prednosti performansi u onlajn izdavačkim programima, gde je ista transformacija primenjena mnogo puta u sekundi nad različitim izvornim dokumentima.<ref>[http://www-128.ibm.com/developerworks/xml/library/x-xslt2/ Saxon: Anatomy of an XSLT processor] - Article describing implementation & optimization details of a popular XSLT processor.</ref> Ovo razdvajanje se ogleda u dizajnu XSLT-a koji procesuira API-je (kao što je [[Java API]] za XML procesiranje [[JAXP]]a). |
Ovo omogućava značajne prednosti performansi u onlajn izdavačkim programima, gde je ista transformacija primenjena mnogo puta u sekundi nad različitim izvornim dokumentima.-{<ref>[http://www-128.ibm.com/developerworks/xml/library/x-xslt2/ Saxon: Anatomy of an XSLT processor] - Article describing implementation & optimization details of a popular XSLT processor.</ref>}- Ovo razdvajanje se ogleda u dizajnu -{XSLT}--a koji procesuira -{API}--je (kao što je -{[[Java API]]}- za -{XML}- procesiranje -{[[JAXP]]}-a). |
||
Raniji XSLT procesors imali su vrlo malo optimizacije. Stylesheet |
Raniji -{XSLT}- procesors imali su vrlo malo optimizacije. -{Stylesheet}- dokumenta su učitavana u -{[[Document Object Model]]}-e a procesor deluje na njih direktno. -{[[XPath]]}- alati takođe nisu bili optimizovani. Međutim, sve većem uporebom, -{XSLT}- procesori počinju koristiti optimizacione tehnike funkcionalnih jezika i relacionih upitnih jezika, kao što su statička prepisivanja drveća (npr. izmestiti računananja izvan petlji) i lenje protočne procene da bi se smanjio memorijski otisak proizveden međurezultatima (i dozvolio "rani izlazak" kada procesor može oceniti izraz kao što je -{<code>following-sibling::*[1]</code>}- bez potpunog računanja podizraza). Mnogi procesori koriste reprezentaciju drveta koja je značajno efikasnija (i u vremenu i u porstoru)-{<ref>{{Cite journal|last2=Kay|first2=Michael|year=2015|title=Improving Pattern Matching Performance in XSLT|url=http://xmllondon.com/2015/presentations/lumley|journal=XML London 2015|pages=9-25|doi=10.14337/XMLLondon15.Lumley01|isbn=978-0-9926471-2-4|first=John|last=Lumley|access-date=30. 11. 2016|archive-date=15. 04. 2016|archive-url=https://web.archive.org/web/20160415131848/http://xmllondon.com/2015/presentations/lumley|url-status=}}</ref>}- nego implementacija opšte namene. |
||
U junu 2014, Debbie Lockett i [[Michael Howard Kay|Michael Kay]] predstavili su benchmarking okvir otvorenog koda za XSLT procesore nazvan XT-Speedo.<ref>{{Cite journal|last2=Lockett|first2=Debbie| |
U junu 2014, -{Debbie Lockett}- i -{[[Michael Howard Kay|Michael Kay]]}- predstavili su benchmarking okvir otvorenog koda za -{XSLT}- procesore nazvan -{XT-Speedo}-.-{<ref>{{Cite journal|last2=Lockett|first2=Debbie|year=2014|title=Benchmarking XSLT Performance|url=http://xmllondon.com/2014/presentations/kay|journal=XML London 2014|pages=10-23|doi=10.14337/XMLLondon14.Kay01|isbn=978-0-9926471-1-7|first=Michael|last=Kay|access-date=30. 11. 2016|archive-date=04. 03. 2016|archive-url=https://web.archive.org/web/20160304044145/http://xmllondon.com/2014/presentations/kay|url-status=}}</ref>}- |
||
== XSLT tipovi media == |
== -{XSLT}- tipovi media == |
||
<code><output></code> element može prihvatiti tip <code>media-type</code>, koji dopušta da se postavi tip media (ili MIME type) za rezultirajući izlaz. Na primer: <code><xsl:output output="xml" media-type="application/xml"/></code>. XSLT 1.0 preporučuje opštije tipove atributa <code>text/xml</code> i <code>application/xml</code> jer dugo vremena nije bilo registrovanog tipa medija za XSLT. Tada je <code>text/xsl</code> postao de facto standard. U XSLT 1.0 nije bilo precizirano kako <code>media-type</code> vrednosti treba koristiti. |
-{<code><output></code>}- element može prihvatiti tip -{<code>media-type</code>}-, koji dopušta da se postavi tip media (ili -{MIME type}-) za rezultirajući izlaz. Na primer: -{<code><xsl:output output="xml" media-type="application/xml"/></code>}-. -{XSLT 1.0}- preporučuje opštije tipove atributa -{<code>text/xml</code>}- i -{<code>application/xml</code>}- jer dugo vremena nije bilo registrovanog tipa medija za -{XSLT}-. Tada je -{<code>text/xsl</code>}- postao -{de facto}- standard. U -{XSLT 1.0}- nije bilo precizirano kako -{<code>media-type</code>}- vrednosti treba koristiti. |
||
Objavljivanjem XSLT 2.0, W3C preporučuje registraciju MIME tipa medija <code>application/xslt+xml</code><ref>{{cite web|url=http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration|title=XSL Transformations (XSLT) Version 2.0|publisher=W3C|accessdate |
Objavljivanjem -{XSLT 2.0}-, -{W3C}- preporučuje registraciju -{MIME}- tipa medija -{<code>application/xslt+xml</code>}--{<ref>{{cite web|url=http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration|title=XSL Transformations (XSLT) Version 2.0|publisher=W3C|accessdate=19. 10. 2012}}</ref>}- koji je kasnije bio registrovan na-{ [[IANA|Internet Assigned Numbers Authority]] (IANA)}-.-{<ref>{{cite web|url=http://www.iana.org/assignments/media-types/application/index.html|title=Application Media Types|publisher=IANA|accessdate=19. 10. 2012}}</ref>}- |
||
Radni nacrt XSLT je koristio <code>text/xsl</code> u svojim primerima i ovaj tip je implementirao i nastavljao da promoviše Microsoft u Internet Explorer-u<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms757857(v=vs.85).aspx|title=XSLT Requirements for Viewing XML in a Browser|publisher=Microsoft|accessdate |
Radni nacrt -{XSLT}- je koristio -{<code>text/xsl</code>}- u svojim primerima i ovaj tip je implementirao i nastavljao da promoviše -{Microsoft}- u -{Internet Explorer}--u-{<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms757857(v=vs.85).aspx|title=XSLT Requirements for Viewing XML in a Browser|publisher=Microsoft|accessdate=19. 10. 2012}}</ref>}- i -{MSXML}-. Široko je upotrebljivana i -{<code>xml-stylesheet</code>}- procesna instrukcija. Zato, u praksi, korisnici koji žele da kontrolišu transformaciju u pregledaču korištenjem procesnih instrukcija moraju koristiti neregistrovan media tip.-{<ref>{{cite book|title=XSLT 2.0 and XPath 2.0 Programmer's Reference|url=https://archive.org/details/xsltxpathprogram00kaym_775|last=Kay|first=Michael|publisher=Wiley|year=2008|isbn=978-0-470-19274-0|pages=[https://archive.org/details/xsltxpathprogram00kaym_775/page/n151 100]}}</ref>}- |
||
== XSLT primeri == |
== -{XSLT}- primeri == |
||
Ispod je primer dolaznog XML dokumenta.<source lang="xml" line="1"> |
Ispod je primer dolaznog -{XML}- dokumenta.<source lang="xml" line="1"> |
||
<?xml version="1.0" ?> |
<?xml version="1.0" ?> |
||
<osobe> |
<osobe> |
||
Ред 68: | Ред 68: | ||
</source> |
</source> |
||
=== Primer 1 (transformisanje iz XSLT u XML) === |
=== Primer 1 (transformisanje iz -{XSLT}- u -{XML}-) === |
||
Ovaj -{XSLT}- |
Ovaj -{XSLT stylesheet}- obezbjeđuje šablon za prevođenje -{XML}- dokumenta.<source lang="xml" line="1"> |
||
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8"?> |
||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> |
||
<xsl:output method="xml" indent="yes"/> |
<xsl:output method="xml" indent="yes"/> |
||
<xsl:template match="/osobe"> |
|||
<root> |
<root> |
||
<xsl:apply-templates select="osoba"/> |
<xsl:apply-templates select="osoba"/> |
||
Ред 87: | Ред 87: | ||
</xsl:stylesheet> |
</xsl:stylesheet> |
||
</source> |
</source> |
||
Ovo dovodi do novog -{XML}- dokumenta, koji ima drugačiju strukturu: |
Ovo dovodi do novog -{XML}- dokumenta, koji ima drugačiju strukturu: |
||
<source lang="xml" line="1"> |
|||
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8"?> |
||
<root> |
<root> |
||
Ред 97: | Ред 97: | ||
<ime username="MM1">Marko</ime> |
<ime username="MM1">Marko</ime> |
||
</root> |
</root> |
||
</source> |
</source> |
||
=== Primer 2 (prevođenje iz -{XML}- u -{XHTML}-) === |
=== Primer 2 (prevođenje iz -{XML}- u -{XHTML}-) === |
||
Procesovanje -{XSLT}- fajla |
Procesovanje -{XSLT}- fajla |
||
<source lang="xml" line="1"> |
|||
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8"?> |
||
<xsl:stylesheet |
<xsl:stylesheet |
||
Ред 132: | Ред 132: | ||
</xsl:stylesheet> |
</xsl:stylesheet> |
||
</source> |
</source> |
||
sa XML ulaznom datotekom prikazanom gore rezultira u narednom [[XHTML]] (razmak je prilagođen zbog čitljivosti): |
sa -{XML}- ulaznom datotekom prikazanom gore rezultira u narednom -{[[XHTML]]}- (razmak je prilagođen zbog čitljivosti): |
||
<source lang="xml"> |
<source lang="xml"> |
||
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8"?> |
||
<html xmlns="http://www.w3.org/1999/xhtml"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
||
<head> <title> |
<head> <title>Testiranje XML primera</title> </head> |
||
<body> |
<body> |
||
<h1> |
<h1>Osobe</h1> |
||
<ul> |
<ul> |
||
<li> |
<li>Markovic, Marko</li> |
||
<li> |
<li>Petrovic, Petar</li> |
||
</ul> |
</ul> |
||
</body> |
</body> |
||
</html> |
</html> |
||
</source> |
</source> |
||
Ovaj -{XHTML}- generiše prikazani izlaz kada je pokrenut u veb pregledaču. |
Ovaj -{XHTML}- generiše prikazani izlaz kada je pokrenut u veb pregledaču. |
||
[[Датотека:Osobe.png|центар|мини|Dobijeni -{XHTML}- generisan od -{XML}- ulazne datoteke i -{XSLT}- transformacije.| |
[[Датотека:Osobe.png|центар|мини|Dobijeni -{XHTML}- generisan od -{XML}- ulazne datoteke i -{XSLT}- transformacije.|150x150п]] |
||
Da bi veb pregledač mogao automatski da primenjuju -{XSL}- transformaciju u -{XML}- dokument na ekranu, -{XML stylesheet}- sa instrukcijama za procesiranje može da se ubaci u -{XML}-. Tako, na primer, ako je -{stylesheet}- u Primeru 2 iznad bio dostupni kao -{"primer2.xsl"}-, sledeća uputstva se mogu dodati na originalni dolazni -{XML:<ref name="w3cxslt">{{cite web|url=http://www.w3.org/TR/xslt#section-Embedding-Stylesheets|title=XSL Transformations (XSLT) Version 1.0: W3C Recommendation – Embedding Stylesheets|date=16 |
Da bi veb pregledač mogao automatski da primenjuju -{XSL}- transformaciju u -{XML}- dokument na ekranu, -{XML stylesheet}- sa instrukcijama za procesiranje može da se ubaci u -{XML}-. Tako, na primer, ako je -{stylesheet}- u Primeru 2 iznad bio dostupni kao -{"primer2.xsl"}-, sledeća uputstva se mogu dodati na originalni dolazni -{XML:<ref name="w3cxslt">{{cite web|url=http://www.w3.org/TR/xslt#section-Embedding-Stylesheets|title=XSL Transformations (XSLT) Version 1.0: W3C Recommendation – Embedding Stylesheets|last=|first=|date=16. 11. 1999|website=|publisher=W3C}}</ref>}- |
||
<source lang="xml"> |
|||
<?xml-stylesheet href="primer2.xsl" type="text/xsl" ?> |
<?xml-stylesheet href="primer2.xsl" type="text/xsl" ?> |
||
</source> |
</source> |
||
}- |
|||
U ovom primeru, -{<code>text/xsl</code>}- je tehnički netačno, sudeći po -{W3C}- specifikacijama-{<ref name="w3cxslt" />}- (po kojima je to trebalo da bude -{<code>text/xml</code>}-), ali to je jedina vrsta medija koji je široko podržan od strane brauzera od 2009. |
U ovom primeru, -{<code>text/xsl</code>}- je tehnički netačno, sudeći po -{W3C}- specifikacijama-{<ref name="w3cxslt" />}- (po kojima je to trebalo da bude -{<code>text/xml</code>}-), ali to je jedina vrsta medija koji je široko podržan od strane brauzera od 2009. |
||
== Reference == |
|||
{{ |
{{reflist|30em}} |
||
== Dodatna literatura == |
== Dodatna literatura == |
||
* ''XSLT'' od Doug Tidwell, objavio O’Reilly |
* ''-{XSLT}-'' od -{Doug Tidwell}-, objavio -{O’Reilly}- -{{{ISBN|978-0-596-00053-0}}}- |
||
* ''XSLT Cookbook'' od Sal Mangano, objavio O’Reilly |
* ''-{XSLT Cookbook}-'' od -{Sal Mangano}-, objavio -{O’Reilly}- -{{{ISBN|978-0-596-00974-8}}}- |
||
* ''XSLT 2.0 Programmer's Reference'' od [[Michael Howard Kay|Michael Kay]] |
* ''-{XSLT 2.0 Programmer's Reference}-'' od -{[[Michael Howard Kay|Michael Kay]] {{ISBN|978-0-7645-6909-8}}}- |
||
* ''XSLT 2.0 and XPath 2.0 Programmer's Referenca |
* ''-{XSLT 2.0 and XPath 2.0 Programmer's Referenca}-'' od -{Michael Kay {{ISBN|978-0-470-19274-0}}}- |
||
* ''XSLT 2.0 Web Development'' od Dmitry Kirsanov |
* ''-{XSLT 2.0 Web Development}-'' od -{Dmitry Kirsanov {{ISBN|978-0-13-140635-3}}}- |
||
* ''XSL Companion, Druga edicija od'' Neil Bradley, objavio Addison-Wesley |
* ''-{XSL Companion}-, Druga edicija od'' -{Neil Bradley}-, objavio -{Addison-Wesley {{ISBN|978-0-201-77083-4}}}- |
||
* ''XSLT and XPath on the Edge (Unlimited Edition)'' od [[Jeni Tennison]], objavio Hungry Minds Inc, U.S. |
* ''-{XSLT and XPath on the Edge (Unlimited Edition)}-'' od -{[[Jeni Tennison]]}-, objavio -{Hungry Minds Inc, U.S. {{ISBN|978-0-7645-4776-8}}}- |
||
* ''XSLT & XPath, A Guide to XML Transformations'' od John Robert Gardner i Zarella Rendon, objavio Prentice-Hall |
* ''-{XSLT & XPath, A Guide to XML Transformations}-'' od -{John Robert Gardner}- i -{Zarella Rendon}-, objavio -{Prentice-Hall {{ISBN|978-0-13-040446-6}}}- |
||
* ''XSL-FO'' od Dave Pawson, objavio O'Reilly |
* ''-{XSL-FO}-'' od -{Dave Pawson}-, objavio -{O'Reilly {{ISBN|978-0-596-00355-5}}}- |
||
== Spoljašnje veze == |
== Spoljašnje veze == |
||
{{Wikibooks|XML - Managing Data Exchange/XSLT and Style Sheets}} |
-{{{Wikibooks|XML - Managing Data Exchange/XSLT and Style Sheets}} |
||
{{ |
{{Commonscat|Extensible Stylesheet Language Transformations}}}- |
||
; Dokumentacija |
; Dokumentacija |
||
* [http://www.w3.org/TR/xslt XSLT 1.0 W3C Recommendation] |
* -{[http://www.w3.org/TR/xslt XSLT 1.0 W3C Recommendation] |
||
* [http://www.w3.org/TR/xslt20/ XSLT 2.0 W3C Recommendation] |
* [http://www.w3.org/TR/xslt20/ XSLT 2.0 W3C Recommendation] |
||
* [http://www.w3.org/TR/xslt-30/ XSLT 3.0 W3C Working Draft] |
* [http://www.w3.org/TR/xslt-30/ XSLT 3.0 W3C Working Draft] |
||
* [https://developer.mozilla.org/en/XSLT XSLT - MDC Docs] |
* [https://developer.mozilla.org/en/XSLT XSLT - MDC Docs] {{Wayback|url=https://developer.mozilla.org/en/XSLT |date=20111226235131 }}, [https://developer.mozilla.org Mozilla Developer Network] |
||
* [http://msdn.microsoft.com/en-us/library/ms256069.aspx XSLT Reference (MSDN)] |
* [http://msdn.microsoft.com/en-us/library/ms256069.aspx XSLT Reference (MSDN)] |
||
* [http://saxon.sourceforge.net/saxon7.5/xsl-elements.html XSLT Elements (Saxon)] |
* [http://saxon.sourceforge.net/saxon7.5/xsl-elements.html XSLT Elements (Saxon)] |
||
* [http://data2type.de/en/xml-xslt-xslfo/xslt/ XSLT introduction and reference] |
* [http://data2type.de/en/xml-xslt-xslfo/xslt/ XSLT introduction and reference]}- |
||
; -{XSLT}- kod biblioteka |
; -{XSLT}- kod biblioteka |
||
* [http://www.exslt.org/ EXSLT] je široko rasprostranjena inicijativa zajednica da obezbede proširenja XSLT. |
* -{[http://www.exslt.org/ EXSLT] {{Wayback|url=http://www.exslt.org/ |date=20060719234320 }}}- je široko rasprostranjena inicijativa zajednica da obezbede proširenja XSLT. |
||
* [http://fxsl.sf.net/ FXSL] je biblioteka koja sprovodi podršku funkcija višeg reda u XSLT. FXSLT je napisana u samom XSLT-u. |
* -{[http://fxsl.sf.net/ FXSL]}- je biblioteka koja sprovodi podršku funkcija višeg reda u -{XSLT}-. -{FXSLT}- je napisana u samom -{XSLT}--u. |
||
* [http://xsltsl.sourceforge.net/ The XSLT Standard Library] pruža XSLT diveloper sa setom XSLT obrazaca za najčešće korišćenih funkcija. Ovo se implementira samo u XSLT, to jest ne koriste se nikakvi dodaci. |
* -{[http://xsltsl.sourceforge.net/ The XSLT Standard Library]}- pruža -{XSLT}- diveloper sa setom XSLT obrazaca za najčešće korišćenih funkcija. Ovo se implementira samo u -{XSLT}-, to jest ne koriste se nikakvi dodaci. |
||
* [http://kernowforsaxon.sf.net/ Kernow] GUI za Saxon koji obezbeđuje „i klik interfejs za pokretanje transformacija. |
* -{[http://kernowforsaxon.sf.net/ Kernow] {{Wayback|url=http://kernowforsaxon.sf.net/ |date=20080704055414 }} GUI}- za -{Saxon}- koji obezbeđuje „i klik interfejs za pokretanje transformacija. |
||
* [http://johannburkard.de/software/xsltjs/ xslt.js – Transform XML with XSLT] JavaScript biblioteka koje transformise XML u XSLT u pregledaču. |
* -{[http://johannburkard.de/software/xsltjs/ xslt.js – Transform XML with XSLT] {{Webarchive|url=https://archive.today/20130105203131/http://johannburkard.de/software/xsltjs/ |date=05. 01. 2013 }} JavaScript}- biblioteka koje transformise -{XML}- u -{XSLT}- u pregledaču. |
||
{{ |
{{Neprovereni seminarski}} |
||
{{W3C стандарди}} |
|||
{{нормативна контрола}} |
|||
[[Категорија:Језици за означавање]] |
[[Категорија:Језици за означавање]] |
||
[[Категорија:W3C Standardi]] |
[[Категорија:W3C Standardi]] |
||
[[Категорија:Функционални програмски језици]] |
|||
[[Категорија:Скраћенице]] |
|||
[[Категорија:Софтвер 1998.]] |
Тренутна верзија на датум 27. јул 2024. у 21:39
XSLT (Extensible Stylesheet Language Transformations) je jezik za transformisanje XML dokumenata[1] koji kasnije mogu biti konvertovani i u ostale formate kao što su PDF, PostScript i PNG.[2] XSLT 1.0 je podržan u svim današnjim pretraživačima.
Ulazni dokumenti su XML fajlovi, ali se može koristiti bilo šta od čega se može kreirati XQuery i XPath model podataka, kao što su relacione baze podataka.[1]
Prema XSL transformacijama se odnosimo kao prema programskom jeziku, jer je sistem upita koji se može opisati Tjuringovom mašinom, tj. XSLT je Turing-potpun.[3]
Istorija
[уреди | уреди извор]Funkcionalni jezici su imali ogroman uticaj na XSLT.[4] Najveći uticaj je imao DSSSL, koji je formatirao SGML kao što i XSLT formatira XML.[5]
- XSLT 1.0: XSLT je bio deo World Wide Web Consortiumovog (W3C) Extensible Stylesheet Language (XSL) 1998–1999 projekta u kome su takođe nastali XSL-FO i XPath. Neki članovi koji su kreirali XSLT, uključujući James Clark-a, urednika, prethodno su radili na kreiranju DSSSL. XSLT 1.0 objavljen u novembru 1999.[6]
- XSLT 2.0: nakon neuspešnog pokušaja da se napravi varzija 1.1 2001. godine,[7] radna grupa XSL je udružila snage sa XQueryjevom radnom grupom i napravili su XPath 2.0,[8] sa bogatijim modelom podataka i sistemom zasnovanim na XML Schema. Najnovija verzija je XSLT 2.0,[9] razvijena je od strane Michael Kaya. Od 2010, XSLT 1.0[10] se i dalje široko upotrebljava, ali 2.0 verzije nije podržan od strane veb pregledača ili u okruženjima poput LAMPa.
- Od oktobra 2014. godine karaktersistike XSLT 3.0 obuhvataju:[11]
- Streaming transformacija: u prethodnim verzijama potpuni unos dokumenata je morao biti učitan u memoriju pre obrade,[12] a ispis nije mogao biti prikazan dok procesuiranje nije bilo završeno. Radna verzija XML streaminga će biti korišćena za procesiranje dokumenata koji su isuviše veliki da stanu u memoriju, ili kada su transformacije pisane u XML Pipelines.
- Poboljšanja u modularnost velikih stylesheet-ova.
- Poboljšano upravljanje dinamičkim grešakama, na primer xsl:try instrukcija.
- Funkcije sada mogu biti argumenti drugim funkcijama.
Dizajn i modeliranje procesa
[уреди | уреди извор]XSLT koristi jedan ili više XML izvornih dokumenata i jedan ili više XSLT stylesheetova i procesuira ih da bi napravio izlazni dokument. U poređenju sa široko upotrebljavanim imperativnim programiranjem, kome, na primer, pripada i jezik C, XSLT je deklarativni jezik.[13] Osnova procesne paradigme je povezivanje obrazaca.[14] Umesto nabrajanja imperativnog niza naredbi koje se izvodule u okruženju, treba definisati samo kako rukovati sa povezivanjem čvorova određenog XPath obrazca, a ako se desi da procesor naiđe na neki, sadržaj obrazaca efikasno obrađuje funkcionalne izraze koji direktno predstavljaju svoj dobijeni formular - rezultujuće drvo, koje je osnova za procesorev izlaz.
Procesor prati fiksiran algoritam.[15] Na početku, uz pretpostavku da je stylesheet učitan i pripremljen, procesor gradi izvorno drvo od ulaznog XML dokumenta. Zatim se obrađuje korijenski čvor izvornog drveta, nalazi se odgovarajući šablon za taj čvor u stylesheet-u, i proverava se sadržaj šablona. Instrukcije u svakom šablonu uglavnom usmeravaju procesor ili da stvara čvorove u rezultujućem drvetu, ili da obradi više čvorova u izvornom drveta na isti način kao i korenski čvor. Izlaz predstavlja rezultatirajuće drvo.
Implementacija porcesora
[уреди | уреди извор]- -Altova RaptorXML Server: cross-platforma koja podržava XSLT 1.0 i 2.0, većinu XPath 3.0, i neke delove iz XSLT 3.0 radnog nacrta; takođe i XQuery. Dozvoljava operacije komandne linije i interfejsa COM, Java i .NET[16] i takođe uključuje ugrađen HTTP server.
- Exselt:[17] XSLT 3.0 procesor koji radi na .NET frameworku napisanom u F#. Potpuno podržava XSLT 3.0 nacrt, XPath 3.0 preporuku i XDM 3.0 preporučene standarde.
- libxslt je besplatna biblioteka realizovana pod MIT licencom koja se može ponovo koristiti u komercijalnim aplikacijama. Bazirana je na libxml i implementirana na C- u zbog brzine i portabilnosti. Podržava XSLT 1.0 i EXSLT ekstenzije.[18]
- Može biti korištena u komandnoj liniji preko xsltproc[19] koji je uključen u OS X[20] i mnogim Linux distribucijama i može biti korišćena na Windowsu preko Cygwina.[21]
- WebKit i Blink, korišćeni u Safari i Chrome veb pregledačima respektivno, koriste libxslt biblioteku za obavljanje XSL transformacija.[22]
- Bindings postoji za Python,[23] Perl,[24] Ruby,[25] PHP,[26] Common Lisp,[27] Tcl,[28] i C++.[29]
- MSXML i .NET. MSXML uključuju XSLT 1.0 procesor. Od MSXML 4.0 uključena je alatka komandne linije
msxsl.exe
.[30] - Saxon: XSLT (2.0 i delom 3.0) i XQuery 3.0 procesor sa otvorenim kodom i vlasničkim softverom za samostalne operacije i za Java, JavaScript[31] i .NET.
- QuiXSLT: XSLT 3.0 procesor koji radi streaming implementiran u Javi od strane Innovimaxa i INRIA.[32]
- Xalan: XSLT 1.0 procesor otvorenog koda od Apache Software Foundation dostupan samostalno ali i za Javu i C++.
- Veb pregledači: Safari, Chrome, Firefox, Opera i Internet Explorer podržavaju XSLT 1.0. Ni jedan izvorno ne podržava XSLT 2.0, iako proizvodi treće strane kao što su Saxon-CE[33] i Frameless[34] mogu obezbediti ovu funkcionalnost.[35][36] Veb pregledači mogu obavljati transformacije nad XML datotekama u hodu i prikazati rezultat obrade u prozoru pregledača. Ovo se obavlja ugrađivanjem XSL u XML dokument ili se upućuje na fajl koji sadrži XSL instrukcije iz XML dokumenta. Ovaj drugi metod ne može da radi sa Chromom zbog bezbednosnog modela.[37]
- XMLStarlet je "lista alatki komandne linije koje mogu biti korištene da transformišu, izaberu, testiraju i urede XML dokumenta". Može "primeniti XSLT stylesheet-ove na XML dokumenta" i ne zahteva Javu. Koristi libxslt i podržava XSLT 1.0.
- Xuriella[38] i Plexippus-xpath[39] su XSLT 1.0 procesori pisani u Common Lispu.
Performanse
[уреди | уреди извор]Većina ranijih XSLT procesora su prevodioci. U skorije vreme, kod sve učestalije koristi prenosive srednje jezike (kao što su Java bytecode ili .NET Common Intermediate Language) kao cilj. Međutim, čak i interpretativni proizvodi uglavnom nude zasebne analize i faze izvršavanja, omogućavajući da se optimalno izrazno drvo kreira u memoriji i ponovo koristiti za obavljanje raznih transformacija.
Ovo omogućava značajne prednosti performansi u onlajn izdavačkim programima, gde je ista transformacija primenjena mnogo puta u sekundi nad različitim izvornim dokumentima.[40] Ovo razdvajanje se ogleda u dizajnu XSLT-a koji procesuira API-je (kao što je Java API za XML procesiranje JAXPa).
Raniji XSLT procesors imali su vrlo malo optimizacije. Stylesheet dokumenta su učitavana u Document Object Modele a procesor deluje na njih direktno. XPath alati takođe nisu bili optimizovani. Međutim, sve većem uporebom, XSLT procesori počinju koristiti optimizacione tehnike funkcionalnih jezika i relacionih upitnih jezika, kao što su statička prepisivanja drveća (npr. izmestiti računananja izvan petlji) i lenje protočne procene da bi se smanjio memorijski otisak proizveden međurezultatima (i dozvolio "rani izlazak" kada procesor može oceniti izraz kao što je following-sibling::*[1]
bez potpunog računanja podizraza). Mnogi procesori koriste reprezentaciju drveta koja je značajno efikasnija (i u vremenu i u porstoru)[41] nego implementacija opšte namene.
U junu 2014, Debbie Lockett i Michael Kay predstavili su benchmarking okvir otvorenog koda za XSLT procesore nazvan XT-Speedo.[42]
XSLT tipovi media
[уреди | уреди извор]<output>
element može prihvatiti tip media-type
, koji dopušta da se postavi tip media (ili MIME type) za rezultirajući izlaz. Na primer: <xsl:output output="xml" media-type="application/xml"/>
. XSLT 1.0 preporučuje opštije tipove atributa text/xml
i application/xml
jer dugo vremena nije bilo registrovanog tipa medija za XSLT. Tada je text/xsl
postao de facto standard. U XSLT 1.0 nije bilo precizirano kako media-type
vrednosti treba koristiti.
Objavljivanjem XSLT 2.0, W3C preporučuje registraciju MIME tipa medija application/xslt+xml
[43] koji je kasnije bio registrovan na Internet Assigned Numbers Authority (IANA).[44]
Radni nacrt XSLT je koristio text/xsl
u svojim primerima i ovaj tip je implementirao i nastavljao da promoviše Microsoft u Internet Explorer-u[45] i MSXML. Široko je upotrebljivana i xml-stylesheet
procesna instrukcija. Zato, u praksi, korisnici koji žele da kontrolišu transformaciju u pregledaču korištenjem procesnih instrukcija moraju koristiti neregistrovan media tip.[46]
XSLT primeri
[уреди | уреди извор]Ispod je primer dolaznog XML dokumenta.
<?xml version="1.0" ?>
<osobe>
<osoba username="PP1">
<ime>Petar</ime>
<prezime>Petrović</prezime>
</osoba>
<osoba username="MM1">
<ime>Marko</ime>
<prezime>Marković</prezime>
</osoba>
</osobe>
Primer 1 (transformisanje iz XSLT u XML)
[уреди | уреди извор]Ovaj XSLT stylesheet obezbjeđuje šablon za prevođenje XML dokumenta.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/osobe">
<root>
<xsl:apply-templates select="osoba"/>
</root>
</xsl:template>
<xsl:template match="osoba">
<ime username="{@username}">
<xsl:value-of select="ime" />
</ime>
</xsl:template>
</xsl:stylesheet>
Ovo dovodi do novog XML dokumenta, koji ima drugačiju strukturu:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<ime username="PP1">Petar</ime>
<ime username="MM1">Marko</ime>
</root>
Primer 2 (prevođenje iz XML u XHTML)
[уреди | уреди извор]Procesovanje XSLT fajla
<?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" encoding="UTF-8"/>
<xsl:template match="/osobe">
<html>
<head> <title>Testiranje XML primera</title> </head>
<body>
<h1>Osobe</h1>
<ul>
<xsl:apply-templates select="osoba">
<xsl:sort select="prezime" />
</xsl:apply-templates>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="osoba">
<li>
<xsl:value-of select="prezime"/><xsl:text>, </xsl:text><xsl:value-of select="ime"/>
</li>
</xsl:template>
</xsl:stylesheet>
sa XML ulaznom datotekom prikazanom gore rezultira u narednom XHTML (razmak je prilagođen zbog čitljivosti):
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> <title>Testiranje XML primera</title> </head>
<body>
<h1>Osobe</h1>
<ul>
<li>Markovic, Marko</li>
<li>Petrovic, Petar</li>
</ul>
</body>
</html>
Ovaj XHTML generiše prikazani izlaz kada je pokrenut u veb pregledaču.
Da bi veb pregledač mogao automatski da primenjuju XSL transformaciju u XML dokument na ekranu, XML stylesheet sa instrukcijama za procesiranje može da se ubaci u XML. Tako, na primer, ako je stylesheet u Primeru 2 iznad bio dostupni kao "primer2.xsl", sledeća uputstva se mogu dodati na originalni dolazni XML:[47]
<?xml-stylesheet href="primer2.xsl" type="text/xsl" ?>
U ovom primeru, text/xsl
je tehnički netačno, sudeći po W3C specifikacijama[47] (po kojima je to trebalo da bude text/xml
), ali to je jedina vrsta medija koji je široko podržan od strane brauzera od 2009.
Reference
[уреди | уреди извор]- ^ а б „Transformation”. 19. 9. 2012.
- ^ „XML Output Method”. 19. 9. 2012.
- ^ Kepser, Stephan. „A Simple Proof for the Turing-Completeness of XSLT and XQuery”. Proceedings of Extreme Markup Languages. Архивирано из оригинала 04. 05. 2012. г. Приступљено 30. 11. 2016.
- ^ Michael Kay. „What kind of language is XSLT?”.
- ^ „A Proposal for XSL”. W3C.
- ^ „XML and Semantic Web W3C Standards Timeline” (PDF). Архивирано из оригинала (PDF) 24. 04. 2013. г. Приступљено 30. 11. 2016.
- ^ „XSL Transformations (XSLT) Version 1.1”. W3.org. 24. 8. 2001. Приступљено 12. 7. 2014.
- ^ „XML Path Language (XPath) 2.0 (Second Edition)”. W3.org. 14. 12. 2010. Приступљено 12. 7. 2014.
- ^ „XSL Transformations (XSLT) Version 2.0”. W3.org. 23. 1. 2007. Приступљено 12. 7. 2014.
- ^ „XSL Transformations (XSLT)”. W3.org. 16. 11. 1999. Приступљено 12. 7. 2014.
- ^ „What's New in XSLT 3.0?”. w3. Приступљено 6. 1. 2014.
- ^ Kay, Michael. „A Streaming XSLT Processor”. Balisage: The Markup Conference 2010 Proceedings. Приступљено 15. 2. 2012.
- ^ „Discover the Wonders of XSLT: XSLT Quirks”. Архивирано из оригинала 09. 07. 2011. г. Приступљено 30. 11. 2016. „XSLT is a very specialized language with a distinct declarative flavor.”
- ^ Kay, Michael. „What kind of language is XSLT?”. IBM. Приступљено 13. 11. 2013.
- ^ „XSLT Definitions”. „XSLT declarations define a set of rules and guidelines that are applied during processing according to a predefined algorithm.”
- ^ „RaptorXML”. Приступљено 21. 8. 2013.
- ^ „Exselt XSLT Processor”. Exselt. 6. 6. 2015. Архивирано из оригинала 18. 10. 2016. г. Приступљено 30. 11. 2016.
- ^ „The XSLT C library for GNOME: libxslt”. Приступљено 23. 11. 2012.
- ^ „The XSLT C library for GNOME: The xsltproc tool”. Приступљено 23. 11. 2012.
- ^ „xsltproc man page”. Приступљено 23. 11. 2012.
- ^ „New package: libxslt”. Приступљено 23. 11. 2012.
- ^ „The WebKit Open Source Project - XSLT”. Архивирано из оригинала 05. 09. 2015. г. Приступљено 25. 10. 2009.
- ^ „The XML C parser and toolkit of Gnome: Python and bindings”. Приступљено 23. 11. 2012.
- ^ „XML::LibXSLT - Interface to the GNOME libxslt library”. CPAN. Приступљено 23. 11. 2012.
- ^ „libxslt-ruby”. Приступљено 23. 11. 2012.
- ^ „libxml”. Приступљено 23. 11. 2012.
- ^ „cl-libxml2 High-level wrapper around libxml2 and libxslt libraries”.
- ^ „TclXML”. Приступљено 21. 5. 2013.
- ^ „libxml++”. sourceforge.net. Приступљено 23. 11. 2012.
- ^ „Command Line Transformation Utility (msxsl.exe)”. Microsoft. Приступљено 22. 10. 2012.
- ^ „Saxon Client Edition 1.0”. Saxonica. Приступљено 14. 8. 2012.
- ^ „QuiXSLT » QuiX-Tool Suite”. Project.inria.fr. 14. 11. 2013. Приступљено 12. 7. 2014.
- ^ Saxonica. „About Saxon-CE”. Приступљено 16. 6. 2012.
- ^ Frameless. „Frameless XSLT/XPath 2.0 processor”. Приступљено 9. 6. 2014.[мртва веза]
- ^ Delpratt, O'Neil (2013). „XML on the web: is it still relevant?”. XML London 2013: 35—48. ISBN 978-0-9926471-0-0. doi:10.14337/XMLLondon13.Delpratt01. Архивирано из оригинала 13. 03. 2017. г. Приступљено 30. 11. 2016.
- ^ Broersma, Robbert; Van der Kolk, Yolijn (2014). „Frameless for XML - The Reactive Revolution”. XML London 2014: 128—132. ISBN 978-0-9926471-1-7. doi:10.14337/XMLLondon14.Broersma01. Архивирано из оригинала 03. 03. 2016. г. Приступљено 30. 11. 2016.
- ^ „Can't read an XML and/or XSLT in Google Chrome”. Stack Overflow. 2014. Приступљено 12. 7. 2014.
- ^ „Xuriella XSLT”.
- ^ „Plexippus XPath”.
- ^ Saxon: Anatomy of an XSLT processor - Article describing implementation & optimization details of a popular XSLT processor.
- ^ Lumley, John; Kay, Michael (2015). „Improving Pattern Matching Performance in XSLT”. XML London 2015: 9—25. ISBN 978-0-9926471-2-4. doi:10.14337/XMLLondon15.Lumley01. Архивирано из оригинала 15. 04. 2016. г. Приступљено 30. 11. 2016.
- ^ Kay, Michael; Lockett, Debbie (2014). „Benchmarking XSLT Performance”. XML London 2014: 10—23. ISBN 978-0-9926471-1-7. doi:10.14337/XMLLondon14.Kay01. Архивирано из оригинала 04. 03. 2016. г. Приступљено 30. 11. 2016.
- ^ „XSL Transformations (XSLT) Version 2.0”. W3C. Приступљено 19. 10. 2012.
- ^ „Application Media Types”. IANA. Приступљено 19. 10. 2012.
- ^ „XSLT Requirements for Viewing XML in a Browser”. Microsoft. Приступљено 19. 10. 2012.
- ^ Kay, Michael (2008). XSLT 2.0 and XPath 2.0 Programmer's Reference. Wiley. стр. 100. ISBN 978-0-470-19274-0.
- ^ а б „XSL Transformations (XSLT) Version 1.0: W3C Recommendation – Embedding Stylesheets”. W3C. 16. 11. 1999.
Dodatna literatura
[уреди | уреди извор]- XSLT od Doug Tidwell, objavio O’Reilly -978-0-596-00053-0-
- XSLT Cookbook od Sal Mangano, objavio O’Reilly -978-0-596-00974-8-
- XSLT 2.0 Programmer's Reference od Michael Kay ISBN 978-0-7645-6909-8
- XSLT 2.0 and XPath 2.0 Programmer's Referenca od Michael Kay ISBN 978-0-470-19274-0
- XSLT 2.0 Web Development od Dmitry Kirsanov ISBN 978-0-13-140635-3
- XSL Companion, Druga edicija od Neil Bradley, objavio Addison-Wesley ISBN 978-0-201-77083-4
- XSLT and XPath on the Edge (Unlimited Edition) od Jeni Tennison, objavio Hungry Minds Inc, U.S. ISBN 978-0-7645-4776-8
- XSLT & XPath, A Guide to XML Transformations od John Robert Gardner i Zarella Rendon, objavio Prentice-Hall ISBN 978-0-13-040446-6
- XSL-FO od Dave Pawson, objavio O'Reilly ISBN 978-0-596-00355-5
Spoljašnje veze
[уреди | уреди извор]- Dokumentacija
- XSLT 1.0 W3C Recommendation
- XSLT 2.0 W3C Recommendation
- XSLT 3.0 W3C Working Draft
- XSLT - MDC Docs Архивирано на сајту Wayback Machine (26. децембар 2011), Mozilla Developer Network
- XSLT Reference (MSDN)
- XSLT Elements (Saxon)
- XSLT introduction and reference
- XSLT kod biblioteka
- EXSLT Архивирано на сајту Wayback Machine (19. јул 2006) je široko rasprostranjena inicijativa zajednica da obezbede proširenja XSLT.
- FXSL je biblioteka koja sprovodi podršku funkcija višeg reda u XSLT. FXSLT je napisana u samom XSLT-u.
- The XSLT Standard Library pruža XSLT diveloper sa setom XSLT obrazaca za najčešće korišćenih funkcija. Ovo se implementira samo u XSLT, to jest ne koriste se nikakvi dodaci.
- Kernow Архивирано на сајту Wayback Machine (4. јул 2008) GUI za Saxon koji obezbeđuje „i klik interfejs za pokretanje transformacija.
- xslt.js – Transform XML with XSLT Архивирано 2013-01-05 на сајту Archive.today JavaScript biblioteka koje transformise XML u XSLT u pregledaču.
Овај чланак је започет или проширен кроз пројекат семинарских радова. Потребно је проверити превод, правопис и вики-синтаксу. Када завршите са провером, допишете да након |проверено=. |