我正在尝试创建我认为应该是一个相对简单的业务规则来操作 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>
我想做的是有两个规则:
- 设置 /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 记录数。
我为此尝试了两个简单的规则,每个规则似乎触发 x * x 次,其中 x 是 XML 中的 Account 记录数。我只希望每个规则为每个帐户记录触发一次。
非常感谢任何帮助!
谢谢
安德鲁