XSLT
Wikipedia
XSLT (lyhenne sanoista Extensible Stylesheet Language Transformations) on XML-pohjainen kuvauskieli XML-tiedostojen muunnoksiin. Kielen perusperiaatteisiin kuuluu, että alkuperäistä dokumenttia (tässä tapauksessa XML-dokumenttia) ei muuteta, vaan pikemminkin pinnoitetaan aivan kuten Cascading Style Sheets tekee hypertekstille (HTML- ja XHTML-dokumenteille). XSLT-kuvauskieli ei ota myöskään kantaa ulosantiin, jolloin yhdestä ja samasta XML-dokumentista on mahdollista saada ulos niin HTML-taittoinen, ihmisluettava sivu kuin konekielinen, esimerkiksi CSV-tiedostokin.
XSLT kehitettiin aikaisemman, Extensible Stylesheet Languagen seuraajaksi World Wide Web Consortiumin toimesta vuosien 1998 ja 1999 aikana. Tuolloin kehitettiin myös XSL Formatting Objects sekä XPath. Nykyisin on yleisimmin käytössä on versio 1.0, mutta 3. lokakuuta 2005 XSLT 2.0 myönnettiin alustava suositus W3C:n toimesta.
Sisällysluettelo |
[muokkaa] XML-dokumentin muuntaminen
<?xml version="1.0"?> <henkilot> <henkilo id="1234-A"> <etunimi>Matti</etunimi> <sukunimi>Meikäläinen</sukunimi> </henkilo> <henkilo id="5678-C"> <etunimi>Maija</etunimi> <sukunimi>Meikäläinen</sukunimi> </henkilo> </henkilot>
Yllä oleva dokumentti sisältää siis kaksi henkilöä, Matti Meikäläisen sekä Maija Meikäläisen. Kun mietitään selkokielisempää esitystapaa, voitaisiin dokumentti esittää esimerkiksi HTML-taulukolla:
<?xml version="1.0"?> <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 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> <!--XHTML-dokumentin ylätunniste--> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi" lang="fi"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8951-1" /> <title>Meikäläiset</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <!--taulukko--> <xsl:template match="henkilot/*"> <h1>Henkilöt</h1> <table> <tr> <th>id</th> <th>Etunimi</th> <th>Sukunimi</th> </tr> <xsl:for-each select="henkilo"> <tr> <td><xsl:value-of select="@id"/></td> <td><xsl:value-of select="etunimi"/></td> <td><xsl:value-of select="sukunimi"/></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet>
Toisaalta CSV-tiedoston saanti samasta tiedostosta tapahtuisi taas:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text"/> <xsl:template match="/"> "id","Etunimi","Sukunimi" <xsl:for-each select="henkilot/henkilo"> "<xsl:value-of select='@id'/>","<xsl:value-of select='etunimi'/>","<xsl:value-of select='sukunimi'/>" </xsl:for-each> </xsl:template> </xsl:stylesheet>
[muokkaa] XSLT:n ominaisuudet
XSLT sisältää valintalauseissa täydellisen tuen XPath:lle, ja sisältää itsessään seuraavat valitsimet:
- <xsl:template>
- Käytetään mallineiden luomiseen
- <xsl:value-of>
- Käytetään tietojen noutamiseen xml-tagista
- <xsl:for-each>
- Käytetään tietojen läpikäymiseen moniulotteisessa xml-datataulukossa
- <xsl:sort>
- Käytetään lajittelemaan moniulotteisen xml-datataulukon tietoja
- <xsl:if>
- Käytetään toteuttamaan tietyn ehdon täyttävä kohde
- <xsl:choose> ja <xsl:otherwise>
- Käytetään toteuttamaan moniulotteinen JA-TAI ehtolauseke
Valitsimien lisäksi XSLT:lla on joitakin omia funktioita. Näitä ovat:
- current()
- document()
- element-available()
- format-number()
- function-available()
- generate-id()
- key()
- system-property()
- unparsed-entity-uri()
[muokkaa] Katso myös
[muokkaa] Aiheesta muualla
- W3Schools lyhyt opastus XSLT:hen (englanniksi)