WSDL -Or- オプション

提供: RAD Studio
移動先: 案内検索

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"]');

従来どおりエイリアス型が生成されるように戻したい場合には、[純粋なコレクションの要素のエイリアスを生成する]オプションをオンにしてください。デフォルトではオフになっています。