FpML Issues Tracker
closed
Minor
Always
Validation Rules
Admin
lyteck
Summary
ln-2 requires fixes for the missing else clause, and for the missing type of the keyword.
The missing else clause is solved by adding the correct condition as per the VWG's approved way of writing the rules.
The FpML Rules when quoting a literal value have always given its type. For example cd-3 has "...must not begin with the string ISDA2003Credit". The value "PRIME" in ln-2 is a normalizedString. This should be given as per the other FpML rules.
A comment would help explain the rule.
The fixed rule looks like: " ln-2 (Mandatory) Context: LoanContract (complex type)[currentInterestRatePeriod/floatingRateIndex = normalizedString("PRIME")] Rule: currentInterestRatePeriod/rateFixingDate = effectiveDate. Comment: For a LoanContract the fixing date for the rate is always the effective date of the contract.
Notes:
matthewdr
06/06/08 6:47 pm
The old rule was:
”
ln-2 (Mandatory)
If currentInterestRatePeriod/floatingRateIndex = PRIME then currentInterestRatePeriod/rateFixingDate = effectiveDate.
”
lyteck
07/21/08 8:48 pm
implemented as (after update from Bhavik/Marc):
“ln-2
context: DrawdownNotice (complexe type)
[if loanContract exists][if loanContract/currentInterestRatePeriod/floatingRateIndex contains the normalizedString ‘PRIME’]
loanContract/currentInterestRatePeriod/rateFixingDate = loanContract/effectiveDate.”
matthewdr
08/12/08 3:53 pm
The current rule:
”
ln-2 (Mandatory)
Context: DrawdownNotice (complex type)
[if loanContract exists] [if loanContract/currentInterestRatePeriod/floatingRateIndex contains the normalizedString PRIME]
loanContract/currentInterestRatePeriod/rateFixingDate = loanContract/effectiveDate.
”
The problem is that the phrase “contains” is incorrect. The operator should be “=”. Contains is not strong enough.
Corrected:
”
ln-2 (Mandatory)
Context: DrawdownNotice (complex type)
[loanContract exists] [loanContract/currentInterestRatePeriod/floatingRateIndex = normalizedString PRIME]
loanContract/currentInterestRatePeriod/rateFixingDate = loanContract/effectiveDate.
”
lyteck
08/18/08 7:50 pm
fixed as suggested (contains -> =)
matthewdr
08/19/08 5:12 pm
The first problem is the comment has become lost. The comment agreed by the WG was: “Comment: For a LoanContract the fixing date for the rate is always the effective date of the contract.”.
The second problem is the guard is:
“[loanContract/currentInterestRatePeriod/floatingRateIndex = normalizedString PRIME]”
What was agreed was:
[loanContract/currentInterestRatePeriod/floatingRateIndex = normalizedString(“PRIME”)]
There is a rule in the style guide that functions (like normalizedString), must be written using brackets. Otherwise paths, names, and plain English get confused.
lyteck
08/19/08 7:32 pm
– added missing comment
– changed to normalizedString(“PRIME”)
matthewdr
08/20/08 9:25 am
Accepting resolution after review.