I'm fairly new to soap calls but I have got a simple one working ok, using arrays.
$xml_array['searchName'] = "websvc";
$xml_Parray['name'] = "Cust Code";
$xml_Parray['value'] = "338877";
// $Parray['searchParameter xsi:type="met:StringParameter"']=$xml_Parray; //errors
$Parray['searchParameter']=$xml_Parray;
$client = new WSSoapClient($wsdl, array('trace' => 1, 'exceptions' => 0));
$client->__setUsernameToken($UserName, $Password);
$client->__setLocation('http://127.0.0.1:80/demo/search');
$xml_array['searchParameters'] = $Parray;
$response = $client->__soapCall("getDocuments", array($xml_array));
So this give me...
<searchName>websvc</searchName>
<searchParameters>
<searchParameter>
<name>Cust Code</name>
<value>338877</value>
</searchParameter>
</searchParameters>
BUT I now need to add additional text
xsi:type="met:StringParameter"
<searchName>websvc</searchName>
<searchParameters>
<searchParameter xsi:type="met:StringParameter">
<name>Cust Code</name>
<value>338877</value>
</searchParameter>
</searchParameters>
I simply tried
$Parray['searchParameter xsi:type="met:StringParameter"']=$xml_Parray;
but get a reponse
Fatal error: SOAP-ERROR: Encoding: object has no 'searchParameter' property
Can anyone help ?
Update. I have found out that what i am trying to do is add attributes!
So I have tried this
array("searchParameter" => array("_" => "$xml_Parray", "xsi:type"=>"met:StringParameter"));
But I'm not sure thats right either!