Używam po raz pierwszy najnowszej wersji suds (https://fedorahosted.org/suds/) i robię się zablokowany w kroku pierwszym.SOAP suds i przerażający schemat Type Not Found błąd
suds.TypeNotFound: Type not found: '(schema, http://www.w3.org/2001/XMLSchema,)'
Teraz wiem, że to jest dobrze pokryte ziemi w świecie mydlin (https://fedorahosted.org/suds/wiki/TipsAndTricks#Schema-TypeNotFound i Python/Suds: Type not found: 'xs:complexType'), ale wydaje się to nieco inaczej, ponieważ (a) schematu ma być automatycznie związana po wersji 0.3.4 oraz (b) nawet jawnie używając obejścia, to nadal nie działa.
from suds.client import Client
from suds.xsd.sxbasic import Import
url = 'file:wsdl.wsdl'
Import.bind('http://schemas.xmlsoap.org/soap/encoding/')
client = Client(url, cache = None)
z WSDL:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://ws.client.com/Members.asmx"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
targetNamespace="http://ws.client.com/Members.asmx"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://ws.client.com/Members.asmx">
<s:element name="GetCategoriesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetCategoriesResult">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
</wsdl:definitions>
otrzymuje się wyjątek powyżej.
Dziękuję za odpowiedź i jestem pewien, że pomoże to przyszłym ludziom, którzy natkną się na tę kwestię. Niestety, postanowiłem po prostu rozmawiać XML z interfejsem, który jest brzydki, ale zaskakująco trudny do zrobienia. – dpjanes
@dpjanes: Rzeczywiście tak. Trwało to tylko dwa dni, aby ta przeklęta rzecz mogła zadziałać. –
Nie wydaje mi się, żeby to miało jakikolwiek wpływ. Otrzymuję dokładnie ten sam błąd opisany powyżej przed i po wykonaniu importu. Używam najnowszych suds 0.4 – ThatAintWorking