Until
Create a loop. All child elements are executed repeatedly until the given condition is true.
Allowed attributes: test
Child elements: Action, Attribute, B, Barcode, Bookmark, Br, Column, Columns, Copy-of, DefineColor, DefineFontalias, DefineFontfamily, DefineTextformat, Element, Fontface, ForAll, Frame, Group, HSpace, Hyphenation, I, Image, Include, InsertPages, Li, LoadDataset, LoadFontfile, Loop, Message, NewPage, NextFrame, NextRow, Options, Output, Pageformat, Paragraph, PlaceObject, PositioningArea, PositioningFrame, ProcessNode, SaveDataset, SavePages, SetGrid, SetVariable, SortSequence, Sub, Sup, Switch, Table, Tablehead, Tablerule, Td, Tr, Trace, Until, Value, While
Parent elements: AtPageCreation, AtPageShipout, Case, Contents, ForAll, Loop, Otherwise, Record, SavePages, Until, While
Every time after the the loop is executed, the condition is evaluated. If it is true, the loop exits.
<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"