Current Version: 1.0.0
Source Forge Project Page

Asmo is a simple XML taglib processor. It reads in an XML document and, based on XML namespaces, chooses a library to handle the part of the XML tree within that namespace. The result is an XML document containing whatever data output by the libraries chosen. You can optionally perform XSLT processing on the output.

It uses a serialized parser and any tags in a different namespace from their enclosing namespace are processed before the result is passed onto the handler for the enclosing namespace. All the output from every library is also processed so library output can invoke another library. The input and output to every library is a SAX2-like interface so you can actually write libraries any just about any programming language.

Currently Asmo supports only Python libraries. It also supports C libraries, but it doesn't have any C library loading facilities. There is a nice, asbstract interface for writing your own library handler so it should be relatively easy to add support for other languages.

Asmo also has built-in support for the Sablotron XSL processor and you can send the results of the XML processing through that.

There is also an Asmo Apache module included that lets you embed Asmo in Apache.

If you download it and have any problems getting it working, please let me know. I've really only compiled it on FreeBSD so it may need to be tweaked for Linux or other systems. Just email me at

Also, please feel free to send me any other feedback.

home | example | why | what it does | status