1 / 22

7. XSL

7. XSL. Extensible Stylesheet Language – jezik za definiranje stila XML dokumenta. Što je XSL?. XSL = Extensible Stylesheet Language (proširivi jezik stilskog uzorka) XSL definira kako će se neki XML dokument prikazati u pregledniku i kakve elemente posjeduje Nastao je 1999. kao W3C preporuka

robin-noble
Download Presentation

7. XSL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 7. XSL Extensible Stylesheet Language – jezik za definiranje stila XML dokumenta

  2. Što je XSL? XSL = Extensible Stylesheet Language (proširivi jezik stilskog uzorka) • XSL definira kako će se neki XML dokument prikazati u pregledniku i kakve elemente posjeduje • Nastao je 1999. kao W3C preporuka XSL se sastoji od tri dijela: • XSLT – jezika za transformaciju XML dokumenata • XPath - jezika za pozicioniranje (navigaciju) u XML dokumentima • XSL-FO - jezika za formatiranje XML dokumenata

  3. XSLT – XSL Transformations • XSLT je važan dio XSL-a, koristi se za transformaciju XML dokumenta u HTML dokument, ili drugi XML dokument (XHTML) • Funkcionira na način da stableno transformira XML dokument u drugi XML dokument (npr. XHTML) • XSLT pri transformaciji koristi XPath da bi definirao dijelove izvornog dokumenta koji odgovaraju jednom ili više unaprijed definiranh uzoraka (predefined templates). Kad se odgovarajući uzorak podudara, XSLT će transformirati taj dio izvornog dokumenta u rezultirajući dokument.

  4. Deklaracija stilskog uzorka XSL • Ako neki dokument sadrži XSL stilski uzorak, tada treba imati korjenski element: <xsl:stylesheet> ili <xsl:transform> (imaju isto značenje) • U narebi se poziva i xmlns (prostor za nazive) na W3C (kao i broj verzije), tako da cijela naredba izgleda ovako: <xsl:stylesheet version="1.0“ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  5. Primjer 1 • Pretpostavimo da želimo ovaj XML dokument pretvoriti u html dokument kako bi se prikazao u pregledniku kao html: <?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd> </catalog> Za izgled ovog XML dokumenta u pregledniku kliknite na P7_primjer1.xml

  6. Primjer 1 - nastavak • Prethodni XML dokument će u pregledniku izgledati ovako: Oznake +, - omogućuju prikaz “roditeljskih” elemenata i njihove “djece”, te zatvoreni i otvoreni prikaz pojedinih grana u stablu

  7. Primjer 1 - nastavak • Ako želimo ovaj dokument uklopiti (transformirati) u HTML oblik, kako se u pregledniku ne bi vidjeli XML tagovi nego samo tekst, potrebno je s pomoću editora napraviti posebnu datoteku stila (npr. stil.xsl) • Na početku datoteke upisuju se naredbe za deklaraciju stila: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> Ova naredba ukazuje da se neće koristiti neki gotov predložak za stil

  8. Primjer 1 - nastavak • U nastavku započinjemo HTML tagovima i umećemo posebne XSL tagove: <html> <body> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Title</th> <th align="left">Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> Započinje tablica s okvirom Ovdje prvi red (zaglavlje) tablice Ovdje je petlja iteracije “for-each” (koja određuje da se po jedan red tablice prikazuje za svaki naslov CD-a i umjetnika (artist)

  9. Primjer 1 - nastavak • Na kraju se upisuju završni tagovi: </body> </html> </xsl:template> </xsl:stylesheet> • Zatim još treba povezati XML dokument sa XSL dokumentom: to ćemo učiniti tako da dodamo XSL referencu unutar XML dokumenta ("cdcatalog.xml"): <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href=“P7_Primjer1.xsl"?> <catalog> .... Ovo je nova naredba koja se dodaje u XML dokument

  10. Primjer 1 – rezultat transformacije • Kao rezultat, XML dokument sada u pregledniku izgleda ovako (što se može vidjeti i klikom miša na P7_Primjer1_transformirani.xml): U pregledniku sada dobivamo uređeni tekst (prema HTML tagovima), te prikazani elementi u retku tablice iz povezanog XML dokumenta

  11. Predlošci u XSL-u • Skupovi pravila za uređivanje XSL stilskog uzorka zovu se predlošci (templates). • Svaki predložak sadrži pravila koja će se primijeniti na određenom čvoru u stablu dokumenta • Oznaka za korištenje predloška je: <xsl:template>Element - ova naredba označava početak XSL predloška • U toj naredbi često se piše atribut “match” kojemu se pridružuje pod navodnicima XPath izraz (odnosno korjenski XML element s kojim se ovaj predložak mora podudarati). Ako je kao XPath izraz navedna samo kosa crta “/”, tada se koristi cijeli XML dokument kao korjenski element za podudaranje, npr: <xsl:template match=“...”>

  12. Izlučivanje vrijednosti iz XML dokumenta • Kako bi se iz XML dokumenta izlučile upisane vrijednosti u prikazale s pomoću HTML naredbi, koristi se naredba: <xsl:value-of> element Npr. ako se u retku neke tablice želi u jednoj ćeliji ispisati element “title” iz XML dokumenta, a u drugoj element “artist”, upisat ćemo ove naredbe: <tr> <td><xsl:value-of select="catalog/cd/title"/></td> <td><xsl:value-of select="catalog/cd/artist"/></td> </tr> Pod navodnicima se navodi neki XPath izraz, odnosno XML element koji će se prikazati

  13. Iterativno izlučivanje vrijednosti iz XML dokumenta • Rezultat prethodnih naredbi (ako XML dokument pogldamo u pregledniku) će biti ovakva tablica sa podacima za jedan CD: • Ako želimo prikazati više CD-ova iz XML dokumenta, tj. više korjenskih elemenata <cd> ... </cd> potrebno je upisati petlju iteracije pomoću naredbi: <xsl:for-each> element

  14. Umetanje petlje iteracije • Ako u prethodni primjer ispred retka tablice umetnemo naredbu za početak petlje: <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> • Tada će se svi elementi <cd> ... </cd> kojima je roditeljski element <catalog>, prikazati onoliko puta koliko u povezanom XML dokumentu bude umetnuto tih elemenata <cd>, i prikazat će se toliko redaka tablice. Rezultat:

  15. Sortiranje izlaznih podataka • Ukoliko želimo prikazati XML elemente sortirane po nekim kriterijima po abecedi teksta ili redosljedu brojeva, koristi se naredba: <xsl:sort> koji se dodaje unutar <xsl:foreach> elementa u XSL datoteku, npr: <xsl:for-each select="catalog/cd"> <xsl:sort select="artist"/> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> Prikaz elemenata dobit će se sortiran prema imenu umjetnika

  16. Filtriranje izlaznih podataka • Ako se prema nekom kriteriju žele filtrirati podaci koje prikazujemp iz XML dokumenta, treba filter upisati u atribut “select” na sljedeći način: • <xsl:for-each select="catalog/cd[artist='Bob Dylan']"> • Ovaj primjer određuje da će se prikazati podaci o cd-u samo ako je umjetnik Bob Dylan

  17. Filterski operatori U filteru se mogu koristiti ovi operatori za usporedbu izraza: • = (equal) • != (not equal) • &lt; less than • &gt; greater than

  18. Uvjetna provjera izlaza • Ako želimo prikazati neki izlazni podatak samo ako odgovara određenom uvjetu, koristi se element <xsl:if> • Sintaksa: <xsl:if test="expression"> ... ... Ovdje naredbe za prikaz izlaza koji će se prikazati samo ako je uvjet ispunjen... ... </xsl:if>

  19. Dodavanje uvjetne provjere • Ako želimo dodati uvjetnu provjeru, <xsl:if> element dodaje se unutar <xsl:for-each> elementa u XSL datoteci, npr: <xsl:for-each select="catalog/cd"> <xsl:if test="price &gt; 10"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:if> </xsl:for-each> Izlaz će se prikazati samo ako je cijena CD-a veća od 10

  20. Transformacija XML u XHTML dokument • Osim ručnim upisivanjem tagova, transformacija XML dokumenta u XHTML dokument može se raditi: • S pomoću XML editora • S pomoću web aplikacije koja se izvršava na poslužitelju, npr. ASP aplikacija Profesionalni XML editori omogućuju: • Automatsko dodavanje završnih tag-ova na sve otvorene tag-ove • Usmjeravanje na pisanje valjanog XML-a • Provjeru XML-a prema DTD • Provjeru XML-a prema XML Schemi • Označavanje XML sintakse posebnom bojom radi preglednosti dokumenta

  21. Zaključak • XSL je jezik za definiranje stila XML dokumenta • XSL se sastoji od tri dijela: XSLT – jezika za transformaciju XML dokumenata, XPath - jezika za pozicioniranje (navigaciju) u XML dokumentima i XSL-FO - jezika za formatiranje • XSLT uzorak se upisuje u posebnoj xml datoteci, treba ga deklarirati naredbom <xsl:stylesheet>, a određuje način kako će se prikazati podaci iz XML dokumenta u pregledniku • XSL omogućava da korisnik vidi XML dokument kao web stranicu, čime se korisnika rasterećuje XML tagova, dok se XML tagovima bavi web aplikacija koja će obraditi podatke

  22. Literatura • Essert, M., Web programiranje, materijali s predavanja, http://www.mathos.hr/wp, 20.02.2008.) • Wikipedia, www.wikipedia.org, 28.02.08. • W3C Consortium, www.w3c.org, 28.02.08. • M. Zekić-Sušac, Računarski praktikum 3, materijali s predavanja, http://www.mathos.hr/rp3, 28.02.08. • http://archive.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html - NCSA html beginner’s guide

More Related