Version 5.5.8

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"