イベント定義は、そのイベントの親のプロパティーを継承します。
イベント定義は、デフォルトで、その親からプロパティーの説明および
拡張データ・エレメントの説明を継承します。しかし子イベントの定義はこれらの継承された記述をオーバーライドします。ただし、これには一定の制限があります。
イベント・カタログにイベント定義を追加すると、
そのカタログは、継承を管理するルールに新規イベント定義が違反しないことを検証します。
同様に、子孫を持つ既存のイベント定義を置き換える場合、
イベント・カタログでは、既存の継承リレーションシップの妥当性を検証し、それらが無効になっている場合は InheritanceNotValidException 例外をスローします。いずれの場合も、すべての継承リレーションシップが有効にならない限り、新規イベント定義はカタログに追加されません。
イベント定義は、
未解決 および
解決済み のいずれかの形式で存在します。
- 未解決のイベント定義には、イベント定義内で定義されているプロパティーの定義および拡張データ・エレメントの説明のみが含まれます。
- 解決済みのイベント定義には、未解決のイベント定義内のデータ、および継承されるプロパティーの定義と拡張データ・エレメントの説明が含まれます。
継承したプロパティーの記述のオーバーライド
子イベントの定義は、ローカルで定義された同名、同じパス (大/小文字の区別があることに注意)
のプロパティーの記述を既に持っていない限り、その親イベントから各プロパティーの記述を継承します。
子イベントに同名、同じパスのプロパティー記述がある場合、
子の記述の各フィールドは以下のように親の記述の各フィールドを以下のようにオーバーライドできます。
- デフォルト値
- 子は、親のプロパティー記述で指定したデフォルト値をオーバーライドできます。
子にデフォルト値が指定されていない場合は、親から値を継承します。
- 必須またはオプション
- 子は常に親をオーバーライドします。
ただし、親がプロパティーを必須として定義した場合、子もこのプロパティーが必須であることを指定する必要があります。継承された必須プロパティーはオプションのプロパティーとして再定義できません。
- 許可された値または最小値と最大値
- 親が許可された値または最小値および最大値を定義した場合、子は許可された値または最小値および最大値を指定することによって、
これらをオーバーライドできます。
イベント定義には、許可値、または最小値と最大値の両方ではなく、いずれか 1 つのみを組み込むことができます。
- 親が最小値および最大値を定義しているが、子が許可された値を定義している場合は、親が定義した最小値と最大値が無視されます。
- 親が許可された値を定義し、子が最小値と最大値を定義している場合は、親が定義する許可された値が無視されます。
- 親が最大値、子が最小値しか定義していない場合、子は親が定義した最大値を継承します。
- 子が許可された値または最小値と最大値を定義しない場合は、親が指定した値が継承されます。
継承された拡張データ・エレメントの記述のオーバーライド
子イベント定義は、同名の拡張データ・エレメントの記述を既にローカルで定義していない限り、親から各拡張データ・エレメントの記述を継承します。
子が同名の拡張データ・エレメントの記述を持っている場合は、子の記述の各フィールドが、以下のように親の記述をオーバーライドできます。
- 型
- 子は親と同じ型を指定する必要があります。
- 最小発生
- 子は常に親をオーバーライドします。
- 最大発生
- 子は常に親をオーバーライドします。
- デフォルト値
- 子は、親の拡張データ・エレメントの記述によって指定されたデフォルト値をオーバーライドできます。
子にデフォルト値が指定されていない場合は、親から値を継承します。
- デフォルトの 16 進値
- 子は、親の拡張データ・エレメント記述によって指定されたデフォルトの 16 進値をオーバーライドできます。
子にデフォルトの 16 進値が指定されていない場合は、親から値を継承します。
- ネストされた拡張データ・エレメントの記述
- 子は、同名のネストされた記述を定義することによって、ネストされた拡張データ・エレメントの記述をオーバーライドできます。
子が、継承したネストされた記述をオーバーライドするときには、個々のフィールドのオーバーライドに同じ規則が適用されます。
子に同名のネストされた拡張データ・エレメントの記述が指定されていない場合は、親からネストされた記述を継承します。