Group Construction and Destruction
We now describe when an xfMap group is created and destructed. If we let R be a group mapping rule defining the group G, then:
- G is constructed when R is activated, and
- G is destructed when R is de-activated, but only if:
- R was defined in the <group-map> element, or
- G is not a persistent group.
The XML Reader keeps a stack of constructed groups; for expository convenience we’ll name this stack the g-stack. When R activates, G is pushed into the g-stack, G is popped from the g-stack when R de-activates.
Note: Note: If for the moment we ignore the existence of persistent groups, then what b) says is that a group G is destructed whenever its corresponding mapping rule R is de-activated. Furthermore, if R was defined in the <group-map> element, then it does not matter if G is a persistent group or not, because it will always be destroyed when R de-activates. That is, there is no reason to define a group in the <group-map> element to be a persistent group: it will never persist because the condition in b) 1) does not allow it.
FME features that are constructed by feature mapping rules will enter all groups that are in the g-stack from the top until the bottom group of the stack. The FME features that leave the bottom group of the g-stack are output by the XML Reader.