summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/tostring.py
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/xmlstream/tostring.py')
-rw-r--r--sleekxmpp/xmlstream/tostring.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/sleekxmpp/xmlstream/tostring.py b/sleekxmpp/xmlstream/tostring.py
index 8e729f79..379ea09a 100644
--- a/sleekxmpp/xmlstream/tostring.py
+++ b/sleekxmpp/xmlstream/tostring.py
@@ -13,14 +13,19 @@
:license: MIT, see LICENSE for more details
"""
+from __future__ import unicode_literals
+
import sys
if sys.version_info < (3, 0):
import types
+XML_NS = 'http://www.w3.org/XML/1998/namespace'
+
+
def tostring(xml=None, xmlns='', stanza_ns='', stream=None,
- outbuffer='', top_level=False):
+ outbuffer='', top_level=False, open_only=False):
"""Serialize an XML object to a Unicode string.
If namespaces are provided using ``xmlns`` or ``stanza_ns``, then
@@ -88,6 +93,13 @@ def tostring(xml=None, xmlns='', stanza_ns='', stream=None,
output.append(' %s:%s="%s"' % (mapped_ns,
attrib,
value))
+ elif attrib_ns == XML_NS:
+ output.append(' xml:%s="%s"' % (attrib, value))
+
+ if open_only:
+ # Only output the opening tag, regardless of content.
+ output.append(">")
+ return ''.join(output)
if len(xml) or xml.text:
# If there are additional child elements to serialize.