如何使用zeep添加wsu:Id属性?

如何使用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() 
    ), 
+0

当我这样做,我得到这样的结果:''我对xml相当陌生,它是说'ns0:Id = ...'而不是'wsu:Id = ...'很重要吗? – andrei

+0

结果应该是一样的,ns0/wsu只是全名空间的简写 – mvantellingen