2011-05-05 51 views
3

脚本示例导入架构:SoapClient的解析模式:不能从

try { 
     $client = new SoapClient("http://webservices.sabre.com/wsdl/sabreXML1.0.00/GHT/HotelDirectUpdate.wsdl", array("trace" => 0)); 
    } catch (Exception $ex) { 
     var_dump($ex->faultcode, $ex->faultstring, $ex->faultactor, $ex->detail, $ex->_name, $ex->headerfault); 
    } 

输出:

string(4) "WSDL" 
string(216) "SOAP-ERROR: Parsing Schema: can't import schema from 'http://webservices.sabre.com/wsdl/sabreXML1.0.00/GHT/HotelDirectUpdateRQ.xsd', unexpected 'targetNamespace'='http://webservices.sabre.com/hgc/hoteldirectupdaterq'" 
NULL 
NULL 
NULL 
NULL 

我知道WSDL文件是正确的。我通过http://www.soapclient.com/interop/interopTest.html检查了wsdl文件,它看起来没问题。但是当我从PHP调用wsdl文件时,它给出了上述错误。

任何想法/建议?

回答

0

在某些版本的PHP中有一些已知错误,也许你正在运行一个较旧的PHP版本?

+0

我的PHP版本是PHP 5.3.2 – Mustafa 2011-05-05 23:55:24

+0

这不应该是一个问题,我注意到的最新问题是我认为早期的5.0.0版本。 – 2011-05-06 00:10:23

+1

PHP Version 5.2.13的类似问题...版本有可能是问题所在? :-S – Briganti 2012-04-24 07:36:42

1

我们还发现SoapClient不能处理某些模式,但不会出现您遇到的错误。最糟糕的解决方案似乎是使用Java与SOAP服务交互,使用PHP-Java BridgeGearman来执行PHP-Java互操作。