[Fedora-suds-list] Re: Soapenc: vs soap-enc: vs SOAP-ENC:?

Matt C mcauthorn at gmail.com
Fri Nov 6 20:22:58 UTC 2009


Python 2.5, suds 0.3.7 on Windows XP.

On Fri, Nov 6, 2009 at 12:43 PM, Paul Nicolette <photon3 at gmail.com> wrote:
> Matt,
>
> Thanks for testing.  Which versions of Python, Suds and OS platform did you use?
>
> Paul
>
> On 11/6/09, Matt C <mcauthorn at gmail.com> wrote:
>> Paul: I too was able to parse this wsdl without needing the doctor class:
>>
>> In [1]: url2 = 'http://njgin.state.nj.us/OIT_AddrMatch/OIT_AddrMatch?WSDL'
>> In [2]: from suds.client import Client
>>
>> In [6]: c = Client(url2, cache = None)
>> ERROR: An unexpected error occurred while tokenizing input
>> The following traceback may be corrupted or invalid
>> The error message is: ('EOF in multi-line statement', (129, 0))
>>
>> The error above ends with a stack trace for 'mismatched tag', which is
>> one of the cache bugs you may run into. I simply run the same command
>> again (no cache delete, etc. required):
>>
>> In [7]: c = Client(url2, cache = None)  <<< client object successfully
>> creates now.
>>
>> In [8]: print c
>>
>> Suds ( https://fedorahosted.org/suds/ )  version: 0.3.7 GA  build:
>> R580-20091016
>>
>> Service ( OIT_AddrMatch ) tns="urn:OIT_AddrMatch/wsdl"
>>    Prefixes (2)
>>       ns0 = "http://schemas.xmlsoap.org/soap/encoding/"
>>       ns1 = "urn:OIT_AddrMatch/types"
>>    Ports (1):
>>       (OIT_AddrMatchRPCPort)
>>          Methods (1):
>>             getAddrMatch(ns1:AddrMatchIO AddrMatchIO_1, )
>>          Types (50):
>>             ns1:AddrMatchIO
>>             ns0:Array
>>             ns1:ArrayOfAddrMatchIO
>>             ns0:ENTITIES
>>
>> ...Etc.
>>
>> So the short story: if you get that mismatched tag error, repeat the
>> same command again and it should build. I got no import errors at all,
>> so this should be clean aside from any cache issues.
>>
>> -Matt
>>
>> On Fri, Nov 6, 2009 at 12:05 PM, Paul Nicolette <photon3 at gmail.com> wrote:
>>> Jeff,
>>> Thanks for your gracious help to an embarrassed newbie.  I'm running
>>> Portable Python 1.1 on Vista Home Premium with the 0.3.7 \suds tree
>>> extracted to \Lib.  Using PyScripter 1.9.9.6 for IDE.
>>> My code:
>>>
>>> from suds.client import Client
>>> url = 'http://njgin.state.nj.us/OIT_AddrMatch/OIT_AddrMatch?WSDL'
>>> client = Client(url)
>>> print client
>>>
>>> With a cleared ...\temp\suds directory, I get
>>>
>>> [Dbg]>>>
>>> Traceback (most recent call last):
>>>   File "<string>", line 129, in run
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\bdb.py", line 368, in run
>>>     exec cmd in globals, locals
>>>   File "C:\Users\Staples\Documents\module2.py", line 3, in <module>
>>>     client = Client(url)
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\client.py", line 109,
>>> in
>>> __init__
>>>     self.wsdl = Definitions(url, options)
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\wsdl.py", line 194, in
>>> __init__
>>>     self.build_schema()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\wsdl.py", line 255, in
>>> build_schema
>>>     self.schema = container.load()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\xsd\schema.py", line
>>> 90,
>>> in load
>>>     child.open_imports()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\xsd\schema.py", line
>>> 277,
>>> in open_imports
>>>     imported = imp.open()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\xsd\sxbasic.py", line
>>> 608, in open
>>>     result = self.download()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\xsd\sxbasic.py", line
>>> 626, in download
>>>     root = Parser(transport).parse(url=url).root()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\sax\parser.py", line
>>> 134,
>>> in parse
>>>     sax.parse(fp)
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\xml\sax\expatreader.py",
>>> line
>>> 107, in parse
>>>     xmlreader.IncrementalParser.parse(self, source)
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\xml\sax\xmlreader.py", line
>>> 123, in parse
>>>     self.feed(buffer)
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\xml\sax\expatreader.py",
>>> line
>>> 211, in feed
>>>     self._err_handler.fatalError(exc)
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\xml\sax\handler.py", line
>>> 38,
>>> in fatalError
>>>     raise exception
>>> xml.sax._exceptions.SAXParseException:
>>> c:\users\staples\appdata\local\temp\suds\suds-649682136.http:10:2:
>>> mismatched tag
>>>
>>> Looked like Ticket #256.  Not knowing better, I tried replacing the
>>> suds-649682136.http tempfile with some valid(?) innocuous(?) XML and
>>> making
>>> it read-only:
>>>
>>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>> <body></body>
>>>
>>> After this change, I get
>>>
>>> [Dbg]>>>
>>> Traceback (most recent call last):
>>>   File "<string>", line 129, in run
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\bdb.py", line 368, in run
>>>     exec cmd in globals, locals
>>>   File "C:\Users\Staples\Documents\module2.py", line 3, in <module>
>>>     client = Client(url)
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\client.py", line 109,
>>> in
>>> __init__
>>>     self.wsdl = Definitions(url, options)
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\wsdl.py", line 194, in
>>> __init__
>>>     self.build_schema()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\wsdl.py", line 255, in
>>> build_schema
>>>     self.schema = container.load()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\xsd\schema.py", line
>>> 92,
>>> in load
>>>     child.dereference()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\xsd\schema.py", line
>>> 295,
>>> in dereference
>>>     midx, deps = x.dependencies()
>>>   File "C:\PortablePython_1.1_py2.6.1\App\lib\suds\xsd\sxbasic.py", line
>>> 330, in dependencies
>>>     raise TypeNotFound(self.ref)
>>> suds.TypeNotFound: Type not found: '(Array,
>>> http://schemas.xmlsoap.org/soap/encoding/, )'
>>>
>>> What would you suggest next?  (When I copied the WSDL local and changed
>>> "soap-enc:" to "SOAP-ENC:" it went further but then I think it tried to
>>> open
>>> the real service URL as a local file and couldn't resolve the name for
>>> some
>>> reason ;-)
>>> I could try:
>>>     a clean install of Python (but which version?) and
>>>     properly install a newer suds library (but would need pathetically
>>> detailed instructions) and am even willing to
>>>     replace my new best friend IDE with someone else (but who?), and then
>>> have no idea whether I might still
>>> catch:
>>>     pandemic obscurebugitis.
>>>>>>
>>>
>>>>>
>>>>> Similar error when I try the mssoapinterop part of the test at
>>>>> http://svn.fedorahosted.org/svn/suds/tags/release-0.3.2/tests/public.p
>>>>>
>>>>> <http://svn.fedorahosted.org/svn/suds/tags/release-0.3.2/tests/public.py>y.
>>>>>   I get /Type not found: '(Array,
>>>>> http://schemas.xmlsoap.org/soap/encoding/, )' /This WSDL uses
>>>>> "soapenc:Array" syntax.
>>>>
>>>> Sorry, the WIKI references the wrong version of public.py here.  I've
>>>> updated to point to the latest in trunk.
>>>
>>> Thank you sir for all your help!
>>> Paul
>>> _______________________________________________
>>> fedora-suds-list mailing list
>>> fedora-suds-list at redhat.com
>>> https://www.redhat.com/mailman/listinfo/fedora-suds-list
>>>
>>
>




More information about the suds mailing list