Thanks Herwig. I take it test_namespace.clj<https://github.com/bendlas/data.xml/blob/master/src/test/clojure/clojure/data/xml/test_namespace.clj>is the interesting file. Given the example in my previous message, is there a more idiomatic way of defining namespaces with this proposal?
Thanks again Tim Washington Interruptsoftware.com <http://interruptsoftware.com> On Thu, May 8, 2014 at 10:54 AM, Herwig Hochleitner <hhochleit...@gmail.com>wrote: > Hi, > > I'm the guy working on the newer proposal, which is almost done (TM). It > seems you have found the way to emulate namespacing with the current > data.xml impl: by taking care of xmlns attributes and prefixes yourself. I > definitely want to keep compatibility with that representation. Feel free > to check out my proposal branch here https://github.com/bendlas/data.xml > > cheers > > > 2014-05-06 21:53 GMT+02:00 Timothy Washington <twash...@gmail.com>: > >> Ok, scratch that. I got it working, lol :) >> >> Sorry for the false alarm. For future reference, this: >> >> (def e4 (xml/sexp-as-element >> [:thing:first {:xmlns:thing "http://thing"} >> [:thing:second {}]])) >> >> >> ...gives you this: >> >> user> (process/print-esequel process/e4) >> >> <?xml version="1.0" encoding="UTF-8"?> >> <thing:first xmlns:thing="http://thing"> >> <thing:second/> >> </thing:first> >> >> >> >> Tim Washington >> Interruptsoftware.com <http://interruptsoftware.com> >> >> >> On Tue, May 6, 2014 at 3:45 PM, Timothy Washington <twash...@gmail.com>wrote: >> >>> Got a bit further here. I want to be able to get tag namespaces without >>> a :root tag (that includes the namespace definition). Assume the below code >>> has (require '[clojure.data.xml :as xml]). >>> >>> >>> Working with attributes is fine. >>> >>> (def e1 (xml/element :use {:xmlns:xlink "http://testing", >>> :xlink:href "#whiskers", >>> :transform "scale(-1 1) translate(-140 0)"})) >>> >>> >>> Namespace prefixes is possible with tags; however, I had to add the >>> unwanted :root tag (that includes ns definition) >>> >>> (def e2 (xml/element :root {:xmlns:thing "http://thing"} >>> (xml/element :thing:use {}))) >>> >>> (def e3 (xml/element :root {:xmlns:thing "http://thing"} >>> (xml/sexp-as-element >>> [:thing:first {} >>> [:thing:second {}]]))) >>> >>> (defn print-esequel [elem] >>> (println (xml/indent-str elem))) >>> >>> >>> >>> The resulting XML is close. But we want the tag namespaces, without the >>> root node >>> >>> user> (print-esequel process/e2) >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <root xmlns:thing="http://thing"> >>> <thing:use/> >>> </root> >>> >>> user> (print-esequel process/e3) >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <root xmlns:thing="http://thing"> >>> <thing:first> >>> <thing:second/> >>> </thing:first> >>> </root> >>> >>> >>> >>> Tim Washington >>> Interruptsoftware.com <http://interruptsoftware.com> >>> >>> >>> On Tue, May 6, 2014 at 3:24 PM, Timothy Washington >>> <twash...@gmail.com>wrote: >>> >>>> Hi there, >>>> >>>> >>>> *A)* I'm just writing some SOAP XML, trying to use >>>> data.xml<https://github.com/clojure/data.xml>. >>>> This SO >>>> thread<http://stackoverflow.com/questions/10868050/clojure-data-xml-create-key-named-xlinkhref> >>>> outlines >>>> how to write out namespace aware XML. But the example is for a namespace on >>>> an attribute. I'm combing through the code now, but does anyone know how to >>>> set this up? >>>> >>>> >>>> *B)* There's actually this Fuller XML >>>> Support<http://dev.clojure.org/display/DXML/Fuller+XML+support>proposal >>>> (referring to this >>>> thread<https://groups.google.com/forum/#!msg/clojure-dev/3_jkBrdQKgs/dUwtevWqlwkJ>), >>>> and this Namespaced >>>> XML<http://dev.clojure.org/display/DXML/Namespaced+XML>proposal. But I >>>> don't see that namespaces are fully implemented in any of >>>> the core libs. >>>> >>>> I only see this ArmageDOM <https://github.com/pepijndevos/ArmageDOM>lib, >>>> which supports namespaces. Anything else out there that I've missed? >>>> >>>> >>>> Thanks >>>> >>>> Tim Washington >>>> Interruptsoftware.com <http://interruptsoftware.com> >>>> >>>> -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.