Event definitions inherit the properties of their parents.
By default, an event definition inherits the property descriptions and
extended data element descriptions of its parent. However, a child event definition
can override these inherited descriptions, subject to certain restrictions.
When you add an event definition to the event catalog, the catalog verifies
that the new event definition does not violate the rules governing inheritance;
if it does, an InheritanceNotValidException exception is thrown. Similarly,
if you replace an existing event definition that has descendants, the event
catalog verifies the validity of the existing inheritance relationships and
throws an InheritanceNotValidException exception if any of them are no longer
valid. In either case, the new event definition is not added to the catalog
unless all inheritance relationships are valid.
An event definition can exist in either of two forms,
unresolved and
resolved:
- An unresolved event definition includes only those property definitions
and extended data element descriptions that are defined within the event definition
itself.
- A resolved event definition includes the data in the unresolved event
definition in addition to the property definitions and extended data element
descriptions it inherits.
Overriding inherited property descriptions
A child
event definition inherits each property description from its parent without
change unless it already has a locally defined property description of the
same name and path (note that case is significant). If the child has a property
description of the same name and path, the fields of the child description
can override the fields of the parent description as follows:
- Default value
- The child can override the default value specified by the parent property
description. If the child does not specify a default value, it inherits the
value from the parent.
- Required or optional
- The child always overrides the parent. However, if the parent defines
a property as required, the child must also specify that it is required. An
inherited required property cannot be redefined as optional.
- Permitted values or minimum and maximum values
- If the parent defines permitted values or minimum and maximum values,
the child can override these by specifying either permitted values or minimum
and maximum values. Note that an event definition can contain only permitted
values or minimum and maximum values, not both:
- If the parent defines minimum and maximum values, but the child defines
permitted values, the minimum and maximum values defined by the parent are
ignored.
- If the parent defines permitted values, but the child defines minimum
and maximum values, the permitted values defined by the parent are ignored.
- If the parent defines only a maximum value, but the child defines only
a minimum value, the child inherits the maximum value defined by the parent.
- If the child does not specify permitted values or minimum and maximum
values, the values specified by the parent are inherited.
Overriding inherited extended data element descriptions
A
child event definition inherits each extended data element description from
its parent without change unless it already has a locally defined extended
data element description of the same name. If the child does have an extended
data element description of the same name, the fields of the child description
can override the fields of the parent description as follows:
- Type
- The child must specify the same type as the parent.
- Minimum occurrence
- The child always overrides the parent.
- Maximum occurrence
- The child always overrides the parent.
- Default values
- The child can override the default values specified by the parent extended
data element description. If the child does not specify default values, it
inherits the values from the parent.
- Default hexadecimal value
- The child can override the default hexadecimal value specified by the
parent extended data element description. If the child does not specify a
default hexadecimal value, it inherits the value from the parent.
- Nested extended data element description
- The child can override a nested extended data element description by defining
a nested description of the same name. If the child overrides an inherited
nested description, the same rules apply to overriding the individual fields.
If the child does not specify a nested extended data element description of
the same name, it inherits the nested description from the parent.