Bound types

A type is bound if its definition makes it clear where an instance of that type ends. If a type is bound, different objects of that type can be distinguished in a data stream. A bound type is easier to distinguish between an object of that type and an object of another type. The following tables describe how types may be bound.

An object of this type:
Is bound if any of the following is true:
Item
It is padded to a fixed size or its minimum and maximum content size are equal.

It has a terminator.

It has an include restriction list.

Partitioned item
Each non-partitioned item in the subtree is bound.
Sequence Group
It has an explicit fixed format.

It has a terminator.

Its last component is bound.

It is postfix delimited and its last component has a fixed range. For example, Comment Field (3:3) has a fixed range of (3:3).

Partitioned Group
Each non-partitioned group in its subtree is bound.
Choice Group
It has a terminator.

The type of each selection component is bound.

Unordered Group
It has a terminator.