!

Dette materialet blir ikke lenger vedlikeholdt. Du vil finne oppdatert materiale på siden: http://borres.hiof.no/wep/

XSLT
XMLSpy
XT
4Suite
lxml
Saxon
Xalan
WXT
Børre Stenseth
XSL >XSLT

XSLT

Hva
Introduksjon av XSLT som et språk for dokumenttransformasjoner, eXtensible Stylesheet Language Transformations

XSLT er utviklet for beskrive transformasjoner av XML dokumenter for ulike formål. Vi skal kunne ekstrahere, sortere, beregne, og slå sammen data og produsere nye dokumenter. Slike nye dokumenter kan være XML, HTML eller TEXT, i prinsipp hvilket tekstformat vi måtte ønske.

Disse modulene er ikke noen komplett inføring i XSLT. Det er all grunn til å lese litteraturen og å bruke W3C. I tillegg til disse sidene finner du i dette materialet XSLT brukt blandt annet i eksempelet Olympiade .

XSLT kommer i flere versjoner. I dette materialet vil du finne bruk av XSLT 1.0. Versjon 2.0 er tilgjengelig i en del verktøy.

xslt1
XSL transformation

I dette materialet vi du finne eksempler på XSLT brukt til å lage:

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_1hugin. 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.

Referanser
  1. XML Spy Altova www.xmlspy.com 14-03-2010
  1. 4Suite XML i Python 4Suite.org 4suite.org/index.xhtml 14-03-2010
  1. lxml - XML and HTML with Python lxml.de/ 03-08-2011
  1. XML Resources James Clark www.jclark.com 14-03-2010
  1. Saxon XSLT sourceforge.net sourceforge.net/projects/saxon 14-03-2010
  1. Xalan XSLT apache.org www.apache.org 14-03-2010
  1. WXT (Web XML Tool) HIOF www.it.hiof.no/wxt/wxtsite/ 14-03-2010
  1. XSLT 1 W3C www.w3.org/TR/xslt 14-03-2010
  1. XSLT 2 W3C www.w3.org/TR/xslt20/ 14-03-2010
  1. MSXML MSDN msdn.microsoft.com/ 14-03-2010
  1. XSL Transformations Wikipedia en.wikipedia.org/wiki/XSL_Transformations 14-03-2010
Vedlikehold
Børre Stenseth, oktober 2007
( Velkommen ) XSL >XSLT ( Basis )