Stratego XML

Stratego -- Strategies for Program Transformation
StrategoLanguage is designed for transformation of tree or term structures. Stratego has support for the definition of generic traversals over trees, which makes the specification of transformations of trees very convenient. This model is very well suited for manipulation of XML documents.

-- EelcoVisser - 20 Mar 2001

See XmlTools for an implementation of the expressed ideas.

-- MartinBravenboer - 27 Feb 2003

Well not an XML SourceToSource? transformation but GraphXML2Dot? is a good example of an XML transformation in Stratego. The tool is contained in XT.

-- MerijnDeJonge -- 24 Mar 2001

A set of components to transform XML documents to XHTML would be a valuable addition to XT. With these tools Stratego can be used to perform transformations from XML to XHTML (on the serverside for example) and in this way offer an attractive and powerful alternative to XSLT, which is relatively weak compared to Stratego.

-- MartinBravenboer - 08 Dec 2001

The authors of the paper XML transformation flow processing think that Stratego could be applied profitably to the transformation of XML documents. The paper describes the Transmorpher system for XML transformation.

-- EelcoVisser - 15 Mar 2002

At: you can find a presentation on the integration of XML in XT. This presentation discusses some tools which will make StrategoXML a fact in the near future.

This tool-set will use existing XML parsers to translate XML into ATerms. This is an efficient solution because the processing of XML requires the handling of XMLNamespaces, entities, DocumentTypeDefinitions, processing instructions and comments, which are all completely irrelevant to the data we are interested in. This component is called the SAXBridge because it uses the SimpleAPIforXML.

Although XML and ATerms are both regular tree languages and instances can be described by RegularTreeGrammars?, they are used in quite different ways. Therefore the result of the will be transformed into a more ATerm-like structure by an ATermfication. This ATermification must be written by hand right now (see the presentation for a small example), but we are working on tool that generates this ATermification from a schema in a certain SchemaLanguageForXML. An AlgebraicSignature for Stratego will also be generated by this tool.

Possible applications of StrategoXML include:

  • transforming or analysing XSLT
  • XSLT Compiler in Stratego with concrete syntax for the target language.
  • XML schema tools: verifiers, converters
  • server-side applications in Stratego: transformation to XHTML

-- MartinBravenboer - 30 May 2002

CategoryToDo?, ToDo