Whenever this condition succeeds the enclosed data item is presented, when
it fails the data item is ignored.
When looking for a match the data context is examined and depending on
its structure the current context has to contain certain context attributes.
Extra attributes within the current context do not influence the outcome of
the match condition.
A context containing only one context attribute is presented when the same attribute occurs within the current context. Two context attributes are equal, or match, when the name and the value of the attribute are equal.
When a data context is encountered that contains attributes with the same name but different values the match condition succeeds when one of these context attributes occurs within the current context. Context attributes organized this way can also be considered to be linked via a boolean OR expresion. I.e. the data item is presented if either attribute1 OR attribute2 OR attribute3 OR ... occurs within the current context.
If the data context contains context attributes with different names the match condition only succeed if for every context attribute with a unique name a match is found within the current context. Therefore attributes with varying names can be considered to be linked via a boolean AND expression., i.e. the data item is presented only if attribute1 AND attribute2 AND attribute3 AND ... occurs within the current context.
For every unique name occuring within the data context the current context has to contain at least one pair (name, value) that matches a pair within the data context.
If the reserved value of "default" occurs within the data context then there is no need for the name that is used in conjuction with "default" to occur within the current context. This data item is presented even if there is no attribute with that name within the current context. If that name is contained within the current context the concerned attributes still have to match or else the match condition will fail. Defaults only have influence on "missing" attributes and they act only locally on the item they are defined on.
A data context can be nested within another one, the enclosed section "inherits" the data context from the enclosing section, i.e. it only gets examined if the match condition for the enclosing data context suceeded. Its data context is defined independently of the enclosing data context. The enclosed and the enclosing data context are logically linked via boolean AND. Both match conditions have to suceed for the most interior data item to be presented.
Example:
The following table shows the attributes defined in the data context and the current context, it also shows the result of the match condition. An individual context will be presented like a HTML attribute.
Data context | Current Context | Match Condition --------------+-------------------+----------------- lang=english | lang=english | succeed --------------+-------------------+----------------- lang=english | lang=english | succeed lang=german | | --------------+-------------------+----------------- lang=english | lang=english | fail group=student | | --------------+-------------------+----------------- lang=english | | lang=default | | group=student | group=student | succeed --------------+-------------------+-----------------