Declan Home Page

Welcome to the Declan Home Page! Declan is a Domain Specific Language (DSL) for writing declarative XML transformation rules.

Declan has several distinguishing features:

  • Declan is written in, and integrates seamlessly with, the Ruby programming language. Declan allows you to declare transformation rules. Inside the rule declarations (blocks, for Ruby programmers), the code is just ordinary Ruby code. If you know Ruby and the REXML XML parser API, you can pick up how to write Declan rule sets in less than an hour.
  • A Declan rule set may be used stand alone, or it can be mixed in to a Ruby class. This makes Declan very easy to use in object oriented applications. For example, you can write a SOAP server that transforms XML with a Declan rule set in just a few lines of code.
  • With Declan, you can write rules for processing doctype and entity declarations.
  • Declan rules can change the source tree. Normally, Declan rules will just write transformed XML to an output stream. However, it is also possible to modify the input XML document.


2006-11-15: Prototype Code in the Repository

Declan now has some working prototype code in the repository. This code is for proof of concept only. It is a long way off from being a useful release. Still, it is an important first step.

2006-11-15: Declan Commentary at Kallokain

I plan to write a running commentary on the development of Declan in the Kallokain blog. If you are interested in Declan, you might want to start with the Transformations and Spike Solutions posts.