title: Use only available SOAP bindings?
body: <p>Currently using Suds with Python 2.7. Open to trying a different client. </p>
  
  <p>I'm connecting to a SOAP service that returns different documents where only certain fields are available depending on the document. Introspecting the service doesn't help because I just get a list of all available fields rather than those returned on a doc by doc basis. This has led me to some particularly annoying error handling, which currently looks like:</p>
  
  <pre><code>try:
      client.service.Something
  except AttributeError:
      pass
  else:
      doSomethingWith(client.service.Something)
  </code></pre>
  
  <p>For every possible field in the WSDL schema.</p>
  
  <p>Alternatively, parsing the response to generate a list of available fields doesn't help much, because then I end up with a long list of</p>
  
  <pre><code>if client.service.Something is not None:
      doSomethingWith(client.service.Something)
  </code></pre>
  
  <p>I suppose I could parse the doc and build a list of available fields, and then do something like:</p>
  
  <pre><code>for field in listOfFields:
      doSomethingWith(field)
  </code></pre>
  
  <p>But I do different things with the field's contents depending on what the field is, so that doesn't help much.</p>
  
  <p>Is there any simple/elegant solution? I can't be the only one to have encountered this.</p>