WebIt! - XML Programming in Scheme

WebIt! is a framework for creating and transforming XML in Scheme. The framework embeds XML in Scheme as an abstract datatype, and provides libraries of constructor functions and predicates for several XML-based languages: (X)HTML, Scalable Vector Graphics (SVG), XSL Formatting Objects (XSL-FO), XML Schema, and the Text Encoding Initiative consortium's markup language (TEI). New libraries may be constructed by "compiling" an XML Schema document.

WebIt!'s transformation system draws inspiration from Scheme's macro system. A stylesheet resembles a set of macros-but transforming XML elements instead of syntax. Like macros of Scheme, macros in WebIt! are provided with a means for "by-example"-style pattern matching of XML. These XML macros are procedural macros, similar to syntax-case.

Another influence was the work on "Linguistic Reuse" described in Shriram Krishnamurthi's Ph.D. thesis. Like the "micros" of Krishnamurthi's McMicMac, WebIt! supports the passing of contextual information, and the "threading" of state, between transformers. Unlike McMicMac, however, WebIt! encourages the use of a "monad" as a paradigm for structuring complex transformations which require threading of state.

WebIt! has been used in developing the functional programming-related bibliographies at Readscheme.org and for the preparation of literary works for both web and print publication.

Also see the WebIt! home page and mailing list.