我正在调用一个documentum webservice,我从一个简单的代码开始:
from suds.client import Client #@UnresolvedImport
from suds.transport.https import HttpAuthenticated
import urllib2
t=HttpAuthenticated(username='x', password='x')
t.handler = urllib2.HTTPBasicAuthHandler(t.pm)
t.urlopener = urllib2.build_opener(t.handler)
url = 'http://hudt17:8888/services/core/ObjectService?wsdl'
client = Client(url,transport=t)
print client
如果url='http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl'
,它可以正常工作。但如果不是这样的话,我会把这个错误抛回给我:
https://docs.google.com/document/pub?id=1Qk8_qji385B9fZB-z4eMbPc1fv1AXVKEtbxr7Xx6AvQ
这里发生了什么?
答案 0 :(得分:5)
此问题有一个补丁:
https://fedorahosted.org/suds/attachment/ticket/239/recurselevel-schema.py.patch
单击页面底部的“原始格式”链接。然后,您可以使用以下方法应用修补程序:
patch schema.py < recurselevel-schema.py.patch
然后使用以下命令从suds source顶级目录安装:
easy_install .
答案 1 :(得分:1)
您正在引用一个引用自身的XSD架构。
或者引用另一个引用第一个模式的模式。
在任何情况下,一个或多个具有循环依赖的模式。
答案 2 :(得分:1)
这被视为Suds问题跟踪器的阻止错误:https://fedorahosted.org/suds/ticket/239
不幸的是,截至2012年,这个问题已经开放了3年多。
答案 3 :(得分:0)
我遇到了同样的问题,消耗了一个包含多个包含和循环调用的巨大wsdl。 suds-jurko的0.6版本不支持这一点,但目前开发人员削减v0.7似乎解决了这个问题。
下载最新的zip和提取:(查找提示标记或最新标记或分支) https://bitbucket.org/jurko/suds/downloads
安装:
$ sudo easy_install .
验证
$ pip freeze
应该显示:
泡沫-jurko == 0.7.dev0