Delphi SOAP服务器更改输出参数名称

时间:2016-10-22 14:51:36

标签: web-services delphi soap wsdl

我使用Delphi编写独立的SOAP服务器。它包含服务器的函数返回版本,例如:

function TMySOAP.GetVersion: string; stdcall;
begin
  Result := '1.0';
end;

根据某些规范,函数的输出值应该具有名称'Result',因此WSDL应该如下所示:

<message name="GetVersion3Response">
  <part name="Result" type="xs:string"/>
</message>

但是因为Delphi在其自身目的中使用了标识符'Result',我的服务器会生成下一个WSDL:

<message name="GetVersion3Response">
  <part name="return" type="xs:string"/>
</message>

输出参数的名称在规范中是硬编码的,由于名称不匹配,客户端程序无法正确处理服务器的答案。

有没有办法将输出参数的名称更改为'Result'?

1 个答案:

答案 0 :(得分:1)

自己找一个答案:

procedure TMySOAP.GetVersion(out Result: string); stdcall;
begin
  Result := '1.0';
end;

似乎有效。