XFA Specification
Chapter 8, Dynamic Forms
Layout for Dynamic Forms
280
Instance managers have been omitted from drawings of the Form DOM elsewhere in this specification in
order to reduce clutter. The following figure is another look at the result of merging data with the
membership list template, as shown before in the figure
“DOMs resulting from dynamic membership list
example” on page 263,
but this time showing the instance manager.
Template DOM
Members
Form DOM
Members
Data DOM
Members
Date
Date
“01/01/04”
Date
“01/01/04”
_Member
instances = “2”
Member
occur.min = “1”
occur.max = “99”
Member[0]
Member[0]
First
“John”
First
Last
Last
“Brown”
First
“John”
Last
“Brown”
Member[1]
Member[1]
First
“Betty”
Last
“White”
First
“Betty”
Last
“White”
DOMs after merge showing instance manager
For more information about using instance managers, see
“Relative References” on page 100,
which is a
section in
“Scripting Object Model”.
Layout for Dynamic Forms
A previous chapter (“Layout
has described the layout algorithm and
how it accomplishes flowing layout. Dynamic forms use the same layout algorithm, except that adhesion
is modifed slightly. However there are additional layout capabilities which are only useful for dynamic
forms. Those additional capabilities are described in this section.
Flowing layout is generally used by dynamic forms so that different instances of the same subform,
represented only once in the template, can be placed in different positions upon the page. Furthermore,
flowing layout in XFA includes a simple and convenient way to lay out two-dimensional tables.
Adhesion in Dynamic Forms
The layout process treats subformSet objects as transparent. Hence a subform can adhere to another
subform even though it is not really a sibling, as long as the two subforms are separated only by
subformSet objects. For example, in the following template subform D does adhere to subform C even
though they are not true siblings. Subform E also adheres to D.