XML::Feedで使うXML::Atomのas_xmlが吐くXMLにxmlnsがつきまくる件

こっちでもsyntax highlightついたんだったっけ.ということで.

自分の環境(XML-Atom-0.25)だと,なんか全部の要素にxmlnsついちゃうのが,なんとも.
とりあえず消してみたけど間違ってるかなぁ.回りくどい事してるような気がしてならない.

use XML::Atom::Base;
use XML::LibXML;

{
    my $code = \&XML::Atom::Base::as_xml;

    no warnings 'redefine';
    *XML::Atom::Base::as_xml = sub {
        my $xml = $code->(@_);
        $xml =~ s!\s*xmlns\:default\d*="[^\"]+"!!g; # remove xmlns:default

        my $parser = XML::LibXML->new;
        $parser->clean_namespaces(1);
        my $doc = $parser->parse_string($xml);
        $doc->documentElement->setNamespace('http://www.w3.org/2005/Atom', '');
        return $doc->toString(1);
    };
}