Using domeintabellen webservice


In [1]:
from suds.client import Client
url = 'http://domeintabellen-idsw-ws.rws.nl/DomainTableWS.svc?wsdl'
client = Client(url)

In [2]:
print(client)


Suds ( https://fedorahosted.org/suds/ )  version: 0.4 GA  build: R699-20100913

Service ( DomainTableWS ) tns="http://rws.services.nl/DomainTableWS/2010/10"
   Prefixes (3)
      ns0 = "http://rws.services.nl/DomainTableWS/2010/10"
      ns1 = "http://rws.services.nl/DomainTableWS/Contracts/2010/10"
      ns2 = "http://schemas.microsoft.com/2003/10/Serialization/"
   Ports (2):
      (basic)
         Methods (6):
            GetDateLastPublished(ns1:GetDateLastPublishedRequest request, )
            GetDomainTable(ns1:GetDomainTableRequest request, )
            GetDomainTableChanges(ns1:GetDomainTableChangesRequest request, )
            GetDomainTableChangesInfo(ns1:GetDomainTableChangesInfoRequest request, )
            GetDomainTableInfo(ns1:GetDomainTableInfoRequest request, )
            GetDomainTableNames(ns1:GetDomainTableNamesRequest request, )
         Types (31):
            ns1:BooleanField
            ns1:Data
            ns1:DataField
            ns1:DataRow
            ns1:DateTimeField
            ns1:DomainTableFault
            ns1:DomainTableNames
            ns1:DoubleField
            ns1:DtDatatype
            ns1:Fields
            ns1:GetDateLastPublishedRequest
            ns1:GetDateLastPublishedResponse
            ns1:GetDomainTableChangesInfoRequest
            ns1:GetDomainTableChangesInfoResponse
            ns1:GetDomainTableChangesRequest
            ns1:GetDomainTableChangesResponse
            ns1:GetDomainTableInfoRequest
            ns1:GetDomainTableInfoResponse
            ns1:GetDomainTableNamesRequest
            ns1:GetDomainTableNamesResponse
            ns1:GetDomainTableRequest
            ns1:GetDomainTableResponse
            ns1:IntegerField
            ns1:MetaData
            ns1:MetaDataColumn
            ns1:PagingResultSet
            ns1:RequestPageBase
            ns1:StringField
            ns2:char
            ns2:duration
            ns2:guid
      (ws)
         Methods (6):
            GetDateLastPublished(ns1:GetDateLastPublishedRequest request, )
            GetDomainTable(ns1:GetDomainTableRequest request, )
            GetDomainTableChanges(ns1:GetDomainTableChangesRequest request, )
            GetDomainTableChangesInfo(ns1:GetDomainTableChangesInfoRequest request, )
            GetDomainTableInfo(ns1:GetDomainTableInfoRequest request, )
            GetDomainTableNames(ns1:GetDomainTableNamesRequest request, )
         Types (31):
            ns1:BooleanField
            ns1:Data
            ns1:DataField
            ns1:DataRow
            ns1:DateTimeField
            ns1:DomainTableFault
            ns1:DomainTableNames
            ns1:DoubleField
            ns1:DtDatatype
            ns1:Fields
            ns1:GetDateLastPublishedRequest
            ns1:GetDateLastPublishedResponse
            ns1:GetDomainTableChangesInfoRequest
            ns1:GetDomainTableChangesInfoResponse
            ns1:GetDomainTableChangesRequest
            ns1:GetDomainTableChangesResponse
            ns1:GetDomainTableInfoRequest
            ns1:GetDomainTableInfoResponse
            ns1:GetDomainTableNamesRequest
            ns1:GetDomainTableNamesResponse
            ns1:GetDomainTableRequest
            ns1:GetDomainTableResponse
            ns1:IntegerField
            ns1:MetaData
            ns1:MetaDataColumn
            ns1:PagingResultSet
            ns1:RequestPageBase
            ns1:StringField
            ns2:char
            ns2:duration
            ns2:guid



In [4]:
# This generates a proper request
request = client.factory.create("ns1:GetDomainTableNamesRequest")
request.CheckDate = "2013-12-13T12:00:00"
client.service.GetDomainTableNames(request)
# however it fails because the response is not recognized


---------------------------------------------------------------------------
SAXParseException                         Traceback (most recent call last)
<ipython-input-4-cc7b4bac893d> in <module>()
      2 request = client.factory.create("ns1:GetDomainTableNamesRequest")
      3 request.CheckDate = "2013-12-13T12:00:00"
----> 4 client.service.GetDomainTableNames(request)
      5 # however it fails because the response is not recognized

/home/fedor/.virtualenvs/main/local/lib/python2.7/site-packages/suds/client.pyc in __call__(self, *args, **kwargs)
    540                 return (500, e)
    541         else:
--> 542             return client.invoke(args, kwargs)
    543 
    544     def faults(self):

/home/fedor/.virtualenvs/main/local/lib/python2.7/site-packages/suds/client.pyc in invoke(self, args, kwargs)
    600                 timer)
    601         timer.start()
--> 602         result = self.send(soapenv)
    603         timer.stop()
    604         metrics.log.debug(

/home/fedor/.virtualenvs/main/local/lib/python2.7/site-packages/suds/client.pyc in send(self, soapenv)
    641                 result = reply.message
    642             else:
--> 643                 result = self.succeeded(binding, reply.message)
    644         except TransportError, e:
    645             if e.httpcode in (202,204):

/home/fedor/.virtualenvs/main/local/lib/python2.7/site-packages/suds/client.pyc in succeeded(self, binding, reply)
    676         plugins = PluginContainer(self.options.plugins)
    677         if len(reply) > 0:
--> 678             reply, result = binding.get_reply(self.method, reply)
    679             self.last_received(reply)
    680         else:

/home/fedor/.virtualenvs/main/local/lib/python2.7/site-packages/suds/bindings/binding.pyc in get_reply(self, method, reply)
    143         reply = self.replyfilter(reply)
    144         sax = Parser()
--> 145         replyroot = sax.parse(string=reply)
    146         plugins = PluginContainer(self.options().plugins)
    147         plugins.message.parsed(reply=replyroot)

/home/fedor/.virtualenvs/main/local/lib/python2.7/site-packages/suds/sax/parser.pyc in parse(self, file, string)
    134             source = InputSource(None)
    135             source.setByteStream(StringIO(string))
--> 136             sax.parse(source)
    137             timer.stop()
    138             metrics.log.debug('%s\nsax duration: %s', string, timer)

/usr/lib/python2.7/xml/sax/expatreader.pyc in parse(self, source)
    105         self.reset()
    106         self._cont_handler.setDocumentLocator(ExpatLocator(self))
--> 107         xmlreader.IncrementalParser.parse(self, source)
    108 
    109     def prepareParser(self, source):

/usr/lib/python2.7/xml/sax/xmlreader.pyc in parse(self, source)
    121         buffer = file.read(self._bufsize)
    122         while buffer != "":
--> 123             self.feed(buffer)
    124             buffer = file.read(self._bufsize)
    125         self.close()

/usr/lib/python2.7/xml/sax/expatreader.pyc in feed(self, data, isFinal)
    212             exc = SAXParseException(expat.ErrorString(e.code), e, self)
    213             # FIXME: when to invoke error()?
--> 214             self._err_handler.fatalError(exc)
    215 
    216     def close(self):

/usr/lib/python2.7/xml/sax/handler.pyc in fatalError(self, exception)
     36     def fatalError(self, exception):
     37         "Handle a non-recoverable error."
---> 38         raise exception
     39 
     40     def warning(self, exception):

SAXParseException: <unknown>:2:43: not well-formed (invalid token)

In [5]:
# if you debug or use tcpdump to see what's going you'll see that we get a reply which looks like this
reply = '\r\n--uuid:89858f40-8ad5-4196-8eae-54b5dae2978d+id=22\r\nContent-ID: <http://tempuri.org/0>\r\nContent-Transfer-Encoding: 8bit\r\nContent-Type: application/xop+xml;charset=utf-8;type="text/xml"\r\n\r\n<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetDomainTableNamesResponse xmlns="http://rws.services.nl/DomainTableWS/2010/10"><GetDomainTableNamesResult xmlns:a="http://rws.services.nl/DomainTableWS/Contracts/2010/10" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:DomainTableNames><a:string>Aanduiding_naamgebruik</a:string><a:string>Aanslag_type</a:string><a:string>Aanvoereenheid_soorten</a:string><a:string>Aanvoergebied_soorten</a:string><a:string>Aanwezig_afwezig_onbekend</a:string><a:string>Academische_titel</a:string><a:string>Adellijke_titel_of_predikaat</a:string><a:string>Afleveringspunt_soorten</a:string><a:string>Afsluitwijzen</a:string><a:string>Afvoergebied_soorten</a:string><a:string>Afwateringseenheid_soorten</a:string><a:string>AtRisktype</a:string><a:string>BBP_beheerproduct</a:string><a:string>BBP_beleidsproduct</a:string><a:string>Bedrijfstakken_WVOW</a:string><a:string>Beheersvormen_waterkering</a:string><a:string>Belastingsoorten</a:string><a:string>Bemalen_of_vrij_verval</a:string><a:string>Bemonsteringsapparaat</a:string><a:string>Bemonsteringsmethode</a:string><a:string>Bemonsteringssoort</a:string><a:string>Beoordeling_schade</a:string><a:string>BeschermdGebiedtype</a:string><a:string>Bestemmingen_afvalwater</a:string><a:string>Besturingswijze</a:string><a:string>Bevaarbaarheidsklassen</a:string><a:string>Beweegbare_bruggen</a:string><a:string>Biotaxon</a:string><a:string>Boomhoogte</a:string><a:string>Brander</a:string><a:string>CEFILT</a:string><a:string>ClassificatieCIW</a:string><a:string>ClassificatieKRWGW</a:string><a:string>ClassificatieKRWbiologischOW</a:string><a:string>ClassificatieKRWchemischOW</a:string><a:string>Code_stroomrichting</a:string><a:string>Code_sturing</a:string><a:string>Compartiment</a:string><a:string>Correspondentie_soorten</a:string><a:string>Detailonderdeel_bijzondere_weglaag</a:string><a:string>Detailplaats_lijnmarkering</a:string><a:string>DoelMeetLocatieType</a:string><a:string>Doelen_baggerwerkzaamheden</a:string><a:string>Doelen_voor_metingen</a:string><a:string>Doorspoelbaarheid</a:string><a:string>Drainerende_werking</a:string><a:string>Druk</a:string><a:string>Drukklassen</a:string><a:string>EBEOkarakteristiek</a:string><a:string>Ecologische_verbindingszone_soort</a:string><a:string>Eenheden_voor_precario</a:string><a:string>Eenheid</a:string><a:string>Effecttype</a:string><a:string>Eindbeeld_boomvakdeel</a:string><a:string>Eindbestemmingen_baggerspecie</a:string><a:string>EmissieBrontype</a:string><a:string>Energielevering_soorten</a:string><a:string>FunctieKunstwerk</a:string><a:string>Functies_van_adressen</a:string><a:string>Functies_vastgoedelementen_en_gebieden</a:string><a:string>Gebouwd_onbebouwd</a:string><a:string>Gebruikscodes_objecten</a:string><a:string>Geografische_schalen</a:string><a:string>Graderingen_filterlaag</a:string><a:string>Gras_beheervorm</a:string><a:string>Gras_soorten</a:string><a:string>Groenbeheerniveau</a:string><a:string>Groentype</a:string><a:string>Grondmechanische_aspect_soorten</a:string><a:string>Grondslagen</a:string><a:string>Grootheid_dummy</a:string><a:string>Heffingsobject_soorten</a:string><a:string>Hoedanigheid</a:string><a:string>IWSRindicator</a:string><a:string>Inrichtingtype</a:string><a:string>J_N_of_onbekend</a:string><a:string>J_of_N</a:string><a:string>KRWKwaliteitselement</a:string><a:string>KRWMaatregeltype</a:string><a:string>KRWMeetLocatietype</a:string><a:string>KRWStatus</a:string><a:string>KRWStroomgebiedsdistrict</a:string><a:string>KRWWatertype</a:string><a:string>KRWhydromorfologische_parameter</a:string><a:string>Kabel_en_leiding_soorten</a:string><a:string>Koppelstuk_soorten</a:string><a:string>Kunstwerktype</a:string><a:string>Kwaliteitsoordeel</a:string><a:string>L_R_B</a:string><a:string>Leidingdeel_soorten</a:string><a:string>LocatietypeWaardeBepaling</a:string><a:string>Lozingsvoorziening_soorten</a:string><a:string>Materialen_voor_afvalwatertransportwerken</a:string><a:string>Materialen_voor_bekleding_waterkering_of_profiel</a:string><a:string>Materialen_voor_kunstwerken</a:string><a:string>Materialen_voor_leidingen</a:string><a:string>Materialen_voor_profielverdedigingen</a:string><a:string>Meetapparaat</a:string><a:string>Meetinstantie</a:string><a:string>Meting</a:string><a:string>Monsterbewerkingsmethode</a:string><a:string>Normgroep</a:string><a:string>Normkader</a:string><a:string>NoseCodetype</a:string><a:string>Onderzoekssoort</a:string><a:string>Onttrekkingsvoorziening_soorten</a:string><a:string>Onttrekkingtype</a:string><a:string>Opmerking_weglaag</a:string><a:string>OppervlakteCategorieStoomgebiedtype</a:string><a:string>Orgaan</a:string><a:string>Overige_vastgoedelement_soorten</a:string><a:string>Parameter</a:string><a:string>Plaatsbepalingsapparaat</a:string><a:string>Processen_RWZI</a:string><a:string>Processen_SVI</a:string><a:string>Processen_transportstelsel</a:string><a:string>Profiellijn_soorten</a:string><a:string>RWZI_soorten</a:string><a:string>Rechtsvormen_bedrijf</a:string><a:string>RedenGebruikLocatie</a:string><a:string>RichtlijnType</a:string><a:string>Rioleringselementen</a:string><a:string>Rioolstelsel_soorten</a:string><a:string>SGBPTitel</a:string><a:string>Scheepvaartteken</a:string><a:string>Soort_zorgplicht_voor_bomen</a:string><a:string>Staat</a:string><a:string>Stuw_soorten</a:string><a:string>Subject_rollen</a:string><a:string>Substraattype</a:string><a:string>TijdDimensietype</a:string><a:string>Tijdelijke_kroon</a:string><a:string>Vaarweg_soorten</a:string><a:string>Veer_typen</a:string><a:string>Verkeersvoorziening_boomvakdeel</a:string><a:string>Vormen</a:string><a:string>Waardebepalingsmethode</a:string><a:string>Waardebepalingstechniek</a:string><a:string>Waardebewerkingsmethode</a:string><a:string>Waarnemingssoort</a:string><a:string>WaterTypeKwantitatief</a:string><a:string>Waterbeheerder</a:string><a:string>Waterbeheergebiedtype</a:string><a:string>Waterkeringtype</a:string><a:string>Waterrijkheidtype</a:string><a:string>Waterstaatkundigezonering</a:string><a:string>WatertypeKwalitatief</a:string><a:string>WegAardtype</a:string><a:string>WetVerordeningtype</a:string><a:string>Zuivering_soorten</a:string><a:string>ZwemplekVoorzieningen</a:string></a:DomainTableNames></GetDomainTableNamesResult></GetDomainTableNamesResponse></s:Body></s:Envelope>\r\n--uuid:89858f40-8ad5-4196-8eae-54b5dae2978d+id=22--\r\n'

In [8]:
import xml.sax
import xml.etree.ElementTree
import io

In [9]:
# it is parsed like this:
parser = xml.sax.make_parser()
source = xml.sax.InputSource()

source.setByteStream(io.BytesIO(reply))
parser.parse(source)
# gives the same error


---------------------------------------------------------------------------
SAXParseException                         Traceback (most recent call last)
<ipython-input-9-6666e8cf67bf> in <module>()
      4 
      5 source.setByteStream(io.BytesIO(reply))
----> 6 parser.parse(source)
      7 # gives the same error

/usr/lib/python2.7/xml/sax/expatreader.pyc in parse(self, source)
    105         self.reset()
    106         self._cont_handler.setDocumentLocator(ExpatLocator(self))
--> 107         xmlreader.IncrementalParser.parse(self, source)
    108 
    109     def prepareParser(self, source):

/usr/lib/python2.7/xml/sax/xmlreader.pyc in parse(self, source)
    121         buffer = file.read(self._bufsize)
    122         while buffer != "":
--> 123             self.feed(buffer)
    124             buffer = file.read(self._bufsize)
    125         self.close()

/usr/lib/python2.7/xml/sax/expatreader.pyc in feed(self, data, isFinal)
    212             exc = SAXParseException(expat.ErrorString(e.code), e, self)
    213             # FIXME: when to invoke error()?
--> 214             self._err_handler.fatalError(exc)
    215 
    216     def close(self):

/usr/lib/python2.7/xml/sax/handler.pyc in fatalError(self, exception)
     36     def fatalError(self, exception):
     37         "Handle a non-recoverable error."
---> 38         raise exception
     39 
     40     def warning(self, exception):

SAXParseException: <unknown>:2:43: not well-formed (invalid token)

The service is using http://www.w3.org/TR/soap12-mtom/ which is not parsed by some soap parsers


In [39]:
msg = """
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetDomainTableNamesResponse xmlns="http://rws.services.nl/DomainTableWS/2010/10"><GetDomainTableNamesResult xmlns:a="http://rws.services.nl/DomainTableWS/Contracts/2010/10" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:DomainTableNames><a:string>Aanduiding_naamgebruik</a:string><a:string>Aanslag_type</a:string><a:string>Aanvoereenheid_soorten</a:string><a:string>Aanvoergebied_soorten</a:string><a:string>Aanwezig_afwezig_onbekend</a:string><a:string>Academische_titel</a:string><a:string>Adellijke_titel_of_predikaat</a:string><a:string>Afleveringspunt_soorten</a:string><a:string>Afsluitwijzen</a:string><a:string>Afvoergebied_soorten</a:string><a:string>Afwateringseenheid_soorten</a:string><a:string>AtRisktype</a:string><a:string>BBP_beheerproduct</a:string><a:string>BBP_beleidsproduct</a:string><a:string>Bedrijfstakken_WVOW</a:string><a:string>Beheersvormen_waterkering</a:string><a:string>Belastingsoorten</a:string><a:string>Bemalen_of_vrij_verval</a:string><a:string>Bemonsteringsapparaat</a:string><a:string>Bemonsteringsmethode</a:string><a:string>Bemonsteringssoort</a:string><a:string>Beoordeling_schade</a:string><a:string>BeschermdGebiedtype</a:string><a:string>Bestemmingen_afvalwater</a:string><a:string>Besturingswijze</a:string><a:string>Bevaarbaarheidsklassen</a:string><a:string>Beweegbare_bruggen</a:string><a:string>Biotaxon</a:string><a:string>Boomhoogte</a:string><a:string>Brander</a:string><a:string>CEFILT</a:string><a:string>ClassificatieCIW</a:string><a:string>ClassificatieKRWGW</a:string><a:string>ClassificatieKRWbiologischOW</a:string><a:string>ClassificatieKRWchemischOW</a:string><a:string>Code_stroomrichting</a:string><a:string>Code_sturing</a:string><a:string>Compartiment</a:string><a:string>Correspondentie_soorten</a:string><a:string>Detailonderdeel_bijzondere_weglaag</a:string><a:string>Detailplaats_lijnmarkering</a:string><a:string>DoelMeetLocatieType</a:string><a:string>Doelen_baggerwerkzaamheden</a:string><a:string>Doelen_voor_metingen</a:string><a:string>Doorspoelbaarheid</a:string><a:string>Drainerende_werking</a:string><a:string>Druk</a:string><a:string>Drukklassen</a:string><a:string>EBEOkarakteristiek</a:string><a:string>Ecologische_verbindingszone_soort</a:string><a:string>Eenheden_voor_precario</a:string><a:string>Eenheid</a:string><a:string>Effecttype</a:string><a:string>Eindbeeld_boomvakdeel</a:string><a:string>Eindbestemmingen_baggerspecie</a:string><a:string>EmissieBrontype</a:string><a:string>Energielevering_soorten</a:string><a:string>FunctieKunstwerk</a:string><a:string>Functies_van_adressen</a:string><a:string>Functies_vastgoedelementen_en_gebieden</a:string><a:string>Gebouwd_onbebouwd</a:string><a:string>Gebruikscodes_objecten</a:string><a:string>Geografische_schalen</a:string><a:string>Graderingen_filterlaag</a:string><a:string>Gras_beheervorm</a:string><a:string>Gras_soorten</a:string><a:string>Groenbeheerniveau</a:string><a:string>Groentype</a:string><a:string>Grondmechanische_aspect_soorten</a:string><a:string>Grondslagen</a:string><a:string>Grootheid_dummy</a:string><a:string>Heffingsobject_soorten</a:string><a:string>Hoedanigheid</a:string><a:string>IWSRindicator</a:string><a:string>Inrichtingtype</a:string><a:string>J_N_of_onbekend</a:string><a:string>J_of_N</a:string><a:string>KRWKwaliteitselement</a:string><a:string>KRWMaatregeltype</a:string><a:string>KRWMeetLocatietype</a:string><a:string>KRWStatus</a:string><a:string>KRWStroomgebiedsdistrict</a:string><a:string>KRWWatertype</a:string><a:string>KRWhydromorfologische_parameter</a:string><a:string>Kabel_en_leiding_soorten</a:string><a:string>Koppelstuk_soorten</a:string><a:string>Kunstwerktype</a:string><a:string>Kwaliteitsoordeel</a:string><a:string>L_R_B</a:string><a:string>Leidingdeel_soorten</a:string><a:string>LocatietypeWaardeBepaling</a:string><a:string>Lozingsvoorziening_soorten</a:string><a:string>Materialen_voor_afvalwatertransportwerken</a:string><a:string>Materialen_voor_bekleding_waterkering_of_profiel</a:string><a:string>Materialen_voor_kunstwerken</a:string><a:string>Materialen_voor_leidingen</a:string><a:string>Materialen_voor_profielverdedigingen</a:string><a:string>Meetapparaat</a:string><a:string>Meetinstantie</a:string><a:string>Meting</a:string><a:string>Monsterbewerkingsmethode</a:string><a:string>Normgroep</a:string><a:string>Normkader</a:string><a:string>NoseCodetype</a:string><a:string>Onderzoekssoort</a:string><a:string>Onttrekkingsvoorziening_soorten</a:string><a:string>Onttrekkingtype</a:string><a:string>Opmerking_weglaag</a:string><a:string>OppervlakteCategorieStoomgebiedtype</a:string><a:string>Orgaan</a:string><a:string>Overige_vastgoedelement_soorten</a:string><a:string>Parameter</a:string><a:string>Plaatsbepalingsapparaat</a:string><a:string>Processen_RWZI</a:string><a:string>Processen_SVI</a:string><a:string>Processen_transportstelsel</a:string><a:string>Profiellijn_soorten</a:string><a:string>RWZI_soorten</a:string><a:string>Rechtsvormen_bedrijf</a:string><a:string>RedenGebruikLocatie</a:string><a:string>RichtlijnType</a:string><a:string>Rioleringselementen</a:string><a:string>Rioolstelsel_soorten</a:string><a:string>SGBPTitel</a:string><a:string>Scheepvaartteken</a:string><a:string>Soort_zorgplicht_voor_bomen</a:string><a:string>Staat</a:string><a:string>Stuw_soorten</a:string><a:string>Subject_rollen</a:string><a:string>Substraattype</a:string><a:string>TijdDimensietype</a:string><a:string>Tijdelijke_kroon</a:string><a:string>Vaarweg_soorten</a:string><a:string>Veer_typen</a:string><a:string>Verkeersvoorziening_boomvakdeel</a:string><a:string>Vormen</a:string><a:string>Waardebepalingsmethode</a:string><a:string>Waardebepalingstechniek</a:string><a:string>Waardebewerkingsmethode</a:string><a:string>Waarnemingssoort</a:string><a:string>WaterTypeKwantitatief</a:string><a:string>Waterbeheerder</a:string><a:string>Waterbeheergebiedtype</a:string><a:string>Waterkeringtype</a:string><a:string>Waterrijkheidtype</a:string><a:string>Waterstaatkundigezonering</a:string><a:string>WatertypeKwalitatief</a:string><a:string>WegAardtype</a:string><a:string>WetVerordeningtype</a:string><a:string>Zuivering_soorten</a:string><a:string>ZwemplekVoorzieningen</a:string></a:DomainTableNames></GetDomainTableNamesResult></GetDomainTableNamesResponse></s:Body></s:Envelope>
"""
import xml.etree

In [48]:
doc = xml.etree.ElementTree.ElementTree()
doc.parse(io.BytesIO(msg))
doc.findall('.//a:DomainTableNames', namespaces={'a':'http://rws.services.nl/DomainTableWS/Contracts/2010/10'})


Out[48]:
[<Element '{http://rws.services.nl/DomainTableWS/Contracts/2010/10}DomainTableNames' at 0x3732650>]

In [ ]: