From 6b03ee603315ac9e69332c8f2d064de0a98c3f15 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Wed, 27 Oct 2010 18:33:30 +0000 Subject: Issue #5027: The standard `xml` namespace is now understood by xml.sax.saxutils.XMLGenerator as being bound to http://www.w3.org/XML/1998/namespace. Patch by Troy J. Farrell. --- Lib/xml/sax/saxutils.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Lib/xml/sax/saxutils.py') diff --git a/Lib/xml/sax/saxutils.py b/Lib/xml/sax/saxutils.py index 46946fcf72..625bc122ac 100644 --- a/Lib/xml/sax/saxutils.py +++ b/Lib/xml/sax/saxutils.py @@ -100,6 +100,12 @@ class XMLGenerator(handler.ContentHandler): def _qname(self, name): """Builds a qualified name from a (ns_url, localname) pair""" if name[0]: + # Per http://www.w3.org/XML/1998/namespace, The 'xml' prefix is + # bound by definition to http://www.w3.org/XML/1998/namespace. It + # does not need to be declared and will not usually be found in + # self._current_context. + if 'http://www.w3.org/XML/1998/namespace' == name[0]: + return 'xml:' + name[1] # The name is in a non-empty namespace prefix = self._current_context[name[0]] if prefix: -- cgit v1.2.1