[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