<xsl:if test="@author='Jones'">Hello Mrs. Jones!</xsl:if>
The start-tag and end-tag of every statement echo the syntax of the opening and closing parenthesis of Lisp. The designers of XSL wanted a data driven language: it strongly encourages the inversion of control design pattern. The language assumes the processing of an XML file as a tree to produce a text-based output document, generally HTML, XML, plain-text, or PDF. XSL programmers can declare variables, but not change their values. The language provides several data-driven looping constructs, but programmers can still construct arbitrary loops without altering any variables by using recursion (as in Scheme).
The XSL family comprises three languages:
W3C recommendations specify each of the three languages.
Early Working Drafts that preceded the XSLT Recommendation didn't have the "T" at the end of XSLT; they used the term XSL instead; and the language included rudiments of what later became XPath.
A W3C working group on CSS XSL started operating in December 1997, with Sharon Adler and Steve Zilles as co-chairs, with James Clark acting as editor (and unofficially as chief designer), and Chris Lilley as the W3C staff contact. The group released a first public Working Draft on 18 August 1998. XSLT and XPath became W3C Recommendations on 16 November 1999 and XSL-FO reached Recommendation status on 15 October 2001.
Microsoft's MSXML, first released in March 1999, contained an incomplete implementation of the December 1998 Working Draft of XSL. Since the mid-2000 release of MSXML 3.0, MSXML has had complete support for both XSLT 1.0 and the older dialect. MSXML 3.0 became the default XML services library of Internet Explorer (IE) upon the release of IE 6.0 in August 2001. Older versions of IE could use MSXML 3.0 only with a custom install in "replace mode".
Some commentators use the term "XSL" to refer to the dialect described in the Working Draft and as implemented in MSXML, including MSXML-specific extensions and omissions. Other commentators generally refer to it as WD-xsl.
XSL Transformations (XSLT) currently has many implementations available. Several web browsers, including Internet Explorer (using the MSXML engine), Firefox, Mozilla, and Netscape (all using the TransforMiiX engine), and Opera (native engine), all support transformation of XML to HTML through XSLT. Other notable implementations include Saxon and Xalan.
Support for XSL Formatting Objects has become more widespread as of late:
XSL Formatting Objects support other file formats to varying degrees: