XFA Specification
Chapter 8, Dynamic Forms
Layout for Dynamic Forms
289
Subform P does not fill
contentArea
C. However, the next subform to be laid out is R. This subform
asserts a
breakBefore
break condition. The break condition could be satisfied by adding another
instance of B to the Layout DOM as a sibling of the current
pageArea
. However
pageArea
B has an
occurrence limit of 1. In order to respect both this occurrence limit and the break condition, the layout
processor ascends to the
pageSet
and adds another sibling in the Layout DOM at that level. Then it
descends to the
contentArea
level, adding new nodes to the Layout DOM of as it goes. The result is:
[root]
[pageSet (A[0])]
[pageArea (B)]
[contentArea (C)]
[subform (O)]
[subform (P)]
[field (Q) = "text in field Q"]
[pageSet (A[1])]
[pageArea (B)]
[contentArea (C)]
[subform (O)]
[subform (R)]
[field (S) = "text in field S"]
Combined Break and Minimum Occurrence
A minimum occurrence limit may force the layout processor to add sibling nodes to the Layout DOM that it
would otherwise not have added, in order to satisfy a break condition.
For example, a template contains the following declarations:
<subform name="O">
<pageSet name="A">
<occur min="1"/>
<pageArea name="B">
<contentArea name="C" … />
</pageArea>
<pageArea name="D" ID="D_ID">
<occur min="2"/>
<contentArea name="E" … />
</pageArea>
</pageSet>
<subform name="P">
<field name="Q"> … </field>
</subform>
<subform name="R">
<breakBefore targetType="pageArea" target="#D_ID">
<field name="S"> … </field>
</subform>
</subform>
The Form DOM contains the following content:
[subform (O)]
[subform (P)]
[field (Q) = "text in field Q"]
[subform (R)]
[field (S) = "text in field R"]
Home Index Bookmark Pages
Pages: Home Index All Pages