FpML 4.4 Validation Rules - Rules for Shared Elements

This is the shared element part of the validation rule set accompanying the FpML 4.4 Recommendation. The introductory section in the draft contains background information and documentation for this page.

The rules contained on this page contain links to cut down versions of valid and invalid test cases. These test cases have been analysed using Systemwire's xlinkit rules to highlight relevant document portions accessed by a rule. These cut down test cases are non-normative and are provided for the purpose of documentation only.

Content

Namespace

default element namespace = http://www.fpml.org/2007/FpML-4-4

Rules

Unique contexts:

Context: BusinessDayAdjustments (complex type)

shared-1 (Mandatory)
businessCentersReference or businessCenters must exist if and only if the value of businessDayConvention is not equal to NONE or NotApplicable.
Test cases: [Valid] [Valid] [Invalid] [Invalid] [Invalid] [Invalid] [Invalid] [Invalid] [Invalid] [Invalid]

Context: RelativeDateOffset (complex type)

shared-4 (Mandatory)
If the dayType is Business then the businessDayConvention should be NONE.
Test cases: [Valid] [Invalid]

Context: payerPartyReference

shared-5 (Mandatory)
If ../receiverPartyReference exists, then the @href attributes of the two elements must not be equal.
Test cases: [Valid] [Invalid] [Invalid]

Context: AmericanExercise (complex type)

shared-6 (Mandatory)
earliestExerciseTime/hourMinuteTime < latestExerciseTime/hourMinuteTime, if latestExerciseTime exists.
Test cases: [Valid] [Invalid] [Invalid]

Context: BermudaExercise (complex type)

shared-7 (Mandatory)
earliestExerciseTime/hourMinuteTime < latestExerciseTime/hourMinuteTime, if latestExerciseTime exists.
Test cases: [Valid] [Valid] [Invalid]

Context: DateRange (complex type)

shared-8 (Mandatory)
unadjustedFirstDate < unadjustedLastDate.
Test cases: [Valid] [Valid] [Invalid] [Invalid] [Invalid]

Context: BusinessDateRange (complex type)

shared-9 (Mandatory)
businessDayConvention is NONE or NotApplicable if and only if neither businessCentersReference nor businessCenters exists.
Test cases: [Valid] [Valid] [Invalid]

Context: CalculationAgent (complex type)

shared-10 (Mandatory)
The values of calculationAgentPartyReference/@href attributes shall be unique.
Test cases: [Valid] [Valid] [Invalid]

Context: Trade (complex type)

shared-11 (Mandatory)
If businessDateRange exists within any descendant element of the trade, then businessCentersReference/@href, if present in any descendant element of the trade, must match some businessCenters/@id within any descendant of the same trade.
Test cases: [Valid] [Valid] [Invalid]

Context: Document

shared-12 (Mandatory)
For buyerPartyReference anywhere in the document, @href shall match the @id attribute of a party element or the @id attribute of a tradeSide element.
Test cases: [Valid] [Invalid]

Context: FpML

shared-13 (Mandatory)
For sellerPartyReference anywhere in the document, @href shall match the @id attribute of a party element or the @id attribute of a tradeSide element.
Test cases: [Valid] [Invalid]
shared-14 (Mandatory)
For calculationAgentPartyReference/@href anywhere in the document, href shall match the @id attribute of a party element.
Test cases: [Valid] [Invalid]

Context: Offset (complex type)

shared-15 (Mandatory)
dayType must only exist if and only if period is D and periodMultiplier is non-zero.
Test cases: [Valid] [Invalid] [Invalid]

Context: TradeSide (complex type)

shared-16 (Mandatory)
For party/@href anywhere within the tradeSide element, href shall match the @id attribute of an /FpML/party element.
shared-17 (Mandatory)
For account/@href anywhere within the tradeSide element, href shall match the @id attribute of an /FpML/party/account element.

Deprecated rules

Removed rules

shared-2 (Mandatory)
REMOVED: Context: Offset; Description: If the dayType element exists then the period must be D.
shared-3 (Mandatory)
REMOVED: Context: Offset; Description: If the dayType is Business then the periodMultiplier must be non-zero.