我正在尝试使用Zeep创建一个自定义SOAP头元素,Zeep使用多个名称空间。这样做时,它们被命名为ns0
、ns1
等等。例如:
usernametoken_header = xsd.Element('{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}UsernameToken', xsd.ComplexType([
xsd.Attribute('{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Id', xsd.String()),
xsd.Element('{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Username', xsd.String()),
xsd.Element('{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Password', xsd.String())
]))
将有ns0
代表wsse
,有ns1
代表wsu
。现在,我想将它们重命名为这些值,但不重新定位名称空间声明。我也不想使用UsernameToken
。我知道可以选择这样做:
client.set_ns_prefix('wsse', "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd")
但这会将名称空间声明从使用它的第一个子节点重新定位到根节点。我不希望这种重新定位。有没有办法对名称空间进行就地重命名
目前没有回答
相关问题 更多 >
编程相关推荐