Henry is a Higgins module that, like Henry Higgins, seeks to transform it environment at any given opportunity. The current implementation is coded in Perl and uses the Perl libxml libraries for the hard work.
Introduction
There are several reasons that we opted to make a separate module for XSL transformations, rather than letting each module do it using whichever libraries they choose to, including:
- XSL engine tend to support different subsets of the relevant XML specifications - it's difficult and time consuming to keep track of who supports what.
- Transformation of XML is a key concept in Higgins, and as such warrants its own module.
- We want a generalised method of applying cascades of transformations.
- There is nothing stopping other Higgins modules from performing XSL transformations as well. In fact, the current Perl code is modularised and can be reused by anyone.
Implementation
Henry is implemented in Perl, using LibXML libraries. The implementation is modularised and contains the following:
- Higgins::Configure.pm - Perl module for reading Higgins cofiguration files
- Higgins::Configure::Henry.pm - Perl module for reading Henry cofiguration settings
- BrokerClient.pm - Perl module implementing (parts of) the CTT Broker client protocol
- Higgins::Henry.pm - Perl module performing cascades of XSL transformations
- XML specifications and documentation