Проблема с использованием SOAP сервера в Delphi
при импорте внешнего SOAP сервера через WSDL-Importer в Delphi XE7 получаю следующую функцию:
function AttrSearch(const arg0: ArrayOfanyType; const arg1: string; const arg2: Integer): DocListInfo; stdcall; ArrayOfanyType = array of String;
Пытаюсь выполнить данную функцию:
var
Conditions : ArrayOfAnyType;
begin
SetLength(Conditions, 1);
Conditions[0] := '{id:''1'', values:''2695-83''}';
DocList := SoapSrv.AttrSearch(Conditions, '', -1);
end;
Но данный код на последней строке вызывает ошибку, при обращении к SOAP серверу. Для документа XML должен существовать документ более высокого уровня.
На сервер отправляется следующий XML-файл
<NS1:AttrSearch>
<arg0 xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
<item>
{id:'1', values:'2695-83'}
</item>
</arg0>
<arg1
xsi:type="xsd:string">
</arg1>
<arg2
xsi:type="xsd:int">
-1
</arg2>
</NS1:AttrSearch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Должен же отправляться XML-файл
<ns1:AttrSearch>
<arg0 xsi:type="ns1:ArrayOfanyType">
<anyType xsi:type="SOAP-ENC:Struct">
<id xsi:type="xsd:int">0</id>
<value xsi:type="xsd:string">ГОСТ БЕТОН</value>
</anyType><anyType xsi:type="SOAP-ENC:Struct">
<id xsi:type="xsd:int">1</id>
<values SOAP-ENC:arrayType="xsd:int[1]" xsi:type="SOAP-ENC:Array">
<item xsi:type="xsd:int">9041212</item>
</values>
<lop xsi:type="xsd:string">or</lop>
</anyType>
</arg0>
<arg1 xsi:nil="true"/>
<arg2 xsi:type="xsd:int">-1</arg2>
</ns1:AttrSearch>
в PHP кусок кода по использованию данной функции выглядит следующим образом:
class SearchConditionString {
var $id;
var $value;
function __construct($id, $value) {
$this->id = $id;
$this->value = $value;
}
};
$conditions[] = new SearchConditionString(
1,
"2695-83"
);
Как правильно использовать данную функцию в Delphi XE7? Или я неправильно импортировал WSDL схему?
Заранее спасибо.