Until
Create a loop. All child elements are executed repeatedly until the given condition is true.
Child elements
A , 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 , HTML , 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 , Section , 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"
