TL;DR: I'm looking for a Clojure library that round trips XML+namespaces through Clojure data structures and back again.
I'm hacking on a chewing-gum-and-bailing-wire solution publish my wife's novels as EPUB. I've got most of a prototype of the core functionality working, but an stubbing my toe an a lack of what would consider sufficient XML support in the Clojure universe. I'm consuming Apple Pages (heavily namespaced XML) and will need to produce XML Plist, XHTML, OPF and NCX, all of which are namespaced as well. My first prototype parser for Pages documents used clojure.xml and works, provided Apple never changes the prefixes they use for the various namespaces the crop up in a Pages document. This is because clojure.xml is absolutely namespace ignorant. Also, there doesn't seem to be a way to write clojure.xml out as literal XML. I'm in the process of switching to clojure.data.xml, but have discovered that it parses namespace aware by default, but only uses this in order to have a simple way to ignore namespace information without getting confused by spurious namespace prefixes. That would be fine for parsing the Pages document, but it's a non-starter for producing my output files since these require the use of namespaces. I've looked at hiccup, which would solve my HTML production problem, save for the fact that it produces XHTML 1.0 while my current half-manual publishing process uses XHTML 1.1. I expect either version would work, but that still leaves me without a solution for Plist, OPF and NCX. What are my best options? Am I overlooking a Clojure library that already does what I need? I could try to teach data.xml to support XML namespaces, but the current half-hearted hack which conflates Clojure namespaces with XML namespaces would have to go, I fear. I could instead put my time into extending hiccup to support XML more generally, or at least provide explicit support for NCX, OPF and PList. Should I just write my own library? Maybe I could build atop XOM so as not to reinvent the heavy lifting. // Ben -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en