Я использую SOAP :: Lite для связи с "SOAP" -Service-WSDL (ASMX соответственно).Эта служба требует массив аргументов, например:
<scriptParameters>
<string>string</string>
<string2>string2</string2>
</scriptParameters>
В Perl я использую следующий код:
my @args;
my @params;
foreach (keys %{$self->{args}}) {
push(@params, SOAP::Data->name($_ => $self->{args}->{$_})->type(""));
}
push(@data, SOAP::Data->name("scriptParameters" => SOAP::Data->value(\@params)->type(""))->type(""));
Но это создает следующий XML:
<scriptParameters soapenc:arrayType="xsd:anyType[11]" xsi:type="namesp20">
<job_id xsi:type="xsd:int">18381</job_id>
<dump xsi:type="xsd:int">0</dump>
</scriptParameters
Обратите внимание на soapenc: arrayType ... -материал в элементе scriptParameters-Element.
Проблема теперь в том, что ASMX-Service не распознает массив scriptParameters (я думаю, что из-за soapenc-вещи (к сожалению, это не отладка). У кого-нибудь есть идеи, как я могу получитьизбавиться от дополнительных данных?
Спасибо:)