pysimplesoap - RuntimeError:没有给出url的方案

时间:2014-10-24 19:12:53

标签: python soap xsd wsdl pysimplesoap

我第一次尝试使用pysimplesoap(以及我第一次使用soap)代码

from pysimplesoap.client import SoapClient

j_location = 'http://api.jasperwireless.com/ws/schema'
j_xsd = 'http://api.jasperwireless.com/ws/schema/JasperAPI.xsd'
j_echo_wsdl = 'http://api.jasperwireless.com/ws/schema/Echo.wsdl'
j_billing_wsdl = 'http://api.jasperwireless.com/ws/schema/Billing.wsdl'

print 'Creating client'
myclient = SoapClient(wsdl=j_echo_wsdl)
print 'Target Namespace', myclient.namespace

错误 RuntimeError:没有给出url的方案:JasperAPI.xsd

我不确定我应该如何解决此错误。

1 个答案:

答案 0 :(得分:0)

我想这个问题是因为" JasperAPI.xsd"被引用为WSDL中的本地文件:

<xs:import namespace="http://api.jasperwireless.com/ws/schema" schemaLocation="JasperAPI.xsd"/>

我不完全确定schemaLocation应该如何运作。至少有一些软件会自动转换

schemaLocation="JasperAPI.xsd"

schemaLocation="http://api.jasperwireless.com/ws/schema/JasperAPI.xsd"

但至少libxml2 - 大多数(所有?)Python SOAP实现使用 - 不会这样做。

作为一次性快速修复,您可以尝试将JasperAPI.xsd放在本地工作目录中。