XSieve book

Abstract

XSieve is an XML transformation language based on combination of XSLT 1.0 and a Lisp dialect Scheme. XSieve is an alternative to XSLT 2.0. XSieve is successfully tested against DocBook stylesheets and considered to be stable and ready for use.


Table of Contents

1. XSieve: what and why
2. Background information
3. Installation and usage
3.1. Installing libxml and libxslt
3.2. Installing XSieve from a source tarball
3.3. Installing XSieve from CVS
3.4. Checking XSieve
3.5. Using XSieve
3.6. Using XSieve in bindings
4. SXML format
4.1. Entities in SXML
4.2. Namespaces in SXML
4.3. Equality of nodes
5. Stylesheet template
6. Examples
6.1. Hello, World
6.2. Hello, World II, or XML to SXML
6.3. SXML to XML
6.4. Generating entities
6.5. Miltiple sum, or quantity times price
6.6. XSLT to XSieve
6.7. DocBook XSieve stylesheets
6.8. Testing SXPath
7. Commands
7.1. s:init
7.2. s:scheme
7.3. x:current
7.4. x:eval
7.5. x:apply-templates
7.6. x:string
7.7. x:call
7.8. x:<=>
A. Static compilation
B. Lazy instantiation of the tree
B.1. Installing Guile with the lazy pair patch

1. XSieve: what and why

XSieve is an XML transformation language based on combination of XSLT 1.0 and Scheme. XSieve is an alternative to XSLT 2.0. Details are in the Section 2, “Background information”.

Why XSieve? The best explanation is given by Uche Ogbuji. Although he has written it for his Amara toolkit, the explanation is also valid for XSieve:

The summary is that XSLT is not suitable for all uses that result in XML output. In particular it is not generally suitable for model logic processing. Therefore, it is useful for the tools you do use for model logic processing to have good XML APIs, and one can borrow the best bits of XSLT for this purpose without seeking to completely replace XSLT. That's all I'm looking to do.