XML transformation language

This is an old revision of this page, as edited by Finn-Zoltan (talk | contribs) at 20:54, 22 July 2004 (Existing languages). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An XML transformation language is a programming language designed specifically to create an awesome output document based on an input XML document.

There is two special case of transformation

  • XML to XML : the output document is an XML document.
  • XML to Data : the output document is a byte stream.

XML to XML

File:Xml transformation.png
An XML to XML transformation

As XML to XML transformation outputs XML document, it is current to chain XML to XML transformation to form XML pipelines

XML to Data

XML to Data transformation contain some important case. The most notable one is XML to HTML, as an HTML document is not an XML document.

Existing languages

XSLT
XSLT is the best known XML transformation language. The XSLT 1.0 W3C recommendation was published in 1999 together with XPath 1.0, and it has been widely implemented since then. XSLT 2.0 is expected to be released soon as a W3C recommendation and early implementations of the specification like SAXON 8 are already available.
XQuery
XQuery is also bound to become a W3C standard. XQuery is not an XML application, like XSLT. Consequently its syntax is much lighter. The language is based on XPath 2.0. XQuery programs cannot have side-effects, just like XSLT and provides almost the same capabilities (for instance: declaring variables and functions, iterating over sequences, using W3C schema types), even though the program syntax are quite different. In addition to the syntax, the main difference between XSLT and XQuery is the XSLT push processing model, where certain conditions of the input document trigger the execution of templates, which is not shared with XQuery.
STX
STX (Streaming Transformations for XML) is inspired by XSLT but has been designed to allow a one-pass transformation process that never prevents streaming. Implementations are available in Java (Joost) and Perl (XML::STX).
XML Script
An imperative scripting language inspired by Perl that uses the XML syntax. XML Script supports XPath as well as its proprietary DSLPath for selecting nodes from the input tree.
FXT
A Functional XML Transformation Tool, implemented in Standard ML.
XDuce
A typed language with a lightweight syntax (compared to XSLT). The implementation is written in ML.
CDuce
Extends XDuce to a general-purpose functional programming language, see CDuce homepage.
Xtatic
Applies techniques from XDuce to C#, see Xtatic homepage.
HaXml
A library and collection of tools to write XML transformations in Haskell. Its approach is very consistent and powerful. Also see this paper about HaXml published in 1999 and this IBM developerWorks article.
XMLambda
XMLambda (XMλ) is described in a 1999 paper by Erik Meijer and Mark Shields. No implementation is available.