1. Getting Started with some early reading
2. XSLT-FO Chapter
3. Functional programming in XSLT
4. Which standards body?
5. XSLT Wiki


Getting Started with some early reading

Edward Medina

A presentation by Norman Walsh

Here are a few sites about XSL Microsoft MulberryTech wdvl.internet

and here are some xsl:fo (That's formatting xsl) sites that might help

FOP RenderX Passive TeX

Joshua Allen adds:

If you are using Internet Explorer or MSXML, check netcrucible
vbxml has some beginner/tutorial type info on XSL
xml101 has some tutorials
Microsoft has a "getting started with XSL" page.
Mulberrytech XSL-List -- Results of Search
Norm Walsh - a Block spacing example
metalab XSL Transformations
The Zvon XSL Tutorial (While this site is very useful, the huge number of frames can crash your browser) XSLT .com - Resource page for xml , xsl , xslt tutorials
THE How it should be done site The Home Page - XSL DocBook Stylesheets

Heather Lindsay adds

I recommend that you try out some tutorials to get a better understanding of how XSLT works. Here are some sites that I feel will be helpful for you to get started. Also, check out the FAQs for this list which contain many useful hints (follow the link at the bottom of all xsl-list emails to find the FAQs). Mike Kay's book, XSLT Programmer's Reference, is an excellent source and is available in book stores.

Other links are:

The Mulberrytech quick reference
The Zvon tutorials
Jeni's pages


XSLT-FO Chapter

Elliotte Rusty Harold

I'm happy to announce that I've posted a completely updated version of Chapter 15 of the XML Bible, XSL Formatting Objects, at Cafe con Leche:


Functional programming in XSLT

Dimitre Novatchev.

"Dynamic Functions using FXSL: Composition, Partial Applications and Lambda Expressions"

This one is at least as important (if not more) than the first article on functional programming in XSLT. I think it will be most useful for people, who are interested in further understanding and using FP in XSLT.


1. Functional composition, curried functions, partial applications and lambda expressions.
2. Implementation of functional composition in XSLT. Examples.
3. Implementation of currying and partial application in XSLT.
4. Using currying and partial application - the iter and power functions.
5. Creating a new function dynamically - the calculator-store problem.

And two excerpts:

"This article is a follow-up from the recent publication "The Functional Programming Language XSLT". Provided here is the answer to a FAQ about functional programming in XSLT: Can functions be created dynamically during run-time and what are some general ways to achieve this?. Using the XSLT functional programming library FXSL, examples are given of performing functional composition, currying and partial application of functions, as well as of dynamically creating a function, which corresponds to a lambda expression."

"This article demonstrated and explained the details of an XSLT implementation of three major ways of dynamically creating functions and using them:

The XSLT implementation of partial application is more powerful than the Haskell one, because it allows binding of arguments regardless of order. At the same time partial application in XSLT is very convenient, using the traditional XSLT way of specifying arguments through xsl:with-param.

Currying and partial application support has been included in the latest release of the functional programming library FXSL.

Also demonstrated was a general way to model and implement in XSLT objects having inheritance and virtual functions."


Which standards body?

Rick Jelliffe

Standards bodies position themselves to address different areas. As a rough guide:

* ISO/IEC to look after specs where there is need for an international consensus, or to rubberstamp some national or UN specifications, or for establishing multi-application vocabularies, for product-related standards, for artificial languages, and for non-Internet/non-WWW technology[1]

* Unicode Consortium to look after character properties and universal encodings

* IEEE to look after the lowest layers, such as ethernet

* IETF to look after Internet protocols and specs, just past the transport layer: so MIME, and TCP/IP belong at IETF

* W3C to look after WWW protocols and specs to bring the web to its full potential,: so HTML, XML, RDF belong at W3C

* OASIS to look after applications built on top of the WWW and ISO: so DOCBOOK and ebXML belongs at OASIS.

Then this is complicated by history: IETF has old RFCs for HTML. It is further complicated by using XML in protocols: should SOAP and BLOCKs be at IETF, W3C or OASIS? It is further complicated by party spirit: if someone is comfortable working in one standards body and has relationships there, it is natural to continue working out the ramifications of some base standard there (hence XML Schemas and even more tenuously XQuery?). Often there is more than one good way to do something: if one body puts out a spec that others feel is not up to scratch or misses the mark, an alternative standards effort will start perhaps at a standards body which is not really the nomimal best fit.

I think in our virus and spam-ridden world, there may be more sympathy to the idea that we need to encourage viable "second-stream" technologies. Even though standards bodies should focus on certain areas, there is no need for rigid demarcations which inhibit second-stream technologies.

[1] "Standards are documented agreements containing technical specifications or other precise criteria to be used consistently as rules, guidelines, or definitions of characteristics, to ensure that materials, products, processes and services are fit for their purpose." Src:



Abel Braaksma

now it's gone live: a wiki for XSLT, XPath and XQuery. It focuses on all three languages, and all their aspects. Though XSLT 1 may be covered, I hope that most articles that emerge will follow up on the new Recommendations.

My aim is to have, after some time, an entry point for XSLT professionals, hobbyists and language adepts, a resource they can count on. The current status of information from the internet are an FAQ, which largely covers XSLT 1 and many sites teaching you the basics of either XSLT 1 or 2. On XPath there are several resources, too, but what I am missing is a good collection that covers all aspects of the languages. With this site, I hope to fill this gap and provide a growing reference of both in-depth information and trivialities.

It has just started. There are no articles at all at the moment. It is a Wiki, using the same concepts of Wikipedia (in fact, it uses the same software, too), which means that everybody can add content: I'd like to invite you all to write an article every now and then so that this site may become a high quality repository of XSLT related material.

The wiki can be found at You can create an account, or edit topics directly, in which case your ip number will be logged.