title: python zeep nested response is not a python datastructure
body: <p>I am using python 2.7 with zeep as SOAP Client to retrieve some information. I noticed that the response of <code>client.service.ServiceName</code> returns a python data structure, e.i a list, but its items are not a python data structure instead, these are <code>lxml.etree._Element</code>. Could you please tell me if there is a way to make zeep return nested python dictionaries as opposed to xml.</p>
  
  <p>Here is the code:</p>
  
  <pre><code># python 2.7
  import zeep
  from lxml import etree
  print zeep.__version__    # '0.23.0'
  history = zeep.plugins.HistoryPlugin()
  client = zeep.Client(wsdl=wsdl, 
                       wsse=UsernameToken(username, password), 
                       plugins=[history])
  projectId, cardUniqueId, cardType, userLoginId = ('3', '111', 'XXX', 'myuser')
  cards = client.service.getCard(projectId, cardUniqueId, cardType, userLoginId)
  print(type(cards))   # &lt;type 'list'&gt;
  print(cards)         # [&lt;Element {http://kanbancard.webservices.kanban.app.digite.com/}fields at 0x7f706d69e640&gt;]
  print(type(cards[0]))    # &lt;type 'lxml.etree._Element'&gt;
  </code></pre>
  
  <p>Response of <code>client.service.getCard</code> is:</p>
  
  <pre><code>print(etree.tounicode(history.last_received['envelope'], pretty_print=True))
  
  &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;
    &lt;soapenv:Body&gt;
      &lt;ns:getCardResponse xmlns:ns="http://kanbancard.webservices.kanban.app.digite.com/"&gt;
        &lt;ns:fields&gt;
          &lt;ns:field ns:name="cardNumber"&gt;XYZ&lt;/ns:field&gt;
          &lt;ns:field ns:name="name"&gt;foobar&lt;/ns:field&gt;
          &lt;ns:field ns:name="description"&gt;foobar&lt;/ns:field&gt;
          &lt;ns:field ns:name="priority"&gt;High&lt;/ns:field&gt;
          &lt;ns:field ns:name="classOfService"&gt;Standard Class&lt;/ns:field&gt;
          &lt;ns:field ns:name="cardSize"&gt;1&lt;/ns:field&gt;
          &lt;ns:field ns:name="dateIdentified"&gt;2017-01-19T04:07:53Z&lt;/ns:field&gt;
          &lt;ns:field ns:name="ExternalCardId"&gt;XYZ&lt;/ns:field&gt;
          &lt;ns:field ns:name="currentSwimId"&gt;1632088&lt;/ns:field&gt;
          &lt;ns:field ns:name="currentQueueId"&gt;2322634&lt;/ns:field&gt;
        &lt;/ns:fields&gt;
      &lt;/ns:getCardResponse&gt;
    &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;
  </code></pre>
  
  <p>WSLD:</p>
  
  <pre><code>&lt;wsdl:operation name="getCard"&gt;
    &lt;wsdl:input message="axis2:getCardRequestMessage"&gt;
  &lt;/wsdl:input&gt;
    &lt;wsdl:output message="axis2:getCardResponseMessage"&gt;
  &lt;/wsdl:output&gt;
  &lt;/wsdl:operation&gt;
          &lt;xs:element name="getCardRequest"&gt;
              &lt;xs:complexType&gt;
                  &lt;xs:sequence&gt;
                      &lt;xs:element name="projectId" nillable="false" type="xs:string"/&gt;
                      &lt;xs:element name="cardUniqueId" nillable="false" type="xs:string"/&gt;
                      &lt;xs:element name="cardType" nillable="false" type="xs:string"/&gt;
                      &lt;xs:element name="userLoginId" nillable="true" type="xs:string"/&gt;
                  &lt;/xs:sequence&gt;
              &lt;/xs:complexType&gt;
          &lt;/xs:element&gt;
          &lt;xs:element name="getCardResponse"&gt;
              &lt;xs:complexType&gt;
                  &lt;xs:sequence&gt;
                      &lt;xs:any maxOccurs="unbounded" minOccurs="0"/&gt;
                  &lt;/xs:sequence&gt;
              &lt;/xs:complexType&gt;
          &lt;/xs:element&gt;
    &lt;wsdl:message name="getCardResponseMessage"&gt;
      &lt;wsdl:part name="part1" element="axis2:getCardResponse"&gt;
    &lt;/wsdl:part&gt;
    &lt;wsdl:message name="getCardRequestMessage"&gt;
      &lt;wsdl:part name="part1" element="axis2:getCardRequest"&gt;
      &lt;/wsdl:part&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:message name="getCardResponseMessage"&gt;
      &lt;wsdl:part name="part1" element="axis2:getCardResponse"&gt;
      &lt;/wsdl:part&gt;
    &lt;/wsdl:message&gt;
  </code></pre>