XSLT
![XSL transformation xslt1](trans.gif)
I dette materialet vi du finne eksempler på XSLT brukt til å lage:
- Nye XML-formater. F.eks.: XML2XML
- XHTML. F.eks.: XML2HTML
- Kommaseparert text (CSV). F.eks.: XML2TXT
- SQL. F.eks.: XML2SQL
- JSON. F.eks.: JSON
- PDF. F.eks.: XML2PDF eller XSL-FO
- RTF. Se: XML2RTF
Strategi
For det første er det selvsagt slik at det vi kan gjøre med XSLT, kan vi programmere med DOM-programmering i alle programmeringsspråk som har en anstendig implementasjon av et DOM-bibliotek. Vi forfølger ikke dette her.
For det andre er det slik at vi kan bruke XSLT direkte fra et program som har implementert et bibliotek for XSLT-transformasjoner. Vi finner slike biblioteker for i hver fall Python, Java, .Net-språkene, som vel er de mest aktuelle. Javascript er et interessant tema i denne sammenheng. Hvorvidt vi kan gjennomføre transformasjoner i Javascript på en nettleser avhenger av hvilke omgivelser den aktuelle nettleseren implementerer.
For det tredje kan vi bruke verktøy som har XSLT-transformasjoner implementert. Det finnes en rekke editorer som gjør dette og det er også slik at de tre nettleserne vi bekymrer oss for (IE, FireFox, Opera og Chrome) kan foreta XSLT-transformasjoner "on-the-fly", altså når en XML-fil lastes opp.
Noen verktøy
Jeg har ikke testet detaljer og finurligheter i disse pakkene, men har testet dem med noen eksempler.
XMLSpy
XMLSpy [1] er et nyttig verktøy for å eksperimentere med XSL-transformasjoner. Vi kan teste ut forskjellige transformasjonsmotorer og vi har en komplett omgivelse for å editere og teste. XMLSpy er, i motsetning til pakkene nedenfor, lisensbelagt og ganske dyr. Vi greier oss fint uten XMLSpy, men det er et godt laboratorium for utvikling og testing av XSLT.
4Suite
4Suite [2] inneholder rutiner for å foreta XSL-transformasjoner i Python. Det ser ut til at det er lite eller ingen utvikling eller vedlikehold av 4Suite. lxml, se under, ser ut til å være et bedre alternativ.
lxml
lxml [3] inneholder, blandt mye annet, rutiner for å foreta XSL-transformasjoner i Python.
XT
James Clark [4] har lansert en fritt tilgjengelig Java-pakke for xml handtering som ser ut til å fungerer greitt.
Der vil du også finne et program xt.exe som lar seg kjøre direkte under windows. Programmet tar xml-fila og transfomasjonsfila som input og produserer en output-fil:
xt input.xml transform.xsl output.xml
Saxon
Saxon [5] er opprinnelig utviklet av Michael Kay og er tilgjengelig fra som open source.
I likhet med XT har Saxon en exe-fil som er direkte kjørbar under windows, instant Saxon. Tilsvarende eksempel som for XT. Forutsetter saxon i pathen, eller at current directory er saxon.:
saxon -o c:\temp\saxonmadefile.html c:\temp\rawmat.xml c:\temp\kokebok.xslt
saxon ?
lister på vanlig vis alle opsjonene.
Xalan
Xalan [6] utvikles av The Apache Software Foundation, som er en organisasjon som arbeider med open source prosjekter.
Xalan er lastet ned og pakket ut på felles/Fag/webprog/xalan-j_2_4_1 på hugin. Det følger med en fyldig forklaring.
Følgende bat-fil gjør den samme transformasjonen som ovenfor, forutsatt at xalan er plassert slik som framgår av classpath-linja i bat-fila:
xalan.bat
Nettleserne
Nettelserenes forhold til XSLT er under stadig utvikling. Vi kan slå fast at alle kan transformere XML-filer ved opplasting. Det som videre er interessant er om vi via Javascript kan lage kontrollerte transformasjoner, se modulen XSLT på klienten
WXT
WXT [7] er et program som blandt annet kan settes opp til å foreta XSLT-transformasjoner, parameterstyrte eller ikke. WXT er et Javaprogram som beytter XALAN som transformasjonsmotor.