NuSoapを使用したWebサービスWSDLがあります。CodeIgniterで使用しています。contexttype-arrayの戻り値に問題があります。これが私のPHPコードです:
$this->nusoap_server->wsdl->addComplexType(
"getJobStatusByIdsResponse",
"complexType",
"array",
"all",
"SOAP-ENC:Array",
array(),
array(
'Job' => array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:jobStatusResponse[]', 'minOccurs'=>'1', 'maxOccurs'=>'unbounded')
),
'tns:jobStatusResponse'
);
$this->nusoap_server->wsdl->addComplexType(
"getJobStatusByIdsResponse",
"complexType",
"array",
"all",
"SOAP-ENC:Array",
array(),
array(
'Job' => array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:jobStatusResponse[]', 'minOccurs'=>'1', 'maxOccurs'=>'unbounded')
),
'tns:jobStatusResponse'
);
$this->nusoap_server->register(
"getJobStatusByIds",
array('getJobStatusByIdsRequest' => 'tns:getJobStatusByIdsRequest'),
array('getJobStatusByIdsResponse' => 'tns:getJobStatusByIdsResponse'),
false,
false,
"rpc",
"literal",
"get JobStatus By Ids"
);
function getJobStatusByIds($data) {
return array(array('orderId' => '1000', 'jobStatus' => '5'),array('orderId' => '1001', 'jobStatus' => '3'),array('orderId' => '1002', 'jobStatus' => '7'))
}
私はこれを返品として受け取ります:
<ns1:getJobStatusByIdsResponse xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
<getJobStatusByIdsResponse>
<item>
<orderId>1001</orderId>
<jobStatus>5</jobStatus>
</item>
<item>
<orderId>1002</orderId>
<jobStatus>3</jobStatus>
</item>
<item>
<orderId>1003</orderId>
<jobStatus>7</jobStatus>
</item>
</getJobStatusByIdsResponse>
</ns1:getJobStatusByIdsResponse>
そうじゃないですよね?
どうすればこのように取得できますか(「item」ではなく「Job」):
<ns1:getJobStatusByIdsResponse xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
<getJobStatusByIdsResponse>
<Job>
<orderId>1001</orderId>
<jobStatus>5</jobStatus>
</Job>
<Job>
<orderId>1002</orderId>
<jobStatus>3</jobStatus>
</Job>
<Job>
<orderId>1003</orderId>
<jobStatus>7</jobStatus>
</Job>
</getJobStatusByIdsResponse>
</ns1:getJobStatusByIdsResponse>
誰を助けることができますか?NuSoapのその他の例はどこにありますか?