The reverseXSL Transformation software features several interfaces:

  • The mainĀ Transformer API provides access to a TransformerFactory, itself being used to instantiate Transformer objects. Each Transformer object is thread safe and can transform any number of input messages in sequence.
  • The command line facility 'Transform' is simply a wrapper class around the TransformerFactory and a Transformer object. Source code is available if you wish to develop your own command-line tool.
  • Below the Transformer API lays a lower level Parser API, only documented in Javadocs.

The idea behind the reverseXSL Transformer API is simply that of augmenting the native XSLT transformation capabilities with those of the reverseXSL Parser component, and bundle the whole as a new, extended,Transformer. The reverseXSL Transformer would therefore execute two transformation steps:

  1. A Parsing step, with the help of the original reverseXSL Parser. The input is any character oriented document (possibly with many control characters, not necessarily 'printable'). The output is always an XML document, the input is anything.
  2. An XSL Transformation step, based on the Java API for XML Processing (JAXP), a component embedded in Java runtime environments. The input is always an XML document, the output is anything.

Each of the above two steps is optional, therefore allowing this new Transformer to behave as a pass-through, else as a converter from XML to anything, from anything to XML, or even from XML to another XML (with a plus: the automatic selection of the XSL template to apply). Moreover, the Transformer is capable of dynamically selecting which transformation step(s) to apply to which input message, with the help of a Mapping Selection Table.