python - lxml: imponer un orden específico para los atributos

Tengo un script de escritura XML que genera XML para una herramienta de terceros específica.

He utilizado el XML original como plantilla para asegurarme de que estoy creando todos los elementos correctos, pero el XML final no se parece al original.

Escribo los atributos en el mismo orden, pero lxml los escribe en su propio orden.

No estoy seguro, pero sospecho que la herramienta de la tercera parte espera que los atributos aparezcan en un orden específico, y me gustaría resolver este problema para que pueda ver si es el orden de atribución lo que hace que falle, o algo más.

Elemento fuente:

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

Mi script fuente:

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

Mi XML resultante:

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

¿Hay alguna forma de restringir el orden en que se escriben?

Respuestas a la pregunta(3)

Su respuesta a la pregunta