XML-разбор с несколькими пространствами имен [дубликаты]

На этот вопрос уже есть ответ:

Сохранение XML с использованием ETree в Python. Это не сохранение пространств имен, а добавление ns0, ns1 и удаление тегов xmlns 2 ответаNamespace в значении элемента XML? 1 ответXML конфликты пространств имен 1 ответ

Я пытаюсь разобрать и написать XML, используя стандартную библиотеку Python для разбора xml.

Формат XML следующий:

xml = '<class:Classification xmlns:class="schema:SpeciesClassification:2.0" xmlns="http://www.w3.org/1999/xhtml" dateClassified="2019-02-11" endangeredMarking="false" caveat="false"></class:Classification>'

Когда я анализирую этот xml, а затем возвращаю его обратно в строку, я получаю что-то странное. Всеclass: статьns0. Как мне сохранить эти отметки?


from xml.etree.cElementTree import Element, SubElement, parse, tostring, fromstring

print(tostring(fromstring(xml)))
b'<ns0:Classification xmlns:ns0="schema:SpeciesClassification:2.0" caveat="false" dateClassified="2019-02-11" endangeredMarking="false" />'

Нужно ли указывать другой парсер? Я просто немного растерялся из-за того, почему это упало.

Благодарност