Loop 条件

新しい複合条件 Loop は、条件 And に似ており、そのサブ条件の評価が true である限り評価し続けます。ただし、And 条件とは異なり、すべての条件が評価されても停止しません。代わりに、Loop 条件は、もう一度やりなおして、そのサブ条件を繰り返し評価し、条件が false と評価された場合にのみ停止します。もちろん、これは少なくとも 1 つのサブ条件が SaveAs タグを使用した副作用がある場合にのみ意味があります。そうでない場合は、一旦すべてのサブ条件が最初の評価で true を返すと、無限ループに陥るでしょう。

この例は、Flex/AMF3 プロジェクトの種類からの抜粋で、ページ タイマ名がレスポンス本体から作られる方法を示します。

<Conditions>
  <Exists>
    <ApplyTo>Http.Initial.Request.Body</ApplyTo>
    <SaveAs>RestOfBody</SaveAs>
    <SaveMode>Replace</SaveMode>
  </Exists>
  <Loop>
    <RegExpr>
      <ApplyTo>RestOfBody</ApplyTo>
      <Data>operation=&amp;quot;\([^&amp;quot;]*\)</Data>
      <SaveAs>operation</SaveAs>
      <SaveMode>Replace</SaveMode>
      <SaveTag>1</SaveTag>
    </RegExpr>
    <RegExpr>
      <ApplyTo>RestOfBody</ApplyTo>
      <Data>operation=&amp;quot;\([^&amp;quot;]*\)</Data>
      <SaveAs>RestOfBody</SaveAs>
      <SaveMode>Replace</SaveMode>
      <SaveWhat>Right</SaveWhat>
    </RegExpr>
    <Exists>
      <ApplyTo>Literal:, </ApplyTo>
      <SaveAs>OperationList</SaveAs>
      <SaveMode>AppendSeparator</SaveMode>
    </Exists>
    <Loop>
      <FindData>
        <ApplyTo>operation</ApplyTo>
        <Data>.</Data>
        <SaveAs>operation</SaveAs>
        <SaveMode>Replace</SaveMode>
        <SaveWhat>Right</SaveWhat>
      </FindData>
    </Loop>
    <Exists>
      <ApplyTo>operation</ApplyTo>
      <SaveAs>OperationList</SaveAs>
      <SaveMode>Append</SaveMode>
    </Exists>
  </Loop>
  <Exists>
    <ApplyTo>OperationList</ApplyTo>
    <SaveAs>PageName</SaveAs>
    <SaveMode>Replace</SaveMode>
  </Exists>
</Conditions>