Parameters¶
Definition¶
<iterator name="an_iterator_identifier">
Attribute | Type | Description |
---|---|---|
name | string | The identifier of this iterator |
An iterator is an element which makes TDM assume propositions in order, one at a time.
Parents¶
Behaviour¶
Enumeration¶
The propositions contained in the <enumerate>
element, will be assumed, one at a time. It is possible to check if an enumeration has more items by using the <condition> has_more_items
.
It is also possible to add a limit
attribute to the enumerate
element, which makes the has_more_items
element evaluate true only for the limit
first elements.
Random Enumeration¶
By using the randomize="true"
attribute of the <enumerate>
element, propositions will be enumerated in random order.
See also <query>
Examples¶
An iterator that will iterate blue items¶
If called four times, all items will be enumerated, in order of definition. A fifth call would restart with the first item.
<iterator name="blue_item">
<enumerate>
<proposition predicate="car_colour" value="blue"/>
<proposition predicate="bike_colour" value="blue"/>
<proposition predicate="house_colour" value="blue"/>
<proposition predicate="sky_colour" value="blue"/>
</enumerate>
</query>
An iterator that will iterate over the four seasons in random order¶
If called four times, all seasons will be enumerated, in order of definition. This could also be achieved using a domain <query>.
<iterator name="season">
<enumerate randomize="true">
<proposition predicate="favourite_season" value="spring"/>
<proposition predicate="favourite_season" value="summer"/>
<proposition predicate="favourite_season" value="autumn"/>
<proposition predicate="favourite_season" value="winter"/>
</enumerate>
</query>
A query that will enumerate some propositions in random order¶
<iterator name="random_stuff">
<enumerate randomize="true">
<proposition predicate="favourite_season" value="spring"/>
<proposition predicate="favourite_city" value="berlin"/>
<proposition predicate="favourite_show" value="flying_circus"/>
<proposition predicate="first_name" value="john"/>
</enumerate>
</query>
A query that will enumerate two random propositions¶
<iterator name="random_stuff">
<enumerate randomize="true" limit="2">
<proposition predicate="favourite_season" value="spring"/>
<proposition predicate="favourite_city" value="berlin"/>
<proposition predicate="favourite_show" value="flying_circus"/>
<proposition predicate="first_name" value="john"/>
</enumerate>
</query>