私の SoapClient の場合、リクエスト XML は次のようになります。
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope">
<SOAP-ENV:Body>
<SoapFunction xmlns="http://services.***/">
<prop1>value1</prop1>
<prop2>value2</prop2>
<prop3>
<KeyValuePair>
<Key>string</Key>
<Value>string</Value>
</KeyValuePair>
<KeyValuePair>
<Key>string</Key>
<Value>string</Value>
</KeyValuePair>
</prop3>
</SoapFunction>
</SOAP-ENV:Body>
</sSOAP-ENV:Envelope>
次のコードで prop1 と prop2 を正しくビルドできました。
$parameters = array(
'prop1' => value1,
'prop2' => value2
);
$request = array($parameters);
$client->__soapCall('SoapFunction', $request);
しかし、プロパティ prop3 を構築するにはどうすればよいでしょうか。特に、WSDL ファイルで定義されているKeyValuePair型を構築するにはどうすればよいでしょうか。