802: invalid-ln-28-01.xml is valid against ln-28
Please make the invalid sample invalid against the rule it tests.
Please make the invalid sample invalid against the rule it tests.
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)) “
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.
Sample file invalid-ln-26-01.xml is invalid against rule ln-23. Please make invalid-ln-26-01.xml valid against rule ln-23.
invalid-ln-23-01.xml is valid for rule ln-23. Please make invalid-ln-23-01.xml invalid for ln-23.
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) “
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.
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.
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
The sample invalid-ln-19-01.xml is invalid against ln-13.