Transmorpher is a software environment for defining and processing complex transformations of XML documents. 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.
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 takes as input a transformation flow described in XML. It is portable, open to other transformation engines and yet sufficient for expressing complex flows of transformations.
Here are some key features of "Transmorpher":
· describe easily simple transformations (removing elements, replacing tag and attribute names, concatenating documents...);
· allowing regular expression transformations on the content;
· composing transformations by linking their (multiple) output to input;
· iterating transformations, sometimes until saturation (closure operation);
· integrating external transformations.
· Oasis XML Parser
What's New in This Release: [ read full changelog ]
· transmorph : changed signature 'Object convert(Object source, Class clazz)' to Object convert(Object source, java.lang.reflect.Type clazz)
modifications to existing converters :
· corrected bug in ImmutableIdentityConverter : it did not handle all the cases it should have
· added handleTargetClassSameAsSourceClass property (set to true by default) to BeanToBean. If set you don't have to add a BeanToBeanMapping when source class is the same than target class.
· added TransmorphBeanInjector. With this class, you can inject values into a bean using an IBeanInjector.
· added IBeanInjector implementations : BeanToBeanInjector and MapToBeanInjector