XFA Specification
Chapter 7, Layout for Growable Objects
Flowing Layout for Containers
238
[root]
[pageSet (A[0])]
[pageArea (B)]
[contentArea (C)]
… content …
[contentArea (D)]
… content …
[pageArea (E[0])]
[contentArea (F)]
… content …
[pageArea (E[1])]
[contentArea (F)]
… content …
[pageSet (A[1])]
[pageArea (B)]
[contentArea (C)]
… content …
[contentArea (D)]
… content …
[pageArea (E[0])]
[contentArea (F)]
… content …
[pageArea (E[1])]
[contentArea (F)]
… content …
The layout processor is data-driven; it lays down
pageArea
objects in order to use the
contentArea
objects on them. However it is possible for a
pageArea
to contain boilerplate but no
contentArea
. The
minimum occurrence limit makes it possible to force the layout processor to lay down an instance of such
a page, despite its lack of a
contentArea
.
The value of a minimum occurrence limit for a
pageSet
or
pageArea
must be a non-negative (i.e. zero or
larger) decimal integer.
Minimum and maximum occurrence limits may be combined. If the same
pageSet
or
pageArea
has
both minimum and maximum occurrence limits the maximum must be either -1 or larger than the
minimum.
Note that subforms may also have minimum occurrence values, but those are used only in the data
binding (merge) process; they have no effect on the layout processor. See the
“Basic Data Binding to
Produce the XFA Form DOM” on page 154
occurrence values for subforms.
Adhesion
Generally when using a flowing layout strategy the layout processor puts as much content as possible into
each
contentArea
before moving on to the next
contentArea
, splitting layout objects where possible
to pack them more efficiently into the
contentArea
. However sometimes the densest packing is not
desired. For example, it may be desired to keep sequential layout objects together in the same
contentArea
, similar to widow and orphan control in word processors. The
keep
property of a subform
has sub-properties which control exceptions to the default packing.
Adhesion of the current subform to an adjacent subform is controlled by the
next
and
previous
sub-properties of the
keep
property. These sub-properties accept three values.
●
none
means the subform does not adhere to the adjacent subform. This is the default.