python - lxml: reforçando uma ordem específica para atributos

Eu tenho um script de escrita XML que gera XML para uma ferramenta específica de terceiros.

Eu usei o XML original como um modelo para ter certeza de que estou criando todos os elementos corretos, mas o XML final não aparece como o original.

Eu escrevo os atributos na mesma ordem, mas o lxml está escrevendo-os em sua própria ordem.

Não tenho certeza, mas suspeito que a ferramenta de terceira parte espera que os atributos apareçam em uma ordem específica, e gostaria de resolver esse problema para que eu possa ver se a ordem de atribuição está causando falha ou algo mais.

Elemento de origem:

<FileFormat ID="1" Name="Development Signature" PUID="dev/1" Version="1.0" MIMEType="text/x-test-signature"> 

Meu script de origem:

sig.fileformat = etree.SubElement(sig.fileformats, "FileFormat", ID = str(db.ID), Name = db.name, PUID="fileSig/{}".format(str(db.ID)), Version = "", MIMEType = "")

Meu XML resultante:

<FileFormat MIMEType="" PUID="fileSig/19" Version="" Name="Printer Info File" ID="19">

Existe uma maneira de restringir a ordem em que estão escritas?

questionAnswers(3)

yourAnswerToTheQuestion