# FpML 5.3 Validation Rules - Rules for ID / IDREF References

This section details ID / IDREF relationship constraints (based on the eCore references at the Schema) accompanying the FpML 5.3 Working Draft #2.

## Content

- Namespace
- Rules

## Namespace

default element namespace = http://www.fpml.org/spec/fpml-5-3-2-wd-2

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 @href attribute is equal to the @id attribute of an element mandatoryEarlyTerminationDate
XPath Description:
Context: MandatoryEarlyTermination (complex type) /cashSettlement/cashSettlementValuationDate/dateRelativeTo
name(id(@href)) eq xs:string("mandatoryEarlyTerminationDate")
Test cases: [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.