February 14, 2005
XMLisp

i deal a lot with the bottoms of baskets these days
Mechanicsburg, Pennsylvania by Eric Etheridge

Alexander Repenning's XMLisp (which works with MCL and LispWorks) is beautiful, in an insane way.

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.

Check it out:

? (defclass A (xml-serializer)
   ((href :accessor href :initform "" :initarg :href))
   (:documentation "HTML link"))
#<STANDARD-CLASS A>

? (make-instance 'a :href "http://lemonodor.com/")
<a href="http://lemonodor.com/"/>

? (describe *)
<a href="http://lemonodor.com/"/>
Class: #<STANDARD-CLASS A>
Wrapper: #<CCL::CLASS-WRAPPER A #x2877F56>
Instance slots
CONTENT: NIL
HREF: "http://lemonodor.com/"

? (describe <a href="http://lemonodor.com/"/>)
<a href="http://lemonodor.com/"/>
Class: #<STANDARD-CLASS A>
Wrapper: #<CCL::CLASS-WRAPPER A #x2877F56>
Instance slots
CONTENT: NIL
HREF: "http://lemonodor.com/"

It's like object relational mapping for XML. Make sure to look at the RSS example on the project page.

Posted by jjwiseman at February 14, 2005 12:53 PM
Comments

Do you know what the license is for this? AFAICT, it's just copyrighted, and there are no license terms listed.

I don't have a beef with this --- I'm not saying that everything has to be open source. Just it's worth knowing the license terms for any software you're going to start using...

Posted by: Robert Goldman on February 15, 2005 07:28 AM
Post a comment
Name:


Email Address:


URL:




Unless you answer this question, your comment will be classified as spam and will not be posted.
(I'll give you a hint: the answer is “lisp”.)

Comments:


Remember info?