Python lxml的命名空间定义顺序错误

Python lxml的命名空间定义顺序错误,python,xsd,lxml,xsd-validation,Python,Xsd,Lxml,Xsd Validation,我正在创建一个xml文档,我有: root=etree.Element("Element1") NS = 'http://www.w3.org/2001/XMLSchema-instance' location_attribute = '{%s}noNameSpaceSchemaLocation' % NS root.set(location_attribute, "Schema.xsd") 我明白了: <Element1 xmlns:xsi="http://www.w3.org/200

我正在创建一个xml文档,我有:

root=etree.Element("Element1")
NS = 'http://www.w3.org/2001/XMLSchema-instance'
location_attribute = '{%s}noNameSpaceSchemaLocation' % NS
root.set(location_attribute, "Schema.xsd")
我明白了:

<Element1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNameSpaceSchemaLocation="Schema.xsd">

但我需要的恰恰相反:

<Element1 xsi:noNamespaceSchemaLocation="Schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


您知道lxml是否可以做到这一点吗?

考虑到XML,两个标记被认为是相等的。属性的顺序并不重要。为什么您认为需要按特定顺序排列属性?是不是因为下游有非XML软件,它使用XML put,无法处理属性中的变量顺序?(在这种情况下,这里的许多人会说“获得一些更好的下游软件”)或者还有其他原因吗?我知道顺序并不重要,但我必须向官方web应用程序发送一个XML文件,如果我不颠倒这些属性的顺序,他们会拒绝我的文件。我知道这不是标准的,可能他们没有使用合适的XML下游软件。。。