# FpML 4.2 Trial Recommendation

## 10 September 2021

## Interest Rate Derivative Component Definitions

### Version: 4.2

### This Version:

> http://www.fpml.org/spec/fpml-4-2-13-tr-6

### Latest Version:

> http://www.fpml.org/spec/fpml-4-2-13-tr-6

### Previous Version:

> https://www.fpml.org/spec/fpml-4-2-12-rec-2/

### Errata for this Version:

> http://www.fpml.org/spec/errata/fpml-4-2-13-tr-6-errata.html

Document built: Thu 09/09/2021 16:55:46.26

Copyright (c) 1999 - 2006 by INTERNATIONAL SWAPS AND DERIVATIVES ASSOCIATION, INC.
Financial Products Markup Language is subject to the FpML public license
A copy of this license is available at http://www.fpml.org/documents/license.html

The FpML specifications provided are without warranty of any kind, either expressed or implied, including, without limitation, warranties that FpML, or the FpML specifications are free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the specifications is with you. Should any of the FpML specifications prove defective in any respect, you assume the cost of any necessary servicing or repair. Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall ISDA, any of its members, or any distributor of documents or software containing any of the FpML specifications, or any supplier of any of such parties, be liable to you or any other person for any indirect, special, incidental, or consequential damages of any character including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages.

# Contents

  Global Simple Types
    SimplePricingStructureReference
  Global Complex Types
    BondReference
    BulletPayment
    Calculation
    CalculationPeriod
    CalculationPeriodAmount
    CalculationPeriodDates
    CalculationPeriodDatesReference
    CancelableProvision
    CancelableProvisionAdjustedDates
    CancellationEvent
    CapFloor
    Cashflows
    CashPriceMethod
    CashSettlement
    CashSettlementPaymentDate
    CollateralizedCashPriceMethod
    CrossCurrencyMethod
    DateRelativeToPaymentDates
    Discounting
    EarlyTerminationEvent
    EarlyTerminationProvision
    ExerciseEvent
    ExercisePeriod
    ExtendibleProvision
    ExtendibleProvisionAdjustedDates
    ExtensionEvent
    FloatingRateDefinition
    Fra
    FxFixingDate
    FxLinkedNotionalAmount
    FxLinkedNotionalSchedule
    InflationRateCalculation
    InterestRateStream
    MandatoryEarlyTermination
    MandatoryEarlyTerminationAdjustedDates
    MidMarketValuation
    MidMarketValuationMethod
    NonDeliverableSettlement
    Notional
    NotionalStepRule
    OptionalEarlyTermination
    OptionalEarlyTerminationAdjustedDates
    PartySelector
    PaymentCalculationPeriod
    PaymentDates
    PaymentDatesReference
    PrincipalExchange
    ReplacementValue
    ReplacementValueCalculationAgentDeterminationMethod
    ReplacementValueFirmQuotationsMethod
    ReplacementValueMethodBase
    ResetDates
    ResetDatesReference
    SettlementProvision
    SettlementRateOption
    SinglePartyOption
    StubCalculationPeriodAmount
    Swap
    SwapAdditionalTerms
    Swaption
    SwaptionAdjustedDates
    YieldCurveMethod
  Global Elements
    bulletPayment
    capFloor
    floatingRateCalculation
    fra
    inflationRateCalculation
    rateCalculation
    swap
    swaption
  Groups
    CashSettlementMethods2006.model
    CashSettlementMethods2006and2021.model
    CashSettlementMethods2021.model
    MandatoryEarlyTermination.model
    OptionalEarlyTermination.model
  Schema Listing

# Global Simple Types

## SimplePricingStructureReference

### Description:

Reference to a pricing structure or any derived components (i.e. yield curve).

### Contents:

Inherited element(s): (This definition restricts the content defined by the type xsd:IDREF)

### Used by:

### Schema Fragment:

    <xsd:simpleType name="SimplePricingStructureReference">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Reference to a pricing structure or any derived components (i.e.
          yield curve).
        </xsd:documentation>
      </xsd:annotation>
      <xsd:restriction base="xsd:IDREF"/>
    </xsd:simpleType>

# Global Complex Types

## BondReference

### Description:

A type including a reference to a bond to support the representation of an asset swap or Condition Precedent Bond.

### Figure:

### Contents:

Reference to a bond underlyer. bond (exactly one occurrence; of the type Bond)

- Defines the underlying asset when it is a bond.

conditionPrecedentBond (exactly one occurrence; of the type xsd:boolean)

- To indicate whether the Condition Precedent Bond is applicable. The swap contract is only valid if the bond is issued and if there is any dispute over the terms of fixed stream then the bond terms would be used.

discrepancyClause (zero or one occurrence; of the type xsd:boolean)

- To indicate whether the Discrepancy Clause is applicable.

### Used by:

- SwapAdditionalTerms/bondReference

### Schema Fragment:

    <xsd:complexType name="BondReference">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type including a reference to a bond to support the
          representation of an asset swap or Condition Precedent Bond.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element ref="bond">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Reference to a bond underlyer.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="conditionPrecedentBond" type="xsd:boolean">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              To indicate whether the Condition Precedent Bond is
              applicable. The swap contract is only valid if the bond is
              issued and if there is any dispute over the terms of fixed
              stream then the bond terms would be used.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="discrepancyClause" type="xsd:boolean" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              To indicate whether the Discrepancy Clause is applicable.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## BulletPayment

### Description:

A product to represent a single cashflow.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Product)

- The base type which all FpML products extend.

payment (exactly one occurrence; of the type Payment)

- A known payment between two parties.

### Used by:

### Extension of:

- Product

### Schema Fragment:

    <xsd:complexType name="BulletPayment">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A product to represent a single cashflow.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Product">
          <xsd:sequence>
            <xsd:element name="payment" type="Payment">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A known payment between two parties.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## Calculation

### Description:

A type definining the parameters used in the calculation of fixed or floating calculation period amounts.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

notionalSchedule (exactly one occurrence; of the type Notional)

- The notional amount or notional amount schedule.

Or

fxLinkedNotionalSchedule (exactly one occurrence; of the type FxLinkedNotionalSchedule)

- A notional amount schedule where each notional that applied to a calculation period is calculated with reference to a notional amount or notional amount schedule in a different currency by means of a spot currency exchange rate which is normally observed at the beginning of each period.

There can be one occurance of the following structure; Choice of either

fixedRateSchedule (exactly one occurrence; of the type Schedule)

- The fixed rate or fixed rate schedule expressed as explicit fixed rates and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments.

Or

This element is the head of a substitution group. It is substituted by the floatingRateCalculation element for standard Floating Rate legs, or the inflationRateCalculation element for inflation swaps. rateCalculation (exactly one occurrence; of the type Rate)

- The base element for the floating rate calculation definitions.

dayCountFraction (exactly one occurrence; of the type DayCountFraction)

- The day count fraction.

discounting (zero or one occurrence; of the type Discounting)

- The parameters specifying any discounting conventions that may apply. This element must only be included if discounting applies.

compoundingMethod (zero or one occurrence; of the type CompoundingMethodEnum)

- If more that one calculation period contributes to a single payment amount this element specifies whether compounding is applicable, and if so, what compounding method is to be used. This element must only be included when more that one calculation period contributes to a single payment amount.

### Used by:

- CalculationPeriodAmount/calculation

### Schema Fragment:

    <xsd:complexType name="Calculation">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type definining the parameters used in the calculation of fixed
          or floating calculation period amounts.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:choice>
          <xsd:element name="notionalSchedule" type="Notional">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The notional amount or notional amount schedule.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fxLinkedNotionalSchedule" type="FxLinkedNotionalSchedule">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A notional amount schedule where each notional that applied
                to a calculation period is calculated with reference to a
                notional amount or notional amount schedule in a different
                currency by means of a spot currency exchange rate which is
                normally observed at the beginning of each period.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:choice>
          <xsd:element name="fixedRateSchedule" type="Schedule">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The fixed rate or fixed rate schedule expressed as explicit
                fixed rates and dates. In the case of a schedule, the step
                dates may be subject to adjustment in accordance with any
                adjustments specified in calculationPeriodDatesAdjustments.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element ref="rateCalculation">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This element is the head of a substitution group. It is
                substituted by the floatingRateCalculation element for
                standard Floating Rate legs, or the
                inflationRateCalculation element for inflation swaps.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:element name="dayCountFraction" type="DayCountFraction">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The day count fraction.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="discounting" type="Discounting" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The parameters specifying any discounting conventions that
              may apply. This element must only be included if discounting
              applies.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="compoundingMethod" type="CompoundingMethodEnum" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              If more that one calculation period contributes to a single
              payment amount this element specifies whether compounding is
              applicable, and if so, what compounding method is to be used.
              This element must only be included when more that one
              calculation period contributes to a single payment amount.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## CalculationPeriod

### Description:

A type defining the parameters used in the calculation of a fixed or floating rate calculation period amount. This type forms part of cashflows representation of a swap stream.

### Figure:

### Contents:

unadjustedStartDate (zero or one occurrence; of the type xsd:date)

unadjustedEndDate (zero or one occurrence; of the type xsd:date)

adjustedStartDate (zero or one occurrence; of the type xsd:date)

- The calculation period start date, adjusted according to any relevant business day convention.

adjustedEndDate (zero or one occurrence; of the type xsd:date)

- The calculation period end date, adjusted according to any relevant business day convention.

calculationPeriodNumberOfDays (zero or one occurrence; of the type xsd:positiveInteger)

- The number of days from the adjusted effective / start date to the adjusted termination / end date calculated in accordance with the applicable day count fraction.

There can be one occurance of the following structure; Choice of either

notionalAmount (exactly one occurrence; of the type xsd:decimal)

- The amount that a cashflow will accrue interest on.

Or

fxLinkedNotionalAmount (exactly one occurrence; of the type FxLinkedNotionalAmount)

- The amount that a cashflow will accrue interest on. This is the calculated amount of the fx linked - ie the other currency notional amount multiplied by the appropriate fx spot rate.

There can be one occurance of the following structure; Choice of either

floatingRateDefinition (exactly one occurrence; of the type FloatingRateDefinition)

- The floating rate reset information for the calculation period.

Or

fixedRate (exactly one occurrence; of the type xsd:decimal)

- The calculation period fixed rate. A per annum rate, expressed as a decimal. A fixed rate of 5% would be represented as 0.05.

dayCountYearFraction (zero or one occurrence; of the type xsd:decimal)

- The year fraction value of the calculation period, result of applying the ISDA rules for day count fraction defined in the ISDA Annex.

forecastAmount (zero or one occurrence; of the type Money)

- The amount representing the forecast of the accrued value of the calculation period. An intermediate value used to generate the forecastPaymentAmount in the PaymentCalculationPeriod.

forecastRate (zero or one occurrence; of the type xsd:decimal)

- A value representing the forecast rate used to calculate the forecast future value of the accrual period. This is a calculated rate determined based on averaging the rates in the rateObservation elements, and incorporates all of the rate treatment and averaging rules. A value of 1% should be represented as 0.01

Attribute: id (xsd:ID)

### Used by:

- PaymentCalculationPeriod/calculationPeriod

### Schema Fragment:

    <xsd:complexType name="CalculationPeriod">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the parameters used in the calculation of a fixed
          or floating rate calculation period amount. This type forms part
          of cashflows representation of a swap stream.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="unadjustedStartDate" type="xsd:date" minOccurs="0"/>
        <xsd:element name="unadjustedEndDate" type="xsd:date" minOccurs="0"/>
        <xsd:element name="adjustedStartDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The calculation period start date, adjusted according to any
              relevant business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedEndDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The calculation period end date, adjusted according to any
              relevant business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="calculationPeriodNumberOfDays" type="xsd:positiveInteger" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The number of days from the adjusted effective / start date
              to the adjusted termination / end date calculated in
              accordance with the applicable day count fraction.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:choice>
          <xsd:element name="notionalAmount" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The amount that a cashflow will accrue interest on.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fxLinkedNotionalAmount" type="FxLinkedNotionalAmount">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The amount that a cashflow will accrue interest on. This is
                the calculated amount of the fx linked - ie the other
                currency notional amount multiplied by the appropriate fx
                spot rate.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:choice>
          <xsd:element name="floatingRateDefinition" type="FloatingRateDefinition">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The floating rate reset information for the calculation
                period.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fixedRate" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The calculation period fixed rate. A per annum rate,
                expressed as a decimal. A fixed rate of 5% would be
                represented as 0.05.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:element name="dayCountYearFraction" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The year fraction value of the calculation period, result of
              applying the ISDA rules for day count fraction defined in the
              ISDA Annex.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="forecastAmount" type="Money" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The amount representing the forecast of the accrued value of
              the calculation period. An intermediate value used to
              generate the forecastPaymentAmount in the
              PaymentCalculationPeriod.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="forecastRate" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A value representing the forecast rate used to calculate the
              forecast future value of the accrual period. This is a
              calculated rate determined based on averaging the rates in
              the rateObservation elements, and incorporates all of the
              rate treatment and averaging rules. A value of 1% should be
              represented as 0.01
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## CalculationPeriodAmount

### Description:

A type defining the parameters used in the calculation of fixed or floating rate calculation period amounts or for specifying a known calculation period amount or known amount schedule.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

calculation (exactly one occurrence; of the type Calculation)

- The parameters used in the calculation of fixed or floaring rate calculation period amounts.

Or

knownAmountSchedule (exactly one occurrence; of the type AmountSchedule)

- The known calculation period amount or a known amount schedule expressed as explicit known amounts and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments.

### Used by:

- InterestRateStream/calculationPeriodAmount

### Schema Fragment:

    <xsd:complexType name="CalculationPeriodAmount">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the parameters used in the calculation of fixed
          or floating rate calculation period amounts or for specifying a
          known calculation period amount or known amount schedule.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:element name="calculation" type="Calculation">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The parameters used in the calculation of fixed or floaring
              rate calculation period amounts.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="knownAmountSchedule" type="AmountSchedule">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The known calculation period amount or a known amount
              schedule expressed as explicit known amounts and dates. In
              the case of a schedule, the step dates may be subject to
              adjustment in accordance with any adjustments specified in
              calculationPeriodDatesAdjustments.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:complexType>

## CalculationPeriodDates

### Description:

A type defining the parameters used to generate the calculation period dates schedule, including the specification of any initial or final stub calculation periods. A calculation perod schedule consists of an optional initial stub calculation period, one or more regular calculation periods and an optional final stub calculation period. In the absence of any initial or final stub calculation periods, the regular part of the calculation period schedule is assumed to be between the effective date and the termination date. No implicit stubs are allowed, i.e. stubs must be explicitly specified using an appropriate combination of firstPeriodStateDate, firstRegularPeriodStartDate and lastRegularPeriodEndDate.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

effectiveDate (exactly one occurrence; of the type AdjustableDate)

- The first day of the term of the trade. This day may be subject to adjustment in accordance with a business day convention.

Or

relativeEffectiveDate (exactly one occurrence; of the type AdjustedRelativeDateOffset)

- Defines the effective date.

There can be one occurance of the following structure; Choice of either

terminationDate (exactly one occurrence; of the type AdjustableDate)

- The last day of the term of the trade. This day may be subject to adjustment in accordance with a business day convention.

Or

relativeTerminationDate (exactly one occurrence; of the type RelativeDateOffset)

- The term/maturity of the swap, express as a tenor (typically in years).

calculationPeriodDatesAdjustments (exactly one occurrence; of the type BusinessDayAdjustments)

- The business day convention to apply to each calculation period end date if it would otherwise fall on a day that is not a business day in the specified financial business centers.

firstPeriodStartDate (zero or one occurrence; of the type AdjustableDate)

- The start date of the calculation period if the date falls before the effective date. It must only be specified if it is not equal to the effective date. This date may be subject to adjustment in accordance with a business day convention.

firstRegularPeriodStartDate (zero or one occurrence; of the type xsd:date)

- The start date of the regular part of the calculation period schedule. It must only be specified if there is an initial stub calculation period. This day may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments.

lastRegularPeriodEndDate (zero or one occurrence; of the type xsd:date)

- The end date of the regular part of the calculation period schedule. It must only be specified if there is a final stub calculation period. This day may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments.

stubPeriodType (zero or one occurrence; of the type StubPeriodTypeEnum)

- Method to allocate any irregular period remaining after regular periods have been allocated between the effective and termination date.

calculationPeriodFrequency (exactly one occurrence; of the type CalculationPeriodFrequency)

- The frequency at which calculation period end dates occur with the regular part of the calculation period schedule and their roll date convention.

Attribute: id (xsd:ID) - required

### Used by:

- InterestRateStream/calculationPeriodDates

### Schema Fragment:

    <xsd:complexType name="CalculationPeriodDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the parameters used to generate the calculation
          period dates schedule, including the specification of any initial
          or final stub calculation periods. A calculation perod schedule
          consists of an optional initial stub calculation period, one or
          more regular calculation periods and an optional final stub
          calculation period. In the absence of any initial or final stub
          calculation periods, the regular part of the calculation period
          schedule is assumed to be between the effective date and the
          termination date. No implicit stubs are allowed, i.e. stubs must
          be explicitly specified using an appropriate combination of
          firstPeriodStateDate, firstRegularPeriodStartDate and
          lastRegularPeriodEndDate.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:choice>
          <xsd:element name="effectiveDate" type="AdjustableDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The first day of the term of the trade. This day may be
                subject to adjustment in accordance with a business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="relativeEffectiveDate" type="AdjustedRelativeDateOffset">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Defines the effective date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:choice>
          <xsd:element name="terminationDate" type="AdjustableDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The last day of the term of the trade. This day may be
                subject to adjustment in accordance with a business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="relativeTerminationDate" type="RelativeDateOffset">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The term/maturity of the swap, express as a tenor
                (typically in years).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:element name="calculationPeriodDatesAdjustments" type="BusinessDayAdjustments">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The business day convention to apply to each calculation
              period end date if it would otherwise fall on a day that is
              not a business day in the specified financial business
              centers.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="firstPeriodStartDate" type="AdjustableDate" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The start date of the calculation period if the date falls
              before the effective date. It must only be specified if it is
              not equal to the effective date. This date may be subject to
              adjustment in accordance with a business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="firstRegularPeriodStartDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The start date of the regular part of the calculation period
              schedule. It must only be specified if there is an initial
              stub calculation period. This day may be subject to
              adjustment in accordance with any adjustments specified in
              calculationPeriodDatesAdjustments.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="lastRegularPeriodEndDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The end date of the regular part of the calculation period
              schedule. It must only be specified if there is a final stub
              calculation period. This day may be subject to adjustment in
              accordance with any adjustments specified in
              calculationPeriodDatesAdjustments.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="stubPeriodType" type="StubPeriodTypeEnum" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Method to allocate any irregular period remaining after
              regular periods have been allocated between the effective and
              termination date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="calculationPeriodFrequency" type="CalculationPeriodFrequency">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The frequency at which calculation period end dates occur
              with the regular part of the calculation period schedule and
              their roll date convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID" use="required"/>
    </xsd:complexType>

## CalculationPeriodDatesReference

### Description:

Reference to a calculation period dates component.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Reference)

- Specifies the anchor as an href attribute. The href attribute value is a pointer style reference to the element or component elsewhere in the document where the anchor is defined.

### Used by:

- NotionalStepRule/calculationPeriodDatesReference
- PaymentDates/calculationPeriodDatesReference
- ResetDates/calculationPeriodDatesReference
- StubCalculationPeriodAmount/calculationPeriodDatesReference

### Extension of:

- Reference

### Schema Fragment:

    <xsd:complexType name="CalculationPeriodDatesReference">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Reference to a calculation period dates component.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Reference"/>
      </xsd:complexContent>
    </xsd:complexType>

## CancelableProvision

### Description:

A type defining the right of a party to cancel a swap transaction on the specified exercise dates. The provision is for 'walkaway' cancellation (i.e. the fair value of the swap is not paid). A fee payable on exercise can be specified.

### Figure:

### Contents:

buyerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that buys this instrument, ie. pays for this instrument and receives the rights defined by it. See 2000 ISDA definitions Article 11.1 (b). In the case of FRAs this the fixed rate payer.

sellerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that sells ("writes") this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. See 2000 ISDA definitions Article 11.1 (a). In the case of FRAs this is the floating rate payer.

exercise (exactly one occurrence; of the type Exercise)

- An placeholder for the actual option exercise definitions.

exerciseNotice (zero or one occurrence; of the type ExerciseNotice)

- Definition of the party to whom notice of exercise should be given.

followUpConfirmation (exactly one occurrence; of the type xsd:boolean)

- A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.

cancelableProvisionAdjustedDates (zero or one occurrence; of the type CancelableProvisionAdjustedDates)

- The adjusted dates associated with a cancelable provision. These dates have been adjusted for any applicable business day convention.

### Used by:

- Swap/cancelableProvision

### Schema Fragment:

    <xsd:complexType name="CancelableProvision">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the right of a party to cancel a swap transaction
          on the specified exercise dates. The provision is for 'walkaway'
          cancellation (i.e. the fair value of the swap is not paid). A fee
          payable on exercise can be specified.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:group ref="BuyerSeller.model"/>
        <xsd:element ref="exercise"/>
        <xsd:element name="exerciseNotice" type="ExerciseNotice" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Definition of the party to whom notice of exercise should be
              given.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="followUpConfirmation" type="xsd:boolean">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A flag to indicate whether follow-up confirmation of exercise
              (written or electronic) is required following telephonic
              notice by the buyer to the seller or seller's agent.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cancelableProvisionAdjustedDates" type="CancelableProvisionAdjustedDates" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted dates associated with a cancelable provision.
              These dates have been adjusted for any applicable business
              day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## CancelableProvisionAdjustedDates

### Description:

A type to define the adjusted dates for a cancelable provision on a swap transaction.

### Figure:

### Contents:

cancellationEvent (one or more occurrences; of the type CancellationEvent)

- The adjusted dates for an individual cancellation date.

### Used by:

- CancelableProvision/cancelableProvisionAdjustedDates

### Schema Fragment:

    <xsd:complexType name="CancelableProvisionAdjustedDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to define the adjusted dates for a cancelable provision on
          a swap transaction.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="cancellationEvent" type="CancellationEvent" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted dates for an individual cancellation date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## CancellationEvent

### Description:

The adjusted dates for a specific cancellation date, including the adjusted exercise date and adjusted termination date.

### Figure:

### Contents:

adjustedExerciseDate (exactly one occurrence; of the type xsd:date)

- The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention.

adjustedEarlyTerminationDate (exactly one occurrence; of the type xsd:date)

- The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention.

Attribute: id (xsd:ID)

### Used by:

- CancelableProvisionAdjustedDates/cancellationEvent

### Schema Fragment:

    <xsd:complexType name="CancellationEvent">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          The adjusted dates for a specific cancellation date, including
          the adjusted exercise date and adjusted termination date.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="adjustedExerciseDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which option exercise takes place. This date
              should already be adjusted for any applicable business day
              convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The early termination date that is applicable if an early
              termination provision is exercised. This date should already
              be adjusted for any applicable business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## CapFloor

### Description:

A type defining an interest rate cap, floor, or cap/floor strategy (e.g. collar) product.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Product)

- The base type which all FpML products extend.

capFloorStream (exactly one occurrence; of the type InterestRateStream)

premium (zero or more occurrences; of the type Payment)

- The option premium amount payable by buyer to seller on the specified payment date.

additionalPayment (zero or more occurrences; of the type Payment)

- Additional payments between the principal parties.

earlyTerminationProvision (zero or one occurrence; of the type EarlyTerminationProvision)

- Parameters specifying provisions relating to the optional and mandatory early terminarion of a CapFloor transaction.

### Used by:

### Extension of:

- Product

### Schema Fragment:

    <xsd:complexType name="CapFloor">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining an interest rate cap, floor, or cap/floor
          strategy (e.g. collar) product.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Product">
          <xsd:sequence>
            <xsd:element name="capFloorStream" type="InterestRateStream"/>
            <xsd:element name="premium" type="Payment" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The option premium amount payable by buyer to seller on
                  the specified payment date.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="additionalPayment" type="Payment" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Additional payments between the principal parties.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="earlyTerminationProvision" type="EarlyTerminationProvision" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Parameters specifying provisions relating to the optional
                  and mandatory early terminarion of a CapFloor
                  transaction.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## Cashflows

### Description:

A type defining the cashflow representation of a swap trade.

### Figure:

### Contents:

cashflowsMatchParameters (exactly one occurrence; of the type xsd:boolean)

- A true/false flag to indicate whether the cashflows match the parametric definition of the stream, i.e. whether the cashflows could be regenerated from the parameters without loss of information.

principalExchange (zero or more occurrences; of the type PrincipalExchange)

- The initial, intermediate and final principal exchange amounts. Typically required on cross currency interest rate swaps where actual exchanges of principal occur. A list of principal exchange elements may be ordered in the document by ascending adjusted principal exchange date. An FpML document containing an unordered principal exchange list is still regarded as a conformant document.

paymentCalculationPeriod (zero or more occurrences; of the type PaymentCalculationPeriod)

- The adjusted payment date and associated calculation period parameters required to calculate the actual or projected payment amount. A list of payment calculation period elements may be ordered in the document by ascending adjusted payment date. An FpML document containing an unordered list of payment calculation periods is still regarded as a conformant document.

### Used by:

- InterestRateStream/cashflows

### Schema Fragment:

    <xsd:complexType name="Cashflows">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the cashflow representation of a swap trade.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="cashflowsMatchParameters" type="xsd:boolean">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A true/false flag to indicate whether the cashflows match the
              parametric definition of the stream, i.e. whether the
              cashflows could be regenerated from the parameters without
              loss of information.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="principalExchange" type="PrincipalExchange" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The initial, intermediate and final principal exchange
              amounts. Typically required on cross currency interest rate
              swaps where actual exchanges of principal occur. A list of
              principal exchange elements may be ordered in the document by
              ascending adjusted principal exchange date. An FpML document
              containing an unordered principal exchange list is still
              regarded as a conformant document.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="paymentCalculationPeriod" type="PaymentCalculationPeriod" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted payment date and associated calculation period
              parameters required to calculate the actual or projected
              payment amount. A list of payment calculation period elements
              may be ordered in the document by ascending adjusted payment
              date. An FpML document containing an unordered list of
              payment calculation periods is still regarded as a conformant
              document.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## CashPriceMethod

### Description:

A type defining the parameters necessary for each of the ISDA cash price methods for cash settlement.

### Figure:

### Contents:

cashSettlementReferenceBanks (zero or one occurrence; of the type CashSettlementReferenceBanks)

- A container for a set of reference institutions. These reference institutions may be called upon to provide rate quotations as part of the method to determine the applicable cash settlement amount. If institutions are not specified, it is assumed that reference institutions will be agreed between the parties on the exercise date, or in the case of swap transaction to which mandatory early termination is applicable, the cash settlement valuation date.

cashSettlementCurrency (exactly one occurrence; of the type Currency)

- The currency in which the cash settlement amount will be calculated and settled.

quotationRateType (exactly one occurrence; of the type QuotationRateTypeEnum)

- Which rate quote is to be observed, either Bid, Mid, Offer or Exercising Party Pays. The meaning of Exercising Party Pays is defined in the 2000 ISDA Definitions, Section 17.2. Certain Definitions Relating to Cash Settlement, paragraph (j)

### Used by:

### Schema Fragment:

    <xsd:complexType name="CashPriceMethod">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the parameters necessary for each of the ISDA
          cash price methods for cash settlement.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A container for a set of reference institutions. These
              reference institutions may be called upon to provide rate
              quotations as part of the method to determine the applicable
              cash settlement amount. If institutions are not specified, it
              is assumed that reference institutions will be agreed between
              the parties on the exercise date, or in the case of swap
              transaction to which mandatory early termination is
              applicable, the cash settlement valuation date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashSettlementCurrency" type="Currency">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The currency in which the cash settlement amount will be
              calculated and settled.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="quotationRateType" type="QuotationRateTypeEnum">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Which rate quote is to be observed, either Bid, Mid, Offer or
              Exercising Party Pays. The meaning of Exercising Party Pays
              is defined in the 2000 ISDA Definitions, Section 17.2.
              Certain Definitions Relating to Cash Settlement, paragraph
              (j)
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## CashSettlement

### Description:

A type to define the cash settlement terms for a product where cash settlement is applicable.

### Figure:

### Contents:

cashSettlementValuationTime (zero or one occurrence; of the type BusinessCenterTime)

- The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree the cash settlement amount.

cashSettlementValuationDate (zero or one occurrence; of the type RelativeDateOffset)

- The date on which the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree the cash settlement amount.

cashSettlementPaymentDate (zero or one occurrence; of the type CashSettlementPaymentDate)

- The date on which the cash settlement amount will be paid, subject to adjustment in accordance with any applicable business day convention. This component would not be present for a mandatory early termination provision where the cash settlement payment date is the mandatory early termination date.

There can be zero or one occurance of the following structure;

Attribute: id (xsd:ID)

### Used by:

- MandatoryEarlyTermination/cashSettlement
- OptionalEarlyTermination/cashSettlement
- Swaption/cashSettlement

### Schema Fragment:

    <xsd:complexType name="CashSettlement">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to define the cash settlement terms for a product where
          cash settlement is applicable.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="cashSettlementValuationTime" type="BusinessCenterTime" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The time of the cash settlement valuation date when the cash
              settlement amount will be determined according to the cash
              settlement method if the parties have not otherwise been able
              to agree the cash settlement amount.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashSettlementValuationDate" type="RelativeDateOffset" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which the cash settlement amount will be
              determined according to the cash settlement method if the
              parties have not otherwise been able to agree the cash
              settlement amount.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashSettlementPaymentDate" type="CashSettlementPaymentDate" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which the cash settlement amount will be paid,
              subject to adjustment in accordance with any applicable
              business day convention. This component would not be present
              for a mandatory early termination provision where the cash
              settlement payment date is the mandatory early termination
              date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:choice minOccurs="0">
          <xsd:group ref="CashSettlementMethods2021.model"/>
          <xsd:group ref="CashSettlementMethods2006and2021.model"/>
          <xsd:group ref="CashSettlementMethods2006.model"/>
        </xsd:choice>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## CashSettlementPaymentDate

### Description:

A type defining the cash settlement payment date(s) as either a set of explicit dates, together with applicable adjustments, or as a date relative to some other (anchor) date, or as any date in a range of contiguous business days.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

adjustableDates (exactly one occurrence; of the type AdjustableDates)

- A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date.

Or

relativeDate (exactly one occurrence; of the type RelativeDateOffset)

- A date specified as some offset to another date (the anchor date).

Or

businessDateRange (exactly one occurrence; of the type BusinessDateRange)

- A range of contiguous business days.

Attribute: id (xsd:ID)

### Used by:

- CashSettlement/cashSettlementPaymentDate

### Schema Fragment:

    <xsd:complexType name="CashSettlementPaymentDate">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the cash settlement payment date(s) as either a
          set of explicit dates, together with applicable adjustments, or
          as a date relative to some other (anchor) date, or as any date in
          a range of contiguous business days.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:element name="adjustableDates" type="AdjustableDates">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A series of dates that shall be subject to adjustment if they
              would otherwise fall on a day that is not a business day in
              the specified business centers, together with the convention
              for adjusting the date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="relativeDate" type="RelativeDateOffset">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A date specified as some offset to another date (the anchor
              date).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="businessDateRange" type="BusinessDateRange">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A range of contiguous business days.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## CollateralizedCashPriceMethod

### Description:

A type defining the parameters required for each of the ISDA defined yield curve methods for cash settlement. See the 2021 ISDA Definitions, section 18.2.6.

### Figure:

### Contents:

cashSettlementCurrency (zero or one occurrence; of the type Currency)

- The currency or currencies in which the cash settlement amount will be calculated and settled. (2 Currencies are supported for cross-currency settlement methods.)

settlementRateSource (zero or one occurrence; of the type SettlementRateSource)

- The method for obtaining a settlement rate. This may be from some information source (e.g. Reuters) or from a set of reference banks.

quotationRateType (exactly one occurrence; of the type QuotationRateTypeEnum)

- Which rate quote is to be observed, either Bid, Mid, Offer or Exercising Party Pays. The meaning of Exercising Party Pays is defined in the 2000 ISDA Definitions, Section 17.2. Certain Definitions Relating to Cash Settlement, paragraph (j)

mutuallyAgreedClearinghouse (zero or one occurrence; of the type MutuallyAgreedClearinghouse)

- This may be used to specify a "mutually-agreed clearinghouse" for settlement. This is only applicable for cash-settled swaptions.

agreedDiscountRate (zero or one occurrence; of the type BenchmarkRate)

- This may be used to indicate the discount rate to be used for cash collateral for cash settlement purposes.

### Used by:

### Schema Fragment:

    <xsd:complexType name="CollateralizedCashPriceMethod">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the parameters required for each of the ISDA
          defined yield curve methods for cash settlement. See the 2021
          ISDA Definitions, section 18.2.6.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="cashSettlementCurrency" type="Currency" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The currency or currencies in which the cash settlement
              amount will be calculated and settled. (2 Currencies are
              supported for cross-currency settlement methods.)
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="settlementRateSource" type="SettlementRateSource" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The method for obtaining a settlement rate. This may be from
              some information source (e.g. Reuters) or from a set of
              reference banks.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="quotationRateType" type="QuotationRateTypeEnum">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Which rate quote is to be observed, either Bid, Mid, Offer or
              Exercising Party Pays. The meaning of Exercising Party Pays
              is defined in the 2000 ISDA Definitions, Section 17.2.
              Certain Definitions Relating to Cash Settlement, paragraph
              (j)
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="mutuallyAgreedClearinghouse" type="MutuallyAgreedClearinghouse" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              This may be used to specify a "mutually-agreed clearinghouse"
              for settlement. This is only applicable for cash-settled
              swaptions.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="agreedDiscountRate" type="BenchmarkRate" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              This may be used to indicate the discount rate to be used for
              cash collateral for cash settlement purposes.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## CrossCurrencyMethod

### Description:

### Figure:

### Contents:

cashSettlementReferenceBanks (zero or one occurrence; of the type CashSettlementReferenceBanks)

- A container for a set of reference institutions. These reference institutions may be called upon to provide rate quotations as part of the method to determine the applicable cash settlement amount. If institutions are not specified, it is assumed that reference institutions will be agreed between the parties on the exercise date, or in the case of swap transaction to which mandatory early termination is applicable, the cash settlement valuation date.

cashSettlementCurrency (exactly one occurrence; of the type Currency)

- The currency, or currencies, in which the cash settlement amount(s) will be calculated and settled. While the order in which the currencies are stated is unimportant, the cash settlement currency or currencies must correspond to one or both of the constituent currencies of the swap transaction.

quotationRateType (exactly one occurrence; of the type QuotationRateTypeEnum)

- Which rate quote is to be observed, either Bid, Mid, Offer or Exercising Party Pays. The meaning of Exercising Party Pays is defined in the 2000 ISDA Definitions, Section 17.2. Certain Definitions Relating to Cash Settlement, paragraph (j)

### Used by:

### Schema Fragment:

    <xsd:complexType name="CrossCurrencyMethod">
      <xsd:sequence>
        <xsd:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A container for a set of reference institutions. These
              reference institutions may be called upon to provide rate
              quotations as part of the method to determine the applicable
              cash settlement amount. If institutions are not specified, it
              is assumed that reference institutions will be agreed between
              the parties on the exercise date, or in the case of swap
              transaction to which mandatory early termination is
              applicable, the cash settlement valuation date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashSettlementCurrency" type="Currency" maxOccurs="2" minOccurs="1">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The currency, or currencies, in which the cash settlement
              amount(s) will be calculated and settled. While the order in
              which the currencies are stated is unimportant, the cash
              settlement currency or currencies must correspond to one or
              both of the constituent currencies of the swap transaction.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="quotationRateType" type="QuotationRateTypeEnum" minOccurs="1">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Which rate quote is to be observed, either Bid, Mid, Offer or
              Exercising Party Pays. The meaning of Exercising Party Pays
              is defined in the 2000 ISDA Definitions, Section 17.2.
              Certain Definitions Relating to Cash Settlement, paragraph
              (j)
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## DateRelativeToPaymentDates

### Description:

A type to provide the ability to point to multiple payment nodes in the document through the unbounded paymentDatesReference.

### Figure:

### Contents:

paymentDatesReference (one or more occurrences; of the type PaymentDatesReference)

- A set of href pointers to payment dates defined somewhere else in the document.

### Used by:

- FxFixingDate/dateRelativeToPaymentDates

### Schema Fragment:

    <xsd:complexType name="DateRelativeToPaymentDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to provide the ability to point to multiple payment nodes
          in the document through the unbounded paymentDatesReference.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="paymentDatesReference" type="PaymentDatesReference" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A set of href pointers to payment dates defined somewhere
              else in the document.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## Discounting

### Description:

A type defining discounting information. The 2000 ISDA definitions, section 8.4. discounting (related to the calculation of a discounted fixed amount or floating amount) apply. This type must only be included if discounting applies.

### Figure:

### Contents:

discountingType (exactly one occurrence; of the type DiscountingTypeEnum)

- The discounting method that is applicable.

discountRate (zero or one occurrence; of the type xsd:decimal)

- A discount rate, expressed as a decimal, to be used in the calculation of a discounted amount. A discount amount of 5% would be represented as 0.05.

discountRateDayCountFraction (zero or one occurrence; of the type DayCountFraction)

- A discount day count fraction to be used in the calculation of a discounted amount.

### Used by:

- Calculation/discounting

### Schema Fragment:

    <xsd:complexType name="Discounting">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining discounting information. The 2000 ISDA
          definitions, section 8.4. discounting (related to the calculation
          of a discounted fixed amount or floating amount) apply. This type
          must only be included if discounting applies.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="discountingType" type="DiscountingTypeEnum">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The discounting method that is applicable.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="discountRate" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A discount rate, expressed as a decimal, to be used in the
              calculation of a discounted amount. A discount amount of 5%
              would be represented as 0.05.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="discountRateDayCountFraction" type="DayCountFraction" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A discount day count fraction to be used in the calculation
              of a discounted amount.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## EarlyTerminationEvent

### Description:

A type to define the adjusted dates associated with an early termination provision.

### Figure:

### Contents:

adjustedExerciseDate (exactly one occurrence; of the type xsd:date)

- The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention.

adjustedEarlyTerminationDate (exactly one occurrence; of the type xsd:date)

- The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention.

adjustedCashSettlementValuationDate (exactly one occurrence; of the type xsd:date)

- The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention.

adjustedCashSettlementPaymentDate (exactly one occurrence; of the type xsd:date)

- The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business dat convention.

adjustedExerciseFeePaymentDate (zero or one occurrence; of the type xsd:date)

- The date on which the exercise fee amount is paid. This date should already be adjusted for any applicable business day convention.

Attribute: id (xsd:ID)

### Used by:

- OptionalEarlyTerminationAdjustedDates/earlyTerminationEvent

### Schema Fragment:

    <xsd:complexType name="EarlyTerminationEvent">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to define the adjusted dates associated with an early
          termination provision.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="adjustedExerciseDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which option exercise takes place. This date
              should already be adjusted for any applicable business day
              convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The early termination date that is applicable if an early
              termination provision is exercised. This date should already
              be adjusted for any applicable business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedCashSettlementValuationDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date by which the cash settlement amount must be agreed.
              This date should already be adjusted for any applicable
              business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedCashSettlementPaymentDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which the cash settlement amount is paid. This
              date should already be adjusted for any applicable business
              dat convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedExerciseFeePaymentDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which the exercise fee amount is paid. This date
              should already be adjusted for any applicable business day
              convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## EarlyTerminationProvision

### Description:

A type defining an early termination provision for a swap. This early termination is at fair value, i.e. on termination the fair value of the product must be settled between the parties.

### Figure:

### Contents:

There can be one occurance of the following structure;

Attribute: id (xsd:ID)

### Used by:

- CapFloor/earlyTerminationProvision
- Swap/earlyTerminationProvision

### Schema Fragment:

    <xsd:complexType name="EarlyTerminationProvision">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining an early termination provision for a swap. This
          early termination is at fair value, i.e. on termination the fair
          value of the product must be settled between the parties.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:sequence>
          <xsd:group ref="MandatoryEarlyTermination.model"/>
          <xsd:group ref="OptionalEarlyTermination.model" minOccurs="0"/>
        </xsd:sequence>
        <xsd:group ref="OptionalEarlyTermination.model"/>
      </xsd:choice>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## ExerciseEvent

### Description:

A type defining the adjusted dates associated with a particular exercise event.

### Figure:

### Contents:

adjustedExerciseDate (exactly one occurrence; of the type xsd:date)

- The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention.

adjustedRelevantSwapEffectiveDate (exactly one occurrence; of the type xsd:date)

- The effective date of the underlying swap associated with a given exercise date. This date should already be adjusted for any applicable business day convention.

adjustedCashSettlementValuationDate (zero or one occurrence; of the type xsd:date)

- The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention.

adjustedCashSettlementPaymentDate (zero or one occurrence; of the type xsd:date)

- The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business dat convention.

adjustedExerciseFeePaymentDate (zero or one occurrence; of the type xsd:date)

- The date on which the exercise fee amount is paid. This date should already be adjusted for any applicable business day convention.

Attribute: id (xsd:ID)

### Used by:

- SwaptionAdjustedDates/exerciseEvent

### Schema Fragment:

    <xsd:complexType name="ExerciseEvent">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the adjusted dates associated with a particular
          exercise event.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="adjustedExerciseDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which option exercise takes place. This date
              should already be adjusted for any applicable business day
              convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedRelevantSwapEffectiveDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The effective date of the underlying swap associated with a
              given exercise date. This date should already be adjusted for
              any applicable business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedCashSettlementValuationDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date by which the cash settlement amount must be agreed.
              This date should already be adjusted for any applicable
              business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedCashSettlementPaymentDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which the cash settlement amount is paid. This
              date should already be adjusted for any applicable business
              dat convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedExerciseFeePaymentDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which the exercise fee amount is paid. This date
              should already be adjusted for any applicable business day
              convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## ExercisePeriod

### Description:

This defines the time interval to the start of the exercise period, i.e. the earliest exercise date, and the frequency of subsequent exercise dates (if any).

### Figure:

### Contents:

earliestExerciseDateTenor (exactly one occurrence; of the type Interval)

- The time interval to the first (and possibly only) exercise date in the exercise period.

exerciseFrequency (zero or one occurrence; of the type Interval)

- The frequency of subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise period.

Attribute: id (xsd:ID)

### Used by:

### Schema Fragment:

    <xsd:complexType name="ExercisePeriod">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This defines the time interval to the start of the exercise
          period, i.e. the earliest exercise date, and the frequency of
          subsequent exercise dates (if any).
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="earliestExerciseDateTenor" type="Interval">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The time interval to the first (and possibly only) exercise
              date in the exercise period.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="exerciseFrequency" type="Interval" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The frequency of subsequent exercise dates in the exercise
              period following the earliest exercise date. An interval of 1
              day should be used to indicate an American style exercise
              period.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## ExtendibleProvision

### Description:

A type defining an option to extend an existing swap transaction on the specified exercise dates for a term ending on the specified new termination date.

### Figure:

### Contents:

buyerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that buys this instrument, ie. pays for this instrument and receives the rights defined by it. See 2000 ISDA definitions Article 11.1 (b). In the case of FRAs this the fixed rate payer.

sellerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that sells ("writes") this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. See 2000 ISDA definitions Article 11.1 (a). In the case of FRAs this is the floating rate payer.

exercise (exactly one occurrence; of the type Exercise)

- An placeholder for the actual option exercise definitions.

exerciseNotice (zero or one occurrence; of the type ExerciseNotice)

- Definition of the party to whom notice of exercise should be given.

followUpConfirmation (exactly one occurrence; of the type xsd:boolean)

- A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.

extendibleProvisionAdjustedDates (zero or one occurrence; of the type ExtendibleProvisionAdjustedDates)

- The adjusted dates associated with an extendible provision. These dates have been adjusted for any applicable business day convention.

### Used by:

- Swap/extendibleProvision

### Schema Fragment:

    <xsd:complexType name="ExtendibleProvision">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining an option to extend an existing swap transaction
          on the specified exercise dates for a term ending on the
          specified new termination date.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:group ref="BuyerSeller.model"/>
        <xsd:element ref="exercise"/>
        <xsd:element name="exerciseNotice" type="ExerciseNotice" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Definition of the party to whom notice of exercise should be
              given.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="followUpConfirmation" type="xsd:boolean">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A flag to indicate whether follow-up confirmation of exercise
              (written or electronic) is required following telephonic
              notice by the buyer to the seller or seller's agent.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="extendibleProvisionAdjustedDates" type="ExtendibleProvisionAdjustedDates" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted dates associated with an extendible provision.
              These dates have been adjusted for any applicable business
              day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## ExtendibleProvisionAdjustedDates

### Description:

A type defining the adjusted dates associated with a provision to extend a swap.

### Figure:

### Contents:

extensionEvent (one or more occurrences; of the type ExtensionEvent)

- The adjusted dates associated with a single extendible exercise date.

### Used by:

- ExtendibleProvision/extendibleProvisionAdjustedDates

### Schema Fragment:

    <xsd:complexType name="ExtendibleProvisionAdjustedDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the adjusted dates associated with a provision to
          extend a swap.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="extensionEvent" type="ExtensionEvent" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted dates associated with a single extendible
              exercise date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## ExtensionEvent

### Description:

A type to define the adjusted dates associated with an individual extension event.

### Figure:

### Contents:

adjustedExerciseDate (exactly one occurrence; of the type xsd:date)

- The date on which option exercise takes place. This date should already be adjusted for any applicable business day convention.

adjustedExtendedTerminationDate (exactly one occurrence; of the type xsd:date)

- The termination date if an extendible provision is exercised. This date should already be adjusted for any applicable business day convention.

Attribute: id (xsd:ID)

### Used by:

- ExtendibleProvisionAdjustedDates/extensionEvent

### Schema Fragment:

    <xsd:complexType name="ExtensionEvent">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to define the adjusted dates associated with an individual
          extension event.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="adjustedExerciseDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which option exercise takes place. This date
              should already be adjusted for any applicable business day
              convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedExtendedTerminationDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The termination date if an extendible provision is exercised.
              This date should already be adjusted for any applicable
              business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## FloatingRateDefinition

### Description:

A type defining parameters associated with a floating rate reset. This type forms part of the cashflows representation of a stream.

### Figure:

### Contents:

calculatedRate (zero or one occurrence; of the type xsd:decimal)

- The final calculated rate for a calculation period after any required averaging of rates A calculated rate of 5% would be represented as 0.05.

rateObservation (zero or more occurrences; of the type RateObservation)

- The details of a particular rate observation, including the fixing date and observed rate. A list of rate observation elements may be ordered in the document by ascending adjusted fixing date. An FpML document containing an unordered list of rate observations is still regarded as a conformant document.

floatingRateMultiplier (zero or one occurrence; of the type xsd:decimal)

- A rate multiplier to apply to the floating rate. The multiplier can be a positive or negative decimal. This element should only be included if the multiplier is not equal to 1 (one).

spread (zero or one occurrence; of the type xsd:decimal)

- The ISDA Spread, if any, which applies for the calculation period. The spread is a per annum rate, expressed as a decimal. For purposes of determining a calculation period amount, if positive the spread will be added to the floating rate and if negative the spread will be subtracted from the floating rate. A positive 10 basis point (0.1%) spread would be represented as 0.001.

capRate (zero or more occurrences; of the type Strike)

- The cap rate, if any, which applies to the floating rate for the calculation period. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain strike level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.

floorRate (zero or more occurrences; of the type Strike)

- The floor rate, if any, which applies to the floating rate for the calculation period. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. The floor rate of 5% would be represented as 0.05.

### Used by:

- CalculationPeriod/floatingRateDefinition

### Schema Fragment:

    <xsd:complexType name="FloatingRateDefinition">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining parameters associated with a floating rate reset.
          This type forms part of the cashflows representation of a stream.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="calculatedRate" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The final calculated rate for a calculation period after any
              required averaging of rates A calculated rate of 5% would be
              represented as 0.05.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="rateObservation" type="RateObservation" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The details of a particular rate observation, including the
              fixing date and observed rate. A list of rate observation
              elements may be ordered in the document by ascending adjusted
              fixing date. An FpML document containing an unordered list of
              rate observations is still regarded as a conformant document.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="floatingRateMultiplier" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A rate multiplier to apply to the floating rate. The
              multiplier can be a positive or negative decimal. This
              element should only be included if the multiplier is not
              equal to 1 (one).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="spread" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The ISDA Spread, if any, which applies for the calculation
              period. The spread is a per annum rate, expressed as a
              decimal. For purposes of determining a calculation period
              amount, if positive the spread will be added to the floating
              rate and if negative the spread will be subtracted from the
              floating rate. A positive 10 basis point (0.1%) spread would
              be represented as 0.001.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="capRate" type="Strike" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The cap rate, if any, which applies to the floating rate for
              the calculation period. The cap rate (strike) is only
              required where the floating rate on a swap stream is capped
              at a certain strike level. The cap rate is assumed to be
              exclusive of any spread and is a per annum rate, expressed as
              a decimal. A cap rate of 5% would be represented as 0.05.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="floorRate" type="Strike" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The floor rate, if any, which applies to the floating rate
              for the calculation period. The floor rate (strike) is only
              required where the floating rate on a swap stream is floored
              at a certain strike level. The floor rate is assumed to be
              exclusive of any spread and is a per annum rate, expressed as
              a decimal. The floor rate of 5% would be represented as 0.05.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## Fra

### Description:

A type defining a Forward Rate Agreement (FRA) product.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Product)

- The base type which all FpML products extend.

buyerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that buys this instrument, ie. pays for this instrument and receives the rights defined by it. See 2000 ISDA definitions Article 11.1 (b). In the case of FRAs this the fixed rate payer.

sellerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that sells ("writes") this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. See 2000 ISDA definitions Article 11.1 (a). In the case of FRAs this is the floating rate payer.

adjustedEffectiveDate (exactly one occurrence; of the type RequiredIdentifierDate)

- The start date of the calculation period. This date should already be adjusted for any applicable business day convention. This is also the date when the observed rate is applied, the reset date.

adjustedTerminationDate (exactly one occurrence; of the type xsd:date)

- The end date of the calculation period. This date should already be adjusted for any applicable business day convention.

paymentDate (exactly one occurrence; of the type AdjustableDate)

- The payment date. This date is subject to adjustment in accordance with any applicable business day convention.

fixingDateOffset (exactly one occurrence; of the type RelativeDateOffset)

- Specifies the fixing date relative to the reset date in terms of a business days offset and an associated set of financial business centers. Normally these offset calculation rules will be those specified in the ISDA definition for the relevant floating rate index (ISDA's Floating Rate Option). However, non-standard offset calculation rules may apply for a trade if mutually agreed by the principal parties to the transaction. The href attribute on the dateRelativeTo element should reference the id attribute on the adjustedEffectiveDate element.

dayCountFraction (exactly one occurrence; of the type DayCountFraction)

- The day count fraction.

calculationPeriodNumberOfDays (exactly one occurrence; of the type xsd:positiveInteger)

- The number of days from the adjusted effective date to the adjusted termination date calculated in accordance with the applicable day count fraction.

notional (exactly one occurrence; of the type Money)

- The notional amount.

fixedRate (exactly one occurrence; of the type xsd:decimal)

- The calculation period fixed rate. A per annum rate, expressed as a decimal. A fixed rate of 5% would be represented as 0.05.

floatingRateIndex (exactly one occurrence; of the type FloatingRateIndex)

indexTenor (one or more occurrences; of the type Interval)

- The ISDA Designated Maturity, i.e. the tenor of the floating rate.

fraDiscounting (exactly one occurrence; of the type FraDiscountingEnum)

- Specifies whether discounting applies and, if so, what type.

### Used by:

### Extension of:

- Product

### Schema Fragment:

    <xsd:complexType name="Fra">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining a Forward Rate Agreement (FRA) product.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Product">
          <xsd:sequence>
            <xsd:group ref="BuyerSeller.model"/>
            <xsd:element name="adjustedEffectiveDate" type="RequiredIdentifierDate">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The start date of the calculation period. This date
                  should already be adjusted for any applicable business
                  day convention. This is also the date when the observed
                  rate is applied, the reset date.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="adjustedTerminationDate" type="xsd:date">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The end date of the calculation period. This date should
                  already be adjusted for any applicable business day
                  convention.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="paymentDate" type="AdjustableDate">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The payment date. This date is subject to adjustment in
                  accordance with any applicable business day convention.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="fixingDateOffset" type="RelativeDateOffset">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Specifies the fixing date relative to the reset date in
                  terms of a business days offset and an associated set of
                  financial business centers. Normally these offset
                  calculation rules will be those specified in the ISDA
                  definition for the relevant floating rate index (ISDA's
                  Floating Rate Option). However, non-standard offset
                  calculation rules may apply for a trade if mutually
                  agreed by the principal parties to the transaction. The
                  href attribute on the dateRelativeTo element should
                  reference the id attribute on the adjustedEffectiveDate
                  element.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="dayCountFraction" type="DayCountFraction">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The day count fraction.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="calculationPeriodNumberOfDays" type="xsd:positiveInteger">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The number of days from the adjusted effective date to
                  the adjusted termination date calculated in accordance
                  with the applicable day count fraction.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="notional" type="Money">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The notional amount.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="fixedRate" type="xsd:decimal">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The calculation period fixed rate. A per annum rate,
                  expressed as a decimal. A fixed rate of 5% would be
                  represented as 0.05.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="floatingRateIndex" type="FloatingRateIndex"/>
            <xsd:element name="indexTenor" type="Interval" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The ISDA Designated Maturity, i.e. the tenor of the
                  floating rate.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="fraDiscounting" type="FraDiscountingEnum">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Specifies whether discounting applies and, if so, what
                  type.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## FxFixingDate

### Description:

A type that is extending the Offset structure for providing the ability to specify an FX fixing date as an offset to dates specified somewhere else in the document.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Offset)

- A type defining an offset used in calculating a new date relative to a reference date. Currently, the only offsets defined are expected to be expressed as either calendar or business day offsets.

businessDayConvention (exactly one occurrence; of the type BusinessDayConventionEnum)

- The convention for adjusting a date if it would otherwise fall on a day that is not a business day.

There can be one occurance of the following structure; Choice of either

businessCentersReference (exactly one occurrence; of the type BusinessCentersReference)

- A pointer style reference to a set of financial business centers defined elsewhere in the document. This set of business centers is used to determine whether a particular day is a business day or not.

Or

businessCenters (exactly one occurrence; of the type BusinessCenters)

dateRelativeToPaymentDates (exactly one occurrence; of the type DateRelativeToPaymentDates)

- The payment date references on which settlements in non-deliverable currency are due and will then have to be converted according to the terms specified through the other parts of the nonDeliverableSettlement structure.

### Used by:

- NonDeliverableSettlement/fxFixingDate

### Extension of:

- Offset

### Schema Fragment:

    <xsd:complexType name="FxFixingDate">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type that is extending the Offset structure for providing the
          ability to specify an FX fixing date as an offset to dates
          specified somewhere else in the document.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Offset">
          <xsd:sequence>
            <xsd:element name="businessDayConvention" type="BusinessDayConventionEnum">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The convention for adjusting a date if it would otherwise
                  fall on a day that is not a business day.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0"/>
            <xsd:element name="dateRelativeToPaymentDates" type="DateRelativeToPaymentDates">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The payment date references on which settlements in
                  non-deliverable currency are due and will then have to be
                  converted according to the terms specified through the
                  other parts of the nonDeliverableSettlement structure.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## FxLinkedNotionalAmount

### Description:

A type to describe the cashflow representation for fx linked notionals.

### Figure:

### Contents:

resetDate (zero or one occurrence; of the type xsd:date)

adjustedFxSpotFixingDate (zero or one occurrence; of the type xsd:date)

- The date on which the fx spot rate is observed. This date should already be adjusted for any applicable business day convention.

observedFxSpotRate (zero or one occurrence; of the type xsd:decimal)

- The actual observed fx spot rate.

notionalAmount (zero or one occurrence; of the type xsd:decimal)

- The calculation period notional amount.

### Used by:

- CalculationPeriod/fxLinkedNotionalAmount

### Schema Fragment:

    <xsd:complexType name="FxLinkedNotionalAmount">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to describe the cashflow representation for fx linked
          notionals.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="resetDate" type="xsd:date" minOccurs="0"/>
        <xsd:element name="adjustedFxSpotFixingDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which the fx spot rate is observed. This date
              should already be adjusted for any applicable business day
              convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="observedFxSpotRate" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The actual observed fx spot rate.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="notionalAmount" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The calculation period notional amount.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## FxLinkedNotionalSchedule

### Description:

A type to describe a notional schedule where each notional that applies to a calculation period is calculated with reference to a notional amount or notional amount schedule in a different currency by means of a spot currency exchange rate which is normally observed at the beginning of each period.

### Figure:

### Contents:

constantNotionalScheduleReference (exactly one occurrence; of the type ScheduleReference)

- A pointer style reference to the associated constant notional schedule defined elsewhere in the document which contains the currency amounts which will be converted into the varying notional currency amounts using the spot currency exchange rate.

initialValue (zero or one occurrence; of the type xsd:decimal)

- The initial currency amount for the varying notional.

varyingNotionalCurrency (exactly one occurrence; of the type xsd:string)

- The currency of the varying notional amount, i.e. the notional amount being determined periodically based on observation of a spot currency exchange rate.

varyingNotionalFixingDates (exactly one occurrence; of the type RelativeDateOffset)

- The dates on which spot currency exchange rates are observed for purposes of determining the varying notional currency amount that will apply to a calculation period.

fxSpotRateSource (exactly one occurrence; of the type FxSpotRateSource)

- The information source and time at which the spot currency exchange rate will be observed.

varyingNotionalInterimExchangePaymentDates (exactly one occurrence; of the type RelativeDateOffset)

- The dates on which interim exchanges of notional are paid. Interim exchanges will arise as a result of changes in the spot currency exchange amount or changes in the constant notional schedule (e.g. amortization).

### Used by:

- Calculation/fxLinkedNotionalSchedule

### Schema Fragment:

    <xsd:complexType name="FxLinkedNotionalSchedule">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to describe a notional schedule where each notional that
          applies to a calculation period is calculated with reference to a
          notional amount or notional amount schedule in a different
          currency by means of a spot currency exchange rate which is
          normally observed at the beginning of each period.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="constantNotionalScheduleReference" type="ScheduleReference">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A pointer style reference to the associated constant notional
              schedule defined elsewhere in the document which contains the
              currency amounts which will be converted into the varying
              notional currency amounts using the spot currency exchange
              rate.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="initialValue" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The initial currency amount for the varying notional.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="varyingNotionalCurrency" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The currency of the varying notional amount, i.e. the
              notional amount being determined periodically based on
              observation of a spot currency exchange rate.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="varyingNotionalFixingDates" type="RelativeDateOffset">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The dates on which spot currency exchange rates are observed
              for purposes of determining the varying notional currency
              amount that will apply to a calculation period.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="fxSpotRateSource" type="FxSpotRateSource">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The information source and time at which the spot currency
              exchange rate will be observed.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="varyingNotionalInterimExchangePaymentDates" type="RelativeDateOffset">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The dates on which interim exchanges of notional are paid.
              Interim exchanges will arise as a result of changes in the
              spot currency exchange amount or changes in the constant
              notional schedule (e.g. amortization).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## InflationRateCalculation

### Description:

A type defining the components specifiying an Inflation Rate Calculation

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type InflationRateCalculationBase)

- A type defining the floating rate and definitions relating to the calculation of floating rate amounts. This type mimics the "FloatingRateCalculation" type but excludes the option of defining modular calculated rates and fallback rates. It provides an extension point for the InflationRateCalculation which does not require those features.

inflationLag (exactly one occurrence; of the type Offset)

- an offsetting period from the payment date which determines the reference period for which the inflation index is onserved.

indexSource (exactly one occurrence; of the type RateSourcePage)

- The reference source such as Reuters or Bloomberg.

mainPublication (zero or one occurrence; of the type MainPublication)

- The current main publication source such as relevant web site or a government body.

interpolationMethod (exactly one occurrence; of the type InterpolationMethod)

- The method used when calculating the Inflation Index Level from multiple points - the most common is Linear.

initialIndexLevel (zero or one occurrence; of the type xsd:decimal)

- initial known index level for the first calculation period.

### Used by:

### Extension of:

- InflationRateCalculationBase

### Schema Fragment:

    <xsd:complexType name="InflationRateCalculation">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the components specifiying an Inflation Rate
          Calculation
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="InflationRateCalculationBase">
          <xsd:sequence>
            <xsd:element name="inflationLag" type="Offset">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  an offsetting period from the payment date which
                  determines the reference period for which the inflation
                  index is onserved.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="indexSource" type="RateSourcePage">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The reference source such as Reuters or Bloomberg.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="mainPublication" type="MainPublication" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The current main publication source such as relevant web
                  site or a government body.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="interpolationMethod" type="InterpolationMethod">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The method used when calculating the Inflation Index
                  Level from multiple points - the most common is Linear.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="initialIndexLevel" type="xsd:decimal" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  initial known index level for the first calculation
                  period.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## InterestRateStream

### Description:

A type defining the components specifiying an interest rate stream, including both a parametric and cashflow representation for the stream of payments.

### Figure:

### Contents:

payerPartyReference (exactly one occurrence; of the type PartyOrAccountReference)

- A reference to the party responsible for making the payments defined by this structure.

receiverPartyReference (exactly one occurrence; of the type PartyOrAccountReference)

- A reference to the party that receives the payments corresponding to this structure.

calculationPeriodDates (exactly one occurrence; of the type CalculationPeriodDates)

- The calculation periods dates schedule.

paymentDates (exactly one occurrence; of the type PaymentDates)

- The payment dates schedule.

resetDates (zero or one occurrence; of the type ResetDates)

- The reset dates schedule. The reset dates schedule only applies for a floating rate stream.

calculationPeriodAmount (exactly one occurrence; of the type CalculationPeriodAmount)

- The calculation period amount parameters.

stubCalculationPeriodAmount (zero or one occurrence; of the type StubCalculationPeriodAmount)

- The stub calculation period amount parameters. This element must only be included if there is an initial or final stub calculation period. Even then, it must only be included if either the stub references a different floating rate tenor to the regular calculation periods, or if the stub is calculated as a linear interpolation of two different floating rate tenors, or if a specific stub rate or stub amount has been negotiated.

principalExchanges (zero or one occurrence; of the type PrincipalExchanges)

- The true/false flags indicating whether initial, intermediate or final exchanges of principal should occur.

cashflows (zero or one occurrence; of the type Cashflows)

- The cashflows representation of the swap stream.

settlementProvision (zero or one occurrence; of the type SettlementProvision)

- A provision that allows the specification of settlement terms, occuring when the settlement currency is different to the notional currency of the trade.

formula (zero or one occurrence; of the type Formula)

- An interest rate derivative formula.

Attribute: id (xsd:ID)

### Used by:

- CapFloor/capFloorStream
- Swap/swapStream

### Schema Fragment:

    <xsd:complexType name="InterestRateStream">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the components specifiying an interest rate
          stream, including both a parametric and cashflow representation
          for the stream of payments.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:group ref="PayerReceiver.model"/>
        <xsd:element name="calculationPeriodDates" type="CalculationPeriodDates">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The calculation periods dates schedule.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="paymentDates" type="PaymentDates">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The payment dates schedule.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="resetDates" type="ResetDates" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The reset dates schedule. The reset dates schedule only
              applies for a floating rate stream.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="calculationPeriodAmount" type="CalculationPeriodAmount">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The calculation period amount parameters.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="stubCalculationPeriodAmount" type="StubCalculationPeriodAmount" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The stub calculation period amount parameters. This element
              must only be included if there is an initial or final stub
              calculation period. Even then, it must only be included if
              either the stub references a different floating rate tenor to
              the regular calculation periods, or if the stub is calculated
              as a linear interpolation of two different floating rate
              tenors, or if a specific stub rate or stub amount has been
              negotiated.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="principalExchanges" type="PrincipalExchanges" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The true/false flags indicating whether initial, intermediate
              or final exchanges of principal should occur.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashflows" type="Cashflows" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The cashflows representation of the swap stream.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="settlementProvision" type="SettlementProvision" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A provision that allows the specification of settlement
              terms, occuring when the settlement currency is different to
              the notional currency of the trade.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="formula" type="Formula" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An interest rate derivative formula.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## MandatoryEarlyTermination

### Description:

A type to define an early termination provision for which exercise is mandatory.

### Figure:

### Contents:

mandatoryEarlyTerminationDate (exactly one occurrence; of the type AdjustableDate)

- The early termination date associated with a mandatory early termination of a swap.

calculationAgent (exactly one occurrence; of the type CalculationAgent)

- The ISDA Calculation Agent responsible for performing duties associated with an optional early termination.

cashSettlement (exactly one occurrence; of the type CashSettlement)

- If specified, this means that cash settlement is applicable to the transaction and defines the parameters associated with the cash settlement prodcedure. If not specified, then physical settlement is applicable.

mandatoryEarlyTerminationAdjustedDates (zero or one occurrence; of the type MandatoryEarlyTerminationAdjustedDates)

- The adjusted dates associated with a mandatory early termination provision. These dates have been adjusted for any applicable business day convention.

Attribute: id (xsd:ID)

### Used by:

### Schema Fragment:

    <xsd:complexType name="MandatoryEarlyTermination">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to define an early termination provision for which
          exercise is mandatory.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="mandatoryEarlyTerminationDate" type="AdjustableDate">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The early termination date associated with a mandatory early
              termination of a swap.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="calculationAgent" type="CalculationAgent">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The ISDA Calculation Agent responsible for performing duties
              associated with an optional early termination.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashSettlement" type="CashSettlement">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              If specified, this means that cash settlement is applicable
              to the transaction and defines the parameters associated with
              the cash settlement prodcedure. If not specified, then
              physical settlement is applicable.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="mandatoryEarlyTerminationAdjustedDates" type="MandatoryEarlyTerminationAdjustedDates" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted dates associated with a mandatory early
              termination provision. These dates have been adjusted for any
              applicable business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## MandatoryEarlyTerminationAdjustedDates

### Description:

A type defining the adjusted dates associated with a mandatory early termination provision.

### Figure:

### Contents:

adjustedEarlyTerminationDate (exactly one occurrence; of the type xsd:date)

- The early termination date that is applicable if an early termination provision is exercised. This date should already be adjusted for any applicable business day convention.

adjustedCashSettlementValuationDate (exactly one occurrence; of the type xsd:date)

- The date by which the cash settlement amount must be agreed. This date should already be adjusted for any applicable business day convention.

adjustedCashSettlementPaymentDate (exactly one occurrence; of the type xsd:date)

- The date on which the cash settlement amount is paid. This date should already be adjusted for any applicable business dat convention.

### Used by:

- MandatoryEarlyTermination/mandatoryEarlyTerminationAdjustedDates

### Schema Fragment:

    <xsd:complexType name="MandatoryEarlyTerminationAdjustedDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the adjusted dates associated with a mandatory
          early termination provision.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The early termination date that is applicable if an early
              termination provision is exercised. This date should already
              be adjusted for any applicable business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedCashSettlementValuationDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date by which the cash settlement amount must be agreed.
              This date should already be adjusted for any applicable
              business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="adjustedCashSettlementPaymentDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date on which the cash settlement amount is paid. This
              date should already be adjusted for any applicable business
              dat convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## MidMarketValuation

### Description:

This type is a wrapper holding several different mid-market valuation methods described in the 2021 ISDA Definitions.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

indicativeQuotations (exactly one occurrence; of the type MidMarketValuationMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.1.

Or

indicativeQuotationsAlternate (exactly one occurrence; of the type MidMarketValuationMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.2.

Or

calculationAgentDetermination (exactly one occurrence; of the type MidMarketValuationMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.3.

### Used by:

### Schema Fragment:

    <xsd:complexType name="MidMarketValuation">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This type is a wrapper holding several different mid-market
          valuation methods described in the 2021 ISDA Definitions.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:element name="indicativeQuotations" type="MidMarketValuationMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2021 ISDA Definitions, Section
              18.2.1.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="indicativeQuotationsAlternate" type="MidMarketValuationMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2021 ISDA Definitions, Section
              18.2.2.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="calculationAgentDetermination" type="MidMarketValuationMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2021 ISDA Definitions, Section
              18.2.3.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:complexType>

## MidMarketValuationMethod

### Description:

This type is a generic structure that can represent the fields of several mid-market valuation methods described in the 2021 ISDA Definitions.

### Figure:

### Contents:

cashSettlementCurrency (exactly one occurrence; of the type Currency)

- The currency, or currencies, in which the cash settlement amount(s) will be calculated and settled. While the order in which the currencies are stated is unimportant, the cash settlement currency or currencies must correspond to one or both of the constituent currencies of the swap transaction.

applicableCsa (zero or one occurrence; of the type CsaTypeEnum)

- This may be used to whaty type of CSA (credit support annex/agreement) is to be used for cash settlement purposes.

cashSettlementReferenceBanks (zero or one occurrence; of the type CashSettlementReferenceBanks)

- A container for a set of reference institutions. These reference institutions may be called upon to provide rate quotations as part of the method to determine the applicable cash settlement amount. If institutions are not specified, it is assumed that reference institutions will be agreed between the parties on the exercise date, or in the case of swap transaction to which mandatory early termination is applicable, the cash settlement valuation date.

cashCollateralCurrency (zero or one occurrence; of the type Currency)

- This may be used to indicate the currency of cash collateral for cash settlement purposes.

cashCollateralInterestRate (zero or one occurrence; of the type BenchmarkRate)

- This may be used to indicate the interest rate to be used for cash collateral for cash settlement purposes.

agreedDiscountRate (zero or one occurrence; of the type BenchmarkRate)

- This may be used to indicate the discount rate to be used for cash collateral for cash settlement purposes.

### Used by:

- MidMarketValuation/calculationAgentDetermination
- MidMarketValuation/indicativeQuotations
- MidMarketValuation/indicativeQuotationsAlternate

### Schema Fragment:

    <xsd:complexType name="MidMarketValuationMethod">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This type is a generic structure that can represent the fields of
          several mid-market valuation methods described in the 2021 ISDA
          Definitions.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="cashSettlementCurrency" type="Currency" maxOccurs="2">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The currency, or currencies, in which the cash settlement
              amount(s) will be calculated and settled. While the order in
              which the currencies are stated is unimportant, the cash
              settlement currency or currencies must correspond to one or
              both of the constituent currencies of the swap transaction.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="applicableCsa" type="CsaTypeEnum" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              This may be used to whaty type of CSA (credit support
              annex/agreement) is to be used for cash settlement purposes.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A container for a set of reference institutions. These
              reference institutions may be called upon to provide rate
              quotations as part of the method to determine the applicable
              cash settlement amount. If institutions are not specified, it
              is assumed that reference institutions will be agreed between
              the parties on the exercise date, or in the case of swap
              transaction to which mandatory early termination is
              applicable, the cash settlement valuation date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashCollateralCurrency" type="Currency" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              This may be used to indicate the currency of cash collateral
              for cash settlement purposes.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashCollateralInterestRate" type="BenchmarkRate" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              This may be used to indicate the interest rate to be used for
              cash collateral for cash settlement purposes.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="agreedDiscountRate" type="BenchmarkRate" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              This may be used to indicate the discount rate to be used for
              cash collateral for cash settlement purposes.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## NonDeliverableSettlement

### Description:

A type defining the parameters used when the reference currency of the swapStream is non-deliverable.

### Figure:

### Contents:

referenceCurrency (exactly one occurrence; of the type Currency)

- The currency in which the swap stream is denominated in.

fxFixingDate (exactly one occurrence; of the type FxFixingDate)

- The fixing date(s) on which the currency rate will be determined for the purpose of specifying the amount in deliverable currency.

settlementRateOption (exactly one occurrence; of the type SettlementRateOption)

- The rate source for the conversion to the settlement currency. This source is specified through a scheme that reflects the terms of the Annex A to the 1998 FX and Currency Option Definitions.

### Used by:

- SettlementProvision/nonDeliverableSettlement

### Schema Fragment:

    <xsd:complexType name="NonDeliverableSettlement">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the parameters used when the reference currency
          of the swapStream is non-deliverable.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="referenceCurrency" type="Currency">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The currency in which the swap stream is denominated in.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="fxFixingDate" type="FxFixingDate">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The fixing date(s) on which the currency rate will be
              determined for the purpose of specifying the amount in
              deliverable currency.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="settlementRateOption" type="SettlementRateOption">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The rate source for the conversion to the settlement
              currency. This source is specified through a scheme that
              reflects the terms of the Annex A to the 1998 FX and Currency
              Option Definitions.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## Notional

### Description:

An type defining the notional amount or notional amount schedule associated with a swap stream. The notional schedule will be captured explicitly, specifying the dates that the notional changes and the outstanding notional amount that applies from that date. A parametric representation of the rules defining the notional step schedule can optionally be included.

### Figure:

### Contents:

notionalStepSchedule (exactly one occurrence; of the type AmountSchedule)

- The notional amount or notional amount schedule expressed as explicit outstanding notional amounts and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments.

notionalStepParameters (zero or one occurrence; of the type NotionalStepRule)

- A parametric representation of the notional step schedule, i.e. parameters used to generate the notional schedule.

Attribute: id (xsd:ID)

### Used by:

- Calculation/notionalSchedule

### Schema Fragment:

    <xsd:complexType name="Notional">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          An type defining the notional amount or notional amount schedule
          associated with a swap stream. The notional schedule will be
          captured explicitly, specifying the dates that the notional
          changes and the outstanding notional amount that applies from
          that date. A parametric representation of the rules defining the
          notional step schedule can optionally be included.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="notionalStepSchedule" type="AmountSchedule">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The notional amount or notional amount schedule expressed as
              explicit outstanding notional amounts and dates. In the case
              of a schedule, the step dates may be subject to adjustment in
              accordance with any adjustments specified in
              calculationPeriodDatesAdjustments.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="notionalStepParameters" type="NotionalStepRule" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A parametric representation of the notional step schedule,
              i.e. parameters used to generate the notional schedule.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## NotionalStepRule

### Description:

A type defining a parametric representation of the notional step schedule, i.e. parameters used to generate the notional balance on each step date. The step change in notional can be expressed in terms of either a fixed amount or as a percentage of either the initial notional or previous notional amount. This parametric representation is intended to cover the more common amortizing/accreting.

### Figure:

### Contents:

calculationPeriodDatesReference (exactly one occurrence; of the type CalculationPeriodDatesReference)

- A pointer style reference to the associated calculation period dates component defined elsewhere in the document.

stepFrequency (exactly one occurrence; of the type Interval)

- The frequency at which the step changes occur. This frequency must be a multiple of the stream calculation period frequency.

firstNotionalStepDate (exactly one occurrence; of the type xsd:date)

- Effective date of the first change in notional (i.e. a calculation period start date).

lastNotionalStepDate (exactly one occurrence; of the type xsd:date)

- Effective date of the last change in notional (i.e. a calculation period start date).

There can be one occurance of the following structure; Choice of either

notionalStepAmount (exactly one occurrence; of the type xsd:decimal)

- The explicit amount that the notional changes on each step date. This can be a positive or negative amount.

### Used by:

- Notional/notionalStepParameters

### Schema Fragment:

    <xsd:complexType name="NotionalStepRule">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining a parametric representation of the notional step
          schedule, i.e. parameters used to generate the notional balance
          on each step date. The step change in notional can be expressed
          in terms of either a fixed amount or as a percentage of either
          the initial notional or previous notional amount. This parametric
          representation is intended to cover the more common
          amortizing/accreting.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="calculationPeriodDatesReference" type="CalculationPeriodDatesReference">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A pointer style reference to the associated calculation
              period dates component defined elsewhere in the document.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="stepFrequency" type="Interval">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The frequency at which the step changes occur. This frequency
              must be a multiple of the stream calculation period
              frequency.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="firstNotionalStepDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Effective date of the first change in notional (i.e. a
              calculation period start date).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="lastNotionalStepDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Effective date of the last change in notional (i.e. a
              calculation period start date).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:choice>
          <xsd:element name="notionalStepAmount" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The explicit amount that the notional changes on each step
                date. This can be a positive or negative amount.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence>
            <xsd:element name="notionalStepRate" type="xsd:decimal">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The percentage amount by which the notional changes on
                  each step date. The percentage is either a percentage
                  applied to the initial notional amount or the previous
                  outstanding notional, depending on the value of the
                  element stepRelativeTo. The percentage can be either
                  positive or negative. A percentage of 5% would be
                  represented as 0.05.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="stepRelativeTo" type="StepRelativeToEnum">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Specifies whether the notionalStepRate should be applied
                  to the initial notional or the previous notional in order
                  to calculate the notional step change amount.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:choice>
      </xsd:sequence>
    </xsd:complexType>

## OptionalEarlyTermination

### Description:

A type defining an early termination provision where either or both parties have the right to exercise.

### Figure:

### Contents:

singlePartyOption (zero or one occurrence; of the type SinglePartyOption)

- If optional early termination is not available to both parties then this component specifies the buyer and seller of the option.

exercise (exactly one occurrence; of the type Exercise)

- An placeholder for the actual option exercise definitions.

exerciseNotice (zero or more occurrences; of the type ExerciseNotice)

- Definition of the party to whom notice of exercise should be given.

followUpConfirmation (zero or one occurrence; of the type xsd:boolean)

- A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.

calculationAgent (exactly one occurrence; of the type CalculationAgent)

- The ISDA Calculation Agent responsible for performing duties associated with an optional early termination.

cashSettlement (exactly one occurrence; of the type CashSettlement)

- If specified, this means that cash settlement is applicable to the transaction and defines the parameters associated with the cash settlement prodcedure. If not specified, then physical settlement is applicable.

optionalEarlyTerminationAdjustedDates (zero or one occurrence; of the type OptionalEarlyTerminationAdjustedDates)

- An early termination provision to terminate the trade at fair value where one or both parties have the right to decide on termination.

### Used by:

### Schema Fragment:

    <xsd:complexType name="OptionalEarlyTermination">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining an early termination provision where either or
          both parties have the right to exercise.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="singlePartyOption" type="SinglePartyOption" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              If optional early termination is not available to both
              parties then this component specifies the buyer and seller of
              the option.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element ref="exercise"/>
        <xsd:element name="exerciseNotice" type="ExerciseNotice" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Definition of the party to whom notice of exercise should be
              given.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="followUpConfirmation" type="xsd:boolean" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A flag to indicate whether follow-up confirmation of exercise
              (written or electronic) is required following telephonic
              notice by the buyer to the seller or seller's agent.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="calculationAgent" type="CalculationAgent">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The ISDA Calculation Agent responsible for performing duties
              associated with an optional early termination.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashSettlement" type="CashSettlement">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              If specified, this means that cash settlement is applicable
              to the transaction and defines the parameters associated with
              the cash settlement prodcedure. If not specified, then
              physical settlement is applicable.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="optionalEarlyTerminationAdjustedDates" type="OptionalEarlyTerminationAdjustedDates" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An early termination provision to terminate the trade at fair
              value where one or both parties have the right to decide on
              termination.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## OptionalEarlyTerminationAdjustedDates

### Description:

A type defining the adjusted dates associated with an optional early termination provision.

### Figure:

### Contents:

earlyTerminationEvent (one or more occurrences; of the type EarlyTerminationEvent)

- The adjusted dates associated with an individual earley termination date.

### Used by:

- OptionalEarlyTermination/optionalEarlyTerminationAdjustedDates

### Schema Fragment:

    <xsd:complexType name="OptionalEarlyTerminationAdjustedDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the adjusted dates associated with an optional
          early termination provision.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="earlyTerminationEvent" type="EarlyTerminationEvent" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted dates associated with an individual earley
              termination date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## PartySelector

### Description:

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

partyReference (exactly one occurrence; of the type PartyReference)

- The party specific party that is referenced.

Or

partyDetermination (exactly one occurrence; of the type PartyDeterminationEnum)

### Used by:

- ReplacementValueMethodBase/protectedParty

### Schema Fragment:

    <xsd:complexType name="PartySelector">
      <xsd:choice>
        <xsd:element name="partyReference" type="PartyReference">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The party specific party that is referenced.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="partyDetermination" type="PartyDeterminationEnum"/>
      </xsd:choice>
    </xsd:complexType>

## PaymentCalculationPeriod

### Description:

A type defining the adjusted payment date and associated calculation period parameters required to calculate the actual or projected payment amount. This type forms part of the cashflow representation of a swap stream.

### Figure:

### Contents:

unadjustedPaymentDate (zero or one occurrence; of the type xsd:date)

adjustedPaymentDate (zero or one occurrence; of the type xsd:date)

- The adjusted payment date. This date should already be adjusted for any applicable business day convention. This component is not intended for use in trade confirmation but may be specified to allow the fee structure to also serve as a cashflow type component (all dates the Cashflows type are adjusted payment dates).

There can be one occurance of the following structure; Choice of either

calculationPeriod (one or more occurrences; of the type CalculationPeriod)

- The parameters used in the calculation of a fixed or floating rate calculation period amount. A list of calculation period elements may be ordered in the document by ascending start date. An FpML document which contains an unordered list of calcularion periods is still regarded as a conformant document.

Or

fixedPaymentAmount (exactly one occurrence; of the type xsd:decimal)

- A known fixed payment amount.

discountFactor (zero or one occurrence; of the type xsd:decimal)

- A decimal value representing the discount factor used to calculate the present value of cash flow.

forecastPaymentAmount (zero or one occurrence; of the type Money)

- A monetary amount representing the forecast of the future value of the payment.

presentValueAmount (zero or one occurrence; of the type Money)

- A monetary amount representing the present value of the forecast payment.

Attribute: id (xsd:ID)

Attribute: href (SimplePricingStructureReference)

### Used by:

- Cashflows/paymentCalculationPeriod

### Schema Fragment:

    <xsd:complexType name="PaymentCalculationPeriod">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the adjusted payment date and associated
          calculation period parameters required to calculate the actual or
          projected payment amount. This type forms part of the cashflow
          representation of a swap stream.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="unadjustedPaymentDate" type="xsd:date" minOccurs="0"/>
        <xsd:element name="adjustedPaymentDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted payment date. This date should already be
              adjusted for any applicable business day convention. This
              component is not intended for use in trade confirmation but
              may be specified to allow the fee structure to also serve as
              a cashflow type component (all dates the Cashflows type are
              adjusted payment dates).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:choice>
          <xsd:element name="calculationPeriod" type="CalculationPeriod" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The parameters used in the calculation of a fixed or
                floating rate calculation period amount. A list of
                calculation period elements may be ordered in the document
                by ascending start date. An FpML document which contains an
                unordered list of calcularion periods is still regarded as
                a conformant document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fixedPaymentAmount" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A known fixed payment amount.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:element name="discountFactor" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A decimal value representing the discount factor used to
              calculate the present value of cash flow.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="forecastPaymentAmount" type="Money" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A monetary amount representing the forecast of the future
              value of the payment.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="presentValueAmount" type="Money" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A monetary amount representing the present value of the
              forecast payment.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
      <xsd:attribute name="href" type="SimplePricingStructureReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            Attribute that can be used to reference the yield curve used to
            estimate the discount factor.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
    </xsd:complexType>

## PaymentDates

### Description:

A type defining parameters used to generate the payment dates schedule, including the specification of early or delayed payments. Payment dates are determined relative to the calculation period dates or the reset dates.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

calculationPeriodDatesReference (exactly one occurrence; of the type CalculationPeriodDatesReference)

- A pointer style reference to the associated calculation period dates component defined elsewhere in the document.

Or

resetDatesReference (exactly one occurrence; of the type ResetDatesReference)

- A pointer style reference to the associated reset dates component defined elsewhere in the document.

paymentFrequency (exactly one occurrence; of the type Interval)

- The frequency at which regular payment dates occur. If the payment frequency is equal to the frequency defined in the calculation period dates component then one calculation period contributes to each payment amount. If the payment frequency is less frequent than the frequency defined in the calculation period dates component then more than one calculation period will contribute to e payment amount. A payment frequency more frequent than the calculation period frequency or one that is not a multiple of the calculation period frequency is invalid.

firstPaymentDate (zero or one occurrence; of the type xsd:date)

- The first unadjusted payment date. This day may be subject to adjustment in accordance with any business day convention specified in paymentDatesAdjustments. This element must only be included if there is an initial stub. This date will normally correspond to an unadjusted calculation period start or end date. This is true even if early or delayed payment is specified to be applicable since the actual first payment date will be the specified number of days before or after the applicable adjusted calculation period start or end date with the resulting payment date then being adjusted in accordance with any business day convention specified in paymentDatesAdjustments.

lastRegularPaymentDate (zero or one occurrence; of the type xsd:date)

- The last regular unadjusted payment date. This day may be subject to adjustment in accordance with any business day convention specified in paymentDatesAdjustments. This element must only be included if there is a final stub. All calculation periods after this date contribute to the final payment. The final payment is made relative to the final set of calculation periods or the final reset date as the case may be. This date will normally correspond to an unadjusted calculation period start or end date. This is true even if early or delayed payment is specified to be applicable since the actual last regular payment date will be the specified number of days before or after the applicable adjusted calculation period start or end date with the resulting payment date then being adjusted in accordance with any business day convention specified in paymentDatesAdjustments.

payRelativeTo (exactly one occurrence; of the type PayRelativeToEnum)

- Specifies whether the payments occur relative to each adjusted calculation period start date, adjusted calculation period end date or each reset date. The reset date is applicable in the case of certain euro (former French Franc) floating rate indices. Calculation period start date means relative to the start of the first calculation period contributing to a given payment. Similarly, calculation period end date means the end of the last calculation period contributing to a given payment.

paymentDaysOffset (zero or one occurrence; of the type Offset)

- If early payment or delayed payment is required, specifies the number of days offset that the payment occurs relative to what would otherwise be the unadjusted payment date. The offset can be specified in terms of either calendar or business days. Even in the case of a calendar days offset, the resulting payment date, adjusted for the specified calendar days offset, will still be adjusted in accordance with the specified payment dates adjustments. This element should only be included if early or delayed payment is applicable, i.e. if the periodMultiplier element value is not equal to zero. An early payment would be indicated by a negative periodMultiplier element value and a delayed payment (or payment lag) would be indicated by a positive periodMultiplier element value.

paymentDatesAdjustments (exactly one occurrence; of the type BusinessDayAdjustments)

- The business day convention to apply to each payment date if it would otherwise fall on a day that is not a business day in the specified financial business centers.

Attribute: id (xsd:ID)

### Used by:

- InterestRateStream/paymentDates

### Schema Fragment:

    <xsd:complexType name="PaymentDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining parameters used to generate the payment dates
          schedule, including the specification of early or delayed
          payments. Payment dates are determined relative to the
          calculation period dates or the reset dates.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:choice>
          <xsd:element name="calculationPeriodDatesReference" type="CalculationPeriodDatesReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A pointer style reference to the associated calculation
                period dates component defined elsewhere in the document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="resetDatesReference" type="ResetDatesReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A pointer style reference to the associated reset dates
                component defined elsewhere in the document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:element name="paymentFrequency" type="Interval">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The frequency at which regular payment dates occur. If the
              payment frequency is equal to the frequency defined in the
              calculation period dates component then one calculation
              period contributes to each payment amount. If the payment
              frequency is less frequent than the frequency defined in the
              calculation period dates component then more than one
              calculation period will contribute to e payment amount. A
              payment frequency more frequent than the calculation period
              frequency or one that is not a multiple of the calculation
              period frequency is invalid.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="firstPaymentDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The first unadjusted payment date. This day may be subject to
              adjustment in accordance with any business day convention
              specified in paymentDatesAdjustments. This element must only
              be included if there is an initial stub. This date will
              normally correspond to an unadjusted calculation period start
              or end date. This is true even if early or delayed payment is
              specified to be applicable since the actual first payment
              date will be the specified number of days before or after the
              applicable adjusted calculation period start or end date with
              the resulting payment date then being adjusted in accordance
              with any business day convention specified in
              paymentDatesAdjustments.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="lastRegularPaymentDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The last regular unadjusted payment date. This day may be
              subject to adjustment in accordance with any business day
              convention specified in paymentDatesAdjustments. This element
              must only be included if there is a final stub. All
              calculation periods after this date contribute to the final
              payment. The final payment is made relative to the final set
              of calculation periods or the final reset date as the case
              may be. This date will normally correspond to an unadjusted
              calculation period start or end date. This is true even if
              early or delayed payment is specified to be applicable since
              the actual last regular payment date will be the specified
              number of days before or after the applicable adjusted
              calculation period start or end date with the resulting
              payment date then being adjusted in accordance with any
              business day convention specified in paymentDatesAdjustments.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="payRelativeTo" type="PayRelativeToEnum">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Specifies whether the payments occur relative to each
              adjusted calculation period start date, adjusted calculation
              period end date or each reset date. The reset date is
              applicable in the case of certain euro (former French Franc)
              floating rate indices. Calculation period start date means
              relative to the start of the first calculation period
              contributing to a given payment. Similarly, calculation
              period end date means the end of the last calculation period
              contributing to a given payment.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="paymentDaysOffset" type="Offset" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              If early payment or delayed payment is required, specifies
              the number of days offset that the payment occurs relative to
              what would otherwise be the unadjusted payment date. The
              offset can be specified in terms of either calendar or
              business days. Even in the case of a calendar days offset,
              the resulting payment date, adjusted for the specified
              calendar days offset, will still be adjusted in accordance
              with the specified payment dates adjustments. This element
              should only be included if early or delayed payment is
              applicable, i.e. if the periodMultiplier element value is not
              equal to zero. An early payment would be indicated by a
              negative periodMultiplier element value and a delayed payment
              (or payment lag) would be indicated by a positive
              periodMultiplier element value.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="paymentDatesAdjustments" type="BusinessDayAdjustments">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The business day convention to apply to each payment date if
              it would otherwise fall on a day that is not a business day
              in the specified financial business centers.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## PaymentDatesReference

### Description:

Reference to a payment dates structure.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Reference)

- Specifies the anchor as an href attribute. The href attribute value is a pointer style reference to the element or component elsewhere in the document where the anchor is defined.

### Used by:

- DateRelativeToPaymentDates/paymentDatesReference

### Extension of:

- Reference

### Schema Fragment:

    <xsd:complexType name="PaymentDatesReference">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Reference to a payment dates structure.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Reference"/>
      </xsd:complexContent>
    </xsd:complexType>

## PrincipalExchange

### Description:

A type defining a principal exchange amount and adjusted exchange date. The type forms part of the cashflow representation of a swap stream.

### Figure:

### Contents:

unadjustedPrincipalExchangeDate (zero or one occurrence; of the type xsd:date)

adjustedPrincipalExchangeDate (zero or one occurrence; of the type xsd:date)

- The principal exchange date. This date should already be adjusted for any applicable business day convention.

principalExchangeAmount (zero or one occurrence; of the type xsd:decimal)

- The principal exchange amount. This amount should be positive if the stream payer is paying the exchange amount and signed negative if they are receiving it.

discountFactor (zero or one occurrence; of the type xsd:decimal)

- The value representing the discount factor used to calculate the present value of the principal exchange amount.

presentValuePrincipalExchangeAmount (zero or one occurrence; of the type Money)

- The amount representing the present value of the principal exchange.

Attribute: id (xsd:ID)

### Used by:

- Cashflows/principalExchange

### Schema Fragment:

    <xsd:complexType name="PrincipalExchange">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining a principal exchange amount and adjusted exchange
          date. The type forms part of the cashflow representation of a
          swap stream.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="unadjustedPrincipalExchangeDate" type="xsd:date" minOccurs="0"/>
        <xsd:element name="adjustedPrincipalExchangeDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The principal exchange date. This date should already be
              adjusted for any applicable business day convention.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="principalExchangeAmount" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The principal exchange amount. This amount should be positive
              if the stream payer is paying the exchange amount and signed
              negative if they are receiving it.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="discountFactor" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The value representing the discount factor used to calculate
              the present value of the principal exchange amount.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="presentValuePrincipalExchangeAmount" type="Money" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The amount representing the present value of the principal
              exchange.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>

## ReplacementValue

### Description:

This type is a wrapper holding several different replacement value cash settlement methods described in the 2021 ISDA Definitions.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

firmQuotations (exactly one occurrence; of the type ReplacementValueFirmQuotationsMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.4.

Or

calculationAgentDetermination (exactly one occurrence; of the type ReplacementValueCalculationAgentDeterminationMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.5.

### Used by:

### Schema Fragment:

    <xsd:complexType name="ReplacementValue">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This type is a wrapper holding several different replacement
          value cash settlement methods described in the 2021 ISDA
          Definitions.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:element name="firmQuotations" type="ReplacementValueFirmQuotationsMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2021 ISDA Definitions, Section
              18.2.4.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="calculationAgentDetermination" type="ReplacementValueCalculationAgentDeterminationMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2021 ISDA Definitions, Section
              18.2.5.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:complexType>

## ReplacementValueCalculationAgentDeterminationMethod

### Description:

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type ReplacementValueMethodBase)

- This type is a generic base type holding shared data fields several different replacement value cash settlement methods described in the 2021 ISDA Definitions.

### Used by:

- ReplacementValue/calculationAgentDetermination

### Extension of:

- ReplacementValueMethodBase

### Schema Fragment:

    <xsd:complexType name="ReplacementValueCalculationAgentDeterminationMethod">
      <xsd:complexContent>
        <xsd:extension base="ReplacementValueMethodBase"/>
      </xsd:complexContent>
    </xsd:complexType>

## ReplacementValueFirmQuotationsMethod

### Description:

This type is a specific type holding the data fields for the replacement value firm quotations cash settlement method described in the 2021 ISDA Definitions, section 18.2.4. It adds an additional field to the shared replacement value data fields.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type ReplacementValueMethodBase)

- This type is a generic base type holding shared data fields several different replacement value cash settlement methods described in the 2021 ISDA Definitions.

prescribedDocumentationAdjustment (exactly one occurrence; of the type xsd:boolean)

- This may be used to indicate that "prescribed documentation adjustment" is applicable.

### Used by:

- ReplacementValue/firmQuotations

### Extension of:

- ReplacementValueMethodBase

### Schema Fragment:

    <xsd:complexType name="ReplacementValueFirmQuotationsMethod">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This type is a specific type holding the data fields for the
          replacement value firm quotations cash settlement method
          described in the 2021 ISDA Definitions, section 18.2.4. It adds
          an additional field to the shared replacement value data fields.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="ReplacementValueMethodBase">
          <xsd:sequence>
            <xsd:element name="prescribedDocumentationAdjustment" type="xsd:boolean">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  This may be used to indicate that "prescribed
                  documentation adjustment" is applicable.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## ReplacementValueMethodBase

### Description:

This type is a generic base type holding shared data fields several different replacement value cash settlement methods described in the 2021 ISDA Definitions.

### Figure:

### Contents:

cashSettlementCurrency (exactly one occurrence; of the type Currency)

- The currency, or currencies, in which the cash settlement amount(s) will be calculated and settled. While the order in which the currencies are stated is unimportant, the cash settlement currency or currencies must correspond to one or both of the constituent currencies of the swap transaction.

cashSettlementReferenceBanks (zero or one occurrence; of the type CashSettlementReferenceBanks)

- A container for a set of reference institutions. These reference institutions may be called upon to provide rate quotations as part of the method to determine the applicable cash settlement amount. If institutions are not specified, it is assumed that reference institutions will be agreed between the parties on the exercise date, or in the case of swap transaction to which mandatory early termination is applicable, the cash settlement valuation date.

protectedParty (zero or one occurrence; of the type PartySelector)

- This may be used to specify which party is protected (e.g. under Replacement Value cash settlement methods).

cashCollateralCurrency (zero or one occurrence; of the type Currency)

- This may be used to indicate the currency of cash collateral for cash settlement purposes.

### Used by:

### Derived Types:

- ReplacementValueCalculationAgentDeterminationMethod
- ReplacementValueFirmQuotationsMethod

### Schema Fragment:

    <xsd:complexType name="ReplacementValueMethodBase">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This type is a generic base type holding shared data fields
          several different replacement value cash settlement methods
          described in the 2021 ISDA Definitions.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="cashSettlementCurrency" type="Currency">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The currency, or currencies, in which the cash settlement
              amount(s) will be calculated and settled. While the order in
              which the currencies are stated is unimportant, the cash
              settlement currency or currencies must correspond to one or
              both of the constituent currencies of the swap transaction.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A container for a set of reference institutions. These
              reference institutions may be called upon to provide rate
              quotations as part of the method to determine the applicable
              cash settlement amount. If institutions are not specified, it
              is assumed that reference institutions will be agreed between
              the parties on the exercise date, or in the case of swap
              transaction to which mandatory early termination is
              applicable, the cash settlement valuation date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="protectedParty" type="PartySelector" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              This may be used to specify which party is protected (e.g.
              under Replacement Value cash settlement methods).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashCollateralCurrency" type="Currency" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              This may be used to indicate the currency of cash collateral
              for cash settlement purposes.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## ResetDates

### Description:

A type defining the parameters used to generate the reset dates schedule and associated fixing dates. The reset dates are determined relative to the calculation periods schedules dates.

### Figure:

### Contents:

calculationPeriodDatesReference (exactly one occurrence; of the type CalculationPeriodDatesReference)

- A pointer style reference to the associated calculation period dates component defined elsewhere in the document.

resetRelativeTo (zero or one occurrence; of the type ResetRelativeToEnum)

- Specifies whether the reset dates are determined with respect to each adjusted calculation period start date or adjusted calculation period end date. If the reset frequency is specified as daily this element must not be included.

initialFixingDate (zero or one occurrence; of the type RelativeDateOffset)

fixingDates (exactly one occurrence; of the type RelativeDateOffset)

- Specifies the fixing date relative to the reset date in terms of a business days offset and an associated set of financial business centers. Normally these offset calculation rules will be those specified in the ISDA definition for the relevant floating rate index (ISDA's Floating Rate Option). However, non-standard offset calculation rules may apply for a trade if mutually agreed by the principal parties to the transaction. The href attribute on the dateRelativeTo element should reference the id attribute on the resetDates element.

rateCutOffDaysOffset (zero or one occurrence; of the type Offset)

- Specifies the number of business days before the period end date when the rate cut-off date is assumed to apply. The financial business centers associated with determining the rate cut-off date are those specified in the reset dates adjustments. The rate cut-off number of days must be a negative integer (a value of zero would imply no rate cut off applies in which case the rateCutOffDaysOffset element should not be included). The relevant rate for each reset date in the period from, and including, a rate cut-off date to, but excluding, the next applicable period end date (or, in the case of the last calculation period, the termination date) will (solely for purposes of calculating the floating amount payable on the next applicable payment date) be deemed to be the relevant rate in effect on that rate cut-off date. For example, if rate cut-off days for a daily averaging deal is -2 business days, then the refix rate applied on (period end date - 2 days) will also be applied as the reset on (period end date - 1 day), i.e. the actual number of reset dates remains the same but from the rate cut-off date until the period end date, the same refix rate is applied. Note that in the case of several calculation periods contributing to a single payment, the rate cut-off is assumed only to apply to the final calculation period contributing to that payment. The day type associated with the offset must imply a business days offset.

resetFrequency (exactly one occurrence; of the type ResetFrequency)

- The frequency at which reset dates occur. In the case of a weekly reset frequency, also specifies the day of the week that the reset occurs. If the reset frequency is greater than the calculation period frequency then this implies that more than one reset date is established for each calculation period and some form of rate averaging is applicable.

resetDatesAdjustments (exactly one occurrence; of the type BusinessDayAdjustments)

- The business day convention to apply to each reset date if it would otherwise fall on a day that is not a business day in the specified financial business centers.

Attribute: id (xsd:ID) - required

### Used by:

- InterestRateStream/resetDates

### Schema Fragment:

    <xsd:complexType name="ResetDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the parameters used to generate the reset dates
          schedule and associated fixing dates. The reset dates are
          determined relative to the calculation periods schedules dates.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="calculationPeriodDatesReference" type="CalculationPeriodDatesReference">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A pointer style reference to the associated calculation
              period dates component defined elsewhere in the document.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="resetRelativeTo" type="ResetRelativeToEnum" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Specifies whether the reset dates are determined with respect
              to each adjusted calculation period start date or adjusted
              calculation period end date. If the reset frequency is
              specified as daily this element must not be included.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="initialFixingDate" type="RelativeDateOffset" minOccurs="0"/>
        <xsd:element name="fixingDates" type="RelativeDateOffset">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Specifies the fixing date relative to the reset date in terms
              of a business days offset and an associated set of financial
              business centers. Normally these offset calculation rules
              will be those specified in the ISDA definition for the
              relevant floating rate index (ISDA's Floating Rate Option).
              However, non-standard offset calculation rules may apply for
              a trade if mutually agreed by the principal parties to the
              transaction. The href attribute on the dateRelativeTo element
              should reference the id attribute on the resetDates element.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="rateCutOffDaysOffset" type="Offset" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Specifies the number of business days before the period end
              date when the rate cut-off date is assumed to apply. The
              financial business centers associated with determining the
              rate cut-off date are those specified in the reset dates
              adjustments. The rate cut-off number of days must be a
              negative integer (a value of zero would imply no rate cut off
              applies in which case the rateCutOffDaysOffset element should
              not be included). The relevant rate for each reset date in
              the period from, and including, a rate cut-off date to, but
              excluding, the next applicable period end date (or, in the
              case of the last calculation period, the termination date)
              will (solely for purposes of calculating the floating amount
              payable on the next applicable payment date) be deemed to be
              the relevant rate in effect on that rate cut-off date. For
              example, if rate cut-off days for a daily averaging deal is
              -2 business days, then the refix rate applied on (period end
              date - 2 days) will also be applied as the reset on (period
              end date - 1 day), i.e. the actual number of reset dates
              remains the same but from the rate cut-off date until the
              period end date, the same refix rate is applied. Note that in
              the case of several calculation periods contributing to a
              single payment, the rate cut-off is assumed only to apply to
              the final calculation period contributing to that payment.
              The day type associated with the offset must imply a business
              days offset.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="resetFrequency" type="ResetFrequency">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The frequency at which reset dates occur. In the case of a
              weekly reset frequency, also specifies the day of the week
              that the reset occurs. If the reset frequency is greater than
              the calculation period frequency then this implies that more
              than one reset date is established for each calculation
              period and some form of rate averaging is applicable.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="resetDatesAdjustments" type="BusinessDayAdjustments">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The business day convention to apply to each reset date if it
              would otherwise fall on a day that is not a business day in
              the specified financial business centers.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID" use="required"/>
    </xsd:complexType>

## ResetDatesReference

### Description:

Reference to a reset dates component.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Reference)

- Specifies the anchor as an href attribute. The href attribute value is a pointer style reference to the element or component elsewhere in the document where the anchor is defined.

### Used by:

- PaymentDates/resetDatesReference

### Extension of:

- Reference

### Schema Fragment:

    <xsd:complexType name="ResetDatesReference">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Reference to a reset dates component.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Reference"/>
      </xsd:complexContent>
    </xsd:complexType>

## SettlementProvision

### Description:

A type defining the specification of settlement terms, occuring when the settlement currency is different to the notional currency of the trade.

### Figure:

### Contents:

settlementCurrency (exactly one occurrence; of the type Currency)

- The currency that stream settles in (to support swaps that settle in a currency different from the notional currency).

nonDeliverableSettlement (zero or one occurrence; of the type NonDeliverableSettlement)

- The specification of the non-deliverable settlement provision.

### Used by:

- InterestRateStream/settlementProvision

### Schema Fragment:

    <xsd:complexType name="SettlementProvision">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the specification of settlement terms, occuring
          when the settlement currency is different to the notional
          currency of the trade.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="settlementCurrency" type="Currency">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The currency that stream settles in (to support swaps that
              settle in a currency different from the notional currency).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="nonDeliverableSettlement" type="NonDeliverableSettlement" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The specification of the non-deliverable settlement
              provision.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## SettlementRateOption

### Description:

A type defining the settlement rate options through a scheme reflecting the terms of the Annex A to the 1998 FX and Currency Option Definitions.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type xsd:normalizedString)

Attribute: settlementRateOptionScheme (xsd:anyURI)

### Used by:

- NonDeliverableSettlement/settlementRateOption

### Schema Fragment:

    <xsd:complexType name="SettlementRateOption">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the settlement rate options through a scheme
          reflecting the terms of the Annex A to the 1998 FX and Currency
          Option Definitions.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:simpleContent>
        <xsd:extension base="xsd:normalizedString">
          <xsd:attribute name="settlementRateOptionScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/settlement-rate-option-2-0"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>

## SinglePartyOption

### Description:

A type describing the buyer and seller of an option.

### Figure:

### Contents:

buyerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that buys this instrument, ie. pays for this instrument and receives the rights defined by it. See 2000 ISDA definitions Article 11.1 (b). In the case of FRAs this the fixed rate payer.

sellerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that sells ("writes") this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. See 2000 ISDA definitions Article 11.1 (a). In the case of FRAs this is the floating rate payer.

### Used by:

- OptionalEarlyTermination/singlePartyOption

### Schema Fragment:

    <xsd:complexType name="SinglePartyOption">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type describing the buyer and seller of an option.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:group ref="BuyerSeller.model"/>
      </xsd:sequence>
    </xsd:complexType>

## StubCalculationPeriodAmount

### Description:

A type defining how the initial or final stub calculation period amounts is calculated. For example, the rate to be applied to the initial or final stub calculation period may be the linear interpolation of two different tenors for the floating rate index specified in the calculation period amount component, e.g. A two month stub period may used the linear interpolation of a one month and three month floating rate. The different rate tenors would be specified in this component. Note that a maximum of two rate tenors can be specified. If a stub period uses a single index tenor and this is the same as that specified in the calculation period amount component then the initial stub or final stub component, as the case may be, must not be included.

### Figure:

### Contents:

calculationPeriodDatesReference (exactly one occurrence; of the type CalculationPeriodDatesReference)

- A pointer style reference to the associated calculation period dates component defined elsewhere in the document.

initialStub (zero or one occurrence; of the type Stub)

- Specifies how the initial stub amount is calculated. A single floating rate tenor different to that used for the regular part of the calculation periods schedule may be specified, or two floating tenors may be specified. If two floating rate tenors are specified then Linear Interpolation (in accordance with the 2000 ISDA Definitions, Section 8.3. Interpolation) is assumed to apply. Alternatively, an actual known stub rate or stub amount may be specified.

finalStub (zero or one occurrence; of the type Stub)

- Specifies how the final stub amount is calculated. A single floating rate tenor different to that used for the regular part of the calculation periods schedule may be specified, or two floating tenors may be specified. If two floating rate tenors are specified then Linear Interpolation (in accordance with the 2000 ISDA Definitions, Section 8.3. Interpolation) is assumed to apply. Alternatively, an actual known stub rate or stub amount may be specified.

### Used by:

- InterestRateStream/stubCalculationPeriodAmount

### Schema Fragment:

    <xsd:complexType name="StubCalculationPeriodAmount">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining how the initial or final stub calculation period
          amounts is calculated. For example, the rate to be applied to the
          initial or final stub calculation period may be the linear
          interpolation of two different tenors for the floating rate index
          specified in the calculation period amount component, e.g. A two
          month stub period may used the linear interpolation of a one
          month and three month floating rate. The different rate tenors
          would be specified in this component. Note that a maximum of two
          rate tenors can be specified. If a stub period uses a single
          index tenor and this is the same as that specified in the
          calculation period amount component then the initial stub or
          final stub component, as the case may be, must not be included.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="calculationPeriodDatesReference" type="CalculationPeriodDatesReference">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A pointer style reference to the associated calculation
              period dates component defined elsewhere in the document.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="initialStub" type="Stub" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Specifies how the initial stub amount is calculated. A single
              floating rate tenor different to that used for the regular
              part of the calculation periods schedule may be specified, or
              two floating tenors may be specified. If two floating rate
              tenors are specified then Linear Interpolation (in accordance
              with the 2000 ISDA Definitions, Section 8.3. Interpolation)
              is assumed to apply. Alternatively, an actual known stub rate
              or stub amount may be specified.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="finalStub" type="Stub" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Specifies how the final stub amount is calculated. A single
              floating rate tenor different to that used for the regular
              part of the calculation periods schedule may be specified, or
              two floating tenors may be specified. If two floating rate
              tenors are specified then Linear Interpolation (in accordance
              with the 2000 ISDA Definitions, Section 8.3. Interpolation)
              is assumed to apply. Alternatively, an actual known stub rate
              or stub amount may be specified.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## Swap

### Description:

A type defining swap streams and additional payments between the principal parties involved in the swap.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Product)

- The base type which all FpML products extend.

swapStream (one or more occurrences; of the type InterestRateStream)

- The swap streams.

earlyTerminationProvision (zero or one occurrence; of the type EarlyTerminationProvision)

- Parameters specifying provisions relating to the optional and mandatory early terminarion of a swap transaction.

cancelableProvision (zero or one occurrence; of the type CancelableProvision)

- A provision that allows the specification of an embedded option within a swap giving the buyer of the option the right to terminate the swap, in whole or in part, on the early termination date.

extendibleProvision (zero or one occurrence; of the type ExtendibleProvision)

- A provision that allows the specification of an embedded option with a swap giving the buyer of the option the right to extend the swap, in whole or in part, to the extended termination date.

additionalPayment (zero or more occurrences; of the type Payment)

- Additional payments between the principal parties.

additionalTerms (zero or one occurrence; of the type SwapAdditionalTerms)

- Contains any additional terms to the swap contract.

### Used by:

### Extension of:

- Product

### Schema Fragment:

    <xsd:complexType name="Swap">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining swap streams and additional payments between the
          principal parties involved in the swap.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Product">
          <xsd:sequence>
            <xsd:element name="swapStream" type="InterestRateStream" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The swap streams.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="earlyTerminationProvision" type="EarlyTerminationProvision" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Parameters specifying provisions relating to the optional
                  and mandatory early terminarion of a swap transaction.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="cancelableProvision" type="CancelableProvision" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A provision that allows the specification of an embedded
                  option within a swap giving the buyer of the option the
                  right to terminate the swap, in whole or in part, on the
                  early termination date.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="extendibleProvision" type="ExtendibleProvision" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A provision that allows the specification of an embedded
                  option with a swap giving the buyer of the option the
                  right to extend the swap, in whole or in part, to the
                  extended termination date.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="additionalPayment" type="Payment" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Additional payments between the principal parties.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="additionalTerms" type="SwapAdditionalTerms" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Contains any additional terms to the swap contract.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## SwapAdditionalTerms

### Description:

Additional terms to a swap contract.

### Figure:

### Contents:

bondReference (zero or one occurrence; of the type BondReference)

- Reference to a bond underlyer to represent an asset swap or Condition Precedent Bond.

### Used by:

- Swap/additionalTerms

### Schema Fragment:

    <xsd:complexType name="SwapAdditionalTerms">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Additional terms to a swap contract.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="bondReference" type="BondReference" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Reference to a bond underlyer to represent an asset swap or
              Condition Precedent Bond.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## Swaption

### Description:

A type to define an option on a swap.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Product)

- The base type which all FpML products extend.

buyerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that buys this instrument, ie. pays for this instrument and receives the rights defined by it. See 2000 ISDA definitions Article 11.1 (b). In the case of FRAs this the fixed rate payer.

sellerPartyReference (exactly one occurrence; of the type PartyOrTradeSideReference)

- A reference to the party that sells ("writes") this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. See 2000 ISDA definitions Article 11.1 (a). In the case of FRAs this is the floating rate payer.

premium (zero or more occurrences; of the type Payment)

- The option premium amount payable by buyer to seller on the specified payment date.

exercise (exactly one occurrence; of the type Exercise)

- An placeholder for the actual option exercise definitions.

exerciseProcedure (zero or one occurrence; of the type ExerciseProcedure)

- A set of parameters defining procedures associated with the exercise.

calculationAgent (zero or one occurrence; of the type CalculationAgent)

- The ISDA Calculation Agent responsible for performing duties associated with an optional early termination.

There can be zero or one occurance of the following structure; Choice of either

cashSettlement (exactly one occurrence; of the type CashSettlement)

- If specified, this means that cash settlement is applicable to the transaction and defines the parameters associated with the cash settlement procedure. If not specified, then physical settlement is applicable.

Or

physicalSettlement (exactly one occurrence; of the type SwaptionPhysicalSettlement)

- If specified, this defines physical settlement terms which apply to the transaction.

swaptionStraddle (exactly one occurrence; of the type xsd:boolean)

- Whether the option is a swaption or a swaption straddle.

swaptionAdjustedDates (zero or one occurrence; of the type SwaptionAdjustedDates)

- The adjusted dates associated with swaption exercise. These dates have been adjusted for any applicable business day convention.

swap (exactly one occurrence; of the type Swap)

- A swap product definition.

### Used by:

### Extension of:

- Product

### Schema Fragment:

    <xsd:complexType name="Swaption">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type to define an option on a swap.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Product">
          <xsd:sequence>
            <xsd:group ref="BuyerSeller.model"/>
            <xsd:element name="premium" type="Payment" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The option premium amount payable by buyer to seller on
                  the specified payment date.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element ref="exercise"/>
            <xsd:element name="exerciseProcedure" type="ExerciseProcedure" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A set of parameters defining procedures associated with
                  the exercise.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="calculationAgent" type="CalculationAgent" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The ISDA Calculation Agent responsible for performing
                  duties associated with an optional early termination.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:choice minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  In the absence of both cashSettlement and (explicit)
                  physicalSettlement terms, physical settlement is
                  inferred.
                </xsd:documentation>
              </xsd:annotation>
              <xsd:element name="cashSettlement" type="CashSettlement">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    If specified, this means that cash settlement is
                    applicable to the transaction and defines the
                    parameters associated with the cash settlement
                    procedure. If not specified, then physical settlement
                    is applicable.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="physicalSettlement" type="SwaptionPhysicalSettlement">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    If specified, this defines physical settlement terms
                    which apply to the transaction.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
            <xsd:element name="swaptionStraddle" type="xsd:boolean">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Whether the option is a swaption or a swaption straddle.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="swaptionAdjustedDates" type="SwaptionAdjustedDates" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The adjusted dates associated with swaption exercise.
                  These dates have been adjusted for any applicable
                  business day convention.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element ref="swap"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## SwaptionAdjustedDates

### Description:

A type describing the adjusted dates associated with swaption exercise and settlement.

### Figure:

### Contents:

exerciseEvent (one or more occurrences; of the type ExerciseEvent)

- The adjusted dates associated with an individual swaption exercise date.

### Used by:

- Swaption/swaptionAdjustedDates

### Schema Fragment:

    <xsd:complexType name="SwaptionAdjustedDates">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type describing the adjusted dates associated with swaption
          exercise and settlement.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="exerciseEvent" type="ExerciseEvent" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The adjusted dates associated with an individual swaption
              exercise date.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## YieldCurveMethod

### Description:

A type defining the parameters required for each of the ISDA defined yield curve methods for cash settlement.

### Figure:

### Contents:

settlementRateSource (zero or one occurrence; of the type SettlementRateSource)

- The method for obtaining a settlement rate. This may be from some information source (e.g. Reuters) or from a set of reference banks.

quotationRateType (exactly one occurrence; of the type QuotationRateTypeEnum)

- Which rate quote is to be observed, either Bid, Mid, Offer or Exercising Party Pays. The meaning of Exercising Party Pays is defined in the 2000 ISDA Definitions, Section 17.2. Certain Definitions Relating to Cash Settlement, paragraph (j)

### Used by:

### Schema Fragment:

    <xsd:complexType name="YieldCurveMethod">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the parameters required for each of the ISDA
          defined yield curve methods for cash settlement.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:sequence>
          <xsd:element name="settlementRateSource" type="SettlementRateSource" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The method for obtaining a settlement rate. This may be
                from some information source (e.g. Reuters) or from a set
                of reference banks.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="quotationRateType" type="QuotationRateTypeEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Which rate quote is to be observed, either Bid, Mid, Offer
                or Exercising Party Pays. The meaning of Exercising Party
                Pays is defined in the 2000 ISDA Definitions, Section 17.2.
                Certain Definitions Relating to Cash Settlement, paragraph
                (j)
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:sequence>
    </xsd:complexType>

# Global Elements

## bulletPayment

### Description:

A product to represent a single known payment.

### Figure:

### Contents:

Element bulletPayment is defined by the complex type BulletPayment

### Used by:

### Schema Fragment:

    <xsd:element name="bulletPayment" type="BulletPayment" substitutionGroup="product">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A product to represent a single known payment.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>

## capFloor

### Description:

A cap, floor or cap floor structures product definition.

### Figure:

### Contents:

Element capFloor is defined by the complex type CapFloor

### Used by:

### Schema Fragment:

    <xsd:element name="capFloor" type="CapFloor" substitutionGroup="product">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A cap, floor or cap floor structures product definition.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>

## floatingRateCalculation

### Description:

A floating rate calculation definition.

### Figure:

### Contents:

Element floatingRateCalculation is defined by the complex type FloatingRateCalculation

### Used by:

### Schema Fragment:

    <xsd:element name="floatingRateCalculation" type="FloatingRateCalculation" substitutionGroup="rateCalculation">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A floating rate calculation definition.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>

## fra

### Description:

A forward rate agreement product definition.

### Figure:

### Contents:

Element fra is defined by the complex type Fra

### Used by:

### Schema Fragment:

    <xsd:element name="fra" type="Fra" substitutionGroup="product">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A forward rate agreement product definition.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>

## inflationRateCalculation

### Description:

An inflation rate calculation definition.

### Figure:

### Contents:

Element inflationRateCalculation is defined by the complex type InflationRateCalculation

### Used by:

### Schema Fragment:

    <xsd:element name="inflationRateCalculation" type="InflationRateCalculation" substitutionGroup="rateCalculation">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          An inflation rate calculation definition.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>

## rateCalculation

### Description:

The base element for the floating rate calculation definitions.

### Figure:

### Contents:

Element rateCalculation is defined by the complex type Rate

### Used by:

- Calculation

### Substituted by:

- floatingRateCalculation
- inflationRateCalculation

### Schema Fragment:

    <xsd:element name="rateCalculation" type="Rate" abstract="true">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          The base element for the floating rate calculation definitions.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>

## swap

### Description:

A swap product definition.

### Figure:

### Contents:

Element swap is defined by the complex type Swap

### Used by:

- Swaption

### Schema Fragment:

    <xsd:element name="swap" type="Swap" substitutionGroup="product">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A swap product definition.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>

## swaption

### Description:

A swaption product definition.

### Figure:

### Contents:

Element swaption is defined by the complex type Swaption

### Used by:

### Schema Fragment:

    <xsd:element name="swaption" type="Swaption" substitutionGroup="product">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A swaption product definition.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>

# Groups

## CashSettlementMethods2006.model

### Description:

This model group holds cash settlement methods that were defined in the 2006 Definitions and were not carried over to the 2021 Definitions. These methods should not be used in trades based on the 2021 Definitions.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

cashPriceMethod (exactly one occurrence; of the type CashPriceMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (a).

Or

cashPriceAlternateMethod (exactly one occurrence; of the type CashPriceMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (b).

Or

parYieldCurveAdjustedMethod (exactly one occurrence; of the type YieldCurveMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (c).

Or

zeroCouponYieldAdjustedMethod (exactly one occurrence; of the type YieldCurveMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (d).

Or

crossCurrencyMethod (exactly one occurrence; of the type CrossCurrencyMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (f) (published in Supplement number 58).

### Used by:

- CashSettlement

### Schema Fragment:

    <xsd:group name="CashSettlementMethods2006.model">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This model group holds cash settlement methods that were defined
          in the 2006 Definitions and were not carried over to the 2021
          Definitions. These methods should not be used in trades based on
          the 2021 Definitions.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:element name="cashPriceMethod" type="CashPriceMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2006 ISDA Definitions, Section 18.3.
              Cash Settlement Methods, paragraph (a).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="cashPriceAlternateMethod" type="CashPriceMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2006 ISDA Definitions, Section 18.3.
              Cash Settlement Methods, paragraph (b).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="parYieldCurveAdjustedMethod" type="YieldCurveMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2006 ISDA Definitions, Section 18.3.
              Cash Settlement Methods, paragraph (c).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="zeroCouponYieldAdjustedMethod" type="YieldCurveMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2006 ISDA Definitions, Section 18.3.
              Cash Settlement Methods, paragraph (d).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="crossCurrencyMethod" type="CrossCurrencyMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2006 ISDA Definitions, Section 18.3.
              Cash Settlement Methods, paragraph (f) (published in
              Supplement number 58).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:group>

## CashSettlementMethods2006and2021.model

### Description:

This model group holds cash settlement methods that are defined in the 2021 Definitions that were also defined in the 2006 Definitions.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

parYieldCurveUnadjustedMethod (exactly one occurrence; of the type YieldCurveMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. This method is defined in the 2021 ISDA Definitions, section 18.2.7. The method is also defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e).

Or

collateralizedCashPriceMethod (exactly one occurrence; of the type CollateralizedCashPriceMethod)

- An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2021 ISDA Definitions, Section 18.2.6. Note: the 2021 Definition has different fields than appeared in the 2006 Definitions; this sctructure handles both methods.

### Used by:

- CashSettlement

### Schema Fragment:

    <xsd:group name="CashSettlementMethods2006and2021.model">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This model group holds cash settlement methods that are defined
          in the 2021 Definitions that were also defined in the 2006
          Definitions.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:element name="parYieldCurveUnadjustedMethod" type="YieldCurveMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. This
              method is defined in the 2021 ISDA Definitions, section
              18.2.7. The method is also defined in the 2006 ISDA
              Definitions, Section 18.3. Cash Settlement Methods, paragraph
              (e).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="collateralizedCashPriceMethod" type="CollateralizedCashPriceMethod">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An ISDA defined cash settlement method used for the
              determination of the applicable cash settlement amount. The
              method is defined in the 2021 ISDA Definitions, Section
              18.2.6. Note: the 2021 Definition has different fields than
              appeared in the 2006 Definitions; this sctructure handles
              both methods.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:group>

## CashSettlementMethods2021.model

### Description:

This model group holds cash settlement methods that are defined in the 2021 Definitions that were not previously defined in the ISDA Definitions. These methods should not be used for trades based on the 2006 Definitions.

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

midMarketValuation (exactly one occurrence; of the type MidMarketValuation)

- ISDA defined cash settlement methods based on mid-market valuation. These methods are defined in the 2021 ISDA Definitions, Section 18.2.1-3, Cash Settlement Methods.

Or

replacementValue (exactly one occurrence; of the type ReplacementValue)

- ISDA defined cash settlement methods based on replacement value. These methods are defined in the 2021 ISDA Definitions, Section 18.2.4-5, Cash Settlement Methods.

### Used by:

- CashSettlement

### Schema Fragment:

    <xsd:group name="CashSettlementMethods2021.model">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          This model group holds cash settlement methods that are defined
          in the 2021 Definitions that were not previously defined in the
          ISDA Definitions. These methods should not be used for trades
          based on the 2006 Definitions.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:element name="midMarketValuation" type="MidMarketValuation">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              ISDA defined cash settlement methods based on mid-market
              valuation. These methods are defined in the 2021 ISDA
              Definitions, Section 18.2.1-3, Cash Settlement Methods.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="replacementValue" type="ReplacementValue">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              ISDA defined cash settlement methods based on replacement
              value. These methods are defined in the 2021 ISDA
              Definitions, Section 18.2.4-5, Cash Settlement Methods.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:group>

## MandatoryEarlyTermination.model

### Description:

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

mandatoryEarlyTermination (exactly one occurrence; of the type MandatoryEarlyTermination)

- A mandatory early termination provision to terminate the swap at fair value.

### Used by:

- EarlyTerminationProvision

### Schema Fragment:

    <xsd:group name="MandatoryEarlyTermination.model">
      <xsd:choice>
        <xsd:element name="mandatoryEarlyTermination" type="MandatoryEarlyTermination">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A mandatory early termination provision to terminate the swap
              at fair value.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:sequence>
          <xsd:element name="mandatoryEarlyTerminationDateTenor" type="Interval">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Period after trade date of the mandatory early termination
                date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="mandatoryEarlyTermination" type="MandatoryEarlyTermination" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A mandatory early termination provision to terminate the
                swap at fair value.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:choice>
    </xsd:group>

## OptionalEarlyTermination.model

### Description:

### Figure:

### Contents:

There can be one occurance of the following structure; Choice of either

optionalEarlyTermination (exactly one occurrence; of the type OptionalEarlyTermination)

- An option for either or both parties to terminate the swap at fair value.

### Used by:

- EarlyTerminationProvision

### Schema Fragment:

    <xsd:group name="OptionalEarlyTermination.model">
      <xsd:choice>
        <xsd:element name="optionalEarlyTermination" type="OptionalEarlyTermination">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An option for either or both parties to terminate the swap at
              fair value.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:sequence>
          <xsd:element name="optionalEarlyTerminationParameters" type="ExercisePeriod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Definition of the first early termination date and the
                frequency of the termination dates subsequent to that.
                American exercise is defined by having a frequency of one
                day.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="optionalEarlyTermination" type="OptionalEarlyTermination" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An option for either or both parties to terminate the swap
                at fair value.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:choice>
    </xsd:group>

# Full XML Schema

    <xsd:schema targetNamespace="http://www.fpml.org/2005/FpML-4-2" elementFormDefault="qualified" attributeFormDefault="unqualified" version="$Revision: 14516 $">
      <xsd:include schemaLocation="fpml-shared-4-2.xsd"/>
      <xsd:include schemaLocation="fpml-asset-4-2.xsd"/>
      <xsd:include schemaLocation="fpml-mktenv-4-2.xsd"/>
      <xsd:simpleType name="SimplePricingStructureReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            Reference to a pricing structure or any derived components
            (i.e. yield curve).
          </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:IDREF"/>
      </xsd:simpleType>
      <xsd:complexType name="BondReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type including a reference to a bond to support the
            representation of an asset swap or Condition Precedent Bond.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element ref="bond">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Reference to a bond underlyer.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="conditionPrecedentBond" type="xsd:boolean">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                To indicate whether the Condition Precedent Bond is
                applicable. The swap contract is only valid if the bond is
                issued and if there is any dispute over the terms of fixed
                stream then the bond terms would be used.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="discrepancyClause" type="xsd:boolean" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                To indicate whether the Discrepancy Clause is applicable.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="BulletPayment">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A product to represent a single cashflow.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Product">
            <xsd:sequence>
              <xsd:element name="payment" type="Payment">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    A known payment between two parties.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="Calculation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type definining the parameters used in the calculation of
            fixed or floating calculation period amounts.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="notionalSchedule" type="Notional">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The notional amount or notional amount schedule.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="fxLinkedNotionalSchedule" type="FxLinkedNotionalSchedule">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A notional amount schedule where each notional that
                  applied to a calculation period is calculated with
                  reference to a notional amount or notional amount
                  schedule in a different currency by means of a spot
                  currency exchange rate which is normally observed at the
                  beginning of each period.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:choice>
            <xsd:element name="fixedRateSchedule" type="Schedule">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The fixed rate or fixed rate schedule expressed as
                  explicit fixed rates and dates. In the case of a
                  schedule, the step dates may be subject to adjustment in
                  accordance with any adjustments specified in
                  calculationPeriodDatesAdjustments.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element ref="rateCalculation">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  This element is the head of a substitution group. It is
                  substituted by the floatingRateCalculation element for
                  standard Floating Rate legs, or the
                  inflationRateCalculation element for inflation swaps.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="dayCountFraction" type="DayCountFraction">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The day count fraction.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="discounting" type="Discounting" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The parameters specifying any discounting conventions that
                may apply. This element must only be included if
                discounting applies.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="compoundingMethod" type="CompoundingMethodEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                If more that one calculation period contributes to a single
                payment amount this element specifies whether compounding
                is applicable, and if so, what compounding method is to be
                used. This element must only be included when more that one
                calculation period contributes to a single payment amount.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="CalculationPeriod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the parameters used in the calculation of a
            fixed or floating rate calculation period amount. This type
            forms part of cashflows representation of a swap stream.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="unadjustedStartDate" type="xsd:date" minOccurs="0"/>
          <xsd:element name="unadjustedEndDate" type="xsd:date" minOccurs="0"/>
          <xsd:element name="adjustedStartDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The calculation period start date, adjusted according to
                any relevant business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedEndDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The calculation period end date, adjusted according to any
                relevant business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculationPeriodNumberOfDays" type="xsd:positiveInteger" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The number of days from the adjusted effective / start date
                to the adjusted termination / end date calculated in
                accordance with the applicable day count fraction.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice>
            <xsd:element name="notionalAmount" type="xsd:decimal">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The amount that a cashflow will accrue interest on.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="fxLinkedNotionalAmount" type="FxLinkedNotionalAmount">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The amount that a cashflow will accrue interest on. This
                  is the calculated amount of the fx linked - ie the other
                  currency notional amount multiplied by the appropriate fx
                  spot rate.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:choice>
            <xsd:element name="floatingRateDefinition" type="FloatingRateDefinition">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The floating rate reset information for the calculation
                  period.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="fixedRate" type="xsd:decimal">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The calculation period fixed rate. A per annum rate,
                  expressed as a decimal. A fixed rate of 5% would be
                  represented as 0.05.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="dayCountYearFraction" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The year fraction value of the calculation period, result
                of applying the ISDA rules for day count fraction defined
                in the ISDA Annex.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="forecastAmount" type="Money" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The amount representing the forecast of the accrued value
                of the calculation period. An intermediate value used to
                generate the forecastPaymentAmount in the
                PaymentCalculationPeriod.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="forecastRate" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A value representing the forecast rate used to calculate
                the forecast future value of the accrual period. This is a
                calculated rate determined based on averaging the rates in
                the rateObservation elements, and incorporates all of the
                rate treatment and averaging rules. A value of 1% should be
                represented as 0.01
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="CalculationPeriodAmount">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the parameters used in the calculation of fixed
            or floating rate calculation period amounts or for specifying a
            known calculation period amount or known amount schedule.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
          <xsd:element name="calculation" type="Calculation">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The parameters used in the calculation of fixed or floaring
                rate calculation period amounts.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="knownAmountSchedule" type="AmountSchedule">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The known calculation period amount or a known amount
                schedule expressed as explicit known amounts and dates. In
                the case of a schedule, the step dates may be subject to
                adjustment in accordance with any adjustments specified in
                calculationPeriodDatesAdjustments.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
      <xsd:complexType name="CalculationPeriodDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the parameters used to generate the calculation
            period dates schedule, including the specification of any
            initial or final stub calculation periods. A calculation perod
            schedule consists of an optional initial stub calculation
            period, one or more regular calculation periods and an optional
            final stub calculation period. In the absence of any initial or
            final stub calculation periods, the regular part of the
            calculation period schedule is assumed to be between the
            effective date and the termination date. No implicit stubs are
            allowed, i.e. stubs must be explicitly specified using an
            appropriate combination of firstPeriodStateDate,
            firstRegularPeriodStartDate and lastRegularPeriodEndDate.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="effectiveDate" type="AdjustableDate">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The first day of the term of the trade. This day may be
                  subject to adjustment in accordance with a business day
                  convention.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="relativeEffectiveDate" type="AdjustedRelativeDateOffset">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Defines the effective date.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:choice>
            <xsd:element name="terminationDate" type="AdjustableDate">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The last day of the term of the trade. This day may be
                  subject to adjustment in accordance with a business day
                  convention.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="relativeTerminationDate" type="RelativeDateOffset">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The term/maturity of the swap, express as a tenor
                  (typically in years).
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="calculationPeriodDatesAdjustments" type="BusinessDayAdjustments">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The business day convention to apply to each calculation
                period end date if it would otherwise fall on a day that is
                not a business day in the specified financial business
                centers.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="firstPeriodStartDate" type="AdjustableDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The start date of the calculation period if the date falls
                before the effective date. It must only be specified if it
                is not equal to the effective date. This date may be
                subject to adjustment in accordance with a business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="firstRegularPeriodStartDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The start date of the regular part of the calculation
                period schedule. It must only be specified if there is an
                initial stub calculation period. This day may be subject to
                adjustment in accordance with any adjustments specified in
                calculationPeriodDatesAdjustments.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="lastRegularPeriodEndDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The end date of the regular part of the calculation period
                schedule. It must only be specified if there is a final
                stub calculation period. This day may be subject to
                adjustment in accordance with any adjustments specified in
                calculationPeriodDatesAdjustments.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="stubPeriodType" type="StubPeriodTypeEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Method to allocate any irregular period remaining after
                regular periods have been allocated between the effective
                and termination date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculationPeriodFrequency" type="CalculationPeriodFrequency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The frequency at which calculation period end dates occur
                with the regular part of the calculation period schedule
                and their roll date convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID" use="required"/>
      </xsd:complexType>
      <xsd:complexType name="CalculationPeriodDatesReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            Reference to a calculation period dates component.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Reference"/>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="CancelableProvision">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the right of a party to cancel a swap
            transaction on the specified exercise dates. The provision is
            for 'walkaway' cancellation (i.e. the fair value of the swap is
            not paid). A fee payable on exercise can be specified.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:group ref="BuyerSeller.model"/>
          <xsd:element ref="exercise"/>
          <xsd:element name="exerciseNotice" type="ExerciseNotice" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Definition of the party to whom notice of exercise should
                be given.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="followUpConfirmation" type="xsd:boolean">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A flag to indicate whether follow-up confirmation of
                exercise (written or electronic) is required following
                telephonic notice by the buyer to the seller or seller's
                agent.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cancelableProvisionAdjustedDates" type="CancelableProvisionAdjustedDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted dates associated with a cancelable provision.
                These dates have been adjusted for any applicable business
                day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="CancelableProvisionAdjustedDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to define the adjusted dates for a cancelable provision
            on a swap transaction.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="cancellationEvent" type="CancellationEvent" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted dates for an individual cancellation date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="CancellationEvent">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            The adjusted dates for a specific cancellation date, including
            the adjusted exercise date and adjusted termination date.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="adjustedExerciseDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which option exercise takes place. This date
                should already be adjusted for any applicable business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The early termination date that is applicable if an early
                termination provision is exercised. This date should
                already be adjusted for any applicable business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="CapFloor">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining an interest rate cap, floor, or cap/floor
            strategy (e.g. collar) product.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Product">
            <xsd:sequence>
              <xsd:element name="capFloorStream" type="InterestRateStream"/>
              <xsd:element name="premium" type="Payment" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The option premium amount payable by buyer to seller on
                    the specified payment date.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="additionalPayment" type="Payment" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Additional payments between the principal parties.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="earlyTerminationProvision" type="EarlyTerminationProvision" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Parameters specifying provisions relating to the
                    optional and mandatory early terminarion of a CapFloor
                    transaction.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="Cashflows">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the cashflow representation of a swap trade.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="cashflowsMatchParameters" type="xsd:boolean">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A true/false flag to indicate whether the cashflows match
                the parametric definition of the stream, i.e. whether the
                cashflows could be regenerated from the parameters without
                loss of information.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="principalExchange" type="PrincipalExchange" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The initial, intermediate and final principal exchange
                amounts. Typically required on cross currency interest rate
                swaps where actual exchanges of principal occur. A list of
                principal exchange elements may be ordered in the document
                by ascending adjusted principal exchange date. An FpML
                document containing an unordered principal exchange list is
                still regarded as a conformant document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentCalculationPeriod" type="PaymentCalculationPeriod" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted payment date and associated calculation period
                parameters required to calculate the actual or projected
                payment amount. A list of payment calculation period
                elements may be ordered in the document by ascending
                adjusted payment date. An FpML document containing an
                unordered list of payment calculation periods is still
                regarded as a conformant document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="CashPriceMethod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the parameters necessary for each of the ISDA
            cash price methods for cash settlement.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A container for a set of reference institutions. These
                reference institutions may be called upon to provide rate
                quotations as part of the method to determine the
                applicable cash settlement amount. If institutions are not
                specified, it is assumed that reference institutions will
                be agreed between the parties on the exercise date, or in
                the case of swap transaction to which mandatory early
                termination is applicable, the cash settlement valuation
                date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlementCurrency" type="Currency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The currency in which the cash settlement amount will be
                calculated and settled.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="quotationRateType" type="QuotationRateTypeEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Which rate quote is to be observed, either Bid, Mid, Offer
                or Exercising Party Pays. The meaning of Exercising Party
                Pays is defined in the 2000 ISDA Definitions, Section 17.2.
                Certain Definitions Relating to Cash Settlement, paragraph
                (j)
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="CashSettlement">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to define the cash settlement terms for a product where
            cash settlement is applicable.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="cashSettlementValuationTime" type="BusinessCenterTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The time of the cash settlement valuation date when the
                cash settlement amount will be determined according to the
                cash settlement method if the parties have not otherwise
                been able to agree the cash settlement amount.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlementValuationDate" type="RelativeDateOffset" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which the cash settlement amount will be
                determined according to the cash settlement method if the
                parties have not otherwise been able to agree the cash
                settlement amount.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlementPaymentDate" type="CashSettlementPaymentDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which the cash settlement amount will be paid,
                subject to adjustment in accordance with any applicable
                business day convention. This component would not be
                present for a mandatory early termination provision where
                the cash settlement payment date is the mandatory early
                termination date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice minOccurs="0">
            <xsd:group ref="CashSettlementMethods2021.model"/>
            <xsd:group ref="CashSettlementMethods2006and2021.model"/>
            <xsd:group ref="CashSettlementMethods2006.model"/>
          </xsd:choice>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="CashSettlementPaymentDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the cash settlement payment date(s) as either a
            set of explicit dates, together with applicable adjustments, or
            as a date relative to some other (anchor) date, or as any date
            in a range of contiguous business days.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
          <xsd:element name="adjustableDates" type="AdjustableDates">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A series of dates that shall be subject to adjustment if
                they would otherwise fall on a day that is not a business
                day in the specified business centers, together with the
                convention for adjusting the date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="relativeDate" type="RelativeDateOffset">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A date specified as some offset to another date (the anchor
                date).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="businessDateRange" type="BusinessDateRange">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A range of contiguous business days.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="CollateralizedCashPriceMethod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the parameters required for each of the ISDA
            defined yield curve methods for cash settlement. See the 2021
            ISDA Definitions, section 18.2.6.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="cashSettlementCurrency" type="Currency" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The currency or currencies in which the cash settlement
                amount will be calculated and settled. (2 Currencies are
                supported for cross-currency settlement methods.)
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementRateSource" type="SettlementRateSource" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The method for obtaining a settlement rate. This may be
                from some information source (e.g. Reuters) or from a set
                of reference banks.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="quotationRateType" type="QuotationRateTypeEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Which rate quote is to be observed, either Bid, Mid, Offer
                or Exercising Party Pays. The meaning of Exercising Party
                Pays is defined in the 2000 ISDA Definitions, Section 17.2.
                Certain Definitions Relating to Cash Settlement, paragraph
                (j)
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="mutuallyAgreedClearinghouse" type="MutuallyAgreedClearinghouse" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This may be used to specify a "mutually-agreed
                clearinghouse" for settlement. This is only applicable for
                cash-settled swaptions.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="agreedDiscountRate" type="BenchmarkRate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This may be used to indicate the discount rate to be used
                for cash collateral for cash settlement purposes.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="CrossCurrencyMethod">
        <xsd:sequence>
          <xsd:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A container for a set of reference institutions. These
                reference institutions may be called upon to provide rate
                quotations as part of the method to determine the
                applicable cash settlement amount. If institutions are not
                specified, it is assumed that reference institutions will
                be agreed between the parties on the exercise date, or in
                the case of swap transaction to which mandatory early
                termination is applicable, the cash settlement valuation
                date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlementCurrency" type="Currency" maxOccurs="2" minOccurs="1">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The currency, or currencies, in which the cash settlement
                amount(s) will be calculated and settled. While the order
                in which the currencies are stated is unimportant, the cash
                settlement currency or currencies must correspond to one or
                both of the constituent currencies of the swap transaction.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="quotationRateType" type="QuotationRateTypeEnum" minOccurs="1">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Which rate quote is to be observed, either Bid, Mid, Offer
                or Exercising Party Pays. The meaning of Exercising Party
                Pays is defined in the 2000 ISDA Definitions, Section 17.2.
                Certain Definitions Relating to Cash Settlement, paragraph
                (j)
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="DateRelativeToPaymentDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to provide the ability to point to multiple payment
            nodes in the document through the unbounded
            paymentDatesReference.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="paymentDatesReference" type="PaymentDatesReference" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A set of href pointers to payment dates defined somewhere
                else in the document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Discounting">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining discounting information. The 2000 ISDA
            definitions, section 8.4. discounting (related to the
            calculation of a discounted fixed amount or floating amount)
            apply. This type must only be included if discounting applies.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="discountingType" type="DiscountingTypeEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The discounting method that is applicable.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="discountRate" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A discount rate, expressed as a decimal, to be used in the
                calculation of a discounted amount. A discount amount of 5%
                would be represented as 0.05.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="discountRateDayCountFraction" type="DayCountFraction" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A discount day count fraction to be used in the calculation
                of a discounted amount.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="EarlyTerminationEvent">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to define the adjusted dates associated with an early
            termination provision.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="adjustedExerciseDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which option exercise takes place. This date
                should already be adjusted for any applicable business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The early termination date that is applicable if an early
                termination provision is exercised. This date should
                already be adjusted for any applicable business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedCashSettlementValuationDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date by which the cash settlement amount must be
                agreed. This date should already be adjusted for any
                applicable business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedCashSettlementPaymentDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which the cash settlement amount is paid. This
                date should already be adjusted for any applicable business
                dat convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedExerciseFeePaymentDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which the exercise fee amount is paid. This
                date should already be adjusted for any applicable business
                day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="EarlyTerminationProvision">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining an early termination provision for a swap. This
            early termination is at fair value, i.e. on termination the
            fair value of the product must be settled between the parties.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
          <xsd:sequence>
            <xsd:group ref="MandatoryEarlyTermination.model"/>
            <xsd:group ref="OptionalEarlyTermination.model" minOccurs="0"/>
          </xsd:sequence>
          <xsd:group ref="OptionalEarlyTermination.model"/>
        </xsd:choice>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="ExerciseEvent">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the adjusted dates associated with a particular
            exercise event.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="adjustedExerciseDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which option exercise takes place. This date
                should already be adjusted for any applicable business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedRelevantSwapEffectiveDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The effective date of the underlying swap associated with a
                given exercise date. This date should already be adjusted
                for any applicable business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedCashSettlementValuationDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date by which the cash settlement amount must be
                agreed. This date should already be adjusted for any
                applicable business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedCashSettlementPaymentDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which the cash settlement amount is paid. This
                date should already be adjusted for any applicable business
                dat convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedExerciseFeePaymentDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which the exercise fee amount is paid. This
                date should already be adjusted for any applicable business
                day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="ExercisePeriod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This defines the time interval to the start of the exercise
            period, i.e. the earliest exercise date, and the frequency of
            subsequent exercise dates (if any).
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="earliestExerciseDateTenor" type="Interval">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The time interval to the first (and possibly only) exercise
                date in the exercise period.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="exerciseFrequency" type="Interval" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The frequency of subsequent exercise dates in the exercise
                period following the earliest exercise date. An interval of
                1 day should be used to indicate an American style exercise
                period.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="ExtendibleProvision">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining an option to extend an existing swap
            transaction on the specified exercise dates for a term ending
            on the specified new termination date.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:group ref="BuyerSeller.model"/>
          <xsd:element ref="exercise"/>
          <xsd:element name="exerciseNotice" type="ExerciseNotice" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Definition of the party to whom notice of exercise should
                be given.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="followUpConfirmation" type="xsd:boolean">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A flag to indicate whether follow-up confirmation of
                exercise (written or electronic) is required following
                telephonic notice by the buyer to the seller or seller's
                agent.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="extendibleProvisionAdjustedDates" type="ExtendibleProvisionAdjustedDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted dates associated with an extendible provision.
                These dates have been adjusted for any applicable business
                day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ExtendibleProvisionAdjustedDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the adjusted dates associated with a provision
            to extend a swap.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="extensionEvent" type="ExtensionEvent" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted dates associated with a single extendible
                exercise date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ExtensionEvent">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to define the adjusted dates associated with an
            individual extension event.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="adjustedExerciseDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which option exercise takes place. This date
                should already be adjusted for any applicable business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedExtendedTerminationDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The termination date if an extendible provision is
                exercised. This date should already be adjusted for any
                applicable business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="FloatingRateDefinition">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining parameters associated with a floating rate
            reset. This type forms part of the cashflows representation of
            a stream.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="calculatedRate" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The final calculated rate for a calculation period after
                any required averaging of rates A calculated rate of 5%
                would be represented as 0.05.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="rateObservation" type="RateObservation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The details of a particular rate observation, including the
                fixing date and observed rate. A list of rate observation
                elements may be ordered in the document by ascending
                adjusted fixing date. An FpML document containing an
                unordered list of rate observations is still regarded as a
                conformant document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="floatingRateMultiplier" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A rate multiplier to apply to the floating rate. The
                multiplier can be a positive or negative decimal. This
                element should only be included if the multiplier is not
                equal to 1 (one).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="spread" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The ISDA Spread, if any, which applies for the calculation
                period. The spread is a per annum rate, expressed as a
                decimal. For purposes of determining a calculation period
                amount, if positive the spread will be added to the
                floating rate and if negative the spread will be subtracted
                from the floating rate. A positive 10 basis point (0.1%)
                spread would be represented as 0.001.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="capRate" type="Strike" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The cap rate, if any, which applies to the floating rate
                for the calculation period. The cap rate (strike) is only
                required where the floating rate on a swap stream is capped
                at a certain strike level. The cap rate is assumed to be
                exclusive of any spread and is a per annum rate, expressed
                as a decimal. A cap rate of 5% would be represented as
                0.05.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="floorRate" type="Strike" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The floor rate, if any, which applies to the floating rate
                for the calculation period. The floor rate (strike) is only
                required where the floating rate on a swap stream is
                floored at a certain strike level. The floor rate is
                assumed to be exclusive of any spread and is a per annum
                rate, expressed as a decimal. The floor rate of 5% would be
                represented as 0.05.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Fra">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining a Forward Rate Agreement (FRA) product.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Product">
            <xsd:sequence>
              <xsd:group ref="BuyerSeller.model"/>
              <xsd:element name="adjustedEffectiveDate" type="RequiredIdentifierDate">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The start date of the calculation period. This date
                    should already be adjusted for any applicable business
                    day convention. This is also the date when the observed
                    rate is applied, the reset date.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="adjustedTerminationDate" type="xsd:date">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The end date of the calculation period. This date
                    should already be adjusted for any applicable business
                    day convention.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="paymentDate" type="AdjustableDate">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The payment date. This date is subject to adjustment in
                    accordance with any applicable business day convention.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="fixingDateOffset" type="RelativeDateOffset">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Specifies the fixing date relative to the reset date in
                    terms of a business days offset and an associated set
                    of financial business centers. Normally these offset
                    calculation rules will be those specified in the ISDA
                    definition for the relevant floating rate index (ISDA's
                    Floating Rate Option). However, non-standard offset
                    calculation rules may apply for a trade if mutually
                    agreed by the principal parties to the transaction. The
                    href attribute on the dateRelativeTo element should
                    reference the id attribute on the adjustedEffectiveDate
                    element.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="dayCountFraction" type="DayCountFraction">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The day count fraction.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="calculationPeriodNumberOfDays" type="xsd:positiveInteger">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The number of days from the adjusted effective date to
                    the adjusted termination date calculated in accordance
                    with the applicable day count fraction.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="notional" type="Money">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The notional amount.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="fixedRate" type="xsd:decimal">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The calculation period fixed rate. A per annum rate,
                    expressed as a decimal. A fixed rate of 5% would be
                    represented as 0.05.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="floatingRateIndex" type="FloatingRateIndex"/>
              <xsd:element name="indexTenor" type="Interval" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The ISDA Designated Maturity, i.e. the tenor of the
                    floating rate.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="fraDiscounting" type="FraDiscountingEnum">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Specifies whether discounting applies and, if so, what
                    type.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="FxFixingDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type that is extending the Offset structure for providing the
            ability to specify an FX fixing date as an offset to dates
            specified somewhere else in the document.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Offset">
            <xsd:sequence>
              <xsd:element name="businessDayConvention" type="BusinessDayConventionEnum">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The convention for adjusting a date if it would
                    otherwise fall on a day that is not a business day.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0"/>
              <xsd:element name="dateRelativeToPaymentDates" type="DateRelativeToPaymentDates">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The payment date references on which settlements in
                    non-deliverable currency are due and will then have to
                    be converted according to the terms specified through
                    the other parts of the nonDeliverableSettlement
                    structure.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="FxLinkedNotionalAmount">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to describe the cashflow representation for fx linked
            notionals.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="resetDate" type="xsd:date" minOccurs="0"/>
          <xsd:element name="adjustedFxSpotFixingDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which the fx spot rate is observed. This date
                should already be adjusted for any applicable business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="observedFxSpotRate" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The actual observed fx spot rate.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="notionalAmount" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The calculation period notional amount.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="FxLinkedNotionalSchedule">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to describe a notional schedule where each notional that
            applies to a calculation period is calculated with reference to
            a notional amount or notional amount schedule in a different
            currency by means of a spot currency exchange rate which is
            normally observed at the beginning of each period.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="constantNotionalScheduleReference" type="ScheduleReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A pointer style reference to the associated constant
                notional schedule defined elsewhere in the document which
                contains the currency amounts which will be converted into
                the varying notional currency amounts using the spot
                currency exchange rate.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="initialValue" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The initial currency amount for the varying notional.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="varyingNotionalCurrency" type="xsd:string">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The currency of the varying notional amount, i.e. the
                notional amount being determined periodically based on
                observation of a spot currency exchange rate.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="varyingNotionalFixingDates" type="RelativeDateOffset">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The dates on which spot currency exchange rates are
                observed for purposes of determining the varying notional
                currency amount that will apply to a calculation period.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fxSpotRateSource" type="FxSpotRateSource">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The information source and time at which the spot currency
                exchange rate will be observed.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="varyingNotionalInterimExchangePaymentDates" type="RelativeDateOffset">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The dates on which interim exchanges of notional are paid.
                Interim exchanges will arise as a result of changes in the
                spot currency exchange amount or changes in the constant
                notional schedule (e.g. amortization).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="InflationRateCalculation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the components specifiying an Inflation Rate
            Calculation
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="InflationRateCalculationBase">
            <xsd:sequence>
              <xsd:element name="inflationLag" type="Offset">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    an offsetting period from the payment date which
                    determines the reference period for which the inflation
                    index is onserved.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="indexSource" type="RateSourcePage">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The reference source such as Reuters or Bloomberg.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="mainPublication" type="MainPublication" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The current main publication source such as relevant
                    web site or a government body.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="interpolationMethod" type="InterpolationMethod">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The method used when calculating the Inflation Index
                    Level from multiple points - the most common is Linear.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="initialIndexLevel" type="xsd:decimal" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    initial known index level for the first calculation
                    period.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="InterestRateStream">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the components specifiying an interest rate
            stream, including both a parametric and cashflow representation
            for the stream of payments.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model"/>
          <xsd:element name="calculationPeriodDates" type="CalculationPeriodDates">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The calculation periods dates schedule.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDates" type="PaymentDates">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The payment dates schedule.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="resetDates" type="ResetDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The reset dates schedule. The reset dates schedule only
                applies for a floating rate stream.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculationPeriodAmount" type="CalculationPeriodAmount">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The calculation period amount parameters.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="stubCalculationPeriodAmount" type="StubCalculationPeriodAmount" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The stub calculation period amount parameters. This element
                must only be included if there is an initial or final stub
                calculation period. Even then, it must only be included if
                either the stub references a different floating rate tenor
                to the regular calculation periods, or if the stub is
                calculated as a linear interpolation of two different
                floating rate tenors, or if a specific stub rate or stub
                amount has been negotiated.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="principalExchanges" type="PrincipalExchanges" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The true/false flags indicating whether initial,
                intermediate or final exchanges of principal should occur.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashflows" type="Cashflows" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The cashflows representation of the swap stream.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementProvision" type="SettlementProvision" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A provision that allows the specification of settlement
                terms, occuring when the settlement currency is different
                to the notional currency of the trade.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="formula" type="Formula" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An interest rate derivative formula.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="MandatoryEarlyTermination">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to define an early termination provision for which
            exercise is mandatory.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="mandatoryEarlyTerminationDate" type="AdjustableDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The early termination date associated with a mandatory
                early termination of a swap.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculationAgent" type="CalculationAgent">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The ISDA Calculation Agent responsible for performing
                duties associated with an optional early termination.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlement" type="CashSettlement">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                If specified, this means that cash settlement is applicable
                to the transaction and defines the parameters associated
                with the cash settlement prodcedure. If not specified, then
                physical settlement is applicable.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="mandatoryEarlyTerminationAdjustedDates" type="MandatoryEarlyTerminationAdjustedDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted dates associated with a mandatory early
                termination provision. These dates have been adjusted for
                any applicable business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="MandatoryEarlyTerminationAdjustedDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the adjusted dates associated with a mandatory
            early termination provision.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The early termination date that is applicable if an early
                termination provision is exercised. This date should
                already be adjusted for any applicable business day
                convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedCashSettlementValuationDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date by which the cash settlement amount must be
                agreed. This date should already be adjusted for any
                applicable business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedCashSettlementPaymentDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date on which the cash settlement amount is paid. This
                date should already be adjusted for any applicable business
                dat convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="MidMarketValuation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This type is a wrapper holding several different mid-market
            valuation methods described in the 2021 ISDA Definitions.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
          <xsd:element name="indicativeQuotations" type="MidMarketValuationMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2021 ISDA Definitions, Section
                18.2.1.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="indicativeQuotationsAlternate" type="MidMarketValuationMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2021 ISDA Definitions, Section
                18.2.2.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculationAgentDetermination" type="MidMarketValuationMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2021 ISDA Definitions, Section
                18.2.3.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
      <xsd:complexType name="MidMarketValuationMethod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This type is a generic structure that can represent the fields
            of several mid-market valuation methods described in the 2021
            ISDA Definitions.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="cashSettlementCurrency" type="Currency" maxOccurs="2">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The currency, or currencies, in which the cash settlement
                amount(s) will be calculated and settled. While the order
                in which the currencies are stated is unimportant, the cash
                settlement currency or currencies must correspond to one or
                both of the constituent currencies of the swap transaction.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="applicableCsa" type="CsaTypeEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This may be used to whaty type of CSA (credit support
                annex/agreement) is to be used for cash settlement
                purposes.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A container for a set of reference institutions. These
                reference institutions may be called upon to provide rate
                quotations as part of the method to determine the
                applicable cash settlement amount. If institutions are not
                specified, it is assumed that reference institutions will
                be agreed between the parties on the exercise date, or in
                the case of swap transaction to which mandatory early
                termination is applicable, the cash settlement valuation
                date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashCollateralCurrency" type="Currency" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This may be used to indicate the currency of cash
                collateral for cash settlement purposes.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashCollateralInterestRate" type="BenchmarkRate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This may be used to indicate the interest rate to be used
                for cash collateral for cash settlement purposes.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="agreedDiscountRate" type="BenchmarkRate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This may be used to indicate the discount rate to be used
                for cash collateral for cash settlement purposes.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="NonDeliverableSettlement">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the parameters used when the reference currency
            of the swapStream is non-deliverable.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="referenceCurrency" type="Currency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The currency in which the swap stream is denominated in.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fxFixingDate" type="FxFixingDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The fixing date(s) on which the currency rate will be
                determined for the purpose of specifying the amount in
                deliverable currency.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementRateOption" type="SettlementRateOption">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The rate source for the conversion to the settlement
                currency. This source is specified through a scheme that
                reflects the terms of the Annex A to the 1998 FX and
                Currency Option Definitions.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Notional">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            An type defining the notional amount or notional amount
            schedule associated with a swap stream. The notional schedule
            will be captured explicitly, specifying the dates that the
            notional changes and the outstanding notional amount that
            applies from that date. A parametric representation of the
            rules defining the notional step schedule can optionally be
            included.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="notionalStepSchedule" type="AmountSchedule">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The notional amount or notional amount schedule expressed
                as explicit outstanding notional amounts and dates. In the
                case of a schedule, the step dates may be subject to
                adjustment in accordance with any adjustments specified in
                calculationPeriodDatesAdjustments.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="notionalStepParameters" type="NotionalStepRule" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A parametric representation of the notional step schedule,
                i.e. parameters used to generate the notional schedule.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="NotionalStepRule">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining a parametric representation of the notional
            step schedule, i.e. parameters used to generate the notional
            balance on each step date. The step change in notional can be
            expressed in terms of either a fixed amount or as a percentage
            of either the initial notional or previous notional amount.
            This parametric representation is intended to cover the more
            common amortizing/accreting.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="calculationPeriodDatesReference" type="CalculationPeriodDatesReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A pointer style reference to the associated calculation
                period dates component defined elsewhere in the document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="stepFrequency" type="Interval">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The frequency at which the step changes occur. This
                frequency must be a multiple of the stream calculation
                period frequency.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="firstNotionalStepDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Effective date of the first change in notional (i.e. a
                calculation period start date).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="lastNotionalStepDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Effective date of the last change in notional (i.e. a
                calculation period start date).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice>
            <xsd:element name="notionalStepAmount" type="xsd:decimal">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The explicit amount that the notional changes on each
                  step date. This can be a positive or negative amount.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:sequence>
              <xsd:element name="notionalStepRate" type="xsd:decimal">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The percentage amount by which the notional changes on
                    each step date. The percentage is either a percentage
                    applied to the initial notional amount or the previous
                    outstanding notional, depending on the value of the
                    element stepRelativeTo. The percentage can be either
                    positive or negative. A percentage of 5% would be
                    represented as 0.05.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="stepRelativeTo" type="StepRelativeToEnum">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Specifies whether the notionalStepRate should be
                    applied to the initial notional or the previous
                    notional in order to calculate the notional step change
                    amount.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:choice>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="OptionalEarlyTermination">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining an early termination provision where either or
            both parties have the right to exercise.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="singlePartyOption" type="SinglePartyOption" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                If optional early termination is not available to both
                parties then this component specifies the buyer and seller
                of the option.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element ref="exercise"/>
          <xsd:element name="exerciseNotice" type="ExerciseNotice" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Definition of the party to whom notice of exercise should
                be given.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="followUpConfirmation" type="xsd:boolean" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A flag to indicate whether follow-up confirmation of
                exercise (written or electronic) is required following
                telephonic notice by the buyer to the seller or seller's
                agent.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculationAgent" type="CalculationAgent">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The ISDA Calculation Agent responsible for performing
                duties associated with an optional early termination.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlement" type="CashSettlement">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                If specified, this means that cash settlement is applicable
                to the transaction and defines the parameters associated
                with the cash settlement prodcedure. If not specified, then
                physical settlement is applicable.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="optionalEarlyTerminationAdjustedDates" type="OptionalEarlyTerminationAdjustedDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An early termination provision to terminate the trade at
                fair value where one or both parties have the right to
                decide on termination.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="OptionalEarlyTerminationAdjustedDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the adjusted dates associated with an optional
            early termination provision.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="earlyTerminationEvent" type="EarlyTerminationEvent" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted dates associated with an individual earley
                termination date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="PartySelector">
        <xsd:choice>
          <xsd:element name="partyReference" type="PartyReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The party specific party that is referenced.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="partyDetermination" type="PartyDeterminationEnum"/>
        </xsd:choice>
      </xsd:complexType>
      <xsd:complexType name="PaymentCalculationPeriod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the adjusted payment date and associated
            calculation period parameters required to calculate the actual
            or projected payment amount. This type forms part of the
            cashflow representation of a swap stream.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="unadjustedPaymentDate" type="xsd:date" minOccurs="0"/>
          <xsd:element name="adjustedPaymentDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted payment date. This date should already be
                adjusted for any applicable business day convention. This
                component is not intended for use in trade confirmation but
                may be specified to allow the fee structure to also serve
                as a cashflow type component (all dates the Cashflows type
                are adjusted payment dates).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice>
            <xsd:element name="calculationPeriod" type="CalculationPeriod" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The parameters used in the calculation of a fixed or
                  floating rate calculation period amount. A list of
                  calculation period elements may be ordered in the
                  document by ascending start date. An FpML document which
                  contains an unordered list of calcularion periods is
                  still regarded as a conformant document.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="fixedPaymentAmount" type="xsd:decimal">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A known fixed payment amount.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="discountFactor" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A decimal value representing the discount factor used to
                calculate the present value of cash flow.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="forecastPaymentAmount" type="Money" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A monetary amount representing the forecast of the future
                value of the payment.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="presentValueAmount" type="Money" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A monetary amount representing the present value of the
                forecast payment.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
        <xsd:attribute name="href" type="SimplePricingStructureReference">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Attribute that can be used to reference the yield curve used
              to estimate the discount factor.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:complexType>
      <xsd:complexType name="PaymentDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining parameters used to generate the payment dates
            schedule, including the specification of early or delayed
            payments. Payment dates are determined relative to the
            calculation period dates or the reset dates.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="calculationPeriodDatesReference" type="CalculationPeriodDatesReference">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A pointer style reference to the associated calculation
                  period dates component defined elsewhere in the document.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="resetDatesReference" type="ResetDatesReference">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A pointer style reference to the associated reset dates
                  component defined elsewhere in the document.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="paymentFrequency" type="Interval">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The frequency at which regular payment dates occur. If the
                payment frequency is equal to the frequency defined in the
                calculation period dates component then one calculation
                period contributes to each payment amount. If the payment
                frequency is less frequent than the frequency defined in
                the calculation period dates component then more than one
                calculation period will contribute to e payment amount. A
                payment frequency more frequent than the calculation period
                frequency or one that is not a multiple of the calculation
                period frequency is invalid.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="firstPaymentDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The first unadjusted payment date. This day may be subject
                to adjustment in accordance with any business day
                convention specified in paymentDatesAdjustments. This
                element must only be included if there is an initial stub.
                This date will normally correspond to an unadjusted
                calculation period start or end date. This is true even if
                early or delayed payment is specified to be applicable
                since the actual first payment date will be the specified
                number of days before or after the applicable adjusted
                calculation period start or end date with the resulting
                payment date then being adjusted in accordance with any
                business day convention specified in
                paymentDatesAdjustments.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="lastRegularPaymentDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The last regular unadjusted payment date. This day may be
                subject to adjustment in accordance with any business day
                convention specified in paymentDatesAdjustments. This
                element must only be included if there is a final stub. All
                calculation periods after this date contribute to the final
                payment. The final payment is made relative to the final
                set of calculation periods or the final reset date as the
                case may be. This date will normally correspond to an
                unadjusted calculation period start or end date. This is
                true even if early or delayed payment is specified to be
                applicable since the actual last regular payment date will
                be the specified number of days before or after the
                applicable adjusted calculation period start or end date
                with the resulting payment date then being adjusted in
                accordance with any business day convention specified in
                paymentDatesAdjustments.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="payRelativeTo" type="PayRelativeToEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Specifies whether the payments occur relative to each
                adjusted calculation period start date, adjusted
                calculation period end date or each reset date. The reset
                date is applicable in the case of certain euro (former
                French Franc) floating rate indices. Calculation period
                start date means relative to the start of the first
                calculation period contributing to a given payment.
                Similarly, calculation period end date means the end of the
                last calculation period contributing to a given payment.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDaysOffset" type="Offset" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                If early payment or delayed payment is required, specifies
                the number of days offset that the payment occurs relative
                to what would otherwise be the unadjusted payment date. The
                offset can be specified in terms of either calendar or
                business days. Even in the case of a calendar days offset,
                the resulting payment date, adjusted for the specified
                calendar days offset, will still be adjusted in accordance
                with the specified payment dates adjustments. This element
                should only be included if early or delayed payment is
                applicable, i.e. if the periodMultiplier element value is
                not equal to zero. An early payment would be indicated by a
                negative periodMultiplier element value and a delayed
                payment (or payment lag) would be indicated by a positive
                periodMultiplier element value.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDatesAdjustments" type="BusinessDayAdjustments">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The business day convention to apply to each payment date
                if it would otherwise fall on a day that is not a business
                day in the specified financial business centers.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="PaymentDatesReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            Reference to a payment dates structure.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Reference"/>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="PrincipalExchange">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining a principal exchange amount and adjusted
            exchange date. The type forms part of the cashflow
            representation of a swap stream.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="unadjustedPrincipalExchangeDate" type="xsd:date" minOccurs="0"/>
          <xsd:element name="adjustedPrincipalExchangeDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The principal exchange date. This date should already be
                adjusted for any applicable business day convention.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="principalExchangeAmount" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The principal exchange amount. This amount should be
                positive if the stream payer is paying the exchange amount
                and signed negative if they are receiving it.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="discountFactor" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The value representing the discount factor used to
                calculate the present value of the principal exchange
                amount.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="presentValuePrincipalExchangeAmount" type="Money" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The amount representing the present value of the principal
                exchange.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID"/>
      </xsd:complexType>
      <xsd:complexType name="ReplacementValue">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This type is a wrapper holding several different replacement
            value cash settlement methods described in the 2021 ISDA
            Definitions.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
          <xsd:element name="firmQuotations" type="ReplacementValueFirmQuotationsMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2021 ISDA Definitions, Section
                18.2.4.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculationAgentDetermination" type="ReplacementValueCalculationAgentDeterminationMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2021 ISDA Definitions, Section
                18.2.5.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
      <xsd:complexType name="ReplacementValueMethodBase">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This type is a generic base type holding shared data fields
            several different replacement value cash settlement methods
            described in the 2021 ISDA Definitions.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="cashSettlementCurrency" type="Currency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The currency, or currencies, in which the cash settlement
                amount(s) will be calculated and settled. While the order
                in which the currencies are stated is unimportant, the cash
                settlement currency or currencies must correspond to one or
                both of the constituent currencies of the swap transaction.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A container for a set of reference institutions. These
                reference institutions may be called upon to provide rate
                quotations as part of the method to determine the
                applicable cash settlement amount. If institutions are not
                specified, it is assumed that reference institutions will
                be agreed between the parties on the exercise date, or in
                the case of swap transaction to which mandatory early
                termination is applicable, the cash settlement valuation
                date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="protectedParty" type="PartySelector" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This may be used to specify which party is protected (e.g.
                under Replacement Value cash settlement methods).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashCollateralCurrency" type="Currency" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                This may be used to indicate the currency of cash
                collateral for cash settlement purposes.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ReplacementValueCalculationAgentDeterminationMethod">
        <xsd:complexContent>
          <xsd:extension base="ReplacementValueMethodBase"/>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ReplacementValueFirmQuotationsMethod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This type is a specific type holding the data fields for the
            replacement value firm quotations cash settlement method
            described in the 2021 ISDA Definitions, section 18.2.4. It adds
            an additional field to the shared replacement value data
            fields.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="ReplacementValueMethodBase">
            <xsd:sequence>
              <xsd:element name="prescribedDocumentationAdjustment" type="xsd:boolean">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    This may be used to indicate that "prescribed
                    documentation adjustment" is applicable.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ResetDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the parameters used to generate the reset dates
            schedule and associated fixing dates. The reset dates are
            determined relative to the calculation periods schedules dates.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="calculationPeriodDatesReference" type="CalculationPeriodDatesReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A pointer style reference to the associated calculation
                period dates component defined elsewhere in the document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="resetRelativeTo" type="ResetRelativeToEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Specifies whether the reset dates are determined with
                respect to each adjusted calculation period start date or
                adjusted calculation period end date. If the reset
                frequency is specified as daily this element must not be
                included.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="initialFixingDate" type="RelativeDateOffset" minOccurs="0"/>
          <xsd:element name="fixingDates" type="RelativeDateOffset">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Specifies the fixing date relative to the reset date in
                terms of a business days offset and an associated set of
                financial business centers. Normally these offset
                calculation rules will be those specified in the ISDA
                definition for the relevant floating rate index (ISDA's
                Floating Rate Option). However, non-standard offset
                calculation rules may apply for a trade if mutually agreed
                by the principal parties to the transaction. The href
                attribute on the dateRelativeTo element should reference
                the id attribute on the resetDates element.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="rateCutOffDaysOffset" type="Offset" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Specifies the number of business days before the period end
                date when the rate cut-off date is assumed to apply. The
                financial business centers associated with determining the
                rate cut-off date are those specified in the reset dates
                adjustments. The rate cut-off number of days must be a
                negative integer (a value of zero would imply no rate cut
                off applies in which case the rateCutOffDaysOffset element
                should not be included). The relevant rate for each reset
                date in the period from, and including, a rate cut-off date
                to, but excluding, the next applicable period end date (or,
                in the case of the last calculation period, the termination
                date) will (solely for purposes of calculating the floating
                amount payable on the next applicable payment date) be
                deemed to be the relevant rate in effect on that rate
                cut-off date. For example, if rate cut-off days for a daily
                averaging deal is -2 business days, then the refix rate
                applied on (period end date - 2 days) will also be applied
                as the reset on (period end date - 1 day), i.e. the actual
                number of reset dates remains the same but from the rate
                cut-off date until the period end date, the same refix rate
                is applied. Note that in the case of several calculation
                periods contributing to a single payment, the rate cut-off
                is assumed only to apply to the final calculation period
                contributing to that payment. The day type associated with
                the offset must imply a business days offset.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="resetFrequency" type="ResetFrequency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The frequency at which reset dates occur. In the case of a
                weekly reset frequency, also specifies the day of the week
                that the reset occurs. If the reset frequency is greater
                than the calculation period frequency then this implies
                that more than one reset date is established for each
                calculation period and some form of rate averaging is
                applicable.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="resetDatesAdjustments" type="BusinessDayAdjustments">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The business day convention to apply to each reset date if
                it would otherwise fall on a day that is not a business day
                in the specified financial business centers.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID" use="required"/>
      </xsd:complexType>
      <xsd:complexType name="ResetDatesReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            Reference to a reset dates component.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Reference"/>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SettlementProvision">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the specification of settlement terms, occuring
            when the settlement currency is different to the notional
            currency of the trade.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="settlementCurrency" type="Currency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The currency that stream settles in (to support swaps that
                settle in a currency different from the notional currency).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="nonDeliverableSettlement" type="NonDeliverableSettlement" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The specification of the non-deliverable settlement
                provision.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="SettlementRateOption">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the settlement rate options through a scheme
            reflecting the terms of the Annex A to the 1998 FX and Currency
            Option Definitions.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
          <xsd:extension base="xsd:normalizedString">
            <xsd:attribute name="settlementRateOptionScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/settlement-rate-option-2-0"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
      <xsd:complexType name="SinglePartyOption">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type describing the buyer and seller of an option.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:group ref="BuyerSeller.model"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="StubCalculationPeriodAmount">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining how the initial or final stub calculation
            period amounts is calculated. For example, the rate to be
            applied to the initial or final stub calculation period may be
            the linear interpolation of two different tenors for the
            floating rate index specified in the calculation period amount
            component, e.g. A two month stub period may used the linear
            interpolation of a one month and three month floating rate. The
            different rate tenors would be specified in this component.
            Note that a maximum of two rate tenors can be specified. If a
            stub period uses a single index tenor and this is the same as
            that specified in the calculation period amount component then
            the initial stub or final stub component, as the case may be,
            must not be included.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="calculationPeriodDatesReference" type="CalculationPeriodDatesReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A pointer style reference to the associated calculation
                period dates component defined elsewhere in the document.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="initialStub" type="Stub" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Specifies how the initial stub amount is calculated. A
                single floating rate tenor different to that used for the
                regular part of the calculation periods schedule may be
                specified, or two floating tenors may be specified. If two
                floating rate tenors are specified then Linear
                Interpolation (in accordance with the 2000 ISDA
                Definitions, Section 8.3. Interpolation) is assumed to
                apply. Alternatively, an actual known stub rate or stub
                amount may be specified.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="finalStub" type="Stub" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Specifies how the final stub amount is calculated. A single
                floating rate tenor different to that used for the regular
                part of the calculation periods schedule may be specified,
                or two floating tenors may be specified. If two floating
                rate tenors are specified then Linear Interpolation (in
                accordance with the 2000 ISDA Definitions, Section 8.3.
                Interpolation) is assumed to apply. Alternatively, an
                actual known stub rate or stub amount may be specified.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Swap">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining swap streams and additional payments between
            the principal parties involved in the swap.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Product">
            <xsd:sequence>
              <xsd:element name="swapStream" type="InterestRateStream" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The swap streams.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="earlyTerminationProvision" type="EarlyTerminationProvision" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Parameters specifying provisions relating to the
                    optional and mandatory early terminarion of a swap
                    transaction.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="cancelableProvision" type="CancelableProvision" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    A provision that allows the specification of an
                    embedded option within a swap giving the buyer of the
                    option the right to terminate the swap, in whole or in
                    part, on the early termination date.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="extendibleProvision" type="ExtendibleProvision" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    A provision that allows the specification of an
                    embedded option with a swap giving the buyer of the
                    option the right to extend the swap, in whole or in
                    part, to the extended termination date.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="additionalPayment" type="Payment" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Additional payments between the principal parties.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="additionalTerms" type="SwapAdditionalTerms" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Contains any additional terms to the swap contract.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SwapAdditionalTerms">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            Additional terms to a swap contract.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="bondReference" type="BondReference" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Reference to a bond underlyer to represent an asset swap or
                Condition Precedent Bond.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Swaption">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type to define an option on a swap.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Product">
            <xsd:sequence>
              <xsd:group ref="BuyerSeller.model"/>
              <xsd:element name="premium" type="Payment" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The option premium amount payable by buyer to seller on
                    the specified payment date.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="exercise"/>
              <xsd:element name="exerciseProcedure" type="ExerciseProcedure" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    A set of parameters defining procedures associated with
                    the exercise.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="calculationAgent" type="CalculationAgent" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The ISDA Calculation Agent responsible for performing
                    duties associated with an optional early termination.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:choice minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    In the absence of both cashSettlement and (explicit)
                    physicalSettlement terms, physical settlement is
                    inferred.
                  </xsd:documentation>
                </xsd:annotation>
                <xsd:element name="cashSettlement" type="CashSettlement">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">
                      If specified, this means that cash settlement is
                      applicable to the transaction and defines the
                      parameters associated with the cash settlement
                      procedure. If not specified, then physical settlement
                      is applicable.
                    </xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
                <xsd:element name="physicalSettlement" type="SwaptionPhysicalSettlement">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">
                      If specified, this defines physical settlement terms
                      which apply to the transaction.
                    </xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:choice>
              <xsd:element name="swaptionStraddle" type="xsd:boolean">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    Whether the option is a swaption or a swaption
                    straddle.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="swaptionAdjustedDates" type="SwaptionAdjustedDates" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    The adjusted dates associated with swaption exercise.
                    These dates have been adjusted for any applicable
                    business day convention.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element ref="swap"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SwaptionAdjustedDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type describing the adjusted dates associated with swaption
            exercise and settlement.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="exerciseEvent" type="ExerciseEvent" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The adjusted dates associated with an individual swaption
                exercise date.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="YieldCurveMethod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the parameters required for each of the ISDA
            defined yield curve methods for cash settlement.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:sequence>
            <xsd:element name="settlementRateSource" type="SettlementRateSource" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  The method for obtaining a settlement rate. This may be
                  from some information source (e.g. Reuters) or from a set
                  of reference banks.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="quotationRateType" type="QuotationRateTypeEnum">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Which rate quote is to be observed, either Bid, Mid,
                  Offer or Exercising Party Pays. The meaning of Exercising
                  Party Pays is defined in the 2000 ISDA Definitions,
                  Section 17.2. Certain Definitions Relating to Cash
                  Settlement, paragraph (j)
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="bulletPayment" type="BulletPayment" substitutionGroup="product">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A product to represent a single known payment.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="capFloor" type="CapFloor" substitutionGroup="product">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A cap, floor or cap floor structures product definition.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="floatingRateCalculation" type="FloatingRateCalculation" substitutionGroup="rateCalculation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A floating rate calculation definition.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fra" type="Fra" substitutionGroup="product">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A forward rate agreement product definition.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="inflationRateCalculation" type="InflationRateCalculation" substitutionGroup="rateCalculation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            An inflation rate calculation definition.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rateCalculation" type="Rate" abstract="true">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            The base element for the floating rate calculation definitions.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="swap" type="Swap" substitutionGroup="product">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A swap product definition.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="swaption" type="Swaption" substitutionGroup="product">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A swaption product definition.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group name="CashSettlementMethods2006.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This model group holds cash settlement methods that were
            defined in the 2006 Definitions and were not carried over to
            the 2021 Definitions. These methods should not be used in
            trades based on the 2021 Definitions.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
          <xsd:element name="cashPriceMethod" type="CashPriceMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2006 ISDA Definitions, Section
                18.3. Cash Settlement Methods, paragraph (a).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashPriceAlternateMethod" type="CashPriceMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2006 ISDA Definitions, Section
                18.3. Cash Settlement Methods, paragraph (b).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="parYieldCurveAdjustedMethod" type="YieldCurveMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2006 ISDA Definitions, Section
                18.3. Cash Settlement Methods, paragraph (c).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="zeroCouponYieldAdjustedMethod" type="YieldCurveMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2006 ISDA Definitions, Section
                18.3. Cash Settlement Methods, paragraph (d).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="crossCurrencyMethod" type="CrossCurrencyMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2006 ISDA Definitions, Section
                18.3. Cash Settlement Methods, paragraph (f) (published in
                Supplement number 58).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
      </xsd:group>
      <xsd:group name="CashSettlementMethods2006and2021.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This model group holds cash settlement methods that are defined
            in the 2021 Definitions that were also defined in the 2006
            Definitions.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
          <xsd:element name="parYieldCurveUnadjustedMethod" type="YieldCurveMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount.
                This method is defined in the 2021 ISDA Definitions,
                section 18.2.7. The method is also defined in the 2006 ISDA
                Definitions, Section 18.3. Cash Settlement Methods,
                paragraph (e).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="collateralizedCashPriceMethod" type="CollateralizedCashPriceMethod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An ISDA defined cash settlement method used for the
                determination of the applicable cash settlement amount. The
                method is defined in the 2021 ISDA Definitions, Section
                18.2.6. Note: the 2021 Definition has different fields than
                appeared in the 2006 Definitions; this sctructure handles
                both methods.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
      </xsd:group>
      <xsd:group name="CashSettlementMethods2021.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            This model group holds cash settlement methods that are defined
            in the 2021 Definitions that were not previously defined in the
            ISDA Definitions. These methods should not be used for trades
            based on the 2006 Definitions.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
          <xsd:element name="midMarketValuation" type="MidMarketValuation">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                ISDA defined cash settlement methods based on mid-market
                valuation. These methods are defined in the 2021 ISDA
                Definitions, Section 18.2.1-3, Cash Settlement Methods.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="replacementValue" type="ReplacementValue">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                ISDA defined cash settlement methods based on replacement
                value. These methods are defined in the 2021 ISDA
                Definitions, Section 18.2.4-5, Cash Settlement Methods.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
      </xsd:group>
      <xsd:group name="MandatoryEarlyTermination.model">
        <xsd:choice>
          <xsd:element name="mandatoryEarlyTermination" type="MandatoryEarlyTermination">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A mandatory early termination provision to terminate the
                swap at fair value.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence>
            <xsd:element name="mandatoryEarlyTerminationDateTenor" type="Interval">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Period after trade date of the mandatory early
                  termination date.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="mandatoryEarlyTermination" type="MandatoryEarlyTermination" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A mandatory early termination provision to terminate the
                  swap at fair value.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:choice>
      </xsd:group>
      <xsd:group name="OptionalEarlyTermination.model">
        <xsd:choice>
          <xsd:element name="optionalEarlyTermination" type="OptionalEarlyTermination">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An option for either or both parties to terminate the swap
                at fair value.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence>
            <xsd:element name="optionalEarlyTerminationParameters" type="ExercisePeriod">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  Definition of the first early termination date and the
                  frequency of the termination dates subsequent to that.
                  American exercise is defined by having a frequency of one
                  day.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="optionalEarlyTermination" type="OptionalEarlyTermination" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  An option for either or both parties to terminate the
                  swap at fair value.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:choice>
      </xsd:group>
    </xsd:schema>