Guidelines for defining components
The guidelines below are numbered to allow references to each other. The numbering does not suggest a priority or a sequence to be followed in observing the guidelines.
- Categories cannot have components.
A category is only used for organizing your type tree and for setting common properties.
- A partitioned group cannot have components.
A partitioned group always represents a choice among the subtypes of that group. You never map a partitioned group without its subtree, so it does not need components.
Note: A subtree is a branch of a type tree that includes a type and all of the subtypes that stem underneath it. - If a group is not partitioned, it must have at
least one component.
Nonpartitioned groups are sequences of data objects rather than choices. A sequence must contain at least one component.
- A type and one of its subtypes cannot be in the same component list.
- If a type has components, a subtype can inherit any of those components or any type in the subtree of one of those components.
- If a type has no components, a subtype can inherit any type that could be in that type's component list.
- A type that has an initiator and a terminator can have itself or one of its ancestors as a component.
- A type cannot have one of its subtypes as a component.