I was banging my head for a while on this one. I finally resolved the issue by using the following syntax:
from suds.xsd.doctor import ImportDoctor, Import
url = 'http://somedomain.com/filename.php?wsdl'
imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
imp.filter.add('http://some/namespace/A')
doctor = ImportDoctor(imp)
client = Client(url, doctor=doctor)
Importantly, start with the url. Open that file in your browser and it will provide you with the wsdl definitions. Make sure you have the right url entered here and that an XML file actually opens. Also mind the ?wsdl at the end of the url.
Second, imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
will import the standard SOAP schema.
Third, imp.filter.add('http:somedomain.com/A')
will add your specific namespace. You can find this namespace location by opening the url you defined above in url=
and looking for the section <wsdl:import namespace="http://somedomain.com/A"
.
Also be mindful of http vs https in your urls.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…