Until
Create a loop. All child elements are executed repeatedly until the given condition is true.
Child elements
A, Action, AddSearchpath, AttachFile, Attribute, B, Barcode, Bookmark, Box, Br, ClearPage, Clip, Color, Column, Columns, Copy-of, DefineColor, DefineFontalias, DefineFontfamily, DefineMatter, DefineTextformat, Element, Fontface, ForAll, Frame, Group, HSpace, Hyphenation, I, Image, Include, Initial, InsertPages, Layout, Li, LoadDataset, LoadFontfile, Loop, Mark, Message, NextFrame, NextRow, NoBreak, Options, Output, Overlay, Pageformat, Pagetype, Paragraph, PlaceObject, PositioningArea, PositioningFrame, ProcessNode, SaveDataset, SavePages, SetGrid, SetVariable, SortSequence, Span, StructureElement, Sub, Sup, Switch, Table, TableNewPage, Tablehead, Tablerule, Td, Tr, Trace, Transformation, U, Until, VSpace, Value, While
Parent elements
AtPageCreation, AtPageShipout, Case, Contents, ForAll, Loop, Otherwise, Record, SavePages, Until, While
Attributes
test(XPath expression)-
Every time after the the loop is executed, the condition is evaluated. If it is true, the loop exits.
Example
<Record element="data">
<SetVariable variable="i" select="0"/>
<Until test="$i = 4">
<Message select="concat('$i is: ', $i)"/>
<SetVariable variable="i" select="$i + 1"/>
</Until>
</Record>
Gives the following output (in the protocol file)
Message: "$i is: 0"
Message: "$i is: 1"
Message: "$i is: 2"
Message: "$i is: 3"
See also
The section loops in chapter programming.