使用 Delphi 2007 我正在尝试导入 wsdl 以供客户端使用。
我已经在 处导入了 WSDL https://services.rdc.nl/voertuigscan/2.0/wsdl
,它导入了一个 xsd 来定义它的类型。在导入的xsd中,还有几个额外的导入和包含的xsd,其中定义了如下类型:
<xs:complexType name="BedragExtended">
<xs:simpleContent>
<xs:extension base="ct:Bedrag">
<xs:attribute name="Bron" type="Bron"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
类型 ct:Bedrag 在包含的 XSD 中定义为:
<xs:simpleType name="Bedrag">
<xs:restriction base="xs:decimal">
<xs:totalDigits value="9"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
但是,BedragExtended 类型导入为:
// ************************************************************************ //
// XML : BedragExtended, global, <complexType>
// Namespace : http://nsp.rdc.nl/RDC/voertuigscan
// ************************************************************************ //
BedragExtended = class(TRemotable)
private
FBron: Bron;
FBron_Specified: boolean;
procedure SetBron(Index: Integer; const ABron: Bron);
function Bron_Specified(Index: Integer): boolean;
published
property Bron: Bron Index (IS_ATTR or IS_OPTN) read FBron write SetBron stored Bron_Specified;
end;
如您所见,没有提及 Bedrag 类型的基础值,但 wsdl 导入生成的 .pas 文件顶部的标题显示正确的 xsd 已被解析。如何让 Delphi 正确生成 BedragExtended 类型?