Класс TMyClass
из моего файла интерфейса является производным от его родительского класса TMyRemotable
, который, в свою очередь, является производным от TRemotable
.
Проблема с сгенерированным WSDL заключается в том, что опубликованные свойстваTMyClass
не отображаются в типе <complex>
.
Рассмотрим следующие фрагменты кода:
Sample.pas
TMyRemotable = class(TRemotable)
public
class function NewInstance: TObject; override;
destructor Destroy; override;
end;
UserIntf.pas // Файл интерфейса
TMyClass = class(TMyRemotable)
private
FUserName: string;
FpassWord: string;
published
property UserName: string read FUserName write FUserName;
property Password: string read FpassWord write FpassWord;
end;
Мы получаем этот вывод:
<types>
<xs:schema xmlns="urn:UserIntf" targetNamespace="urn:UserIntf">
<xs:complexType name="TMyClass">
<xs:sequence/>
</xs:complexType>
Ожидаемый вывод:
<types>
<xs:schema xmlns="urn:UserIntf" targetNamespace="urn:UserIntf">
<xs:complexType name="TMyClass">
<xs:sequence>
<xs:element name="UserName" type="xs:string"/>
<xs:element name="PassWord" type="xs:string"/>
</xs:sequence>
Пожалуйста, объясните мне, как включить опубликованные свойства в сгенерированный файл WSDL.