A component placeholder is a container within a device-type's component structure. Amongst other things the component placeholder specifies the component-types that can fulfill it. In a device of a specific device-type the placeholder must or may (see optional / mandatory component placeholders below) be populated with an appropriate component.
Component placeholder hierarchy level
As component placeholders are organized in a hierarchical, tree like structure, every component placeholder is on a specific level in this structure. Component placeholders directly linked to the device-type root are level 0 component placeholders, children of a level 0 component placeholder are level 1 placeholders and so on.
Each component placeholder is either mandatory or optional. If a component placeholder is optional, instances of this device-type can (but do not have to) assign a component to this placeholder. If it is mandatory, instances must assign component to this placeholder.
Each device-type consists of at least one mandatory level-0 component placeholder.
Component placeholders that are optional can have mandatory sub-component placeholders. In this case if a device assigns a component to an optional placeholder it must also assign components to all mandatory subordinate component placeholders.
Component placeholders are marked with an exchangeability attribute. This attribute defines if and how components assigned to this placeholder can be exchanged in the lifetime of a device. The exchangeability can obviously not be enforced for physical devices, however it is at least a hint for catalog clients how to display and handle component exchange.
Following exchangeability attributes are supported:
•Not-exchangeable: If an instance of a component is assigned to a non-exchangeable placeholder, it is not allowed to change this assignment to another component. If however an optional component placeholder has no assignment to a component yet, an assignment can be created.
•Exchangeable: If a component is assigned to a placeholder marked as exchangeable, it is allowed to change this assignment to another component. If the component placeholder is optional, the assignment can also be deleted, leaving the placeholder unassigned.
•Exchangeable with sub-components: If a component is assigned to a component placeholder marked as exchangeable with sub-components, it is allowed to change this assignment to another component but only if the assignment for all subordinate component placeholders is also changed.