PHP SOAP-ERROR:解析架构:无法从xsd导入架构

问题描述 投票:0回答:1

我正在运行一些使用soap编写的Web服务。

某些Web服务正在运行,但尝试导入本地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"/>

我不确定问题是什么。任何帮助,将不胜感激

php xml web-services soap xsd
1个回答
0
投票

解决!

问题是用于定位xsd文件的路径不正确,因为它已经进入/ myproject /文件夹并且不需要我手动添加/ myproject /的位置。

© www.soinside.com 2019 - 2024. All rights reserved.