Alexander Sakharov

XML Transformation

The first of them all is XSLT endorsed by W3C, which gives it the status of standard. Historically, XSLT emerged from style sheets and it bears this stamp of a foreign purpose.

DOM is a language-independent API definition for XML processing. It can only be materialized in the context of its bindings. Java Binding is probably the most important one. It is a very powerfull tool giving you a full control over XML but it also requires a lot of heavy coding and understanding how to process trees. JAXP contains a standard implementation of DOM.

SAX is another API for XML processing. This one is event based. It is not a transformation tool per se but you can use it to generate XML. Again, the most important version of SAX is that for Java. JAXP contains a standard implementation of SAX.

Refal looks to me as the best base for a XML transformation language. It was created by Valentin Turchin in 1960s. Refal was designed for processing well-formed bracketed expressions. See the point? And its design is ingenious.

When I first heard about XML transformations in 1998, I talked to Valentin Turchin on the subject of possible adaptation of Refal for this purpose. I did not even know about the existence of XSLT at the time. I do not know what state XSLT was in then - whatever. I admit I did not do much to push the idea of using Refal for XML transformations. This web page is an attempt to fix it even though a chance seems to be gone already.

Valentin Turchin wrote an article about the usage of Refal for XML transformations: Refal: The Language for Processing XML Documents This article explains how to use Refal to transform XML. In my opinion Refal is not immediately ready for this task. The following adaptation could turn it into a solid XML transformation language:

XML Transformation Languages
This is a collection of links covering the following:
STX, FTX, HaXml, XMLLambda

XML transformation in the Scheme language

XPathScript: An Alternative To XSLT

Apache AxKit

XML transformation flow processing

GXML: Generic XML Transformation Tool

Simple XML Transformation with Perl

XMLTrans: a Java-based XML Transformation Language for Structured Data


Need to relax? Try brain teasers. I would recommend those marked 'cool'.