[cxml-devel] Fwd: Problem with cxml-xmls:map-node?
Daniel Katz
dpkatz at gmail.com
Fri Aug 8 12:32:27 UTC 2008
Hi -
I'm exploring cxml, and I'm running into trouble using the cxml-
xmls:map-node. I don't know whether I'm doing something stupid or
whether it's a bug, so I thought I'd ask here.
I began by following the example in the Quick-Start Guide (http://
common-lisp.net/project/cxml/quickstart.html#id54132) and found
myself in the debugger with an error related to namespaces:
>
> CL-USER> (with-open-file (out
> "example.out" :direction :output :element-type '(unsigned-byte 8))
> (cxml-xmls:map-node (cxml:make-character-stream-
> sink out)
> '("test" (("a" "b"))
> ("child" nil))))
>
> serializing with :INCLUDE-NAMESPACE-URI, but node was created
> without namespace URI
> [Condition of type SIMPLE-ERROR]
>
> Restarts:
> 0: [ABORT] Return to SLIME's top level.
> 1: [ABORT-BREAK] Reset this process
> 2: [ABORT] Kill this process
>
> Backtrace:
> 0: ((:INTERNAL CXML-XMLS::WALK CXML-XMLS::MAP-NODE/LNAMES)
> '("test" (("a" "b")) ("child" NIL)))
> 1: (CXML-XMLS::MAP-NODE/LNAMES #<CXML::NAMESPACE-NORMALIZER
> #x8D0290E> '("test" (("a" "b")) ("child" NIL)) 'T)
> 2: (#<Anonymous Function #x8D04486>)
I have to admit that I didn't find this error to be very useful in
terms of understanding what the problem is.
My second attempt was to avoid constructing the xmls-style data by
hand but to instead take the output of a cxml parse. Suffice it to
say that I ran into the same issue:
> CL-USER> (with-open-file (out "foo.out" :direction :output :element-
> type '(unsigned-byte 8))
> (cxml-xmls:map-node (cxml:make-character-stream-
> sink out)
> (cxml:parse-file
> "foo.xml" (cxml-xmls:make-xmls-builder))))
>
>
> serializing with :INCLUDE-NAMESPACE-URI, but node was created
> without namespace URI
> [Condition of type SIMPLE-ERROR]
>
> Restarts:
> 0: [ABORT] Return to SLIME's top level.
> 1: [ABORT-BREAK] Reset this process
> 2: [ABORT] Kill this process
>
> Backtrace:
> 0: ((:INTERNAL CXML-XMLS::WALK CXML-XMLS::MAP-NODE/LNAMES)
> '("foo" NIL "
> "
> ("bar" (("quux" "quux")) "
> baz
> ")
> "
> "))
> 1: (CXML-XMLS::MAP-NODE/LNAMES #<CXML::NAMESPACE-NORMALIZER
> #x8CFCF86> '("foo" NIL "
> "
> ("bar" (("quux" "quux")) "
> baz
> ")
> "
> ") 'T)
> 2: (#<Anonymous Function #x8C7D31E>)
> 3: (SWANK::EVAL-REGION "(with-open-file (out \"foo.out\"
> :direction :output
> :element-type '(unsigned-byte 8))
> (cxml-xmls:map-node (cxml:make-character-stream-sink out)
> (cxml:parse-file \"foo.xml\" (cxml-xmls:make-xmls-
> builder))))
> ")
So now I'm sort of at a loss for what to do next. And my basic
question once again is: am I doing something stupid? Or is the xmls-
style serialization facility broken?
Thanks.
Dan
More information about the cxml-devel
mailing list