我使用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'?
答案 0 :(得分:1)
自己找一个答案:
procedure TMySOAP.GetVersion(out Result: string); stdcall;
begin
Result := '1.0';
end;
似乎有效。