NuSoap字符串数组数组

时间:2013-07-02 13:07:40

标签: c# php wsdl nusoap

我一直在尝试在最后一天返回一个可以被c#soap客户端反序列化的有效响应。

唯一的问题是当webservice返回一个字符串数组数组时。

C#客户端获取的错误是:

The specified type was not recognized: name='errorArray',  namespace='urn:https://xxxxxxxx/index.php', at <errors xmlns=''>.

我正在使用PHP Nusoap生成WSDL。

这是注册函数(我正在跳过一些部分,因为我得到的错误只与“错误”结构有关):

$server->register(
            'createEntity',                                     
            array('requests' => 'tns:inputCreateEntity'),       
            array(
                    'return' => 'tns:returnCreateEntity',
                    'errors' => 'tns:createEntityErrorArray'
            ),                                                  
            'urn:'.$nameSpace,                                  
            'urn:'.$nameSpace.'#createEntity'                   

    );

$server->wsdl->addComplexType(
            'createEntityErrorArray',
            'complexType',
            'array',
            'all',
            'SOAP-ENC:Array',
            array(),
            array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:errorArray[]')),
            'tns:errorArray'
);

$server->wsdl->addComplexType(
    'errorArray',
    'complexType',
    'array',
    'all',
    'SOAP-ENC:Array',
    array(),
    array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:string[]')),
    'xsd:string');

这是我的soap服务器返回的XML错误部分

 <errors xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:errorArray[1]">
        <item xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]">
           <item xsi:type="xsd:string">GENERAL ERRORS :</item>
           <item xsi:type="xsd:string">The request array must contain at least a valid array!</item>
        </item>
     </errors>

0 个答案:

没有答案