如何使用zeep添加wsu:Id属性?
问题描述:
我有以下Python代码来设置首标用于SOAP请求:如何使用zeep添加wsu:Id属性?
ebsheader = xsd.Element(
'{http://ebs.health.ontario.ca/}EBS',
xsd.ComplexType([
xsd.Attribute(
'Id',xsd.String()
),
xsd.Element(
'SoftwareConformanceKey', xsd.String()
),
xsd.Element(
'AuditId', xsd.String()
),
])
)
headers = []
headers.append(ebsheader('id-1','software-key-here','unique-id'))
它产生下面的XML:
<ns0:EBS xmlns:ns0="http://ebs.health.ontario.ca/" Id="id-1">
<SoftwareConformanceKey>software-key-here</SoftwareConformanceKey>
<AuditId>unique-id</AuditId>
</ns0:EBS>
然而,代替Id="id-1"
我需要它是wsu:Id="id-1"
。我需要在标题中指定哪个参数来完成此操作?
答
你需要传递一个命名空间,因此,例如
xsd.Attribute(
'{http://my-namespace}Id',xsd.String()
),
当我这样做,我得到这样的结果:''我对xml相当陌生,它是说'ns0:Id = ...'而不是'wsu:Id = ...'很重要吗? –
andrei
结果应该是一样的,ns0/wsu只是全名空间的简写 – mvantellingen