XSLT = [XSL] '''T'''ransformations. The specification can be found at http://www.w3.org/TR/xslt [[Explain what XSLT is.]] [[Point to http://phaseit.net/claird/comp.text.xml/XSLT.html also.]] The March 2002 '''Linux Journal''' [http://www.linuxjournal.com] leads off with an introduction to XSLT [http://www.linuxjournal.com/article.php?sid=5622] which features [tDOM]. ---- Two implementations are already in industrial production. [Zveno]'s [TclXSLT] .... Early in development, Zveno also wrapped [James Clark]'s XSL processor with [TclBlend] (!). This is now obsolete. Zveno's standard [TclXSLT], like its [TclXML], comes in both [pure-Tcl] and compiled-with-C flavors. [Steve Ball]: No, that's not true. TclXSLT is a wrapper for libxslt and does not have a pure-Tcl implementation. [Jochen Loewer]'s [tDOM] includes XSLT (and [XPath]!) capabilities which make it the fastest raw engine available, better even than any of the commercial Java offerings. ---- [Neil Madden], aware of the existing XSLT implementations, is considering wrapping ([Apache]'s) Xalan or even coding a subset of XSLT in pure Tcl. ''[NEM]'' - I've given up on this as I managed to compile [tDOM] with XSLT support for the platforms I need. Which platforms? I've been searching for an [XSLT] engine that would do some simple transforms on Linux, MacOS 8.1, and Win32. I've compiled [TclXSLT] on Win32, but can't get it to do any transforms without crashing. That's about as far as I've gotten. My plan was going to involve just calling xsltproc as an external process on Win32 and Linux, and disabling the XSLT-related parts of the Mac version of my program. But if [tDOM] works on MacOS, then I can use that instead. Which tDOM binaries have you successfully compiled and built? --''[unDees]'' ---- Would Graphlet [http://www.infosun.fmi.uni-passau.de/Graphlet/] make for a nice XSLT front end? What are the other [Graph editors]? [AK] I do not believe so, at least not at first glance. At its core XSLT is a tree transformation language. ---- [[Recommend Mike Kay's XSLT Programmer's Reference.]] [RS] has been reading his paper "What kind of language is XSLT?". Some quotes: "Although XSLT is based on functional programming ideas, it is not yet a full functional programming language, as it lacks the ability to treat functions as first-class data type." - "The XSLT language allows variables to be defined, but does not allow an existing variable to change its value - there is no assignment statement." Some code snippets compared, just to give an impression. First Tcl: variable foo 42 $foo ;# in some output context foreach i $list {...} XSLT: ... Apart from $, @ may also prefix a variable name - possibly scalar/array distinction as in [Perl]? [Steve Ball]: @ references an attribute value. It does not dereference a variable. Only $ does that. ---- Another example: a function to format a number left-justified fixed-width: It's called like this: The whole stuff above roughly amounts to Tcl's proc formatNum number {format %-5d $number} set fstring [formatNum $cred] ---- Another intriguing code base for XSLT processing is the Sablotron [http://www.gingerall.com/charlie/ga/xml/p_sab.xml] open-source engine, written in C++. ---- [Category Acronym]