Sorry for my bad English.
Reproducing needs true SOAP server. If in WSDL there is property type Class(TXSDate) it can be null, so when trying to convert it to Date OptToSoapConv fails. Why this happens is that in code TSOAPDomConv.SetObjectPropFromText Date kind is expected to be tkFloat. But some how it's PropType is not TDateTime. So Trying to convert it to Float fails. How we fixed it years ago was that in code procedure TSOAPDomConv.SetObjectPropFromText(Instance: TObject; PropInfo: PPropInfo; const SoapData: InvString);
we make this:
tkFloat:
begin
if PropInfo.PropType^ = TypeInfo(TDateTime) then
begin
{Fix begins}
E := XMLTimeToDateTime(SoapData);
SetFloatProp(Instance, PropInfo, E);
end
else
try
E := StrToFloatEx(SoapData);
SetFloatProp(Instance, PropInfo, E);
except
VarClear(V);
SetVariantProp(Instance,PropInfo, V);
end;
{Fix ends}
end;
There was other places too. This problem was even in Delphi 2007.