Menu

XSieve 1.0.0 released

XSieve is an XML transformation language based on combination of XSLT and Scheme (a Lisp dialect). XSieve make XSLT to be a general-purpose language. Personally for me, XSieve is an alternative to XSLT 2.0. For objectives, read

* http://xsieve.sourceforge.net/index.html#preface
* http://xsieve.sourceforge.net/background.html

XSieve allows to use Scheme for writing XSLT extensions. The special features, which differentiate it from extensions in Java/JavaScript/Python/etc, are the following.

* Scheme is a functional languages, while other extension languages are imperative.

* XSieve doesn't have XML API. Instead, XML nodes are automatically represented using Scheme lists (SXML format), and Scheme code works with the lists.

* It's possible to say "apply-templates" in Scheme code.

* Controversal: XSieve supports entities in output.

Everyone isn't the audience of XSieve. To use XSLT, one should be very skilled. To use Scheme, one should be very skilled. Therefore, to use XSieve, one should be very very skilled.

One of the simplest use cases for XSieve is running an external program. For example, when making HTML from DocBook, it's possible to filter "programlisting"s through a syntax highlighting program.

An example of a real use case is conversion of CALS tables. In the past I wrote an XSLT stylesheet for CALS tables. Providing only a basic support, the stylesheet was a complete mess. I'm sure that an XSieve version will be much better.

XSieve passed the DocBook stylesheets test. Therefore, XSieve is considered to be stable:

http://xsieve.sourceforge.net/ex-docbook.html

At the momemt, Xsieve is based on xsltproc (an XSLT processor) and Guile (a Scheme interpreter). It should work everywhere xsltproc and Guile work, but I've tested it only on Linux.

XSieve home page: http://xsieve.sourceforge.net/index.html
Project page: http://sourceforge.net/projects/xsieve/

Comments are welcome!

Posted by Oleg Paraschenko 2005-09-06

Log in to post a comment.