XSL Teppo Räisänen
Yleistä XSL = EXtensible Stylesheet Language Periaatteessa XML dokumentteja voidaan muotoilla CSS-tyyleillä Muotoilu on kuitenkin rajoittunutta ja kömpelöhköä Toisin kuin HTML-kielessä selaimet eivät tunnista XML-elementtien oletusmuotoiluja
Yleistä XSL koostuu kolmesta osa-alueesta XSLT = XML-dokumenttien muunnoksiin käytettävä kieli XPath = Kieli XML-dokumenttien rakenteissa navigointia varten XSL-FO = Kieli XML-dokumenttien muotoilua varten
XSLT XSLT = XSL Transformations Tärkein osa XSL-tekniikkaa XSLT-tekniikkaa käyttäen voidaan XML- dokumentti muuntaa toisen tyyppiseksi dokumentiksi (esim. XML – (X)HTML) Meillä voisi olla vaikkapa tilanne, missä yhdestä XML-tiedostosta halutaan generoida XHTML- ja WML-tiedostot
XSLT Tekniikkaa käyttäen voidaan Lisätä / poistaa elementtejä ja attribuutteja Järjestää elementtejä ja vaihtaa niiden sijoituksia dokumentissa Muodostaa ehtoja, jotka vaikuttavat esim. elementtien näkyvyyteen XSLT:n voidaan sanoa käsittelevän lähderakennepuuta (source) ja muodostavan kohderakennepuun (target/result) XML on lähdepuu, XHTML voisi olla kohdepuu
XSLT-muunnoksen vaiheet XML-tiedosto sisältää rakenteen, XSL-tiedosto muunnosehdot XSL-tiedosto lisätään XML-dokumenttiin linkittämällä (vrt. CSS): Selain joka tukee XSL-tekniikkaa (Esim. IE >= 8) muotoilee tuloksen XSL-tiedoston ohjeiden mukaisesti
XSLT Käytännössä muunnoksen aikana etsitään lähdedokumentista osia, jotka vastaavat ennalta määriteltyä pohjaa (template) Löydetyistä osista muodostetaan XHTML:ää Saman dokumentin käsittelyssä voidaan käyttää useitakin rakennepohjia
XSLT-muunnoksen vaiheet.xsl-dokumentti kuvataan määreellä TAI Ilmaukset ovat synonyymeja Lisäksi määrittelyssä kuvataan nimiavaruus: xmlns:xsl= SL/Transform Kertoo, että xsl-alkuiset tagit liittyvät XSLT:hen
XSLT-muunnoksen vaiheet Käytännössä.xsl-dokumentti alkaa aina joko Tai.. Käytetään tällä kurssilla ylempää syntaksia…
XSLT - elementit.xsl-dokumentti koostuu sääntökokoelmista = template - elementillä ilmoitetaan yksittäinen template match-attribuutilla yhdistetään template tiettyyn elementtiin match="/" –asetus yhdistää templaten XML- dokumentin juurielementtiin (xPath)
XSLT - elementit -elementillä voidaan noutaa XML-dokumentista sen solmun sisältämä arvo Hakupolku ilmoitetaan select-attribuutin arvona XPath-notaatiolla
XSLT - elementit Tuloksia voidaan suodattaa antamalla select- attribuutille lisämääre Kriteeri annetaan hakasulkeissa avain- arvoparina Operaattorit: = != < (pienempi kuin, nroarvoille) > (suurempi kuin, nroarvoille)
Esimerkki Tutustu cd.xml ja cd.xsl tiedostoihin /esimerkit/esim1.xml /esimerkit/esim1.xsl
XSLT - elementit Muita hyödyllisiä XSL-elementtejä
XSLT - elementit käy läpi kaikki elementit Esim cd.xml dokumentissa on 2 cd:tä, mutta esimerkki printtaa niistä vain ensimmäisen -elementillä voidaan tulostettava sisältö järjestää silmukan sisällä select-arvona annetaan kenttä, jonka mukaan lajittelu tehdään
Esimerkki Lisää seuraavat rivit esim1.xsl:ään
XSLT - elementit -elementin avulla voidaan muodostaa ehtorakenteita if-elementtiin liitetään test-attribuutti joka sisältää varsinaisen vertailun
XSLT - elementit If-else if-… muotoisia ehtoja voidaan muotoilla käyttämällä elementtejä Näistä kaksi jälkimmäistä toimivat lapsielementteinä
Esimerkki Tutki catalog.xml ja catalog.xsl tiedostoja /esimerkit/catalog.xml /esimerkit/catalog.xsl
Web server+ XML + XSL Jos haluat ajaa XML+XSL tiedostoja students- palvelimelta (tai muulta web-serveriltä) niin jos XSLT- muotoilut eivät toimi tee näin: Tee kansioon, missä XML-tiedostot ovat.htaccess tiedosto ja kirjoita sinne rivit: AddType text/xml.xsl AddType text/xml.xml Tiedostolle pitää antaa oikeudet chmod 777.htaccess
Kotitehtävä Perehdy harjoitustyön XML + XSLT osuuteen