私は、XML スキーマ内の繰り返し要素を操作するための、比較的単純なビジネス ルールであるべきだと思うものを作成しようとしています。
次の XML スニペットを検討してください (これは、読みやすくするために、名前空間を削除して簡略化しています)。
<Root>
<AllAccounts>
<Account id="1" currentPayment="10.00" arrearsAmount="25.00">
<AllCustomers>
<Customer id="20" primary="true" canSelfServe="false" />
<Customer id="21" primary="false" canSelfServe="false" />
</AllCustomers>
</Account>
<Account id="2" currentPayment="10.00" arrearsAmount="15.00">
<AllCustomers>
<Customer id="30" primary="true" canSelfServe="false" />
<Customer id="31" primary="false" canSelfServe="false" />
</AllCustomers>
</AllAccounts>
</Root>
私がやりたいことは、2つのルールを持つことです:
- /Root/AllAccounts/Account[x]/AllCustomers/Customer[primary='true']/canSelfServe = true IF arrearsAmount < currentPayment を設定します
- /Root/AllAccounts/Account[x]/AllCustoemrs/Customer[primary='true']/canSelfServer = false IF arrearsAmount >= currentPayment を設定します
[x] は 0...XML に存在する /Root/AllAccounts/Account レコードの数です。
このために 2 つの単純なルールを試してみましたが、各ルールは x * x 回実行されるようです。ここで、x は XML 内の Account レコードの数です。各取引先レコードに対して、各ルールを 1 回だけ実行したいと考えています。
どんな助けでも大歓迎です!
ありがとう
アンドリュー