[cl-xmpp-devel] Namespace problem

Julian Stecklina der_julian at web.de
Sat Mar 3 18:46:03 UTC 2007


Hello,

sorry, for the mostly German mail to this English speaking list, but I 
felt that this might be interesting for others as well.

Detlev Zundel wrote:
> Aber mal was ganz anderes (tm) - mir ist gerade aufgefallen, daß Du
> auch als Maintainer von cl-xmpp aufgelistet bist (komisch, das man
> manchen Leuten signifikant oft über den Weg läuft :).  Damit versuche
> ich vergeblich eine Verbindung zu einem ejabberd-Server aufzumachen:
[Detlev describes that he has difficulties connecting to an ejabberd]

> 
> CL-USER> (defvar *connection* (xmpp:connect :hostname "jabber.denx.de"))
> <?xml version='1.0' ?><stream:stream to='jabber.denx.de' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'><?xml version='1.0'?version='1.0'><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='3886032989' from='jabber.denx.de' version='1.0' xml:lang='en'
> UNHANDLED: #<XML-ELEMENT STREAM:STREAM (6attr:0child:0data) {BAB05D9}>
>> <stream:features
> 
> 
> Document not well-formed: Undeclared namespace prefix: stream
> Context:
>   Line 1, column 190 in NIL
> 
>    [Condition of type CXML:WELL-FORMEDNESS-VIOLATION]
> 
> Restarts:
>   0: [ABORT-REQUEST] Abort handling SLIME request.
>   1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {AEEFA51}>)
> 
> Backtrace:
>   0: (CXML::%ERROR CXML:WELL-FORMEDNESS-VIOLATION NIL "Document not well-formed: Undeclared namespace prefix: stream")
>   1: (CXML::%ERROR CXML:WELL-FORMEDNESS-VIOLATION NIL "Document not well-formed: Undeclared namespace prefix: stream")
>   2: (CXML::WF-ERROR NIL "Undeclared namespace prefix: ~A" "stream")
>   3: (CXML::WF-ERROR NIL "Undeclared namespace prefix: ~A")
>   4: (CXML::FIND-NAMESPACE-BINDING "stream")
>   5: (CXML::DECODE-QNAME "stream:features")

I see the same error as you do. With an older CXML it works, 
nevertheless. It seems as if CXML has changed considerably:

One of CXML's functions (p/document) rebinds cxml::*namespace-bindings* 
to cxml::*initial-namespace-bindings* and so effectively removes 
"stream" entry placed there by xmpp:read-stanza.

As this is a showstopper, I committed a workaround to CVS, until there 
is a real solution to this:

http://common-lisp.net/cgi-bin/viewcvs.cgi/cl-xmpp/cl-xmpp.lisp?root=cl-xmpp&r1=1.28&r2=1.29

Regards,



More information about the cl-xmpp-devel mailing list