Haskell and XML: generic combinators or type-based translation?
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Regular expression pattern matching for XML
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From Macros to Reusable Generative Programming
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
Transformation-by-Example for XML
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
A Better XML Parser through Functional Programming
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Static Analysis of XML Transformations in Java
IEEE Transactions on Software Engineering
Web programming in Scheme with LAML
Journal of Functional Programming
Implementing Metcast in Scheme
Higher-Order and Symbolic Computation
Scrap your boilerplate with XPath-like combinators
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hi-index | 0.00 |
The growing use of XML languages has spurred the demand for means to transform XML documents. Many XML transformation systems are, however, limited in their expressive power, and fail to provide a useful collection of combinators for several tasks.This paper describes SXSLT, a practical, higher-order, concise, expressive and readable declarative XML transformation language. The language is a head-first rewriting system over abstract XML syntax trees, implemented as a library extension of Scheme. SXSLT features local scoping of re-writing "templates", first-class stylesheets, flexible traversal strategies, the ability to re-traverse the original or the transformed trees. The language can emulate XSLT in whole or in part, in a more coherent and expressive manner. By virtue of being a Scheme library, SXSLT is seamlessly integrated with Scheme.We illustrate the power of SXSLT with several examples abstracted from practical projects. We and other people have used SXSLT for over two years for real-life projects, ranging from authoring of static and dynamic Web pages to content-distribution engines. Our experience and user comments show that SXSLT is expressive and easy to use. We argue that this outcome is a consequence of SXSLT providing right abstractions for XML transformations, of being higher-order, declarative and extensible.