8.3. Types of Flow Inheritance
Prev | 8. Flow Inheritance | Next

## 8.3. Types of Flow Inheritance

### Flow level inheritance

Flow level inheritance is defined by the `parent` attribute on the `flow` element. The attribute contains a comma separated list of flow identifiers to inherit from. The child flow will inherit from each parent in the order it is listed adding elements and content to the resulting flow. The resulting flow from the first merge will be considered the child in the second merge, and so on.

    <flow parent="common-transitions, common-states">

### State level inheritance

State level inheritance is similar to flow level inheritance, except only one state inherits from the parent, instead of the entire flow.

Unlike flow inheritance, only a single parent is allowed. Additionally, the identifier of the flow state to inherit from must also be defined. The identifiers for the flow and the state within that flow are separated by a #.

The parent and child states must be of the same type. For instance a view-state cannot inherit from an end-state, only another view-state.

    <view-state id="child-state" parent="parent-flow#parent-view-state">

Prev | Up | Next
8.2. Is flow inheritance like Java inheritance? | Home | 8.4. Abstract flows