title: How to format xml request from a WSDL with zeep in Python
body: <p>I have an example of xml request that should go to the SOAP server like so:</p>
  
  <pre><code>&lt;soapenv:Envelope 
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:ser="http://service.example.com" 
  xmlns:bos="http://bos.example.com"
  xmlns:ser1="http://service.example.com"&gt;
  &lt;soapenv:Header/&gt;
  &lt;soapenv:Body&gt;
  &lt;ser:UploadRequest ac="YY"&gt;
  &lt;ser:updateRecord&gt;
  &lt;ser:employee ptc="xxx" lastname="Example" firstname="Employee" 
  gender="F"&gt;
  &lt;bos:employment eID="testEmployee" doj="2000-01-17"/&gt;
  &lt;bos:employment-status startDate="2000-01-17" status="active"/&gt;
  &lt;/ser:employee&gt;
  &lt;/ser:updateRecord&gt;
  &lt;/ser:UploadRequest&gt;
  &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;
  </code></pre>
  
  <p>The service name here is Upload and the action is updateRecord. I  failed to format this request using python zeep.</p>
  
  <p>I have tested using soapui and it works. Now I need to send request using python and zeep but I still failed as I am new in SOAP and Zeep.</p>
  
  <p>Here is what I tried:</p>
  
  <pre><code>from requests import Session
  from zeep import Client
  from zeep.cache import SqliteCache
  from zeep.transports import Transport
  from lxml import etree
  
  session = Session()
  session.cert = 'client.pem'
  transport = Transport(session=session,cache=SqliteCache())
  client = Client('example.wsdl',transport=transport)
  
  
  request_data = {
  'updateRecord':{
      'ac': 'HF',
      'ptc': 'yy',
      'lastname':'Lasme',
      'firstname':'Didier',
      'gender':'M',
      'eID':'ACI001014',
      'doj':'2000-01-17'
      }
  }
  
  xml = client.create_message(client.service,'Upload',**request_data)
  print(etree.tostring(xml, encoding="unicode", pretty_print=True))
  </code></pre>
  
  <p>and I am getting this error</p>
  
  <blockquote>
    <p>TypeError: {<a href="http://service.example.com" rel="nofollow noreferrer">http://service.example.com</a>}UpdateRecord() got an<br>
    unexpected keyword argument 'eID'. Signature: `employee:<br>
    {<a href="http://bos.example.com" rel="nofollow noreferrer">http://bos.example.com</a>}Employee</p>
  </blockquote>
  
  <p>What I need is How to use zeep to format the above request.</p>