Zhiwu Xie wrote:
Newbie here, would appreciate your help and/or hint.
Not sure if it's because I didn't use ImportDoctor properly or because
it's a SAX parser so it didn't reach the scheme for the namespace
'urn:theplatform-com:v4/base/' before trying to parse it, or it's the
WSDL file (
http://admin.theplatform.com/API/urn:service.wsdl) that's
wrongly formed.
The wsdl contains (16) schemas and (3) of them reference types in the in the
'urn:theplatform-com:v4/base/' namespace but fail to properly import the schema.
Even
though, the schema is defined within the same wsdl, XSD import rules apply.
What you have below is very close - but backwards. The Import() constructor takes the
namespace (and optional schema location) of an <xs:import/> to add (if missing).
The
Import.filter takes the targetNamepsace(s) of this schema(s) to be fixed (that are missing
the import(s) ).
This works for me:
url = 'http://admin.theplatform.com/API/urn:service.wsdl'
imp = Import('urn:theplatform-com:v4/base/')
imp.filter.add('urn:theplatform-com:v4/admin/value/')
imp.filter.add('urn:theplatform-com:v4/content/value/')
imp.filter.add('urn:theplatform-com:v4/rights/value/')
d = ImportDoctor(imp)
client = Client(url, schemadoctor=d)
Regards,
Jeff
Thanks a lot,
Zhiwu
>>> from suds.xsd.doctor import *
>>> imp =
Import('http://www.w3.org/2001/XMLSchema')
>>> imp.filter.add('urn:theplatform-com:v4/base/')
>>> doctor = ImportDoctor(imp)
>>> url = 'http://admin.theplatform.com/API/urn:service.wsdl'
>>> client = Client(url, schemadoctor=doctor)
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
client = Client(url, schemadoctor=doctor)
File "C:\Python25\Lib\site-packages\suds\client.py", line 106, in __init__
self.wsdl = Definitions(url, options)
File "C:\Python25\Lib\site-packages\suds\wsdl.py", line 193, in __init__
self.build_schema()
File "C:\Python25\Lib\site-packages\suds\wsdl.py", line 255, in
build_schema
self.schema = container.load()
File "C:\Python25\Lib\site-packages\suds\xsd\schema.py", line 92, in load
child.dereference()
File "C:\Python25\Lib\site-packages\suds\xsd\schema.py", line 294, in
dereference
midx, deps = x.dependencies()
File "C:\Python25\Lib\site-packages\suds\xsd\sxbasic.py", line 783, in
dependencies
raise TypeNotFound(qref)
TypeNotFound: Type not found: '(BusinessObject,
urn:theplatform-com:v4/base/, )'
------------------------------------------------------------------------
_______________________________________________
fedora-suds-list mailing list
fedora-suds-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/fedora-suds-list