XMLisp: Ingenous, or Monstrous?

(Note: The title is meant to be humorous!)

XMLisp is the integration of Lisp with XML. The Lisp Meta Object Protocol is used to establish a simple and highly efficient mapping between CLOS objects and the XML extensible markup language. It is not just an API to read XML files and turn them into some Lisp flavored representation. Instead, it integrates Lisp and XML into one environment at two levels. At a language level it allows the arbitrary combination of Lisp expressions and XML elements. CLOS objects can be printed as XML elements. XML elements evaluate into CLOS objects. At a tool level XMLisp allows users to fluidly experiment with XML. Type XML elements into the lisp listener. Evaluate complete or parts of hierarchical XML elements. Inspect complex XML elements using the inspector. Get support from symbol completion when editing XML.

I stumbled across this while porting more layers of the Open Agent Engine to OpenMCL. While at first it seems a little weird, it's actually quite an amazingly natural way of integrating Lisp and XML.

It's neat to work with XML fragments as an inspectable CLOS object hierarchy. I think XMLisp is also a great example of the flexibility available to Lisps of all flavors; I'm sure some industrious soul could easily port it to PLT Scheme or something similar!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I thought...

...the question was "igneous, or sedimentary?" :-)

"igneous, or sedimentary?"

This one looks more like "metamorphic"!


Spelling, spelling, spelling....

Now That We're Done Teasing You...

...this does seem like a pretty cool example of Lisp's power for embedding other representations of things. Also a nice proof-by-demonstration of the close relationship between S-expressions and XML.