FpML 4.5 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 4.5 Trial Recommendation.

Content

Namespace

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

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

Rules

Unique contexts:

ref-1 (Mandatory)
English Description:
Context: AssetReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Asset
Formal Description:
Context: AssetReference (complex type)
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
Formal Description:
Context: FixedRateReference (complex type)
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
Formal Description:
Context: ProtectionTermsReference (complex type)
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
Formal Description:
Context: SettlementTermsReference (complex type)
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
Formal Description:
Context: InterestLegCalculationPeriodDatesReference (complex type)
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
Formal Description:
Context: CalculationPeriodDatesReference (complex type)
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
Formal Description:
Context: InterestRateStreamReference (complex type)
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
Formal Description:
Context: PaymentCalculationPeriod (complex type)
[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
Formal Description:
Context: PaymentDatesReference (complex type)
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
Formal Description:
Context: ResetDatesReference (complex type)
id($context/@href) instance of element(*, ResetDates)
ref-13 (Mandatory)
English Description:
Context: CreditEventsReference (complex type)
The @href attribute is equal to the @id attribute of an element of type CreditEvents
Formal Description:
Context: CreditEventsReference (complex type)
id($context/@href) instance of element(*, CreditEvents)
Test cases: [Invalid]
ref-14 (Mandatory)
English Description:
Context: CashflowFixingReference (complex type)
The @href attribute is equal to the @id attribute of an element of type CashflowFixing
Formal Description:
Context: CashflowFixingReference (complex type)
id($context/@href) instance of element(*, CashflowFixing)
Test cases: [Invalid]
ref-15 (Mandatory)
English Description:
Context: CashflowObservationReference (complex type)
The @href attribute is equal to the @id attribute of an element of type CashflowObservation
Formal Description:
Context: CashflowObservationReference (complex type)
id($context/@href) instance of element(*, CashflowObservation)
ref-16 (Mandatory)
English Description:
Context: StepReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Step
Formal Description:
Context: StepReference (complex type)
id($context/@href) instance of element(*, Step)
ref-17 (Mandatory)
English Description:
Context: TradeUnderlyerReference (complex type)
The @href attribute is equal to the @id attribute of an element of type TradeUnderlyer
Formal Description:
Context: TradeUnderlyerReference (complex type)
id($context/@href) instance of element(*, TradeUnderlyer)
Test cases: [Invalid]
ref-18 (Mandatory)
English Description:
Context: PricingStructurePoint (complex type)
The coordinate/generic/@href attribute is equal to the underlyingAsset/@id attribute
Formal Description:
Context: PricingStructurePoint (complex type)
[exists(underlyingAsset)]
every $generic in coordinate/generic satisfies id($generic/@href) is underlyingAsset
Comment: underlyingAsset is an abstract element (substitution group for underlyers)
ref-19 (Mandatory)
English Description:
Context: MarketReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Market
Formal Description:
Context: MarketReference (complex type)
id($context/@href) instance of element(*, Market)
ref-20 (Mandatory)
English Description:
Context: PricingDataPointCoordinateReference (complex type)
The @href attribute is equal to the @id attribute of an element of type PricingDataPointCoordinate
Formal Description:
Context: PricingDataPointCoordinateReference (complex type)
id($context/@href) instance of element(*, PricingDataPointCoordinate)
ref-21 (Mandatory)
English Description:
Context: PricingParameterDerivativeReference (complex type)
The @href attribute is equal to the @id attribute of an element of type PricingParameterDerivative
Formal Description:
Context: PricingParameterDerivativeReference (complex type)
id($context/@href) instance of element(*, PricingParameterDerivative)
ref-22 (Mandatory)
English Description:
Context: Valuation (complex type)
The @definitionRef attribute is equal to the @id attribute of an element of type ValuationScenario
Formal Description:
Context: Valuation (complex type)
id($context/@definitionRef) instance of element(*, ValuationScenario)
Test cases: [Invalid]
ref-23 (Mandatory)
English Description:
Context: ValuationReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Valuation
Formal Description:
Context: ValuationReference (complex type)
id($context/@href) instance of element(*, Valuation)
ref-24 (Mandatory)
English Description:
Context: ValuationScenarioReference (complex type)
The @href attribute is equal to the @id attribute of an element of type ValuationScenario
Formal Description:
Context: ValuationScenarioReference (complex type)
id($context/@href) instance of element(*, ValuationScenario)
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
Formal Description:
Context: AccountReference (complex type)
id($context/@href) instance of element(*, Account)
ref-26 (Mandatory)
English Description:
Context: BusinessCentersReference (complex type)
The @href attribute is equal to the @id attribute of an element of type BusinessCenters
Formal Description:
Context: BusinessCentersReference (complex type)
id($context/@href) instance of element(*, BusinessCenters)
ref-27 (Mandatory)
English Description:
Context: BusinessDayAdjustmentsReference (complex type)
The @href attribute is equal to the @id attribute of an element of type BusinessDayAdjustments
Formal Description:
Context: BusinessDayAdjustmentsReference (complex type)
id($context/@href) instance of element(*, BusinessDayAdjustments)
ref-28 (Mandatory)
English Description:
Context: LegalEntityReference (complex type)
The @href attribute is equal to the @id attribute of an element of type LegalEntity
Formal Description:
Context: LegalEntityReference (complex type)
id($context/@href) instance of element(*, LegalEntity)
ref-29 (Mandatory)
English Description:
Context: PartyReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Party
Formal Description:
Context: PartyReference (complex type)
id($context/@href) instance of element(*, Party)
ref-30 (Mandatory)
English Description:
Context: Payment (complex type)
The @href attribute is equal to the @id attribute of an element of type PricingStructure
Formal Description:
Context: Payment (complex type)
id($context/@href) instance of element(*, PricingStructure)
ref-31 (Mandatory)
English Description:
Context: PricingStructureReference (complex type)
The @href attribute is equal to the @id attribute of an element of type PricingStructure
Formal Description:
Context: PricingStructureReference (complex type)
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
Formal Description:
Context: ProductReference (complex type)
id($context/@href) instance of element(*, Product)
ref-33 (Mandatory)
English Description:
Context: RateReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Rate
Formal Description:
Context: RateReference (complex type)
id($context/@href) instance of element(*, Rate)
ref-34 (Mandatory)
English Description:
Context: ScheduleReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Schedule
Formal Description:
Context: ScheduleReference (complex type)
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
Formal Description:
Context: SpreadScheduleReference (complex type)
id($context/@href) instance of element(*, SpreadSchedule)
Test cases: [Invalid]
ref-36 (Mandatory)
English Description:
Context: SensitivitySetDefinitionReference (complex type)
The @href attribute is equal to the @id attribute of an element of type SensitivitySetDefinition
Formal Description:
Context: SensitivitySetDefinitionReference (complex type)
id($context/@href) instance of element(*, SensitivitySetDefinition)
Test cases: [Invalid]
ref-37 (Mandatory)
English Description:
Context: AnyAssetReference (complex type)
The @href attribute is equal to the @id attribute of an element of type Leg, or the @id attribute of an element of type Trade, or the @id attribute of an element of type BasketConstituent
Formal Description:
Context: AnyAssetReference (complex type)
(id($context/@href) instance of element(*, Leg)) or (id($context/@href) instance of element(*, Trade)) or (id($context/@href) instance of element(*, BasketConstituent))
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
Formal Description:
Context: MandatoryEarlyTermination (complex type) /cashSettlement/cashSettlementValuationDate/dateRelativeTo
name(id(@href)) eq xs:string("mandatoryEarlyTerminationDate")
Test cases: [Invalid]

Deprecated rules

ref-5 (Mandatory)
DEPRECATED: Context: FirstPeriodStartDate Description: The @href attribute is equal to the ../../party/@id attribute. Rationale for deprecation: the rule has been replaced by the business process rule number 2 (bp-2).
ref-39 (Mandatory)
DEPRECATED: Context: BusinessCentersReference Description: The @href attribute is equal to the @id attribute of an element of type BusinessCenters. Rationale for deprecation: the rule is a duplicate of ref-26.

Removed rules

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.