次のスキーマは、顧客(customer)と口座(account)を表します。
bank
*customer
age
*account
baseInterestRate
actualInterestRate
この例では、bank、customer および account は複合要素です。customer と account は反復性の要素です。age は int 型で、baseInterestRate と actualInterestRate は float 型です。銀行は多数の顧客を抱え、それぞれの顧客が複数の口座(account)を保有することができます。各口座には、基準金利と実質金利があります。実質金利は計算される要素であり、基準金利と顧客の年齢に依存します。acualInterestRate が、baseInterestRate + (age >= 60 ? 0.5:0.0) という式で決められているとします。実行時、Expression Manager には、age と baseInterestRate に関して次の値が渡されます。
age: [20, 61]
baseInterestRate: [[7, 8][7.5, 8, 8.5]]
これらの変数をフラット化した後で、次の二次元配列が作成されます。
20 7
20 8
61 7.5
61 8
61 8.5
age 要素は、baseInterestRates の要素数に従って複数回反復されます。それぞれの行について式が評価されます。式の評価後、その結果が、入力変数 baseInterestRate と同じ階層に格納されます。式は常に最も深いレベルを基準とし、その階層よりも深いレベルの変数が使用されることはありません。そのため、反復レベル数の最も多い変数が尊重されます。API からは、[[7, 8][8, 8.5, 9]] が結果として返されます。