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