soap-client проблема с параметрами

lexx797979

Новичок
Есть wsdl -сервис , описана процедура GetRemains . В качестве параметра должна быть передана структура (
(представлю в виде xml запроса , который должен быть в идеале)
**************************************************************************************************
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<m:GetRemains xmlns:m="http://server.ru/namespace">
<m:list>
<m:List>
<m:Code>1111111</m:Code>
</m:List>
</m:list>
</m:GetRemains>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
***************************************************************************************************
вот мой код

$namep = "1111111";
$list1 = array('code'=>$namep);
$list2 = array('list' =>$list1);
$param = array('list1' =>$list2);


$client = new SoapClient("http://server/upp_test/ws/wsExchangeCustomers.1cws?wsdl",array('login' => "lexx", 'password' => "",'trace' => 1, 'exceptions' => 0,'soap_version' => SOAP_1_2));

$res = $client->GetRemains($param);

echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n";

В итоге получаю запрос :
**************************************************************************************
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns1="http://server.ru/namespace">
<env:Body>
<ns1:GetRemains>
<ns1:list xsi:nil="true"/>
</ns1:GetRemains>
</env:Body>
</env:Envelope>
**************************************************************************************
ВОПРОС : почему в list - вот это - (<ns1:list xsi:nil="true"/>) , а не вот это
(<m:list>
<m:List>
<m:Code>1111111</m:Code>
</m:List>
</m:list>) ?
 

lexx797979

Новичок
Проблему решил.
Вот - если кому надо.


class ref_Goods
{
var $Code;
function setCode($code)
{
$this->Code = $code;
}
}

class obj_ListNm
{
var $List;
}

$refgoods = new ref_Goods();
$refgoods->setCode("103545");

$obj_list = new obj_ListNm;
$obj_list->List=$refgoods;

$soapstruct = new SoapVar($obj_list,XSD_ANYTYPE,"obj_ListNm","http://server.ru/namespace");
$client = new SoapClient("http://server.ru/upp_test/ws/wsExchangeCustomers.1cws?wsdl",array('login' => "lexx", 'password' => "",'trace' => 1, 'exceptions' => 0,'soap_version' => SOAP_1_2));

try {
$res = $client->GetRemains(Array('list'=>$soapstruct));
// $res = $client->Call('GetRemains',$list,$mynamespace);
} catch (Exception $e) {
echo "error".$client->__getLastRequest();
}



echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n";
echo "REQUEST:\n" . htmlentities($client->__getLastResponse()) . "\n";


?>
 
Сверху