Paper: https://www.cs.colorado.edu/~ralex/papers/PDF/X-expressions.pdf
Repository: https://github.com/seanjensengrey/xmlisp
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.
XMLisp works on the following systems: MCL 5, 5.1, LispWorks 4.3, OpenMCL 0.13.2, SBCL
Note that I had to change the end-of-line markings to get it to work with SBCL on linux -Dave Watson
Do a 'perl -pi -e "s/\cM/\n/g" ' on each file. This will change ^M into Unix \n and xmlisp runs well on Linux/sbcl Oli Buechel. Or simply use dos2unix command - Marko Kocic
- this is not necessary with version 3.0.3, but for this version you will need the package.lisp from the version 2.3-zipfile - Eirik Mikkelsen
Does the package have an owner? There's no contact information to be found in the zip file. -Thom Goodsell
Dr. Alexander Repenning http://www.cs.colorado.edu/~ralex/
Quick assessment (2024-06-30)
- The system into which XMLisp is integrated (Open Agent Engine) is Cocoa-specific.
- However, XMLisp itself is fairly portable, and has been separately packaged for ASDF.
So a window can be defined like this:
Then we can access attributes:
And access the list of buttons:
Note that each object is re-serialized to XML.