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.
The only thing required to make
StrategoXML a fact is to write down an example.
--
EelcoVisser - 20 Mar 2001
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:
http://www.pandoramix.org/docs/xml-pem-2002.pdf 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
See
XmlTools? for an implementation of the expressed ideas.
CategoryToDo?,
ToDo