Summary: XSLT er en slags programmeringssprog. Med XSLT kan man f.eks. transformere XML til HTML.
I modsætning til HTML-dokumenter, der automatisk bliver vist med typografi og layout, når de åbnes i en browser som Internet Explorer eller Firefox, indeholder XML-dokumenter i sig selv normalt ingen information om, hvordan de skal visuelt skal fremstå, og vil derfor blot blive præsenteret i en form for ”rå kode”, når man åbner dem i en browser. Dette er helt tilsigtet: ideen med XML er blandt andet, at et XML-dokument skal kunne vises forskelligt, alt efter hvem målgruppen er, hvad konteksten er, eller hvilket medium dokumentet skal vises i. Og nogle gange skal et XML-dokument slet ikke præsenteres. Det gælder f.eks. i de tilfælde, hvor XML bliver brugt som format for udveksling af data mellem it-systemer, og hvor det overhovedet ikke er nødvendigt, at XML-dokumentet læses af et menneske. I andre tilfælde er en læsevenlig præsentation af XML-dokumenter helt nødvendig, f.eks. hvis de skal publiceres på Nettet og læses af en bruger i en browser.
Man kan give et XML-dokument en visuel form på forskellige måder. En ofte anvendt metode er at koble et CSS-stylesheet til XML-dokumentet. Et CSS-style sheet er et simpelt tekstdokument, der indeholder en række regler, som foreskriver, hvordan indholdet i XML-dokumentet typografisk og layoutmæssigt skal fremstå. I og med at et XML-dokument kan beskrives som en træstruktur, taler man nogle gange om, at et CSS-stylesheet ”pynter” XML-træet. CSS-style sheets er forholdsvis enkle og nemme at udarbejde, men har også visse begrænsninger. Eksempelvis er det vanskeligt med et CSS-style sheet at vise et XML-dokuments enkelte indholdselementer i en anden rækkefølge end den, de optræder i, i selve XML-dokumentet.
Langt mere fleksible er XSLT-style sheets. Med et XSLT-style sheet kan man udtrække og vise XML-indhold på et utal af måder, til forskellige formål, og til diverse medier som f.eks. computerskærm eller mobiltelefon.
XSLT, en forkortelse for Extensible Style Language Transformations, er en slags programmeringssprog til behandling af XML-dokumenter. Programmer udarbejdet ved hjælp af XSLT kaldes for XSLT-scripts, XSLT-transforms eller XSLT-style sheets.
Et XSLT-style sheet er, lige som et CSS-style sheet, et tekstdokument med et sæt af regler. Disse regler er imidlertid ikke regler, som direkte beskriver, hvordan en given datastruktur i et XML-dokument skal præsenteres, men et sæt instrukser, der specificerer, hvordan denne datastruktur skal transformeres. Med et XSLT-style sheet kan man transformere et dokument i et XML-format til et andet; man kan lave det om til HTML, eller man kan konvertere det til en almindelig tekst.
Et XML-dokument, der skal vises på Nettet, skal typisk transformeres til HTML eller XHTML, således at det kan vises i en browser. Rent konkret foregår en XML-til-HTML transformation ved, at en XML-processor, et stykke software, læser XSLT-style sheetet og gennemfører transformationen af XML-dokumentet, også kaldet kildedokumentet, som er foreskrevet i XSLT-style sheetet. Transformationen kan ske på en webserver (”server side”), inden det sendes af sted til eller i slutbrugerens egen browser (”client side”). I begge tilfælde bliver der som output genereret (X)HTML-kode, som kan vises i en browser. Selve koblingen af XML-dokumentet og det tilhørende XSLT-stylesheet kan ske ad flere veje. Meget ofte vil der simpelthen være et link fra kildedokumentet til det style sheet, som XML-processoren skal benytte i forbindelse med transformationen.
(Se en visualisering af, hvordan en XSLT-transformation foregår).
Et XSLT-style sheet kan som sagt opfattes som en samling af transformationsregler. En transformationsregel omfatter normalt to instrukser: en instruks, der angiver, hvad der skal transformeres i kildedokumentet og en anden instruks, der specificerer, hvad resultatet af transformationen skal være. En transformationsregel til et bogkatalog i XML, der skal præsenteres på Nettet, kunne eksempelvis på (nogenlunde) mundret dansk lyde sådan her:
I en XML-til-HTML transformation skulle denne instruks måske formuleres som:
En sådan instruktion ville med andre ord konvertere en XML-datastruktur som:
<krimi>
<forfatter>
<navn>Jens Hansen</navn>
</forfatter>
<forfatter>
<navn>Hans Jensen</navn>
</forfatter>
</krimi>
<ol>
<li>Jens Hansen</li>
<li>Hans Jensen</li>
</ol>
Hvordan transformationsregler rent faktisk kodes i XSLT, og hvordan et XSLT-style sheet egentlig er opbygget, illustreres nedenfor gennem et konkret eksempel. Eksemplet indeholder et kildedokument i XML (en pressemeddelelse), et XSLT-style sheet og den HTML-kode, som genereres, når style sheetet appliceres på kildedokumentet i en XML-processor. Kig på kildedokument, style sheet og output og besvar de tilhørende spørgsmål:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="pressemeddelelse1.xsl"?>
<pressemeddelelse>
<dato>12.12.2008</dato>
<overskrift>Ny dokumentstandard i Opdikt A/S </overskrift>
<resume>Opdikt A/S har i dag offentliggjort planer om at indføre XML som fælles dokumentstandard i hele organisationen</resume>
<indhold>På direktionens møde i dag blev det besluttet at indføre XML som fælles format i virksomhedens Web-baserede kommunikation.
XML vil blive anvendt på virksomhedens intranet, i den Web-baserede markedskommunikation og, sidst men ikke mindst,
som dataudvekslingsformat i forbindelse med e-handelstransaktioner.
Implementeringen af planen varetages af virksomhedens IT-afdeling
og forventes at løbe et halvt år. </indhold>
<kontaktperson>
<fornavn>Hans</fornavn>
<efternavn>Jensen</efternavn>
<afdeling>It-afdelingen</afdeling>
<email>hans@it.opdikt.dk</email>
</kontaktperson>
</pressemeddelelse>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<head>
<title>Pressemeddelelse</title>
</head>
<body>
<p style="font-size:24">Pressemeddelelse</p>
<p align="right"><xsl:value-of select="pressemeddelelse/dato" /></p>
<p style="font-weight:bold; font-size:18">
<xsl:value-of select="pressemeddelelse/overskrift" /></p>
<p><i><xsl:value-of select="pressemeddelelse/resume" /></i></p>
<p><xsl:value-of select="pressemeddelelse/indhold" /></p>
<p><b>Kontakt:</b></p>
<p><xsl:value-of select="pressemeddelelse/kontaktperson/fornavn" />
<xsl:text> </xsl:text>
<xsl:value-of select="pressemeddelelse/kontaktperson/efternavn" />
<xsl:text> </xsl:text>
(email: <xsl:value-of select="pressemeddelelse/kontaktperson/email" />)</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-16">
<title>Pressemeddelelse</title>
</head>
<body>
<p style="font-size:24">Pressemeddelelse</p>
<p align="right">12.12.2008</p>
<p style="font-weight:bold; font-size:18">Ny dokumentstandard i Opdikt A/S </p>
<p><i>Opdikt A/S har i dag offentliggjort planer om at indføre XML som
fælles dokumentstandard i hele organisationen</i></p>
<p>
På direktionens møde i dag blev det besluttet at indføre XML som fælles format i virksomhedens Web-baserede kommunikation.
XML vil blive anvendt på virksomhedens intranet, i den Web-baserede markedskommunikation og, sidst men ikke mindst,
som dataudvekslingsformat i forbindelse med e-handelstransaktioner.
Implementeringen af planen varetages af virksomhedens IT-afdeling
og forventes at løbe et halvt år. </p>
<p><b>Kontakt:</b></p>
<p>Hans Jensen (email: hans@it.opdikt.dk)</p>
</body>
</html>