Condition Element

Features that enter a group will also enter all its attribute sets and pipelines by default. Each attribute set and pipeline may contain an optional condition that allows an FME feature to enter it, or prevents and FME feature from entering it. The optional condition is represented in xfMap by the <condition> element:

<condition .../>

The <condition> element has two attributes named feature and element that take Boolean expressions as values. The feature attribute Boolean expression is evaluated on the attributes of the FME feature that entered the group. The element attribute Boolean expression is evaluated on the attribute of the element that matched the group mapping rule. At least one of the feature or element attributes must be present in the <condition> element. The following are the valid combinations:

<condition feature=”...”/>

<condition element=”...”/>

<condition feature=”...” element=”...”/>

The <condition> element also has an optional type attribute that specifies whether the feature and element Boolean expressions should form a conjunction or a disjunction. The valid values for the type attribute are and (for a conjunction), and or (for a disjunction). Its default value is and:

<condition feature=”...” type=”and” element=”...”/>

<condition feature=”...” type=”or” element=”...”/>

The grammar for both the feature and the element Boolean expressions is:

booleanExpr =	attrCondition	
	|	andExpr
	|   	orExpr
	| ‘(‘ booleanExpr ‘)’

andExpr = booleanExpr ‘and’ booleanExpr
orExpr = booleanExpr ‘or’ booleanExpr

attrCondition = ‘@’attrName(‘+’ | ‘-’)								| 
	 ‘@’attrName(‘=’|’!=’)’%’? (‘"‘|"‘")attrValue(‘"‘|"‘")

Note: Note: The XML Reader evaluates a Boolean expression in a right associative way. Use parentheses to indicate the intended precedence when using complex Boolean expressions.

Except for the % sign in the right-hand side of the attrCondition production, the grammar of the Boolean expression is identical to mapping rule’s match condition (see the section titled “mapping rules - the match expression”).

The % sign is used to access let variables inside the Boolean expression. Let variables are described in the section titled “mapping rules (optional elements) - define element”.