2014-11-04 58 views
0

我正在運行一些使用soap編寫的web服務。PHP SOAP-ERROR:解析架構:無法從xsd導入架構

然而那些試圖導入本地XSD一些Web服務正在運行是失敗

<faultcode>WSDL</faultcode> 
<faultstring> 
    SOAP-ERROR: Parsing Schema: can't import schema from 'http://localhost/myproject/_xsd/1' 
</faultstring> 

以下是從我的WSDL

<definitions 
     xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
     xmlns:wsp="http://www.w3.org/ns/ws-policy" 
     xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" 
     xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" 
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
     xmlns:tns="http://ws.platform.commersite.com/" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns="http://schemas.xmlsoap.org/wsdl/" 
     targetNamespace="http://ws.platform.commersite.com/" 
     name="PlatformControllerWSService"> 
<types> 
    <xsd:schema> 
     <xsd:import 
       namespace="http://mysite/" 
       schemaLocation="http://localhost/myproject/1" /> 
    </xsd:schema> 
    <xsd:schema> 
     <xsd:import 
       namespace="http://somesite/" 
       schemaLocation="http://localhost/myproject/_xsd/2" /> 
    </xsd:schema> 
</types> 

的提取物裝入XSD文件去一個php函數

public function _xsdAction($xsd) { 
     $this->response->setHeader("Content-Type", "text/xml"); 

     $this->view->pick('server/_xsd' . $xsd); 

     $this->view->setVars(array(
      'param1' => Server::config('param1'), 
      'param2' => Server::config('param2'), 
     )); 
} 

另外值得一提的是xsd1進口xsd2

<xs:import namespace="{{ param1 }}" schemaLocation="{{ param2 }}xsd/2"/> 

我不確定這個問題可能是什麼。任何幫助,將不勝感激

回答

0

已解決!

問題是用於定位xsd文件的路徑不正確,因爲它已經進入/ myproject /文件夾,並且不需要我添加/ myproject /手動位置。