http://www.w3.org/Style/XSL/
http://www.w3.org/TR/xslt
A XSLT transformation can be understood as a function:
result=function(input)
- result
- generated document (XML, html, plain text or other format)
- input
- any XML document
- function
- transformation function denoted in XSLT
Xslt is somehow a successor of DSSSL
and there http://www.topxml.com/xsl/articles/fp/
is an Article, which shows that it really is a FunctionalProgramming
language.
Btw: the length of the examples there suggests somehow,
that it was the right decision to provide DSSSL as well
and aim at more languages.
Philip Wadler has formal approachs to xslt, xquery, xml schema etc:
http://citeseerx.ist.psu.edu/viewdoc/summary;jsessionid=11D02BA36D6A9AADDB65C51608DB1E24?cid=107132
also
http://lambda-the-ultimate.org/node/view/459
and some more xquery
http://lambda-the-ultimate.org/node/view/456 .
C. J. Bex, S. Maneth, F. Neven:
A Formal Model for an Expressive Fragment of xslt.
Note: http://www.geocities.com/SiliconValley/Monitor/7464/emacs/xslt-process/
XSLT C library for Gnome: http://xmlsoft.org/XSLT/
http://www.exslt.org/
XSLT 2.0 http://www.xml.com/pub/a/2002/04/10/xslt2.html
benchmark: http://www.datapower.com/XSLTMark/
The implementation is sketchy/prototypical.
It was derived from an approach to transform SGML documents
using only stream transformers
(first implementation in jfw, sdc 1993;
Caveat in ball
those stream are eventually implemented as Scheme lists
to ease implementation of the xml data base using the
rscheme persistant store.
But that's not really relevant and will be changed.).
That approach has the advantage of lazyness and efficiency
on the expense of a more complicated implementation
since chained and intermixed transformers have to be compiled
on the fly.
The approach has been detailed in
http://www.pms.informatik.uni-muenchen.de/publikationen/PMS-FB/PMS-FB-2004-1.pdf