# FpML 5.5 Validation Rules - Rules for ID / IDREF References (confirmation view)

This section details ID / IDREF relationship constraints (based on the eCore references at the Schema) accompanying the FpML 5.5 Recommendation .

Please Note: The Reference and Shared Validation rule are being included in the Reporting, Recordkeeping and Transparency view as since FpML version 5.5WD1. The examples and rules associated with these views are currently avaialable only for Confirmation view . The rules are currently in the process of being reviewed and will be added with in the next 5.5 publication.

## Content

- Namespace
- Rules

## Namespace

default element namespace = http://www.fpml.org/spec/fpml-5-5-7-rec-1

namespace xs = http://www.w3.org/2001/XMLSchema

## Rules

#### Unique contexts:

- AssetReference (complex type): ref-1
- FixedRateReference (complex type): ref-2
- ProtectionTermsReference (complex type): ref-3
- SettlementTermsReference (complex type): ref-4
- InterestCalculationReference (complex type): ref-6
- InterestLegCalculationPeriodDatesReference (complex type): ref-7
- CalculationPeriodDatesReference (complex type): ref-8
- InterestRateStreamReference (complex type): ref-9
- PaymentCalculationPeriod (complex type): ref-10
- PaymentDatesReference (complex type): ref-11
- ResetDatesReference (complex type): ref-12
- CreditEventsReference (complex type): ref-13
- AccountReference (complex type): ref-25
- BusinessCentersReference (complex type): ref-26
- BusinessDayAdjustmentsReference (complex type): ref-27
- LegalEntityReference (complex type): ref-28
- PartyReference (complex type): ref-29
- Payment (complex type): ref-30
- ProductReference (complex type): ref-32
- RateReference (complex type): ref-33
- ScheduleReference (complex type): ref-34
- SpreadScheduleReference (complex type): ref-35
- MandatoryEarlyTermination (complex type) /cashSettlement/cashSettlementValuationDate/dateRelativeTo: ref-38
- Deprecated rules
- Removed rules

ref-1 (Mandatory)
English Description:
Context: AssetReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Asset
XPath Description:
Context: AssetReference
id($context/@href) instance of element(*, Asset)
Test cases: [Invalid]
ref-2 (Mandatory)
English Description:
Context: FixedRateReference (complex type)
The @href attribute is equal to the @id attribute of an element of type FixedRate
XPath Description:
Context: FixedRateReference
id($context/@href) instance of element(*, FixedRate)
Test cases: [Invalid]
ref-3 (Mandatory)
English Description:
Context: ProtectionTermsReference (complex type)
The @href attribute is equal to the @id attribute of an element of type ProtectionTerms
XPath Description:
Context: ProtectionTermsReference
id($context/@href) instance of element(*, ProtectionTerms)
Test cases: [Invalid]
ref-4 (Mandatory)
English Description:
Context: SettlementTermsReference (complex type)
The @href attribute is equal to the @id attribute of an element of type SettlementTerms
XPath Description:
Context: SettlementTermsReference
id($context/@href) instance of element(*, SettlementTerms)
Test cases: [Invalid]
ref-7 (Mandatory)
English Description:
Context: InterestLegCalculationPeriodDatesReference (complex type)
The @href attribute is equal to the @id attribute of an element of type InterestLegCalculationPeriodDates
XPath Description:
Context: InterestLegCalculationPeriodDatesReference
id($context/@href) instance of element(*, InterestLegCalculationPeriodDates)
Test cases: [Invalid]
ref-8 (Mandatory)
English Description:
Context: CalculationPeriodDatesReference (complex type)
The @href attribute is equal to the @id attribute of an element of type CalculationPeriodDates
XPath Description:
Context: CalculationPeriodDatesReference
id($context/@href) instance of element(*, CalculationPeriodDates)
Test cases: [Invalid]
ref-9 (Mandatory)
English Description:
Context: InterestRateStreamReference (complex type)
The @href attribute is equal to the @id attribute of an element of type InterestRateStream
XPath Description:
Context: InterestRateStreamReference
id($context/@href) instance of element(*, InterestRateStream)
Test cases: [Invalid]
ref-10 (Mandatory)
English Description:
Context: PaymentCalculationPeriod (complex type)
If the @href attribute exists, the @href attribute is equal to the @id attribute of an element of type PricingStructure
XPath Description:
Context: PaymentCalculationPeriod
[exists(@href)]
id($context/@href) instance of element(*, PricingStructure)
ref-11 (Mandatory)
English Description:
Context: PaymentDatesReference (complex type)
The @href attribute is equal to the @id attribute of an element of type PaymentDates
XPath Description:
Context: PaymentDatesReference
id($context/@href) instance of element(*, PaymentDates)
Test cases: [Invalid]
ref-12 (Mandatory)
English Description:
Context: ResetDatesReference (complex type)
The @href attribute is equal to the @id attribute of an element of type ResetDates
XPath Description:
Context: ResetDatesReference
id($context/@href) instance of element(*, ResetDates)
Test cases: [Invalid]
ref-13 (Mandatory)
English Description:
Context: CreditEventsReference (complex type)
The @href attribute is equal to the @id attribute of an element of type CreditEvents
XPath Description:
Context: CreditEventsReference
id($context/@href) instance of element(*, CreditEvents)
Test cases: [Invalid]
ref-25 (Mandatory)
English Description:
Context: AccountReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Account
XPath Description:
Context: AccountReference
id($context/@href) instance of element(*, Account)
Test cases: [Invalid]
ref-26 (Mandatory)
English Description:
Context: BusinessCentersReference (complex type)
The @href attribute is equal to the @id attribute of an element of type BusinessCenters
XPath Description:
Context: BusinessCentersReference
id($context/@href) instance of element(*, BusinessCenters)
Test cases: [Invalid]
ref-27 (Mandatory)
English Description:
Context: BusinessDayAdjustmentsReference (complex type)
The @href attribute is equal to the @id attribute of an element of type BusinessDayAdjustments
XPath Description:
Context: BusinessDayAdjustmentsReference
id($context/@href) instance of element(*, BusinessDayAdjustments)
Test cases: [Invalid]
ref-28 (Mandatory)
English Description:
Context: LegalEntityReference (complex type)
The @href attribute is equal to the @id attribute of an element of type LegalEntity
XPath Description:
Context: LegalEntityReference
id($context/@href) instance of element(*, LegalEntity)
Test cases: [Invalid]
ref-29 (Mandatory)
English Description:
Context: PartyReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Party
XPath Description:
Context: PartyReference
id($context/@href) instance of element(*, Party)
Test cases: [Invalid]
ref-30 (Mandatory)
English Description:
Context: Payment (complex type)
The @href attribute is equal to the @id attribute of an element of type PricingStructure
XPath Description:
Context: Payment
id($context/@href) instance of element(*, PricingStructure)
ref-32 (Mandatory)
English Description:
Context: ProductReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Product
XPath Description:
Context: ProductReference
id($context/@href) instance of element(*, Product)
Test cases: [Invalid]
ref-33 (Mandatory)
English Description:
Context: RateReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Rate
XPath Description:
Context: RateReference
id($context/@href) instance of element(*, Rate)
Test cases: [Invalid]
ref-34 (Mandatory)
English Description:
Context: ScheduleReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Schedule
XPath Description:
Context: ScheduleReference
id($context/@href) instance of element(*, Schedule)
Test cases: [Invalid]
ref-35 (Mandatory)
English Description:
Context: SpreadScheduleReference (complex type)
The @href attribute is equal to the @id attribute of an element of type SpreadSchedule
XPath Description:
Context: SpreadScheduleReference
id($context/@href) instance of element(*, SpreadSchedule)
Test cases: [Invalid]
ref-38 (Mandatory)
English Description:
Context: MandatoryEarlyTermination (complex type) /cashSettlement/cashSettlementValuationDate/dateRelativeTo
The attribute cashSettlement/cashSettlementValuationDate/dateRelativeTo/@href is equal to mandatoryEarlyTerminationDate/unadjustedDate/@id or to mandatoryEarlyTerminationDate/adjustedDate/@id
XPath Description:
Context: MandatoryEarlyTermination (complex type) /cashSettlement/cashSettlementValuationDate/dateRelativeTo
[exists(cashSettlement/cashSettlementValuationDate/dateRelativeTo)] cashSettlement/cashSettlementValuationDate/dateRelativeTo/@href eq mandatoryEarlyTerminationDate/unadjustedDate/@id or cashSettlement/cashSettlementValuationDate/dateRelativeTo/@href eq mandatoryEarlyTerminationDate/adjustedDate/@id
Test cases: [Valid] [Valid] [Invalid]

#### Deprecated rules

#### Removed rules

ref-5 (Mandatory)
REMOVED: Context: FirstPeriodStartDate Description: The @href attribute is equal to the ../../party/@id attribute. Rationale for removal: the rule has been replaced by the business process rule number 2 (bp-2).
ref-6 (Mandatory)
REMOVED: Context: InterestCalculationReference Description: The @href attribute = the @id attribute of an element of type InterestCalculation. Rationale for removal: The type doesn't exist anymore.
ref-39 (Mandatory)
REMOVED: Context: BusinessCentersReference Description: The @href attribute is equal to the @id attribute of an element of type BusinessCenters. Rationale for removal: the rule is a duplicate of ref-26.