Transformation-by-Example for XML

xml is a language for describing markup languages for structured data. A growing number of applications that process xml documents are transformers, i.e., programs that convert documents between xml languages. Unfortunately, the current proposals for transformers are complex general-purpose languages, which will be unappealing as the xml user base broadens and thus decreases in technical sophistication. We have designed and implemented xt3d, a highly declarative xml specification language. It demands little more from users than a knowledge of the expected input and desired output. We illustrate the power of xt3d with several examples, including one reminiscent of polytypic programming that greatly simplifies the import of xml values into general-purpose languages.

[1]  Johan Jeuring,et al.  PolyP—a polytypic programming language extension , 1997, POPL '97.

[2]  Matthias Felleisen,et al.  From Macros to Reusable Generative Programming , 1999, GCSE.

[3]  R. Kent Dybvig,et al.  Revised5 Report on the Algorithmic Language Scheme , 1986, SIGP.

[4]  Abel,et al.  A formal semantics of patterns in XSLT , 2000 .

[5]  Programming Languages: Implementations, Logics and Programs , 1995, Lecture Notes in Computer Science.

[6]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[7]  Harold Abelson,et al.  Revised5 report on the algorithmic language scheme , 1998, SIGP.

[8]  Matthias Felleisen,et al.  Hygienic macro expansion , 1986, LFP '86.

[9]  Mitchell Wand,et al.  Macro-by-example: Deriving syntactic transformations from their specifications , 1987, POPL '87.

[10]  Colin Runciman,et al.  Haskell and XML: generic combinators or type-based translation? , 1999, ICFP '99.

[11]  Jonathan Rees,et al.  Revised3 report on the algorithmic language scheme , 1986, SIGP.

[12]  Lambert G. L. T. Meertens Calculate Polytypically! , 1996, PLILP.

[13]  Steve Gregory Proceedings of the 9th International Symposium on Programming Languages: Implementations, Logics, and Programs , 1997 .

[14]  Matthew Flatt,et al.  PLT MzScheme: Language Manual , 2000 .

[15]  Robert Hieb,et al.  Syntactic abstraction in scheme , 1992, LISP Symb. Comput..

[16]  Philip Wadler,et al.  A Formal Semantics of Patterns in XSLT and XPath , 2000, Markup languages.

[17]  Matthias Felleisen,et al.  Expressing Structural Properties as Language Constructs , 1999, ESOP.