WSDL -Or- オプション
WSDLIMP.EXE - コマンドライン WSDL インポート ツール への移動
-Or- オプションは、[純粋なコレクションの要素のエイリアスを生成する]として定義されています。旧バージョンと同様にコードを生成するための、下位互換のためのスイッチです。たとえば、次の純粋なコレクション型について考えてみます。
<complexType name="aerie"> <element name="hawk" type="xs:string" maxOccurs="unbounded"/> </complexType> <complexType name="raptorInfo"> <element name="Hawks" type="tns:aerie"/> </complexType>
旧バージョンの WSDLImp では、上記の型に対して次の Delphi コードを生成していました。
hawk = string; { "urn:test:ns"[!U][Alias] } aerie = array of hawk; { "urn:test:ns"[!U][GblCplx] } raptorInfo = class(TRemotable) private FHawks: aerie; published property Hawks: aerie read FHawks write FHawks; end;
この例では 'hawk' という型は、string のエイリアスで、'hawk' 要素を表し、aerie 配列/コレクションの要素を指す名前をエンコードしています。
現在の WSDLImp は単に次の内容を生成します。
aerie = array of string; { "urn:test:ns"[!U][GblCplx] } raptorInfo = class(TRemotable) private FHawks: aerie; published property Hawks: aerie read FHawks write FHawks; end;
配列要素の名前は、'RegisterExternalPropName' を呼び出すことで保存されます。
RemClassRegistry.RegisterExternalPropName(TypeInfo(raptorInfo), 'Hawks', '[ArrayItemName="hawk"]');
従来どおりエイリアス型が生成されるように戻したい場合には、[純粋なコレクションの要素のエイリアスを生成する]オプションをオンにしてください。デフォルトではオフになっています。