Hello,
2010/5/23 Hans Hübner hans.huebner@gmail.com:
the XML import/export functionality has long regressed because it is unused, and I can't easily resurrect it. I never used the import aspect of the XML impex facility and at some point switched to writing specialized exporters for those formats that I need (i.e. http://bknr.net/trac/browser/trunk/projects/bos/m2/export.lisp#L94).
For some odd reason I've been looking at the xml-impex code (well, one of the reasons is that the documentation made it look really cool, even if I'm not even sure if I'm actually going to use it :) ), and have it kind of working... I'm using the tutorial output as a guide, which makes it a bit easier. I've added some missing functions (children-to-initforms, etc), massaged some cxml parameters here and there (small API changes) and I've successfully imported objects, which is, well, cool.
Now, since you don't use the facility I don't want to burden you with doubts concerning a subsystem that you've deprecated; although my Lisp skills are sub-par I'm more or less enjoying the code (even if it is a bit hairy here and there, especially since I don't even have experience with SAX).
I have one very general doubt though that perhaps you could eventually (time permitting) address: I've been reading former revisions in order to understand the changes, and there was a quite large rework some time ago. Of particular importance is that it *seems* (and, again, the compounding of my poor grasp of Lisp, XML, SAX and programming in general could be at work here...) that the way to use it was actually going to change in terms of the exporter: whereas before write-to-xml was self-sufficient in terms of generating output (as in the tutorial), I've noticed that code re-factoring seems to indicate that with-xml-export/with-xml-export* would be the entry point for a user. What's leading me to this conclusion is the fact that the cxml sink is only created in those macros.
I also note the presence of an *objects-written* hash-table (which is supposed to be updated, but isn't).
I've got the exporter also working (well, mildly, it at least produces the expected output for the first part of the tutorial), but I was hoping you could shed some light on what was your plan with the changes above. I'm not asking for code, just a general idea of what was the goal you were going for. Knowing that I can work on implementing those changes, instead of somewhat reverting the code to fit the tutorial (which could be changed).
Best regards,
Frederico