Como inserir namespace e prefixos em uma string XML com Python?

Suponha que eu tenha uma string XML:

<A>
    <B foo="123">
        <C>thing</C>
        <D>stuff</D>
    </B>
</A>

e quero inserir um espaço para nome do tipo usado pelo XML Schema, colocando um prefixo na frente de todos os nomes dos elementos.

<A xmlns:ns1="www.example.com">
    <ns1:B foo="123">
        <ns1:C>thing</ns1:C>
        <ns1:D>stuff</ns1:D>
    </ns1:B>
</A>

Existe uma maneira de fazer isso (além da força bruta encontrar-substituir ou regex) usandolxml.etree ou uma biblioteca semelhante?

questionAnswers(2)

yourAnswerToTheQuestion