差別主義者
それは助けます **aを選択する 熱 意/ヘルプ/ zest -仕様ファイル/構造/導入/"> ** 構造のグループから 値に基づいて 特定の 熱 意/ヘルプ/ zest -仕様ファイル/構造/プロパティ/導入/"> それらの中で。 このプロパティは、 熱 意/ヘルプ/ zest -仕様ファイル/構造グループ/識別子/マッピング/"> または 識別子名 構造体の属性を使用して、値をそれぞれの構造体とマッピングします。
可能な場所
- 熱 意/ヘルプ/ zest -仕様ファイル/構造グループ/導入/">構造グループ
子要素
- 熱意 /ヘルプ/ -仕 zest 様ファイル/構造グループ/識別子/マッピング/">マッピング 繰り返し
- 常に 識別子名 新しい 熱 意/ヘルプ/ zest -仕様ファイル/構造/導入/"> 差別者のために。- 判別器の既存の構造を参照するときは、 識別子名 すでに提供されている属性です。 使用 熱 意/ヘルプ/ zest -仕様ファイル/構造グループ/識別子/マッピング/"> 既存のマッピングの詳細をオーバーライドするため、または構造体が保持されていない場合に新しいマッチングを提供するため。 識別子名 価値観。
-
判別器の既存の構造を参照すると、判別器レベルで見つかったマッピングの詳細が 最高優先度.
-
マッピングを使用していない場合、 識別子名 を指定すると、構造体名は判別体に対して新しく定義された構造体に対する判別体のプロパティの値と見なされます。 参照された構造体では、その参照名が使用されます。
属性
| お名前 | タイプ | 説明 |
|---|---|---|
| プロパティ名
必須 | 文字列 | 判別者の名前について <property> |
- 差別主義者 熱 意/ヘルプ/ zest -仕様ファイル/構造/プロパティ/導入/"> 常にその一部である必要はありません。 熱 意/ヘルプ/ zest -仕様ファイル/構造/導入/"> それが選ばれます。 また、ランタイムで作成された動的プロパティで、プロパティ/に対してどの構造を選択する必要があるかを決定することもできます。 熱 意/ヘルプ/ zest -仕様ファイル/コンテンツ/紹介/"> あなたのユースケースに基づいて。
- 判別者のプロパティは、各構造体で宣言されている場合にのみ、ソースコードの生成に含まれます。 構造体に含まれず、判別器レベルでのみ宣言された場合、プロパティは生成されたソースコードのPojoで除外されます。
例
旅行者のリソースでは、私たちは 熱 意/ヘルプ/ zest -仕様ファイル/構造/プロパティ/導入/"> 呼び出し サービス 、その可能な値はフライトと宿泊施設です。 選択したサービスに応じて、特定の 熱 意/ヘルプ/ zest -仕様ファイル/構造/導入/"> 不動産へ。 この要件は、プロパティの値をマッピングすることによって満たすことができます " タイプ " 対応する構造について |
識別子名の使用
を利用する 識別子名 新しい 熱 意/ヘルプ/ zest -仕様ファイル/構造/導入/"> . a で指定された判別器 熱 意/ヘルプ/ zest -仕様ファイル/構造グループ/導入/"> この属性で提供されるマップの詳細に基づいた関数。これらの構造は、 熱 意/ヘルプ/ zest -仕様ファイル/コンポーネント/"> 、別のリソースでの使用を促進します。 これにより、判別器を使用するたびに値をそれぞれの構造に手動で関連付ける作業が最小限に抑えられます。以下は、以下を使用して作成されたサンプルです。 識別子名 このシナリオでは、
<property name="service" type="map">
<structure-group name="services" type="one-of">
<structure name="flight" discriminator-name="Flight">
<property name="flight_no" type="string" />
<property name="departure_airport" type="string" />
<property name="arrival_airport" type="string" />
</structure>
<structure name="accommodation" discriminator-name="Accommodation">
<property name="accommodation_name" type="string" />
<property name="check_in_date" type="string" />
<property name="check_out_date" type="string" />
</structure>
<discriminator property-name="type" /> <!-- discriminator's property not included in structure -->
</structure-group>
</property>
ZEST 動的プロパティは含まれません " タイプ " ソースコードでは、構造体に含まれておらず、判別器レベルでのみ宣言されるためです。
マッピングの使用
雇用する 熱 意/ヘルプ/ zest -仕様ファイル/構造グループ/識別子/マッピング/"> a を参照する場合 熱 意/ヘルプ/ zest -仕様ファイル/構造/導入/"> 開発者が指定していない別のリソースから、 識別子名. これを使用して、以前に設定した 識別子名.前述のシナリオでは、フライトおよび宿泊施設サービスのための個々のリソースがあり、各リソース開発者が他のリソースで使用するための構造を定義していると想像してください。 フライトリソース開発者は、 識別子名 しかし、構造体に判別子のプロパティを追加しました。 リソース開発者が指定した宿泊施設 ホテル として 識別子名.以下は、次のように宣言された構造体です。 熱 意/ヘルプ/ zest -仕様ファイル/コンポーネント/"> それぞれの資源
structure in the flights resource:
<components>
<structure ref-name="flight_template" name="external_resource_use">
<property name="type" type="string" values="Flight" /> <!-- discriminator's property -->
<property name="flight_no" type="string" />
<property name="departure_airport" type="string" />
<property name="arrival_airport" type="string" />
</structure>
</components>
structure in the accommodations resource: <components>
<structure ref-name="accommodation_template" name="external_resource_use" discriminator-name="Hotel">
<property name="accommodation_name" type="string" />
<property name="check_in_date" type="string" />
<property name="check_out_date" type="string" />
</structure>
</components>
以下は、値を持つマッピングフライトテンプレートのサンプルです。 フライト をオーバーライドします。 ホテル 値で 宿泊施設 宿泊施設用テンプレートです。
<property name="service" type="map">
<structure-group name="services" type="one-of">
<structure-ref name="flights.flight_template" />
<structure-ref name="accommodations.accommodation_template" />
<discriminator property-name="type">
<mapping name="Flight" structure-name="flights.flight_template"/>
<mapping name="Accommodation" structure-name="accommodations.accommodation_template"/>
<!-- Hotel is overridden with Accommodation -->
</discriminator>
</structure-group>
</property>
このサンプルでは、判別器の 熱 意/ヘルプ/ zest -仕様ファイル/構造/プロパティ/導入/"> フライトテンプレート構造にのみ含まれています。 したがって、この構造のために生成されたポジョのみがプロパティを含みます " タイプ 」。
Last Updated 2026-02-06 15:55:45 +0530 IST
Yes
No
Send your feedback to us