﻿id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc
253,Improve handling of default namespaces,llasram@…,cmlenz,"The `NamespaceFlattener` class attempts to resolve all uses of a particular namespace to a single prefix at any given point, but makes no allowance for the common practice of binding the same namespace as both the default and to an explicit prefix.  The attached patch implements this support.

With the patch applied one test (`MatchDirectiveTestCase.test_namespace_context`) fails.  I've modified the test in the patch to show the difference as I'm not sure what the correct output should in fact be.  Modifying `NamespaceFlattener` to print out events before interpreting them shows the following for this test case:

{{{
('START_NS', (u'x', u'http://www.example.org/'))
('START', (QName(u'html'), Attrs()))
('TEXT', <Markup u'\n          '>)
('START_NS', ('', u'http://www.example.org/'))
('START', (QName(u'div'), Attrs()))
('TEXT', <Markup u'Foo'>)
('END', QName(u'div'))
('END_NS', '')
('TEXT', <Markup u'\n        '>)
('END', QName(u'html'))
('END_NS', u'x')}}}
}}}

Which to me implies that my patch is actually generating the ''correct'' behavior?

Thanks and hope this helps!",defect,assigned,major,0.9,Serialization,devel,,,
