From 4190027a787f878b4ea07ddd24883bb9d1a94d6e Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Mon, 15 Oct 2012 22:22:07 -0700 Subject: [PATCH] Prevent xmlns="" in stream output. This was causing problems for HTML-IM because the HTML is parsed without a namespaced context. While xmlns="" technically can be valid, it's usually wrong, so this will work for now until the HTML-IM parsing is fixed. --- sleekxmpp/xmlstream/tostring.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sleekxmpp/xmlstream/tostring.py b/sleekxmpp/xmlstream/tostring.py index 0b73d8dc..08d7ad02 100644 --- a/sleekxmpp/xmlstream/tostring.py +++ b/sleekxmpp/xmlstream/tostring.py @@ -70,9 +70,10 @@ def tostring(xml=None, xmlns='', stream=None, # Output the tag name and derived namespace of the element. namespace = '' - if top_level and tag_xmlns not in [default_ns, xmlns, stream_ns] \ - or not top_level and tag_xmlns != xmlns: - namespace = ' xmlns="%s"' % tag_xmlns + if tag_xmlns: + if top_level and tag_xmlns not in [default_ns, xmlns, stream_ns] \ + or not top_level and tag_xmlns != xmlns: + namespace = ' xmlns="%s"' % tag_xmlns if stream and tag_xmlns in stream.namespace_map: mapped_namespace = stream.namespace_map[tag_xmlns] if mapped_namespace: