- XML (Extensible Markup Language) Reader/Writer
- XML Quick Facts
- Workbench XML Reader Parameters
- Workbench XML Writer Parameters
- Feature Representation
- Mapping File Reference
- xfMap
- Reading the Input XML Document
- Mapping Rules
- Types of Mapping Rules
- Match and Except Expression
- Specifying Several Match Expressions for One Mapping Rule
- Limiting Mapping Rule Activation with Except Expressions
- Mapping Rule States (activation, execution, suspension, and de-activation)
- Using Force Elements During Mapping Rule Activation and Deactivation
- Search-sets
- Expression Elements (Extract and Literal)
- Expression Sequence
- Feature Mapping Rules
- FME Feature Construction
- Feature Type Element
- Attributes Element
- FME Feature Construction (defining mapping rules under the <feature-content-map> element)
- Attribute Element (handling multiple values)
- Attribute Element (handling optional attributes)
- Attribute Element (sequenced attributes)
- Attribute Element (Nillable Attributes)
- Geometry Element
- Geometry Builder States (activation, execution, suspension, and de-activation)
- Geometry Construction
- Composite Geometry Builders
- Built-in Geometry Builders
- xml-point
- xml-point-xy
- xml-line
- xml-area
- xml-donut
- xml-aggregate
- xml-box
- xml-text
- xml-path
- xml-arc
- xml-arc-by-center-point
- xml-elliptical-arc
- xml-circle
- xml-polygon
- xml-face
- xml-composite-surface
- xml-triangulated-surface
- xml-enclosed-surface
- xml-composite-solid
- xml-multi-point
- xml-multi-curve
- xml-multi-area
- xml-multi-text
- xml-multi-surface
- xml-multi-solid
- xml-null
- xml-reverse-geometry
- fme-geometry
- Mapping Segmented Geometric Information
- Geometry Traits (trait element)
- FME Feature Construction (constructing multiple features at a time)
- Structure Element
- References Element
- Apply References Element
- Group Mapping Rules
- Reference Mapping Rules
- Mapping Rules (Optional Elements)
- More Expression Elements
- FME Schema Features
- Reading the Input XML Document
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.