Transmorpher is a software environment for defining and processing complex transformations of XML documents. It can be considered as a layer on top of XSLT allowing the expression of complex transformation flows. Its main goal was to overcome the difficult interpretation of XSLT transformations.
Structured document transformations will take a very important place in many activities including formatting documents to various formats (HTML, PDF, Open EBook...) and adapting them for various devices (printers, phones, E-Book readers, personal digital assistants...). This requires an environment able to take in charge the whole transformation process.
In order to prove or check the properties of transformations, it is necessary to have a representation of these transformations. The XSLT language enables the expression of a transformation in XML but is relatively difficult to analyse. In order to overcome this problem, we have designed and developed in collaboration with the Fluxmedia company, the Transmorpher environment.
Transmorpher is an environment for defining and processing complex transformation flows. It is partly based on the transformation language XSLT recommended by the "World-wide web consortium" (W3C). XSLT is overly complex for simple transformations (such as renaming tags) and too simple for composing transformations (such as applying a transformation until it does not apply anymore). It enables the description of individual transformations but does not support transformation combination and complex data flows.
Transmorpher enables the definition and processing of generic transformations of XML documents. It aims at providing XSLT extensions in order to:
Transmorpher describes the transformation flows in XML. Input/output channels carry the information, mainly XML, from one transformation to another. Transformations can be other transformation flows or elementary transformations. Transmorpher provides a set of abstract elementary transformations (including their execution model) and one default instantiation. Such elementary transformations include external call (e.g. XSLT), dispatcher, serializer, query engine, iterator, merger, generator and rule sets.
Rule sets describe transformations in a language simpler than XSLT. It is currently processed by transformation to XSLT (extended by regular expression substitution).
Transmorpher provides a set of documented Java classes (for which new implementations can be plugged-in) and a transformation flow processing engine which can be embedded into other software. A transformation flow can be described by programming in Java or providing an XML description. Transmorpher can be used as a compiler (generating Java code), an interpreter, a Ant task, a Servlet generator or embeded in another program.
Transmorpher 1.0 is written in Java 1.3. It is the first full implementation of Transmorpher as presented in [Euzenat 2002c]. This version does not put emphasis on performances that we will consider in ulterior version but on functions. Transmorpher takes advantage of external resources (XML parsers, XSLT servers, Regular expression substituers and many other optionnal components). A graphic user interface (FlowComposer) has been developed by Fluxmedia.
Transmorpher 1.0.7 compiles and work on Java 1.5.
Transmorpher is available to everyone (sources included) from https://gitlab.inria.fr/moex/transmorpher/ under the GPL license (other licenses possible) since June 2001. It is a joint development of the Exmo action of INRIA Rhône-Alpes and Fluxmedia. Its development has been partially supported by a ODL grant from INRIA. Transmorpher 1.0 has been registered by the "Agence de Protection des Programmes" (APP) under the IDDN.FR.001.430009.000.R.P.2003.000.30620.
Transmorpher development site.
Transmorpher is used for displaying our publication lists. A one-page flyer can be found here.
Transmorpher is a joint development of the Exmo action of INRIA Rhône-Alpes and FluxMédia.