801: ln-28 needs to call functions explicitly

ln-28 does not call functions as functions as per the FpML Manual. The rule today is: ” ln-28 (Mandatory) Context: OneOffFeeNotice (complex type) [feePayment/feeType = AssignmentFee] loanContractSummary must not exist. ” The rule should be: ” ln-28 (Mandatory) Context: OneOffFeeNotice (complex type) [feePayment/feeType = xs:token(“AssignmentFee”)] not(exists(loanContractSummary)) “

800: ln-27 needs to call functions explicitly

As per the FpML Manual, ln-27 needs to make it calls to functions explicit. Rule today: ” ln-27 (Mandatory) Context: OneOffFeeNotice (complex type) [feePayment/feeType = BreakageFee] loanContractSummary must exist. ” Corrected rule: ” ln-27 (Mandatory) Context: OneOffFeeNotice (complex type) [feePayment/feeType = xs:token(“BreakageFee”)] exists(loanContractSummary) ” At the moment “BreakageFee” looks like an XPath.

797: ln-23 sum() is a function

ln-23 uses sum() which is a function. It should be called as a function. ” facilityRepayment/amount/globalAmount/amount ge sum(loanContractRepayment/loanContractSummary/originalAmount/amount) “

796: ln-21 should use exists() as a function

ln-21 should be written out to use exists() as a function. ” (exists($interestPaymentNotice/interestAccrualSchedule/interestRatePeriod/interestRate) and exists($interestPaymentNotice/interestAccrualSchedule/interestRatePeriod/margin) and exists($interestPaymentNotice/interestAccrualSchedule/interestRatePeriod/allInRate) and exists($interestPaymentNotice/interestAccrualSchedule/interestRatePeriod/interestDayBasis) and exists($interestPaymentNotice/interestAccrualSchedule/interestRatePeriod/indexTenor)) ” You can replace $interestPaymentNotice with the implicit context in XPath – i.e. just remove it.

795: ln-20 can be written more simply

ln-20 can be written out more simply. The current form is: “interestPayment/amount/shareAmount/amount = the sum of all interestAccrualSchedule/interestAccrualPeriod/shareInterestAccrualAmount/amount.” The proposed simple form is: “interestPayment/amount/shareAmount/amount = sum(interestAccrualSchedule/interestAccrualPeriod/shareInterestAccrualAmount/amount) This also make correct use of the sum() function. This is important as currently the term “sum” is undefined.

794: ln-19 – string must be quoted in a xs:token

There is a problem with the guard on ln-19. The value “RateSetEvent” is being interpreted as an XPath, when it is instead supposed to be a xs:token. The rule today: ” ln-19 (Mandatory) Context: DrawdownNotice (complex type) [drawdownEventType = RateSetEvent] [exists(loanContract)] loanContract/currentInterestRatePeriod/interestRate and loanContract/currentInterestRatePeriod/margin and loanContract/currentInterestRatePeriod/allInRate and loanContract/currentInterestRatePeriod/interestDayBasis and loanContract/currentInterestRatePeriod/indexTenor must exist. ” The rule … Continued

792: ln-19 should refer to exists() as a function

The current ln-19: ” ln-19 (Mandatory) Context: DrawdownNotice (complex type) [drawdownEventType = RateSetEvent] [exists(loanContract)] loanContract/currentInterestRatePeriod/interestRate and loanContract/currentInterestRatePeriod/margin and loanContract/currentInterestRatePeriod/allInRate and loanContract/currentInterestRatePeriod/interestDayBasis and loanContract/currentInterestRatePeriod/indexTenor must exist. ” As written this is the XPath “and” of the contents of an element with another. This isn’t what is meant in the rule. “exists()” should be used as a … Continued