Until
Create a loop. All child elements are executed repeatedly until the given condition is true.
Child elements
Action
,
AddSearchpath
,
Attribute
,
B
,
Barcode
,
Bookmark
,
Br
,
Column
,
Columns
,
Copy-of
,
DefineColor
,
DefineFontalias
,
DefineFontfamily
,
DefineTextformat
,
Element
,
Fontface
,
ForAll
,
Frame
,
Group
,
HSpace
,
Hyphenation
,
I
,
Image
,
Include
,
Initial
,
InsertPages
,
Layout
,
Li
,
LoadDataset
,
LoadFontfile
,
Loop
,
Message
,
NewPage
,
NextFrame
,
NextRow
,
Options
,
Output
,
Pageformat
,
Paragraph
,
PlaceObject
,
PositioningArea
,
PositioningFrame
,
ProcessNode
,
SaveDataset
,
SavePages
,
SetGrid
,
SetVariable
,
SortSequence
,
Span
,
Sub
,
Sup
,
Switch
,
Table
,
TableNewPage
,
Tablehead
,
Tablerule
,
Td
,
Tr
,
Trace
,
U
,
Until
,
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.