Schema Name: fpml-fx-5-9.xsd
Target Namespace: http://www.fpml.org/FpML-5/recordkeeping
Collapse XSD Schema Code:

<!-- 
  == Copyright (c) 2002-2017 All rights reserved. 
  == Financial Products Markup Language is subject to the FpML public license. 
  == A copy of this license is available at http://www.fpml.org/license/license.html
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/recordkeeping" xmlns:fpml-annotation="http://www.fpml.org/annotation" targetNamespace="http://www.fpml.org/FpML-5/recordkeeping" ecore:documentRoot="FpML" ecore:nsPrefix="" ecore:package="org.fpml.recordkeeping" version="$Revision: 12910 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:include schemaLocation="fpml-option-shared-5-9.xsd" />
  <xsd:simpleType name="PointValue">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Constrains the forward point tick/pip factor to 1, 0.1, 0.01, 0.001, etc.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:decimal">
      <xsd:pattern value="1" />
      <xsd:pattern value="0.0*1" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="CrossRate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that is used for including the currency exchange rates used to cross between the traded currencies for non-base currency FX contracts.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="QuotedCurrencyPair">
        <xsd:sequence>
          <xsd:element name="rate" type="PositiveDecimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The exchange rate used to cross between the traded currencies.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence minOccurs="0">
            <xsd:element name="spotRate" type="PositiveDecimal" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">An optional element used for FX forwards and certain types of FX OTC options. For deals consumated in the FX Forwards Market, this represents the current market rate for a particular currency pair.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="forwardPoints" type="xsd:decimal" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">An optional element used for deals consumated in the FX Forwards market. Forward points represent the interest rate differential between the two currencies traded and are quoted as a preminum or a discount. Forward points are added to, or subtracted from, the spot rate to create the rate of the forward trade.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CutName">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Allows for an option expiry cut time to be described by name, as per established market convention. Note: the FX Working Group has resolved not to extend the cutNameScheme coding scheme. The expiryTime element should be used in preference to cutName as the formal definition of FX option expiry time.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="cutNameScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/cut-name" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DualCurrencyFeature">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the parameters for a dual currency option transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="currency" type="Currency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Alternate currency i.e. the currency in which the deposit will be redeemed in the event that the spot rate fixes below the strike rate at the specified fixing date and time.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fixingDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which the fx spot rate is compared against the strike rate, in order to determine the delivery currency. This is the expiry date of a put option on the Deposit/Alternate currency couple. Also known as "valuation date" or "reference date".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fixingTime" type="BusinessCenterTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The time at which the fx spot rate observation is made i.e. the option cut off time on the expiry date. Also known as "valuation time".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="strike" type="DualCurrencyStrikePrice" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The rate at which the deposit will be converted to the Alternate currency, in the event that the spot rate is strictly lower than the strike rate at the specified fixing date and time.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="spotRate" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The spot rate at the time the trade was agreed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="interestAtRisk" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether the interest component of the redemption amount is subject to conversion to the Alternate currency, in the event that the spot rate is strictly lower than the strike rate at the specified fixing date and time.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DualCurrencyStrikePrice">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes the rate of exchange at which the embedded option in a Dual Currency Deposit has been struck.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="rate" type="PositiveDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The rate of exchange between the two currencies of the leg of a deal.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="strikeQuoteBasis" type="DualCurrencyStrikeQuoteBasisEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The method by which the strike rate is quoted, in terms of the deposit (principal) and alternate currencies.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExchangeRate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that is used for describing the exchange rate for a particular transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the two currencies for an FX trade and the quotation relationship between the two currencies.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rate" type="PositiveDecimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The rate of exchange between the two currencies of the leg of a deal. Must be specified with a quote basis.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence minOccurs="0">
        <xsd:element name="spotRate" type="PositiveDecimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">An element used for FX forwards and certain types of FX OTC options. For deals consumated in the FX Forwards Market, this represents the current market rate for a particular currency pair. For barrier and digital/binary options, it can be useful to include the spot rate at the time the option was executed to make it easier to know whether the option needs to move "up" or "down" to be triggered.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:sequence minOccurs="0">
          <xsd:element name="forwardPoints" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An optional element used for deals consumated in the FX Forwards market. Forward points represent the interest rate differential between the two currencies traded and are quoted as a preminum or a discount. Forward points are added to, or subtracted from, the spot rate to create the rate of the forward trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="pointValue" type="PointValue" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An optional element that documents the size of point (pip) in which a rate was quoted (or in this case, forwardPoints are calculated). Point (pip) size varies by currency pair: major currencies are all traded in points of 0.0001, with the exception of JPY which has a point size of 0.01.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:sequence>
      <xsd:element name="crossRate" type="CrossRate" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An optional element that allow for definition of the currency exchange rates used to cross between the traded currencies for non-base currency FX contracts.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxAmericanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the characteristics for american exercise of FX products.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxDigitalAmericanExercise">
        <xsd:sequence>
          <xsd:element name="multipleExercise" type="FxMultipleExercise" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Characteristics for multiple exercise.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxAsianFeature">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Descibes the averaging period properties for an asian option.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="primaryRateSource" type="InformationSource" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The primary source for where the rate observation will occur. Will typically be either a page or a reference bank published rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="secondaryRateSource" type="InformationSource" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An alternative, or secondary, source for where the rate observation will occur. Will typically be either a page or a reference bank published rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fixingTime" type="BusinessCenterTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The time at which the spot currency exchange rate will be observed. It is specified as a time in a business day calendar location, e.g. 11:00am London time.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence minOccurs="0">
        <xsd:element name="observationSchedule" type="FxAverageRateObservationSchedule" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Parametric schedule of rate observations.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:group ref="FxRateObservation.model" minOccurs="0" />
      </xsd:sequence>
      <xsd:element name="payoutFormula" type="String" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The description of the mathematical computation for how the payout is computed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="precision" type="xsd:nonNegativeInteger" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7 in the FpML document since the percentage is expressed as a decimal, e.g. 9.876543% (or 0.09876543) being rounded to the nearest 5 decimal places is 9.87654% (or 0.0987654).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxAverageRateObservation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that, for average rate options, is used to describe each specific observation date, as opposed to a parametric frequency of rate observations.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="date" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A specific date for which an observation against a particular rate will be made and will be used for subsequent computations.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="averageRateWeightingFactor" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An optional factor that can be used for weighting certain observation dates. Typically, firms will weight each date with a factor of 1 if there are standard, unweighted adjustments.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rate" type="NonNegativeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The observed rate of exchange between the two option currencies. In the absence of rateObservationQuoteBasis, the rate is assumed to be quoted as per option strike/strikeQuoteBasis.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxAverageRateObservationSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes average rate options rate observations. This is used to describe a parametric frequency of rate observations against a particular rate. Typical frequencies might include daily, every Friday, etc.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="startDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The start of the period over which observations are made to determine whether a trigger has occurred.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="endDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The end of the period over which observations are made to determine whether a trigger event has occurred.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationPeriodFrequency" type="CalculationPeriodFrequency" minOccurs="0">
        <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:complexType>
  <xsd:complexType name="FxBarrierFeature">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the properties of an FX barrier.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="barrierType" type="FxBarrierTypeEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This specifies whether the option becomes effective ("knock-in") or is annulled ("knock-out") when the respective barrier event occurs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="direction" type="FxBarrierDirectionEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This specifies whether the barrier direction is "Up" or "Down"; that is, that a barrier event occurs if the spot rate is at or above the trigger rate, or at or below the trigger rate during the period of observation of an american barrier, or at the times of observation of a discrete or european barrier.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the two currencies for an FX trade and the quotation relationship between the two currencies.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="triggerRate" type="PositiveDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The market rate is observed relative to the trigger rate, and if it is found to be on the predefined side of (above or below) the trigger rate, a trigger event is deemed to have occurred.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="informationSource" type="InformationSource" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The information source where a published or displayed market rate will be obtained, e.g. Telerate Page 3750.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:sequence>
          <xsd:sequence>
            <xsd:element name="observationStartDate" type="xsd:date" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The date on which the observation period for an american barrier starts. If the start date is not present, then the date and time of the start of the period is deemed to be the date and time the transaction was entered into.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="observationStartTime" type="BusinessCenterTime" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The time on the start date at which the observation period for an american barrier starts. If the time is not present and the start date is equivalent to the transaction date, the time is deemed to be the time the transaction was entered into. If the time is not present and the start date is other than the transaction date, then the time is deemed to be the same as the expiration time.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
          <xsd:sequence minOccurs="0">
            <xsd:element name="observationEndDate" type="xsd:date" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The date on which the observation period for an american barrier ends. If the end date is not present, then the date and time of the end of the period is deemed to be the date and time of expiration.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="observationEndTime" type="BusinessCenterTime" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The time on the end date at which the observation period for an american barrier ends. If the time is not present, then the time is deemed to be the same as the expiration time.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
        <xsd:element name="observationPoint" type="FxBusinessCenterDateTime" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The dates and times at which rate observations are made to determine whether a barrier event has occurred for a discrete or european barrier. If the time is not present then the time is deemed to be the same as the expiration time.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxBusinessCenterDateTime">
    <xsd:sequence>
      <xsd:element name="date" type="xsd:date" minOccurs="0" />
      <xsd:element name="time" type="BusinessCenterTime" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxDigitalAmericanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Descrines the characteristics for American exercise in FX digital options.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="commencementDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The earliest date on which the option can be exercised.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expiryDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The latest date on which the option can be exercised.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expiryTime" type="BusinessCenterTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Time at which the option expires on the expiry date, at the specified business center. This component represents the formal definition of option expiry time.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cutName" type="CutName" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A code by which the expiry time is known in the market. This element is available to supplement the formal definition of expiry time, and must not be used in absence of the expiryTime element.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="latestValueDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The latest date on which both currencies traded will settle.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxDigitalOption">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes an option having a triggerable fixed payout.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Option">
        <xsd:sequence>
          <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Effective date for a forward starting derivative. If this element is not present, the effective date is the trade date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="tenorPeriod" type="Period" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A tenor expressed as a period type and multiplier (e.g. 1D, 1Y, etc.)</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence>
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines the parameters for option exercise.</xsd:documentation>
            </xsd:annotation>
            <xsd:choice>
              <xsd:sequence>
                <xsd:element name="americanExercise" type="FxDigitalAmericanExercise">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">The parameters for defining the exercise period for an American style option.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
                <xsd:element name="touch" type="FxTouch" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">Defines one or more conditions underwhich the option will payout if exercisable.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
              <xsd:sequence>
                <xsd:element name="europeanExercise" type="FxEuropeanExercise">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">The parameters for defining the exercise period for an European style option.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
                <xsd:element name="trigger" type="FxTrigger" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">Defines one or more conditions underwhich the option will payout if exercisable.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:choice>
            <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:sequence>
          <xsd:element name="payout" type="FxOptionPayout">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The amount of currency which becomes payable if and when a trigger event occurs.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="premium" type="FxOptionPremium" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Premium amount or premium installment amount for an option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxDisruption">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing how disruption for a specified currency pair should be handled</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="baseCurrency" type="Currency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The base currency in the exchange rate monitored for disruption events. Typically this will be the settlement currency, but coud be an intermediate currency, in the case where disruption provisions are defined for components of a cross rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="referenceCurrency" type="Currency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The reference currency in the exchange rate being monitored for disruption events.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="provisions" type="FxDisruptionProvisions" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">One or more provisions describiing disruption events and how they will be handled.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxDisruptionEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The base class for all disruption events</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  <xsd:complexType name="FxDisruptionEvents">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A container for the disruption event set</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="fxDisruptionEvent" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxDisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The base class for all disruption fallbacks</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  <xsd:complexType name="FxDisruptionFallbacks">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A container for the disruption fallback set</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="fxDisruptionFallback" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxDisruptionProvisions">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a set of disruption events and the fallbacks they will invoke</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="events" type="FxDisruptionEvents" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If any of the events listed in this section occurs then the associated fallbacks willl be applied.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fallbacks" type="FxDisruptionFallbacks" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes the fallback processing or termination procedures that can be applied if an event occurs,</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="applicableTerms" type="FxTemplateTerms" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates the template terms that describe the events and fallbacks.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxEuropeanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the characteristics for European exercise of FX products.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="expiryDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Represents a standard expiry date as defined for an FX OTC option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expiryTime" type="BusinessCenterTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Time at which the option expires on the expiry date, at the specified business center. This component represents the formal definition of option expiry time.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cutName" type="CutName" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A code by which the expiry time is known in the market. This element is available to supplement the formal definition of expiry time, and must not be used in absence of the expiryTime element.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="valueDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The date on which both currencies traded will settle.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxFallbackReferencePrice">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes an alternative set of price sources</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxDisruptionFallback">
        <xsd:sequence>
          <xsd:group ref="PrioritizedRateSource.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxFixingScheduleSimple">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the FX fixing schedule, a single continuous observation period which follows the applicable business day schedule for the quoted rate source.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence>
        <xsd:sequence>
          <xsd:element name="startDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The start of the period over which observations are made to determine whether a trigger has occurred.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="endDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The end of the period over which observations are made to determine whether a trigger event has occurred.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:sequence>
      <xsd:element name="dayType" type="DayTypeEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether the schedule follows the business or calendar days.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Rate Source business days modeled as Business Centers or Reference.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:element name="fixingDate" type="xsd:date" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An explicit list of dates in the schedule. For documentation purpose only.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxFlexibleForward">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Product model for a flexible-term fx forward (also known as callable forward, window forward). This is a term forward transaction over a specific period, allowing the client full flexibility on the timing of the transactional flow(s). The product allows for (full or partial) execution at a predetermined forward rate, at any time between the start date and the expiry date. Although, the product is an outright, it has some option-like characteristics, leading to the use of option components in the model: (i) the BuyerSeller model expresses the roles of the parties in the overall transaction - the client "buys" the product (ii) the PutCallCurrency model expresses the buyer's perspective on the exchanged currencies i.e. the client may buy (call) or sell (put) the notional currency for the alternative currency.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="BuyerSeller.model" />
          <xsd:group ref="PutCallCurrency.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A model defining the currencies exchanged by the parties to an option.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:sequence>
            <xsd:element name="notionalAmount" type="NonNegativeMoney">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The aggregate notional amount which will be exchanged, possibly as multiple partial executions, during the course of the execution period. Any residual notional which remains unexchanged at the expiry date will automatically be executed at the applicable exchange rate (strike).</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="minimumExecutionAmount" type="PositiveMoney" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The minimum notional amount which must be executed in any single transaction.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="settlementAmount" type="NonNegativeMoney" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The total amount of settlement currency that will be paid over the life of the trade if calculable.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
          <xsd:element name="executionPeriodDates" type="FxFlexibleForwardExecutionPeriod">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The period during which the client has the right to execute a transaction, on any business day defined by reference to the specified business centers, subject to the constraints of the minimum execution amount and aggregate total notional amount. * Period dates are inclusive i.e. the expiry date is the final date on which execution may occur.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence minOccurs="0">
            <xsd:element name="earliestExecutionTime" type="BusinessCenterTime" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The earliest time of day at the specified business center, at which the client may execute a transaction.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="latestExecutionTime" type="BusinessCenterTime" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The latest time of day at the specified business center, at which the client may execute a transaction.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
          <xsd:element name="settlementDateOffset" type="RelativeDateOffset" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The date on which delivery of the transacted currency amounts will occur, expressed as an offset from the execution date. * This property is optional in the schema, allowing it to be omitted by systems which do not support it; however this information would be expected in contractual documentation (e.g. termsheet, confirmation).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="finalSettlementDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The final date for settlement. This is the date on which any residual exchange amount will be delivered. * This is an adjusted date i.e. a good business day for delivery in the location(s) specified in executionPeriodDates /businessCenters</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="forwardRate" type="FxFlexibleForwardRate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Definition of the forward exchange rate for transactions executed during the execution period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="additionalPayment" type="Payment" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Fee paid by the client at inception (analagous to an option premium).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxFlexibleForwardExecutionPeriod">
    <xsd:sequence>
      <xsd:sequence minOccurs="0">
        <xsd:element name="startDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Start date of the execution period/window.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="expiryDate" type="xsd:date" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Expiry (maturity) date of the execution period.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="businessCenters" type="BusinessCenters" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Business centers for determination of execution period business days.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="required" />
  </xsd:complexType>
  <xsd:complexType name="FxFlexibleForwardRate">
    <xsd:complexContent>
      <xsd:extension base="QuotedCurrencyPair">
        <xsd:sequence>
          <xsd:element name="rate" type="PositiveDecimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Constant rate value, applicable for the duration of the execution period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="spotRate" type="PositiveDecimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The spot exchange rate for the specified currency pair as per the specified quote basis, as at the trade date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxForwardVolatilityAgreement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a contract on future levels of implied volatility. The main characteristic of this product is that the underlying is a straddle (underlying options) with a specific tenor starting from the fixing (effective or pricing) date, and are priced on that fixing date using a level of volatility that is agreed at the time of execution of the volatility agreement.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="BuyerSeller.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A buyer buys the straddle: (i) pays the Premium for the straddle and (ii) has the right to exercise the underlying options.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A currency Pair the straddle is based on.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fixingDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The date when the underlying options are priced using the agreed forwardVolatilityStrikePrice and other market factors as agreed by the parties. Also known as "Effective Date" or "Reference Date".</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fixingTime" type="BusinessCenterTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The time of the fixing date when the underlying options are priced using the agreed forwardVolatilityStrikePrice and other market factors as agreed by the parties.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="forwardVolatilityStrikePrice" type="PositiveDecimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">the Volatility level as agreed on the Trade Date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="straddle" type="FxStraddle">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">details of the straddle (underlying options).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="additionalPayment" type="Payment" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The currency, amount and payment details for the Forward Volatility Agreement, as agreed at the time of execution.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxMultipleExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the limits on the size of notional when multiple exercise is allowed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="minimumNotionalAmount" type="NonNegativeMoney" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The minimum amount of notional that can be exercised.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="maximumNotionalAmount" type="NonNegativeMoney" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The maximum amount of notiional that can be exercised.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxOption">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes an FX option with optional asian and barrier features.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Option">
        <xsd:sequence>
          <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Effective date for a forward starting derivative. If this element is not present, the effective date is the trade date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="tenorPeriod" type="Period" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A tenor expressed as a period type and multiplier (e.g. 1D, 1Y, etc.)</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence>
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines the parameters for option exercise.</xsd:documentation>
            </xsd:annotation>
            <xsd:choice minOccurs="0">
              <xsd:element name="americanExercise" type="FxAmericanExercise">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">The parameters for defining the exercise period for an American style option.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="europeanExercise" type="FxEuropeanExercise">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">The parameters for defining the exercise period for an European style option.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:choice>
            <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:sequence>
          <xsd:sequence>
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines the underlying FX transaction.</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="putCurrencyAmount" type="NonNegativeMoney">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The currency amount that the option gives the right to sell.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="callCurrencyAmount" type="NonNegativeMoney">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The currency amount that the option gives the right to buy.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
          <xsd:element name="soldAs" type="PutCallEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Indicates how the product was original sold as a Put or a Call.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence>
            <xsd:element name="strike" type="FxStrikePrice">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Defines the option strike price.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="spotRate" type="PositiveDecimal" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">An optional element used for FX forwards and certain types of FX OTC options. For deals consumated in the FX Forwards Market, this represents the current market rate for a particular currency pair. For barrier and digital/binary options, it can be useful to include the spot rate at the time the option was executed to make it easier to know whether the option needs to move "up" or "down" to be triggered.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
          <xsd:element name="features" type="FxOptionFeatures" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Describes additional features within the option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="premium" type="FxOptionPremium" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Premium amount or premium installment amount for an option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlement" type="FxCashSettlement" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the currency and fixing details for cash settlement. This optional element is produced only where it has been specified at execution time that the option wlll be settled into a single cash payment - for example, in the case of a non-deliverable option (although note that an Fx option may be contractually cash settled, without necessarily being non-deliverable).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxOptionFeatures">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the features that may be present in an FX option.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="asian" type="FxAsianFeature" />
        <xsd:element name="barrier" type="FxBarrierFeature" minOccurs="0" maxOccurs="unbounded" />
      </xsd:sequence>
      <xsd:element name="barrier" type="FxBarrierFeature" maxOccurs="unbounded" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="FxOptionPayout">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that contains full details of a predefined fixed payout which may occur (or not) in a Barrier Option or Digital Option when a trigger event occurs (or not).</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NonNegativeMoney">
        <xsd:sequence>
          <xsd:element name="payoutStyle" type="PayoutEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The trigger event and payout may be asynchonous. A payout may become due on the trigger event, or the payout may (by agreeement at initiation) be deferred (for example) to the maturity date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementInformation" type="SettlementInformation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The information required to settle a currency payment that results from a trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxOptionPremium">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that specifies the premium exchanged for a single option trade or option strategy.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NonNegativePayment">
        <xsd:sequence>
          <xsd:element name="settlementInformation" type="SettlementInformation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The information required to settle a currency payment that results from a trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="quote" type="PremiumQuote" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">This is the option premium as quoted. It is expected to be consistent with the premiumAmount and is for information only.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxPerformanceFixedLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">FX Performance Fixed Leg describes Fixed FX Rate Payer and Fixed Rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxPerformanceLeg">
        <xsd:sequence>
          <xsd:element name="fixedRate" type="PositiveDecimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Fixed Rate means a rate, expressed as a decimal, equal to the per annum rate specified as such in the Confirmation for the Non-Deliverable Swap FX Transaction or that party (i.e., a per annum rate of 15.10% as specified in a Confirmation shall be expressed as 0.1510 for calculation purposes).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxPerformanceFloatingLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Fx Performance Floating Leg describes Floating FX Rate Payer.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxPerformanceLeg" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxPerformanceLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Floating FX Rate describes Fixed FX Rate Payer and Fixed Rate</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="Payer.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a servicingParty or accountBeneficiary identifier defined elsewhere in the document. Floating FX Rate Payer means in respect of an Non-Deliverable Swap FX Transaction, the party specified as such in the related Confirmation.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:group ref="Receiver.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a servicingParty or accountBeneficiary identifier defined elsewhere in the document. Floating FX Rate Receiver means in respect of an Non-Deliverable Swap FX Transaction, the party specified as such in the related Confirmation.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxPerformanceSwap">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes an FX volatility and variance swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A Currency Pair with regards to this transaction and the quoting convention.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="vegaNotional" type="NonNegativeMoney">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Vega Notional means the currency and amount specified as such in the related Confirmation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="notional" type="NonNegativeMoney" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Notional Amount means, in the case of Transaction Type Variance Swap, the currency and amount specified as such in the related Confirmation or an amount calculated in accordance with the following: Notional Amount = Vega Notional Amount / (0.02 x Fixed FX Rate). This element must be produced in case of Variance Swap transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fixedLeg" type="FxPerformanceFixedLeg">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Fixed FX Rate component describes the Fixed FX Rate and Fixed FX Rate Payer as such in the Confirmation for the Non-Deliverable Swap FX Transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="floatingLeg" type="FxPerformanceFloatingLeg">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Floating FX Rate component describes the Floating FX Rate Payer of the rate determined in accordance with the Floating FX Rate Option specified in the Definitions.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fixingInformationSource" type="FxSpotRateSource" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Fixing Information source parameters to determine the rate observed for each good business day within the Fixing Schedule.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fixingSchedule" type="FxFixingScheduleSimple">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Parametric schedule of rate observation dates.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice>
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Valuation Date is the rate calculation date. Unless otherwise specified in the related Confirmation, the Valuation Date will be, in respect of a Non-Deliverable Swap FX Transaction, the Final Observation Date. The valuation date can be: [date] [Final Observation Date][The first Business Day following the Final Observation Date].</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="valuationDate" type="xsd:date">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Final Observation Date when Settlement Amount and Settlement Amount Payer determination date.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="valuationDateOffset" type="FxValuationDateOffset">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Valuation date offset relative to the Final Observation Date and can be: [Final Observation Date][The first Business Day following the Final Observation Date].</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="settlementDate" type="AdjustableOrAdjustedDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The date on which the Settlement Amount will be settled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="annualizationFactor" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">This specifies the numerator of an annualization factor. Frequently this number is equal to the number of rate observations in a year e.g. Daily Observations: 252.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="meanAdjustment" type="xsd:boolean">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies whether "Mean Adjustment" is applicable or not in the calculation of the Realized Volatility.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="additionalPayment" type="Payment" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Additional Payment means, in respect of an FX Transaction, where such fee is required, and a Transaction Fee Payment Date, the amount, if any, that is specified or otherwise determined as provided in the related Confirmation and, subject to any applicable condition precedent, is payable by one party to the other as further specified or otherwise determined as provided in the related Confirmation on the Transaction Fee Payment Date or on each Transaction Fee Payment Date if more than one is specified, for value on such date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="cashSettlement" type="FxCashSettlementSimple" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the Settlement currency and fixing details for cash settlement. The FX Volatility and FX Variance Swaps are inherently cash settled, but into the notional currency. The optional cashSettlement block is provided for the case where the Settlement Currency differs from that of the Notional.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxSingleLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining either a spot or forward FX transactions.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="FxCoreDetails.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxStraddle">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Straddle details. Straddle is composed of two options: a call and a put involving the quotedCurrencyPair.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="straddleType" type="FxStraddleTypeEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type Straddle as agreed on the Trade Date, e.g. at the money forward straddle, or delta neutral straddle.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="tenorPeriod" type="Period" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A Tenor (time to maturity) of the straddle starting from the Fixing Date (e.g. 1y, 3m)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence>
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the parameters for straddle exercise.</xsd:documentation>
        </xsd:annotation>
        <xsd:element name="europeanExercise" type="FxEuropeanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for exercising the FxStraddle (underlying options), the underlying options are always European style options.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <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:sequence>
      <xsd:sequence>
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the underlying FX transaction.</xsd:documentation>
        </xsd:annotation>
        <xsd:element name="notional" type="NonNegativeMoney">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The currency amount for the FxStraddle. This will be the notional for the underlying options, which may be exercised by the Buyer.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="counterCurrency" type="Currency">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The counter currency and amount for the FxStraddle. The Counter Currency Amount is determined using the notional and the Strike Price (which is determined at the fixingTime on the fixingDate).</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="premium" type="FxStraddlePremium" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the FX Straddle premium amount, payer and dates. This amount is also determined at the fixingTime on the fixingDate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="settlementDate" type="AdjustableOrAdjustedDate" minOccurs="0" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="The settlement date is already expressed by europeanExercise/valueDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">DEPRECATED. The settlement date is already expressed by europeanExercise/valueDate. The Settlement Date for the FxStraddle (if exercised at the expiryTime on the expiry Date).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="cashSettlement" type="FxCashSettlementSimple" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the settlement type for the FxStraddle. If deliverable then this element is removed. If non-deliverable, then the In-The-Money amount of the relevant option within the FxStraddle is paid by the Seller to the Buyer. The In-The-Money amount is calculated using the parameters within this element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxStraddlePremium">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Currency and Amount to be paid by the Buyer to the Seller. The straddle premium is calculated on the Fixing Date using the Forward Volatility Agreement parameters.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PaymentBaseExtended">
        <xsd:sequence>
          <xsd:element name="paymentCurrency" type="IdentifiedCurrency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The Premium Payment Currency.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementInformation" type="SettlementInformation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The Seller details for settling the FxStraddlePremium.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxStrikePrice">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes the rate of exchange at which the option has been struck.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="rate" type="PositiveDecimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The rate of exchange between the two currencies of the leg of a deal.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="strikeQuoteBasis" type="StrikeQuoteBasisEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The method by which the strike rate is quoted.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxSwap">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining either a spot/forward or forward/forward FX swap transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="nearLeg" type="FxSwapLeg">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The FX transaction with the earliest value date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="farLeg" type="FxSwapLeg">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The FX transaction with the latest value date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxSwapLeg">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A type defining the details for one of the transactions in an FX swap.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="tradeIdentifierReference" type="PartyTradeIdentifierReference" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A reference to a party trade ID. This is provided in case the message creator wishes to record that the swap leg is assocatiated with a particular trade identifier; typically this is used for identifying a USI assocatied wih the leg.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="FxCoreDetails.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxTemplateTerms">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference a code defining the origin of the trade template terms</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="fxTemplateTermsScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/fx-template-terms" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="FxTouch">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes an american or discrete touch or no-touch trigger applied to an FX binary or digital option.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="touchCondition" type="TouchConditionEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This specifies whether the applied trigger is a touch or no touch type.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="direction" type="TriggerConditionEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This specifies whether the trigger direction is "AtOrAbove" or "AtOrBelow; that is, that a barrier event occurs if the spot rate is at or above the trigger rate, or at or below the trigger rate during the period of observation of an american trigger, or at the times of observation of a discrete trigger. DEPRECATE: Values "Above" and "Below" are deprecated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the two currencies for an FX trade and the quotation relationship between the two currencies.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="triggerRate" type="PositiveDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The market rate is observed relative to the trigger rate, and if it is found to be on the predefined side of (above or below) the trigger rate, a barrier event is deemed to have occurred.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="spotRate" type="PositiveDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An optional element used for FX forwards and certain types of FX OTC options. For deals consumated in the FX Forwards Market, this represents the current market rate for a particular currency pair. For barrier and digital/binary options, it can be useful to include the spot rate at the time the option was executed to make it easier to know whether the market rate needs to move "up" or "down" to trigger a barrier event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="informationSource" type="InformationSource" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The information source where a published or displayed market rate will be obtained, e.g. Telerate Page 3750.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:sequence>
          <xsd:sequence>
            <xsd:element name="observationStartDate" type="xsd:date" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The date on which the observation period for an american trigger starts. If the start date is not present, then the date and time of the start of the period is deemed to be the date and time the transaction was entered into.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="observationStartTime" type="BusinessCenterTime" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The time on the start date at which the observation period for an american trigger starts. If the time is not present and the start date is equivalent to the transaction date, the time is deemed to be the time the transaction was entered into. If the time is not present and the start date is other than the transaction date, then the time is deemed to be the same as the expiration time.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
          <xsd:sequence minOccurs="0">
            <xsd:element name="observationEndDate" type="xsd:date" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The date on which the observation period for an american trigger ends. If the end date is not present, then the date and time of the end of the period is deemed to be the date and time of expiration.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="observationEndTime" type="BusinessCenterTime" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The time on the end date at which the observation period for an american trigger ends. If the time is not present, then the time is deemed to be the same as the expiration time.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
        <xsd:element name="observationPoint" type="FxBusinessCenterDateTime" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The dates and times at which rate observations are made to determine whether a barrier event has occurred for a discrete trigger. If the time is not present then the time is deemed to be the same as the expiration time.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxTrigger">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a european trigger applied to an FX digtal option.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxTriggerBase">
        <xsd:sequence>
          <xsd:element name="informationSource" type="InformationSource" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The information source where a published or displayed market rate will be obtained, e.g. Telerate Page 3750.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxTriggerBase">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a european trigger applied to an FX digtal option.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="triggerCondition" type="TriggerConditionEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The condition that applies to a european trigger applied to an FX digital option. It determines where the rate at expiry date and time at must be relative to the triggerRate for the option to be exercisable. The allowed values are "AtOrAbove" and "AtOrBelow". DEPRECATE: Values "Above" and "Below" are deprecated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the two currencies for an FX trade and the quotation relationship between the two currencies.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="triggerRate" type="PositiveDecimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The market rate is observed relative to the trigger rate, and if it is found to be on the predefined side of (above or below) the trigger rate, a barrier event is deemed to have occurred.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="spotRate" type="PositiveDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An optional element used for FX forwards and certain types of FX OTC options. For deals consumated in the FX Forwards Market, this represents the current market rate for a particular currency pair. For barrier and digital/binary options, it can be useful to include the spot rate at the time the option was executed to make it easier to know whether the market rate needs to move "up" or "down" to trigger a barrier event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxValuationDateOffset">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Valuation date offset is used in FX Variance Swap and Volatility Swap to always relate the Final Observation Date and can be: [Final Observation Date][The first Business Day following the Final Observation Date]</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Offset">
        <xsd:sequence>
          <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0"></xsd:group>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NonDeliverableSubstitute">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a currency which may be delivered instead</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxDisruptionFallback">
        <xsd:sequence>
          <xsd:element name="currency" type="Currency" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The code for the currency which can be delivered if settlement in the original non-deliverable currency is not possible.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Postponement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a postponement</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxDisruptionFallback">
        <xsd:sequence>
          <xsd:element name="maximumNumberOfDays" type="xsd:positiveInteger" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The maximum number of days of postponement.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PremiumQuote">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes the option premium as quoted.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="value" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The value of the premium quote. In general this will be either a percentage or an explicit amount.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="quoteBasis" type="PremiumQuoteBasisEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The method by which the option premium was quoted.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PriceMateriality">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing the criteria for price materiality.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxDisruptionEvent">
        <xsd:sequence>
          <xsd:group ref="PrioritizedRateSource.model" />
          <xsd:element name="percentage" type="PositiveDecimal" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TermDeposit">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A class defining the content model for a term deposit product.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A pointer style reference to a servicingParty or accountBeneficiary identifier defined elsewhere in the document. The payer party (depositor) is paying the initial principal for the term deposit on the start date from a contractual point of view. The receiver party (deposit taker) is a receiver of the initial principal of the deposit on the start date.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="startDate" type="xsd:date" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The start date of the calculation period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="maturityDate" type="xsd:date" minOccurs="0">
            <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:group ref="FxTenor.model" minOccurs="0" />
          <xsd:element name="principal" type="PositiveMoney" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The principal amount of the trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fixedRate" type="PositiveDecimal" minOccurs="0">
            <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="dayCountFraction" type="DayCountFraction" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The day count fraction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="features" type="TermDepositFeatures" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An optional container that holds additional features of the deposit (e.g. Dual Currency feature).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="interest" type="Money" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The total interest of at maturity of the trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="payment" type="Payment" minOccurs="0" maxOccurs="unbounded">
            <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="TermDepositFeatures">
    <xsd:sequence>
      <xsd:element name="dualCurrency" type="DualCurrencyFeature" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="fxDigitalOption" type="FxDigitalOption" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An FX digital option transaction definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxFlexibleForward" type="FxFlexibleForward" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A flexible term fx forward product definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxForwardVolatilityAgreement" type="FxForwardVolatilityAgreement" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An FX Forward Volatility Agreement transaction definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxOption" type="FxOption" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An FX option transaction definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxSingleLeg" type="FxSingleLeg" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A simple FX spot or forward transaction definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxSwap" type="FxSwap" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An FX Swap transaction definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxVarianceSwap" type="FxPerformanceSwap" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An FX variance swap transaction definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxVolatilitySwap" type="FxPerformanceSwap" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An FX volatility swap transaction definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="termDeposit" type="TermDeposit" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A term deposit product definition.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="calculationAgentDetermination" type="FxDisruptionFallback" substitutionGroup="fxDisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Indicates that the Calculation Agent shall determine the Spot Rate (or a method for determining the Spot Rate) taking into consideration all available information that it reasonably and in good faith deems relevent.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="dualExchangeRate" type="FxDisruptionEvent" substitutionGroup="fxDisruptionEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">If present indicates that the event is considered to have occured if two or more numeric values of currency exchange rate specified in the Settllement Option are applicable to the transaction.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="exchangeRestrictions" type="FxDisruptionEvent" substitutionGroup="fxDisruptionEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">If present indicates that the event is considered to have occured if the settlement in either currency is prohibited or materially restricted.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fallbackReferencePrice" type="FxFallbackReferencePrice" substitutionGroup="fxDisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">If present indicates alternative price sources</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxDisruptionEvent" type="FxDisruptionEvent" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The abstract element used to create the extendible set of disruption events</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fxDisruptionFallback" type="FxDisruptionFallback" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The abstract element used to create the extendible set of disruption fallbacks.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="noFaultTermination" type="FxDisruptionFallback" substitutionGroup="fxDisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Indicates that the event may cause the transaction to terminate if all applicable provisions have been met.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="nonDeliverableSubstitute" type="NonDeliverableSubstitute" substitutionGroup="fxDisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">If present indicates that the obligation to pay the In-the-Money amount of foreign currency is replaced with an obligation to pay an equivalent amount in another currency.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="priceSourceDisruption" type="FxDisruptionEvent" substitutionGroup="fxDisruptionEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">If present indicates that the event is considered to have occurred if it is impossible to obtain information about the Spot Rate for a Valuation Date from the price source specified in the Settlement Rate Option that hass been agreed by the parties.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="priceMateriality" type="PriceMateriality" substitutionGroup="fxDisruptionEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines the require price materiality percentage for the rate source to be considered valid.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="settlementPostponement" type="Postponement" substitutionGroup="fxDisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Indicates that the Settlement Date for the tranaction shall be deemed to be the first Business Day following the day on which the applicable Disruption Event ceases to exist, unless the events continues to exists for more than a maximum number of days.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="valuationPostponement" type="Postponement" substitutionGroup="fxDisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Indicates that the Valuation Date for the tranaction shall be deemed to be the first Business Day following the day on which the applicable Disruption Event ceases to exist, unless the events continues to exists for more than a maximum number of days.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:group name="FxCoreDetails.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The elements common to FX spot, forward and swap legs.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="exchangedCurrency1" type="Payment">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This is the first of the two currency flows that define a single leg of a standard foreign exchange transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="exchangedCurrency2" type="Payment">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This is the second of the two currency flows that define a single leg of a standard foreign exchange transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dealtCurrency" type="DealtCurrencyEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates which currency was dealt.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="FxTenor.model" minOccurs="0"></xsd:group>
      <xsd:choice>
        <xsd:element name="valueDate" type="xsd:date">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The date on which both currencies traded will settle.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:sequence>
          <xsd:element name="currency1ValueDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The date on which the currency1 amount will be settled. To be used in a split value date scenario.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="currency2ValueDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The date on which the currency2 amount will be settled. To be used in a split value date scenario.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:choice>
      <xsd:element name="exchangeRate" type="ExchangeRate" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The rate of exchange between the two currencies.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="nonDeliverableSettlement" type="FxCashSettlement" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Used to describe a particular type of FX forward transaction that is settled in a single currency (for example, a non-deliverable forward).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="disruption" type="FxDisruption" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes the disruption events and fallbacks applicable to a currency pair referenced by the transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="FxRateObservation.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The elements common to FX rate observation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="rateObservation" type="FxAverageRateObservation" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">One or more specific rate observation dates.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rateObservationQuoteBasis" type="StrikeQuoteBasisEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The method by which observed rate values are quoted, in terms of the option put/call currencies. In the absence of this element, rate observations are assumed to be quoted as per the option strikeQuoteBasis.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="FxTenor.model">
    <xsd:choice>
      <xsd:element name="tenorName" type="FxTenorPeriodEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A tenor expressed with a standard business term (i.e. Spot, TomorrowNext, etc.)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="tenorPeriod" type="Period">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A tenor expressed as a period type and multiplier (e.g. 1D, 1Y, etc.)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="PrioritizedRateSource.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a primary and optional secondary rate sources</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="primaryRateSource" type="SettlementRateOption" minOccurs="0" />
      <xsd:element name="secondaryRateSource" type="SettlementRateOption" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PutCallCurrency.model">
    <xsd:sequence>
      <xsd:element name="putCurrency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency which: - the option buyer will pay (sell) - the option writer will receive (buy)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="callCurrency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency which: - the option buyer will receive (buy) - the option writer will pay (sell)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
</xsd:schema>

Collapse ComplexTypes:
Collapse Elements:
Collapse Groups:
Collapse SimpleTypes:
Collapse Comments:
blog comments powered by Disqus