¿Cómo construir un mensaje SOAP con pysimplesoap?

Estoy tratando de llamar a un servicio SOAP del registro de tierras del gobierno holandés (WSDL aquí) conPySimpleSoap. Hasta ahora hice esto para conectarme:

from pysimplesoap.client import SoapClient
client = SoapClient(wsdl='http://www1.kadaster.nl/1/schemas/kik-inzage/20141101/verzoekTotInformatie-2.1.wsdl')

y con la ayuda deuna respuesta asombrosa por Plamen Petrov Ahora entiendo que necesito enviar el xml a continuación usando elclient.VerzoekTotInformatie() método.

Sin embargo, lo que no entiendo es cómo puedo obtener el XML deseado (ver más abajo). Por supuesto, puedo construirlo manualmente, pero tengo la sensación de que hay una forma más inteligente / más pitónica de construir eso. ¿Puedo usar pysimplesoap para construir este mensaje xml?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.kadaster.nl/schemas/kik-inzage/20141101" xmlns:v20="http://www.kadaster.nl/schemas/kik-inzage/ip-aanvraag/v20141101">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:VerzoekTotInformatieRequest>
         <v20:Aanvraag>
            <v20:berichtversie>?</v20:berichtversie>
            <v20:klantReferentie>ABC</v20:klantReferentie>
            <v20:productAanduiding>?</v20:productAanduiding>
            <v20:Ingang>
               <v20:Object>
                  <v20:IMKAD_KadastraleAanduiding>
                     <v20:gemeente>Amsterdam</v20:gemeente>
                     <v20:sectie>123</v20:sectie>
                     <v20:perceelnummer>456</v20:perceelnummer>
                     <v20:appartementsindex>789</v20:appartementsindex>
                     <v20:deelperceelnummer>10</v20:deelperceelnummer>
                     <v20:AKRKadastraleGemeenteCode>20</v20:AKRKadastraleGemeenteCode>
                  </v20:IMKAD_KadastraleAanduiding>
               </v20:Object>
            </v20:Ingang>
         </v20:Aanvraag>
      </ns:VerzoekTotInformatieRequest>
   </soapenv:Body>
</soapenv:Envelope>

[EDITAR]

Siguiendo los ejemplos enlos documentos Ahora trato de agregar VerzoekTotInformatieRequest con unberichtversie en él, después de lo cual intenté hacer una solicitud al servicio de jabón. Pero como puede ver a continuación, el cuerpo todavía solo tiene un vacío<VerzoekTotInformatie> (NoRequest en él), además recibo un error masivo. ¿Alguna idea de cómo puedo construir el mensaje anterior?

>>> client['VerzoekTotInformatieRequest'] = {'Aanvraag': {'berichtversie': 'yay'}}
>>> c.VerzoekTotInformatie()
INFO:pysimplesoap.client:POST https://service1.kadaster.nl/kik/inzage/20141101/VerzoekTotInformatieService
DEBUG:pysimplesoap.client:SOAPAction: "VerzoekTotInformatie"
Content-length: 378
Content-type: text/xml; charset="UTF-8"
DEBUG:pysimplesoap.client:<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header/>
<soap:Body>
    <VerzoekTotInformatie xmlns="http://www.kadaster.nl/schemas/kik-inzage/20141101">
    </VerzoekTotInformatie>
</soap:Body>
</soap:Envelope>
DEBUG:pysimplesoap.client:date: Fri, 24 Apr 2015 12:51:05 GMT
status: 404
content-length: 956
content-type: text/html;charset=utf-8
DEBUG:pysimplesoap.client:<html><head><title>JBossWeb/2.0.0.GA_CP05 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;b
ackground-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-s
erif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - </h1><HR si
ze="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The requested resource () is not available.</u></p><HR size="1" noshade="noshade"><h3>JBossWeb/2.0.0.GA_CP05</h3></body></html>
ERROR:pysimplesoap.simplexml:<html><head><title>JBossWeb/2.0.0.GA_CP05 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:whit
e;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,san
s-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - </h1><HR
 size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The requested resource () is not available.</u></p><HR size="1" noshade="noshade"><h3>JBossWeb/2.0.0.GA_CP05</h3></body></html>
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/pysimplesoap/client.py", line 181, in <lambda>
    return lambda *args, **kwargs: self.wsdl_call(attr, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/pysimplesoap/client.py", line 346, in wsdl_call
    return self.wsdl_call_with_args(method, args, kwargs)
  File "/Library/Python/2.7/site-packages/pysimplesoap/client.py", line 370, in wsdl_call_with_args
    response = self.call(method, *params)
  File "/Library/Python/2.7/site-packages/pysimplesoap/client.py", line 262, in call
    jetty=self.__soap_server in ('jetty',))
  File "/Library/Python/2.7/site-packages/pysimplesoap/simplexml.py", line 56, in __init__
    self.__document = xml.dom.minidom.parseString(text)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/minidom.py", line 1928, in parseString
    return expatbuilder.parseString(string)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/expatbuilder.py", line 940, in parseString
    return builder.parseString(string)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
ExpatError: mismatched tag: line 1, column 944

Respuestas a la pregunta(1)

Su respuesta a la pregunta