hi!
i've playing with an document builder that may be interesting for the list. the basic idea is to parse the xml into CLOS objects with their own class, so that method dispatch can be used to process the document. i need this for verrazano, to process the gccxml output. the first part of the file contains the generic flexml document builder and at the end there's some specialized code for gccxml.
how it works: you can give it a default lisp package and also register namespace-uri->lisp-package mappings. when a node is encountered then a symbol is looked up in the appropriate package and make-instance is used to make the node. there's also a slot-missing specialization on it, so that it can store random slots (attributes) in a hashtable.
features currently: - can resolve crossreferences, see cross-referenced-node slot type and friends - handles some slot types specially: cross-referenced-node, cross-referenced-nodes, integer, boolean, etc - can store attributes in a mixed slot/hashtable mode where simple attributes can go into the hashtable and special ones can be full-featured slots
the code for now is only a proof of concept, but i wonder if there would be a place for it somewhere in a repo around cxml? it won't be bigger then a few pages so i think the most practical distribution would be to have its own .asd/package in the cxml repo/directory. but i don't want to run ahead... it even could be that i'm doing duplicate work with this.
opinions?