Thanks to pointers from Michael Kay:
RXSLT
"Real XSLT": http://www.wilmott.ca/rxslt/rxslt.html
template doc
apply-templates
template doc/title
<H1>{apply-templates}</H1>
template doc/para
<P>{apply-templates}</P>
XSLTXT
Very old (2002), abandoned long ago. Example:
tpl .name "foo" ("a", "b")
"SELECT "
val "$a"
" FROM "
val "$b"
http://savannah.nongnu.org/projects/xsltxt
LX
A lisp-ish compact XML notation. Not sure if there is any special treatment for XSLT:
;; The XSLT identity transformation
(lx:namespace ((#f "http://www.w3.org/1999/XSL/Transform"))
(stylesheet version: 1.0
(template match: "node()|@*"
(copy
(apply-templates select: "@*|node()")))))