当通过具有相对路径模式的wsdl传递php SoapClient时失败

|| 我有以下问题: 当我向其传递使用相对路径导入架构的wsdl时,SoapClient对象的实例化将失败。 (根据我的研究,我相信情况确实如此) 我的代码如下:
$wsdl = \'http://myproxy/webservice?wsdl\';
$options = array( /* options */ );
$client = new SoapClient($wsdl, $options);
wsdl的模式导入部分:
<schema xmlns=\"http://www.w3.org/2001/XMLSchema\">
  <import namespace=\"http://myprovider/namespace1/namespace1\" schemaLocation=\"schema1.xsd\"/>
  <import namespace=\"http://myprovider/namespace1/namespace2\" schemaLocation=\"schema2.xsd\"/>
  <import namespace=\"http://myprovider/namespace1/namespace3\" schemaLocation=\"schema3.xsd\"/>
</schema>
我得到的错误:
SOAP-ERROR: Parsing WSDL: Couldn\'t load from \'http://myproxy/webservice?wsdl\' : Extra content at the end of the document
研究使我得出如下文章: https://issues.apache.org/jira/browse/AXIS2-484 据我所知,似乎我有两个选择: 让我的提供程序将架构路径更改为绝对路径 获取我的提供者给我一个模式的副本,以便我可以在从中调用
SoapClient
的服务器上进行托管     
已邀请:
就像我怀疑的那样。 模式的相对路径意味着SoapClient在解析wsdl时将尝试使用代理作为参考来访问模式文件,如下所示:
http://myproxy/schema1.xsd
由于我没有xsd文件,因此这将导致SoapClient引发错误。 然后,此问题的解决方案是消除代理,以便不影响到外部资源的相对路径。解决方案可以在这里找到: 扩展php SoapClient进行siteminder身份验证     

要回复问题请先登录注册