FpML
Business Rules
These
pages contain the validation rules of the
Financial Products Markup
Language (FpML®) expressed in
NRL. FpML provides an XML representation of common Over-the-Counter
(OTC) derivative trades and processes.
Even
thought the rules are readable in NRL, to fully understand them you
will need to be somewhat familiar with the FpML standard and the
products it covers.
Scope
The
rules are aimed at the
FpML 4.5
specification. Only the "product" rules
are expressed. The "shared" rules are not covered at this point, and
neither are the business process rules.
Click
on a link below to browse a rule file. The new browser window will
enable you to filter the rules based on model elements and other
criteria:
Legal note: the original text of the FpML business rules expressed here in NRL are under copyright by ISDA and covered by the FpML licence. The NRL version is ©2009 Model Two Zero Ltd and covered by the Creative Commons non-commercial attribution sharing licence, except
where the text of the rule coincides with the English language version.
By clicking the links above you agree to be bound by these terms.How
it Works
These
rules were hand-written in the NRL editor in
about three man days (by somebody highly familiar with the FpML
Schema).
They were then exported using the HTML export provided by the editor.
Java
code for these rules can be generated directly from the NRL files using
Model Two Zero's Java generator for NRL.
Completeness
The
total rule set consists of
214 rules.
Of those, the following rules are currently not covered:
- eqd-10: uniqueness over simple
types is not supported in the current NRL syntax.
- fx-12: this rule makes assumptions
about the existence of a proprietary holiday calendar and hence cannot
be expressed
- ln-6,
ln-7, ln-8, ln-9: these rules require sophisticated
correlation between multiple collections and cannot be expressed in
NRL. They can be
supported using an operator for production purposes, but there is
little point publishing them as such.
- cd-10: uses a schema construct
that has no equivalent in object-oriented models
- cd-11: requires two
pre-conditions; will be worked around in a future release