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

Matt C mcauthorn at gmail.com
Fri Nov 6 17:30:26 UTC 2009


Forgot to reply all here...

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