<?xml version="1.0" encoding="utf-8"?>
<!-- 
== Copyright (c) 2002-2010. 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="http://www.fpml.org/2010/FpML-4-9" xmlns:fpml="http://www.fpml.org/2010/FpML-4-9" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:fpml-annotation="http://www.fpml.org/annotation" ecore:nsPrefix="fpml" ecore:package="org.fpml" ecore:documentRoot="FpML" targetNamespace="http://www.fpml.org/2010/FpML-4-9" version="$Revision: 7268 $" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xsd:include schemaLocation="fpml-enum-4-9.xsd" />
  <xsd:simpleType name="CorrelationValue">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a number specified as a decimal between -1 and 1 inclusive.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:decimal">
      <xsd:minInclusive value="-1" />
      <xsd:maxInclusive value="1" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="HourMinuteTime">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a time specified in hh:mm:ss format where the second component must be '00', e.g. 11am would be represented as 11:00:00.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:time">
      <xsd:pattern value="[0-2][0-9]:[0-5][0-9]:00" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="RestrictedPercentage">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a percentage specified as decimal from 0 to 1. A percentage of 5% would be represented as 0.05.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:decimal">
      <xsd:minInclusive value="0" />
      <xsd:maxInclusive value="1" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PositiveDecimal">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a number specified as positive decimal greater than 0 exclusive.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:decimal">
      <xsd:minExclusive value="0" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NonNegativeDecimal">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a number specified as non negative decimal greater than 0 inclusive.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:decimal">
      <xsd:minInclusive value="0" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="Token60">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a token of length between 1 and 60 characters inclusive.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:token">
      <xsd:minLength value="1" />
      <xsd:maxLength value="60" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="Account">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A generic account that represents any party's account at another party. Parties may be identified by the account at another party.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence maxOccurs="unbounded">
        <xsd:element name="accountId" type="AccountId">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">An account identifier. For example an Account number.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="accountName" type="xsd:normalizedString" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The name by which the account is known.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="accountBeneficiary" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to the party beneficiary of the account.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="required">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">The unique identifier for the account within the document.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AccountId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for party identifiers.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="accountIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The identifier scheme used with this accountId. A unique URI to determine the authoritative issuer of these identifiers.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="AccountReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to an account.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="Account" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Address">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that represents a physical postal address.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="streetAddress" type="StreetAddress" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The set of street and building number information that identifies a postal address within a city.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="city" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The city component of a postal address.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="state" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A country subdivision used in postal addresses in some countries. For example, US states, Canadian provinces, Swiss cantons.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="country" type="Country" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ISO 3166 standard code for the country within which the postal address is located.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="postalCode" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The code, required for computerised mail sorting systems, that is allocated to a physical address by a national postal authority.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdjustableDate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining a date that shall be subject to adjustment if it would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="unadjustedDate" type="IdentifiedDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A date subject to adjustment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dateAdjustments" type="BusinessDayAdjustments">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business date in the specified business centers.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="AdjustableDate2">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that is different from AdjustableDate in two regards. First, date adjustments can be specified with either a dateAdjustments element or a reference to an existing dateAdjustments element. Second, it does not require the specification of date adjustments.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="unadjustedDate" type="IdentifiedDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A date subject to adjustment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="dateAdjustments" type="BusinessDayAdjustments">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business dat in the specified business centers.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="dateAdjustmentsReference" type="BusinessDayAdjustmentsReference">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A pointer style reference to date adjustments defined elsewhere in the document.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="AdjustableDates">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining a series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the dates.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="unadjustedDate" type="IdentifiedDate" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A date subject to adjustment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dateAdjustments" type="BusinessDayAdjustments">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The business day convention and financial business centers used for adjusting the date if it would otherwise fall on a day that is not a business dat in the specified business centers.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="optional" />
  </xsd:complexType>
  <xsd:complexType name="AdjustableDatesOrRelativeDateOffset">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining a series of dates, either as a list of adjustable dates, or a as a repeating sequence from a base date</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="adjustableDates" type="AdjustableDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A series of adjustable dates</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="relativeDate" type="RelativeDateOffset">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A series of dates specified as a repeating sequence from a base date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="AdjustableOrRelativeAndAdjustedDate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An adjustable or relative date with the option to provide the adjusted date.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AdjustableOrRelativeDate">
        <xsd:sequence>
          <xsd:element name="adjustedDate" type="IdentifiedDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The adjusted date. This date should already be adjusted for any applicable business day convention. This component is not intended for use in trade confirmation but my be specified to allow the fee structure to also serve as a cashflow type component (all dates the the Cashflows type are adjusted payment dates).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AdjustableOrRelativeDate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type giving the choice between defining a date as an explicit date together with applicable adjustments or as relative to some other (anchor) date.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="adjustableDate" type="AdjustableDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A date that shall be subject to adjustment if it would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="relativeDate" type="RelativeDateOffset">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A date specified as some offset to another date (the anchor date).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="AdjustableOrRelativeDates">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type giving the choice between defining a series of dates as an explicit list of dates together with applicable adjustments or as relative to some other series of (anchor) dates.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="adjustableDates" type="AdjustableDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="relativeDates" type="RelativeDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A series of dates specified as some offset to another series of dates (the anchor dates).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="AdjustableRelativeOrPeriodicDates">
    <xsd:choice>
      <xsd:element name="adjustableDates" type="AdjustableDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="relativeDateSequence" type="RelativeDateSequence">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A series of dates specified as some offset to other dates (the anchor dates) which can</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="periodicDates" type="PeriodicDates" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="AdjustableRelativeOrPeriodicDates2">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type giving the choice between defining a series of dates as an explicit list of dates together with applicable adjustments, or as relative to some other series of (anchor) dates, or as a set of factors to specify periodic occurences.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="adjustableDates" type="AdjustableDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A series of dates that shall be subject to adjustment if they would otherwise fall on a day that is not a business day in the specified business centers, together with the convention for adjusting the date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="relativeDates" type="RelativeDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A series of dates specified as some offset to another series of dates (the anchor dates).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="periodicDates" type="PeriodicDates" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="AdjustedRelativeDateOffset">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a date (referred to as the derived date) as a relative offset from another date (referred to as the anchor date) plus optional date adjustments.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="RelativeDateOffset">
        <xsd:sequence>
          <xsd:element name="relativeDateAdjustments" type="BusinessDayAdjustments" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The business day convention and financial business centers used for adjusting the relative date if it would otherwise fall on a day that is not a business date in the specified business centers.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AmericanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the exercise period for an American style option together with any rules governing the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fees.</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 first day of the exercise period for an American style option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expirationDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="relevantUnderlyingDate" type="AdjustableOrRelativeDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The daye on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the effective date, in an extendible/cancelable provision it is the termination date).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="earliestExerciseTime" type="BusinessCenterTime">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date , in the case of an American option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="latestExerciseTime" type="BusinessCenterTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expirationTime" type="BusinessCenterTime">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The latest time for exercise on expirationDate.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="multipleExercise" type="MultipleExercise" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">As defined in the 2000 ISDA Definitions, Section 12.4. Multiple Exercise, the buyer of the option has the right to exercise all or less than all the unexercised notional amount of the underlying swap on one or more days in the exercise period, but on any such day may not exercise less than the minimum notional amount or more that the maximum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an intergral multiple of, the integral multiple amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="exerciseFeeSchedule" type="ExerciseFeeSchedule" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The fees associated with an exercise date. The fees are conditional on the exercise occuring. The fees can be specified as actual currency amounts or as percentages of the notional amount being exercised.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AmountReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specifies a reference to a monetary amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AmountSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a currency amount or a currency amount schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Schedule">
        <xsd:sequence>
          <xsd:element name="currency" type="Currency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The currency in which an amount is denominated.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AutomaticExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type to define automatic exercise of a swaption. With automatic exercise the option is deemed to have exercised if it is in the money by more than the threshold amount on the exercise date.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="thresholdRate" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A threshold rate. The threshold of 0.10% would be represented as 0.001</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AverageDailyTradingVolumeLimit">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">To indicate the limitation percentage and limitation period.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="limitationPercentage" type="RestrictedPercentage">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the limitation percentage in Average Daily trading volume.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="limitationPeriod" type="xsd:nonNegativeInteger">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the limitation period for Average Daily trading volume in number of days.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Beneficiary">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the beneficiary of the funds.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="RoutingIdentification.model" />
      <xsd:element name="beneficiaryPartyReference" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Link to the party acting as beneficiary. This element can only appear within the beneficiary container element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BermudaExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the Bermuda option exercise dates and the expiration date together with any rules govenerning the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fee.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="bermudaExerciseDates" type="AdjustableOrRelativeDates">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The dates the define the Bermuda option exercise dates and the expiration date. The last specified date is assumed to be the expiration date. The dates can either be specified as a series of explicit dates and associated adjustments or as a series of dates defined relative to another schedule of dates, for example, the calculation period start dates. Where a relative series of dates are defined the first and last possible exercise dates can be separately specified.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="relevantUnderlyingDate" type="AdjustableOrRelativeDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The daye on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the effective date, in an extendible/cancelable provision it is the termination date).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="earliestExerciseTime" type="BusinessCenterTime">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date , in the case of an American option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="latestExerciseTime" type="BusinessCenterTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expirationTime" type="BusinessCenterTime">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The latest time for exercise on expirationDate.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="multipleExercise" type="MultipleExercise" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">As defined in the 2000 ISDA Definitions, Section 12.4. Multiple Exercise, the buyer of the option has the right to exercise all or less than all the unexercised notional amount of the underlying swap on one or more days in the exercise period, but on any such day may not exercise less than the minimum notional amount or more that the maximum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an intergral multiple of, the integral multiple amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="exerciseFeeSchedule" type="ExerciseFeeSchedule" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The fees associated with an exercise date. The fees are conditional on the exercise occuring. The fees can be specified as actual currency amounts or as percentages of the notional amount being exercised.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BrokerConfirmation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Identifies the market sector in which the trade has been arranged.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="brokerConfirmationType" type="BrokerConfirmationType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of broker confirmation executed between the parties.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BrokerConfirmationType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Identifies the market sector in which the trade has been arranged.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="brokerConfirmationTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/broker-confirmation-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessCenter">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A code identifying a financial business center location. A business center is drawn from the list identified by the business center scheme.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="businessCenterScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/business-center" />
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessCenters">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining financial business centers used in determining whether a day is a business day or not. A list of business centers may be ordered in the document alphabetically based on business center code. An FpML document containing an unordered business center list is still regarded as a conformant document.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="businessCenter" type="BusinessCenter" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="BusinessCentersReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A pointer style reference to a set of financial business centers defined elsewhere in the document.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="BusinessCenters" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessCenterTime">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining a time with respect to a business center location. For example, 11:00am London time.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="hourMinuteTime" type="HourMinuteTime">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A time specified in hh:mm:ss format where the second component must be '00', e.g. 11am would be represented as 11:00:00.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="businessCenter" type="BusinessCenter" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BusinessDateRange">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a range of contiguous business days by defining an unadjusted first date, an unadjusted last date and a business day convention and business centers for adjusting the first and last dates if they would otherwise fall on a non business day in the specified business centers. The days between the first and last date must also be good business days in the specified centers to be counted in the range.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DateRange">
        <xsd:sequence>
          <xsd:element name="businessDayConvention" type="BusinessDayConventionEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The convention for adjusting a date if it would otherwise fall on a day that is not a business day.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessDayAdjustments">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the business day convention and financial business centers used for adjusting any relevant date if it would otherwise fall on a day that is not a business day in the specified business centers.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="businessDayConvention" type="BusinessDayConventionEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The convention for adjusting a date if it would otherwise fall on a day that is not a business day.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="BusinessDayAdjustmentsReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to a business day adjustments structure.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="BusinessDayAdjustments" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationAgent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the ISDA calculation agent responsible for performing duties as defined in the applicable product definitions.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="calculationAgentPartyReference" type="PartyReference" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a party identifier defined elsewhere in the document. The party referenced is the ISDA Calculation Agent for the trade. If more than one party is referenced then the parties are assumed to be co-calculation agents, i.e. they have joint responsibility.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationAgentParty" type="CalculationAgentPartyEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ISDA calculation agent responsible for performing duties as defined in the applicable product definitions. For example, the Calculation Agent may be defined as being the Non-exercising Party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodFrequency">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the frequency at which calculation period end dates occur within the regular part of the calculation period schedule and thier roll date convention. In case the calculation frequency is of value T (term), the period is defined by the swap\swapStream\calculationPerioDates\effectiveDate and the swap\swapStream\calculationPerioDates\terminationDate.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Frequency">
        <xsd:sequence>
          <xsd:element name="rollConvention" type="RollConventionEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Used in conjunction with a frequency and the regular period start date of a calculation period, determines each calculation period end date within the regular part of a calculation period schedule.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CashflowType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A coding scheme used to describe the type or purpose of a cash flow or cash flow component.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="cashflowTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/cashflow-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CashSettlementReferenceBanks">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the list of reference institutions polled for relevant rates or prices when determining the cash settlement amount for a product where cash settlement is applicable.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="referenceBank" type="ReferenceBank" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An institution (party) identified by means of a coding scheme and an optional name.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="ClearanceSystem">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Unless otherwise specified, the principal clearance system customarily used for settling trades in the relevant underlying.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="clearanceSystemScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/clearance-system" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ContractualDefinitions">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The definitions, such as those published by ISDA, that will define the terms of the trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="contractualDefinitionsScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/contractual-definitions" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ContractualMatrix">
    <xsd:sequence>
      <xsd:element name="matrixType" type="MatrixType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Identifies the form of applicable matrix.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="publicationDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the publication date of the applicable version of the matrix. When this element is omitted, the ISDA supplemental language for incorporation of the relevant matrix will generally define rules for which version of the matrix is applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="matrixTerm" type="MatrixTerm" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines any applicable key into the relevant matrix. For example, the Transaction Type would be the single term required for the Credit Derivatives Physical Settlement Matrix. This element should be omitted in the case of the 2000 ISDA Definitions Settlement Matrix for Early Termination and Swaptions.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractualSupplement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A contractual supplement (such as those published by ISDA) that will apply to the trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="contractualSupplementScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/contractual-supplement" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ContractualTermsSupplement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A contractual supplement (such as those published by ISDA) and its publication date that will apply to the trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type" type="ContractualSupplement">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Identifies the form of applicable contractual supplement.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="publicationDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the publication date of the applicable version of the contractual supplement.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CorrespondentInformation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes the information to identify a correspondent bank that will make delivery of the funds on the paying bank's behalf in the country where the payment is to be made.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="RoutingIdentification.model" />
      <xsd:element name="correspondentPartyReference" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Link to the party acting as correspondent. This element can only appear within the correspondentInformation container element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Country">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The code representation of a country or an area of special sovereignty. By default it is a valid 2 character country code as defined by the ISO standard 3166-1 alpha-2 - Codes for representation of countries http://www.niso.org/standards/resources/3166.html.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="countryScheme" type="xsd:anyURI" default="http://www.fpml.org/ext/iso3166" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CreditSeniority">
    <xsd:annotation>
      <xsd:documentation source="http://www.FpML.org" xml:lang="en">The repayment precedence of a debt instrument.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="creditSeniorityScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/credit-seniority">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">creditSeniorityTradingScheme overrides creditSeniorityScheme when the underlyer defines the reference obligation used in a single name credit default swap trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CreditSupportAgreement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The agreement executed between the parties and intended to govern collateral arrangement for all OTC derivatives transactions between those parties.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type" type="CreditSupportAgreementType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of ISDA Credit Support Agreement</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="date" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date of the agreement executed between the parties and intended to govern collateral arrangements for all OTC derivatives transactions between those parties.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditSupportAgreementType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="creditSupportAgreementTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/credit-support-agreement-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Currency">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The code representation of a currency or fund. By default it is a valid currency code as defined by the ISO standard 4217 - Codes for representation of currencies and funds http://www.iso.org/iso/en/prods-services/popstds/currencycodeslist.html.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="currencyScheme" type="xsd:anyURI" default="http://www.fpml.org/ext/iso4217-2001-08-15" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DateList">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">List of Dates</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="date" type="xsd:date" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DateOffset">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining an offset used in calculating a date when this date is defined in reference to another date through a date offset. The type includes the convention for adjusting the date and an optional sequence element to indicate the order in a sequence of multiple date offsets.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Offset">
        <xsd:sequence>
          <xsd:element name="businessDayConvention" type="BusinessDayConventionEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The convention for adjusting a date if it would otherwise fall on a day that is not a business day.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="sequence" type="xsd:positiveInteger" minOccurs="0" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="Ordering is already present in the XML instance document. It shouldn't be defined as an element as stated in the Architecture Specification">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">DEPRECATED Sequence in which the reference to the time period multiplier should be applied.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DateRange">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a contiguous series of calendar dates. The date range is defined as all the dates between and including the first and the last date. The first date must fall before the last date.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="unadjustedFirstDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The first date of a date range.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="unadjustedLastDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The last date of a date range.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DateReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to an identified date or a complex date structure.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DateTimeList">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">List of DateTimes</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="dateTime" type="xsd:dateTime" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DayCountFraction">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The specification for how the number of days between two dates is calculated for purposes of calculation of a fixed or floating payment amount and the basis for how many days are assumed to be in a year. Day Count Fraction is an ISDA term. The equivalent AFB (Association Francaise de Banques) term is Calculation Basis.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="dayCountFractionScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/day-count-fraction" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DeterminationMethod">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Coding scheme that specifies the method according to which an amount or a date is determined.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="determinationMethodScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/determination-method" />
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DeterminationMethodReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to the return swap notional determination method.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="DeterminationMethod" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Documentation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An entity for defining the definitions that govern the document and should include the year and type of definitions referenced, along with any relevant documentation (such as master agreement) and the date it was signed.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="masterAgreement" type="MasterAgreement" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The agreement executed between the parties and intended to govern all OTC derivatives transactions between those parties.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="masterConfirmation" type="MasterConfirmation">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The agreement executed between the parties and intended to govern all OTC derivatives transactions between those parties.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="brokerConfirmation" type="BrokerConfirmation">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the deails for a broker confirm.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="contractualDefinitions" type="ContractualDefinitions" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The definitions such as those published by ISDA that will define the terms of the trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element name="contractualSupplement" type="ContractualSupplement" minOccurs="0" maxOccurs="unbounded" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="The contractualTermsSupplement includes the publication date, which was not present in the contractualSupplement">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">DEPRECATED - This element will be removed in the next major version of FpML. The element contractualTermsSupplement should be used instead. Definition: A contractual supplement (such as those published by ISDA) that will apply to the trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="contractualTermsSupplement" type="ContractualTermsSupplement" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A contractual supplement (such as those published by ISDA) that will apply to the trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="contractualMatrix" type="ContractualMatrix" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to a contractual matrix of elected terms/values (such as those published by ISDA) that shall be deemed to apply to the trade. The applicable matrix is identified by reference to a name and optionally a publication date. Depending on the structure of the matrix, an additional term (specified in the matrixTerm element) may be required to further identify a subset of applicable terms/values within the matrix.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="creditSupportDocument" type="xsd:normalizedString" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="Created a new creditSupportAgreement element of type CreditSupportAgreement to replace the creditSupportDocument element.">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">DEPRECATED -This element will be removed in the next major version of FpML. The agreement executed between the parties and intended to govern collateral arrangement for all OTC derivatives transactions between those parties.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="creditSupportAgreement" type="CreditSupportAgreement">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The agreement executed between the parties and intended to govern collateral arrangement for all OTC derivatives transactions between those parties.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Empty">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A special type meant to be used for elements with no content and no attributes.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  <xsd:complexType name="EntityId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A legal entity identifier (e.g. RED entity code).</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="entityIdScheme" type="xsd:anyURI" default="http://www.fpml.org/spec/2003/entity-id-RED-1-0" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityName">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The name of the reference entity. A free format string. FpML does not define usage rules for this element.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="entityNameScheme" type="xsd:anyURI" default="http://www.fpml.org/spec/2003/entity-name-RED-1-0" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EuropeanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the exercise period for a European style option together with any rules governing the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fees.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="expirationDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="relevantUnderlyingDate" type="AdjustableOrRelativeDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The daye on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the effective date, in an extendible/cancelable provision it is the termination date).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="earliestExerciseTime" type="BusinessCenterTime">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date , in the case of an American option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expirationTime" type="BusinessCenterTime">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The latest time for exercise on expirationDate.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="partialExercise" type="PartialExercise" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">As defined in the 2000 ISDA Definitions, Section 12.3. Partial Exercise, the buyer of the option has the right to exercise all or less than all the notional amount of the underlying swap on the expiration date, but may not exercise less than the minimum notional amount, and if an integral multiple amount is specified, the notional amount exercised must be equal to, or be an integral multiple of, the integral multiple amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="exerciseFee" type="ExerciseFee" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A fee to be paid on exercise. This could be represented as an amount or a rate and notional reference on which to apply the rate.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ExchangeId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A short form unique identifier for an exchange. If the element is not present then the exchange shall be the primary exchange on which the underlying is listed. The term "Exchange" is assumed to have the meaning as defined in the ISDA 2002 Equity Derivatives Definitions.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="exchangeIdScheme" type="xsd:anyURI" default="http://www.fpml.org/spec/2002/exchange-id-MIC-1-0" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Exercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The abstract base class for all types which define way in which options may be exercised.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="ExerciseFee">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the fee payable on exercise of an option. This fee may be defined as an amount or a percentage of the notional exercised.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="PayerReceiver.model" />
      <xsd:element name="notionalReference" type="NotionalReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to the associated notional schedule defined elsewhere in the document.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element name="feeAmount" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The amount of fee to be paid on exercise. The fee currency is that of the referenced notional.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="feeRate" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A fee represented as a percentage of some referenced notional. A percentage of 5% would be represented as 0.05.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="feePaymentDate" type="RelativeDateOffset">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which exercise fee(s) will be paid. It is specified as a relative date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExerciseFeeSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type to define a fee or schedule of fees to be payable on the exercise of an option. This fee may be defined as an amount or a percentage of the notional exercised.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="PayerReceiver.model" />
      <xsd:element name="notionalReference" type="ScheduleReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to the associated notional schedule defined elsewhere in the document.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element name="feeAmountSchedule" type="AmountSchedule">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The exercise fee amount schedule. The fees are expressed as currency amounts. The currency of the fee is assumed to be that of the notional schedule referenced.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="feeRateSchedule" type="Schedule">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The exercise free rate schedule. The fees are expressed as percentage rates of the notional being exercised. The currency of the fee is assumed to be that of the notional schedule referenced.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="feePaymentDate" type="RelativeDateOffset">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which exercise fee(s) will be paid. It is specified as a relative date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExerciseNotice">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining to whom and where notice of execution should be given. The partyReference refers to one of the principal parties of the trade. If present the exerciseNoticePartyReference refers to a party, other than the principal party, to whome notice should be given.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="partyReference" type="PartyReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The party referenced has allocated the trade identifier.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="exerciseNoticePartyReference" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The party referenced is the party to which notice of exercise should be given by the buyer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="businessCenter" type="BusinessCenter" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExerciseProcedure">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing how notice of exercise should be given. This can be either manual or automatic.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="manualExercise" type="ManualExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies that the notice of exercise must be given by the buyer to the seller or seller's agent.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="automaticExercise" type="AutomaticExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">If automatic is specified then the notional amount of the underlying swap, not previously exercised under the swaption will be automatically exercised at the expriration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than the specified threshold rate. The term in-the-money is assumed to have the meaning defining in the 2000 ISDA Definitions, Section 17.4 In-the-money.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="followUpConfirmation" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A flag to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="limitedRightToConfirm" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Has the meaning defined as part of the 1997 ISDA Government Bond Option Definitions, section 4.5 Limited Right to Confirm Exercise. If present, (i) the Seller may request the Buyer to confirm its intent if not done on or before the expiration time on the Expiration date (ii) specific rules will apply in relation to the settlement mode.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="splitTicket" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Typically applicable to the physical settlement of bond and convertible bond options. If present, means that the Party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FloatingRate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a floating rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Rate">
        <xsd:sequence>
          <xsd:group ref="FloatingRateIndex.model" />
          <xsd:element name="floatingRateMultiplierSchedule" type="Schedule" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A rate multiplier or multiplier schedule to apply to the floating rate. A multiplier schedule is expressed as explicit multipliers and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in the calculationPeriodDatesAdjustments. The multiplier can be a positive or negative decimal. This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="spreadSchedule" type="SpreadSchedule" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The ISDA Spread or a Spread schedule expressed as explicit spreads and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments. The spread is a per annum rate, expressed as a decimal. For purposes of determining a calculation period amount, if positive the spread will be added to the floating rate and if negative the spread will be subtracted from the floating rate. A positive 10 basis point (0.1%) spread would be represented as 0.001.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="rateTreatment" type="RateTreatmentEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of any rate conversion which needs to be applied to the observed rate before being used in any calculations. The two common conversions are for securities quoted on a bank discount basis which will need to be converted to either a Money Market Yield or Bond Equivalent Yield. See the Annex to the 2000 ISDA Definitions, Section 7.3. Certain General Definitions Relating to Floating Rate Options, paragraphs (g) and (h) for definitions of these terms.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="capRateSchedule" type="StrikeSchedule" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The cap rate or cap rate schedule, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. A cap rate schedule is expressed as explicit cap rates and dates and the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="floorRateSchedule" type="StrikeSchedule" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The floor rate or floor rate schedule, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. A floor rate schedule is expressed as explicit floor rates and dates and the step dates may be subject to adjustment in accordance with any adjustments specified in calculationPeriodDatesAdjustments. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingRateCalculation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the floating rate and definitions relating to the calculation of floating rate amounts.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FloatingRate">
        <xsd:sequence>
          <xsd:element name="initialRate" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. An initial rate of 5% would be represented as 0.05.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="finalRateRounding" type="Rounding" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The rounding convention to apply to the final rate used in determination of a calculation period amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="averagingMethod" type="AveragingMethodEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">If averaging is applicable, this component specifies whether a weighted or unweighted average method of calculation is to be used. The component must only be included when averaging applies.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="negativeInterestRateTreatment" type="NegativeInterestRateTreatmentEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingRateIndex">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The ISDA Floating Rate Option, i.e. the floating rate index.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="floatingRateIndexScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/floating-rate-index" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ForecastRateIndex">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a rate index.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="floatingRateIndex" type="FloatingRateIndex">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ISDA Floating Rate Option, i.e. the floating rate index.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="indexTenor" type="Period">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ISDA Designated Maturity, i.e. the tenor of the floating rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Formula">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing a financial formula, with its description and components.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="formulaDescription" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Text description of the formula</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="math" type="Math" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An element for containing an XML representation of the formula. Defined using xsd:any currently for flexibility in choice of language (MathML, OpenMath)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="formulaComponent" type="FormulaComponent" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Elements describing the components of the formula. The name attribute points to a value used in the math element. The href attribute points to a value elsewhere in the document</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FormulaComponent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Elements describing the components of the formula. The name attribute points to a value used in the math element. The href attribute points to a numeric value defined elsewhere in the document that is used by the formula component.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="componentDescription" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Text description of the component</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="formula" type="Formula" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Additional formulas required to describe this component</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:normalizedString" />
    <xsd:attribute name="href" type="xsd:IDREF" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="There was no definition on where this attribute should point at and no clear usage.">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">This attribute has been DEPRECATED. It will be removed in the next FpML major version. Pointer to a numeric value defined elsewhere in the document that is used by the formula component.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Frequency">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a time frequency, e.g. one day, three months. Used for specifying payment or calculation frequencies at which the value T (Term) is applicable.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="periodMultiplier" type="xsd:integer">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A time period multiplier, e.g. 1, 2 or 3 etc. A negative value can be used when specifying an offset relative to another date, e.g. -2 days. If the period value is T (Term) then periodMultiplier must contain the value 1.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="period" type="PeriodExtendedEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A time period, e.g. a day, week, month, year or term of the stream. If the periodMultiplier value is 0 (zero) then period must contain the value D (day).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="FutureValueAmount">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a currency amount as at a future value date.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NonNegativeMoney">
        <xsd:sequence>
          <xsd:element name="calculationPeriodNumberOfDays" type="xsd:positiveInteger">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The number of days from the adjusted calculation period start date to the adjusted value date, calculated in accordance with the applicable day count fraction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="valueDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Adjusted value date of the future value amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxCashSettlement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that is used for describing cash settlement of an option / non deliverable forward. It includes the currency to settle into together with the fixings required to calculate the currency amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="settlementCurrency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency in which a cash settlement for non-deliverable forward and non-deliverable options.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fixing" type="FxFixing" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the source for and timing of a fixing of an exchange rate. This is used in the agreement of non-deliverable forward trades as well as various types of FX OTC options that require observations against a particular rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxFixing">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that specifies the source for and timing of a fixing of an exchange rate. This is used in the agreement of non-deliverable forward trades as well as various types of FX OTC options that require observations against a particular rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FxSpotRateSource">
        <xsd:sequence>
          <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair">
            <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="fixingDate" type="xsd:date">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Describes the specific date when a non-deliverable forward or non-deliverable option will "fix" against a particular rate, which will be used to compute the ultimate cash settlement.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxRate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the rate of a currency conversion: pair of currency, quotation mode and exchange rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair">
        <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="xsd:decimal">
        <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>
  </xsd:complexType>
  <xsd:complexType name="FxSpotRateSource">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the source and time for an fx rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="primaryRateSource" type="InformationSource">
        <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">
        <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 specific business center, e.g. 11:00am London time.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="GoverningLaw">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Identification of the law governing the transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="governingLawScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/governing-law" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedCurrency">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specifies Currency with ID attribute.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Currency">
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedCurrencyReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to a currency with ID attribute</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="IdentifiedCurrency" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedDate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A date which can be referenced elsewhere.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:date">
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedPayerReceiver">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type extending the PayerReceiverEnum type wih an id attribute.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="PayerReceiverEnum">
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InformationProvider">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="informationProviderScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/information-provider" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InformationSource">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the source for a piece of information (e.g. a rate refix or an fx fixing).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="rateSource" type="InformationProvider">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An information source for obtaining a market rate. For example Bloomberg, Reuters, Telerate etc.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rateSourcePage" type="RateSourcePage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A specific page for the rate source for obtaining a market rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rateSourcePageHeading" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The heading for the rate source on a given rate source page.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InstrumentId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A short form unique identifier for a security.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="instrumentIdScheme" type="xsd:anyURI" use="required" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InterestAccrualsCompoundingMethod">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the way in which interests are accrued: the applicable rate (fixed or floating reference) and the compounding method.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="InterestAccrualsMethod">
        <xsd:sequence minOccurs="0">
          <xsd:element name="compoundingMethod" type="CompoundingMethodEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">If more that one calculation period contributes to a single payment amount this element specifies whether compounding is applicable, and if so, what compounding method is to be used. This element must only be included when more that one calculation period contributes to a single payment amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InterestAccrualsMethod">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the method for accruing interests on dividends. Can be either a fixed rate reference or a floating rate reference.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="floatingRateCalculation" type="FloatingRateCalculation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The floating rate calculation definitions</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fixedRate" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The calculation period fixed rate. A per annum rate, expressed as a decimal. A fixed rate of 5% would be represented as 0.05.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="IntermediaryInformation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes the information to identify an intermediary through which payment will be made by the correspondent bank to the ultimate beneficiary of the funds.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="RoutingIdentification.model" />
      <xsd:element name="intermediarySequenceNumber" type="xsd:positiveInteger">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A sequence number that gives the position of the current intermediary in the chain of payment intermediaries. The assumed domain value set is an ascending sequence of integers starting from 1.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="intermediaryPartyReference" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Reference to the party acting as intermediary.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InterpolationMethod">
    <xsd:annotation>
      <xsd:documentation source="http://www.FpML.org" xml:lang="en">The type of interpolation used.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="interpolationMethodScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/interpolation-method" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Leg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A supertype of leg. All swap legs extend this type.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  <xsd:complexType name="LegalEntity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a legal entity.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="entityName" type="EntityName">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The name of the reference entity. A free format string. FpML does not define usage rules for this element.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="entityId" type="EntityId" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A legal entity identifier (e.g. RED entity code).</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="entityId" type="EntityId" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A legal entity identifier (e.g. RED entity code)..</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="LegalEntityReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">References a credit entity defined elsewhere in the document.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="LegalEntity" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MainPublication">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type to define the main publication source.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="mainPublicationScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/inflation-main-publication" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ManualExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining manual exercise, i.e. that the option buyer counterparty must give notice to the option seller of exercise.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="exerciseNotice" type="ExerciseNotice" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Definition of the party to whom notice of exercise should be given.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fallbackExercise" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If fallback exercise is specified then the notional amount of the underlying swap, not previously exercised under the swaption, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001). The term in-the-money is assumed to have the meaning defined in the 2000 ISDA Definitions, Section 17.4. In-the-money.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MasterAgreement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An entity for defining the agreement executed between the parties and intended to govern all OTC derivatives transactions between those parties.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="masterAgreementType" type="MasterAgreementType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The agreement executed between the parties and intended to govern product-specific derivatives transactions between those parties.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="masterAgreementVersion" type="MasterAgreementVersion" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The version of the master agreement.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="masterAgreementDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which the master agreement was signed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MasterAgreementType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="masterAgreementTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/master-agreement-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MasterAgreementVersion">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="masterAgreementVersionScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/master-agreement-version" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MasterConfirmation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An entity for defining the master confirmation agreement executed between the parties.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="masterConfirmationType" type="MasterConfirmationType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of master confirmation executed between the parties.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="masterConfirmationDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date of the confirmation executed between the parties and intended to govern all relevant transactions between those parties.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="masterConfirmationAnnexDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date that an annex to the master confirmation was executed between the parties.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="masterConfirmationAnnexType" type="MasterConfirmationAnnexType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of master confirmation annex executed between the parties.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MasterConfirmationAnnexType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="masterConfirmationAnnexTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/master-confirmation-annex-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MasterConfirmationType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="masterConfirmationTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/master-confirmation-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Math" mixed="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a mathematical expression.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any namespace="##any" processContents="skip" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MatrixType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="matrixTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/matrix-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MatrixTerm">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="matrixTermScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/credit-matrix-transaction-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MimeType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The type that indicates the type of media used to store the content. MimeType is used to determine the software product(s) that can read the content. MIME types are described in RFC 2046.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="mimeTypeScheme" type="xsd:anyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Money">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a currency amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="MoneyBase">
        <xsd:sequence>
          <xsd:element name="amount" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The monetary quantity in currency units.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MoneyBase" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base class for all money types.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="currency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency in which an amount is denominated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="MultipleExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining multiple exercises. As defining in the 2000 ISDA Definitions, Section 12.4. Multiple Exercise, the buyer of the option has the right to exercise all or less than all the unexercised notional amount of the underlying swap on one or more days in the exercise period, but on any such day may not exercise less than the minimum notional amount or more than the maximum notional amount, and if an integral multiple amount is specified, the notional exercised must be equal to or, be an integral multiple of, the integral multiple amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="PartialExercise.model" />
      <xsd:choice minOccurs="0">
        <xsd:element name="maximumNotionalAmount" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The maximum notional amount that can be exercised on a given exercise date.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="maximumNumberOfOptions" type="xsd:nonNegativeInteger">
          <xsd:annotation>
            <xsd:documentation>The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NonNegativeAmountSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a currency amount or a currency amount schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NonNegativeSchedule">
        <xsd:sequence>
          <xsd:element name="currency" type="Currency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The currency in which an amount is denominated.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NonNegativeMoney">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a non negative money amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="MoneyBase">
        <xsd:sequence>
          <xsd:element name="amount" type="NonNegativeDecimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The non negative monetary quantity in currency units.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NonNegativePayment">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A complex type to specify non negative payments.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PaymentBaseExtended">
        <xsd:sequence>
          <xsd:element name="paymentAmount" type="NonNegativeMoney">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Non negative payment amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NonNegativeSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a schedule of non-negative rates or amounts in terms of an initial value and then a series of step date and value pairs. On each step date the rate or amount changes to the new step value. The series of step date and value pairs are optional. If not specified, this implies that the initial value remains unchanged over time.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="initialValue" type="NonNegativeDecimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The non-negative initial rate or amount, as the case may be. An initial rate of 5% would be represented as 0.05.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="step" type="NonNegativeStep" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The schedule of step date and non-negative value pairs. On each step date the associated step value becomes effective. A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="NonNegativeStep">
    <xsd:annotation>
      <xsd:documentation>A type defining a step date and non-negative step value pair. This step definitions are used to define varying rate or amount schedules, e.g. a notional amortization or a step-up coupon schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="StepBase">
        <xsd:sequence>
          <xsd:element name="stepValue" type="NonNegativeDecimal">
            <xsd:annotation>
              <xsd:documentation>The non-negative rate or amount which becomes effective on the associated stepDate. A rate of 5% would be represented as 0.05.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NotionalAmount">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A complex type to specify the notional amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Money" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NotionalAmountReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to the notional amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NotionalReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to the notional amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="Notional" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Offset">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining an offset used in calculating a new date relative to a reference date. Currently, the only offsets defined are expected to be expressed as either calendar or business day offsets.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Period">
        <xsd:sequence>
          <xsd:element name="dayType" type="DayTypeEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">In the case of an offset specified as a number of days, this element defines whether consideration is given as to whether a day is a good business day or not. If a day type of business days is specified then non-business days are ignored when calculating the offset. The financial business centers to use for determination of business days are implied by the context in which this element is used. This element must only be included when the offset is specified as a number of days. If the offset is zero days then the dayType element should not be included.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OffsetPrevailingTime">
    <xsd:annotation>
      <xsd:documentation>Allows the specification of a time that may be on a day prior or subsequent to the day in question. This type is intended for use with a day of the week (i.e. where no actual date is specified) as part of, for example, a period that runs from 23:00-07:00 on a series of days and where holidays on the actual days would affect the entire time period.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="time" type="PrevailingTime" />
      <xsd:element name="offset" type="Offset" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Indicates whether time applies to the actual day specified (in which case this element should be omitted) the day prior to that day (in which case periodMultiplier should be -1 and period should be Day) or the day subsequent to that day (in which case periodMultiplier should be 1 and period should be Day).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PartialExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining partial exercise. As defined in the 2000 ISDA Definitions, Section 12.3 Partial Exercise, the buyer of the option may exercise all or less than all the notional amount of the underlying swap but may not be less than the minimum notional amount (if specified) and must be an integral multiple of the integral multiple amount if specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="PartialExercise.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Party">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a legal entity or a subdivision of a legal entity.</xsd:documentation>
      <xsd:documentation xml:lang="en">Parties can perform multiple roles in a trade lifecycle. For example, the principal parties obligated to make payments from time to time during the term of the trade, but may include other parties involved in, or incidental to, the trade, such as parties acting in the role of novation transferor/transferee, broker, calculation agent, etc. In FpML roles are defined in multiple places within a document.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="partyId" type="PartyId" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A party identifier, e.g. a S.W.I.F.T. bank identifier code (BIC).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="partyName" type="xsd:normalizedString" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The name of the party. A free format string. FpML does not define usage rules for this element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="account" type="Account" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Accounts serviced by this party. These are not accounts where this party is beneficiary, but instead where services are provided by this party to the beneficiary party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="required">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">The id uniquely identifying the Party within the document.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="PartyId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for party identifiers.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="partyIdScheme" type="xsd:anyURI" default="http://www.fpml.org/ext/iso9362" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PartyOrAccountReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to a party or an account.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PartyOrTradeSideReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to a party or tradeSide.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PartyReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to a party.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="Party" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PartyTradeIdentifierReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to a partyTradeIdentifier object.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="PartyTradeIdentifier" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Payment">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining payments</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model" />
          <xsd:element name="paymentAmount" type="Money">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The currency amount of the payment.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDate" type="AdjustableDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The payment date. This date is subject to adjustment in accordance with any applicable business day convention.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustedPaymentDate" type="IdentifiedDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The adjusted payment date. This date should already be adjusted for any applicable business day convention. This component is not intended for use in trade confirmation but my be specified to allow the fee structure to also serve as a cashflow type component (all dates the the Cashflows type are adjusted payment dates).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentType" type="PaymentType" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A classification of the type of fee or additional payment, e.g. brokerage, upfront fee etc. FpML does not define domain values for this element.</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:element name="discountFactor" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The value representing the discount factor used to calculate the present value of the cash flow.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="presentValueAmount" type="Money" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The amount representing the present value of the forecast payment.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="href" type="xsd:IDREF" ecore:reference="PricingStructure">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Can be used to reference the yield curve used to estimate the discount factor</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentCurrency" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="The model is wrong since it has an intradocument reference that is not clear. Current PaymentCurrency model and elements using this type are deprecated. Instead, a choice between currency, determinationMethod, and currencyReference (of type CurrencyReference) are inserted at the same level as the elements using PaymentCurrency.">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the currency in which the payment relating to the leg amount (equity amount or interest amount) or the dividend will be denominated.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0">
      <xsd:element name="currency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency in which an amount is denominated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="determinationMethod" type="DeterminationMethod">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the method according to which an amount or a date is determined.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID" />
    <xsd:attribute name="href" type="xsd:IDREF" />
  </xsd:complexType>
  <xsd:complexType name="PaymentBase" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An abstract base class for payment types.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="PaymentBaseExtended" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Base type for payments starting with the 4-3 release, until we refactor the schema as part of the 5-0 release series.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model" />
          <xsd:element name="paymentDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The payment date, which can be expressed as either an adjustable or relative date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to a payment.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="PaymentBase" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="paymentTypeScheme" type="xsd:anyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Period">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type to define recurring periods or time offsets.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="periodMultiplier" type="xsd:integer">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A time period multiplier, e.g. 1, 2 or 3 etc. A negative value can be used when specifying an offset relative to another date, e.g. -2 days.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="period" type="PeriodEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A time period, e.g. a day, week, month or year of the stream. If the periodMultiplier value is 0 (zero) then period must contain the value D (day).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="PeriodicDates">
    <xsd:sequence>
      <xsd:element name="calculationStartDate" type="AdjustableOrRelativeDate" />
      <xsd:element name="calculationEndDate" type="AdjustableOrRelativeDate" minOccurs="0" />
      <xsd:element name="calculationPeriodFrequency" type="CalculationPeriodFrequency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The frequency at which calculation period end dates occur with the regular part of the calculation period schedule and their roll date convention.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationPeriodDatesAdjustments" type="BusinessDayAdjustments">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The business day convention to apply to each calculation period end date if it would otherwise fall on a day that is not a business day in the specified financial business centers.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PositiveAmountSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a currency amount or a currency amount schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PositiveSchedule">
        <xsd:sequence>
          <xsd:element name="currency" type="Currency">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The currency in which an amount is denominated.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositiveMoney">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a positive money amount</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="MoneyBase">
        <xsd:sequence>
          <xsd:element name="amount" type="PositiveDecimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The positive monetary quantity in currency units.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositivePayment">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A complex type to specify positive payments.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PaymentBaseExtended">
        <xsd:sequence>
          <xsd:element name="paymentAmount" type="PositiveMoney">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Positive payment amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositiveSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a schedule of strictly-postive rates or amounts in terms of an initial value and then a series of step date and value pairs. On each step date the rate or amount changes to the new step value. The series of step date and value pairs are optional. If not specified, this implies that the initial value remains unchanged over time.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="initialValue" type="PositiveDecimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The strictly-positive initial rate or amount, as the case may be. An initial rate of 5% would be represented as 0.05.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="step" type="PositiveStep" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The schedule of step date and strictly-positive value pairs. On each step date the associated step value becomes effective. A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="PositiveStep">
    <xsd:annotation>
      <xsd:documentation>A type defining a step date and strictly-positive step value pair. This step definitions are used to define varying rate or amount schedules, e.g. a notional amortization or a step-up coupon schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="StepBase">
        <xsd:sequence>
          <xsd:element name="stepValue" type="PositiveDecimal">
            <xsd:annotation>
              <xsd:documentation>The strictly positive rate or amount which becomes effective on the associated stepDate. A rate of 5% would be represented as 0.05.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PrevailingTime">
    <xsd:annotation>
      <xsd:documentation>A type for defining a time with respect to a geographic location, for example 11:00 Phoenix, USA. This type should be used where a wider range of locations than those available as business centres is required.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="hourMinuteTime" type="HourMinuteTime">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A time specified in hh:mm:ss format where the second component must be '00', e.g. 11am would be represented as 11:00:00.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="location" type="TimezoneLocation">
        <xsd:annotation>
          <xsd:documentation>The geographic location to which the hourMinuteTime applies. The time takes into account any current day light saving changes or other adjustments i.e. it is the prevaling time at the location.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PricingStructure" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An abstract pricing structure base type. Used as a base for structures such as yield curves and volatility matrices.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name" type="xsd:normalizedString" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The name of the structure, e.g "USDLIBOR-3M EOD Curve".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="currency" type="Currency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency that the structure is expressed in (this is relevant mostly for the Interes Rates asset class).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="PricingStructureReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to a pricing structure or any derived components (i.e. yield curve).</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="PricingStructure" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PrincipalExchanges">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining which principal exchanges occur for the stream.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="initialExchange" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A true/false flag to indicate whether there is an initial exchange of principal on the effective date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="finalExchange" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A true/false flag to indicate whether there is a final exchange of principal on the termination date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="intermediateExchange" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A true/false flag to indicate whether there are intermediate or interim exchanges of principal during the term of the swap.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="optional" />
  </xsd:complexType>
  <xsd:complexType name="Product" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The base type which all FpML products extend.</xsd:documentation>
    </xsd:annotation>
    <xsd:group ref="Product.model" />
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="ProductId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="productIdScheme" type="xsd:anyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ProductReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to a full FpML product.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="Product" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ProductType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="productTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/product-type-simple" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="QuotedCurrencyPair">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes the composition of a rate that has been quoted or is to be quoted. This includes the two currencies and the quotation relationship between the two currencies and is used as a building block throughout the FX specification.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="currency1" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The first currency specified when a pair of currencies is to be evaluated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="currency2" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The second currency specified when a pair of currencies is to be evaluated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="quoteBasis" type="QuoteBasisEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The method by which the exchange rate is quoted.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Rate" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The abstract base class for all types which define interest rate streams.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="RateReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to any rate (floating, inflation) derived from the abstract Rate component.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="Rate" />
  </xsd:complexType>
  <xsd:complexType name="RateObservation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining parameters associated with an individual observation or fixing. This type forms part of the cashflow representation of a stream.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="resetDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The reset date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="adjustedFixingDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The adjusted fixing date, i.e. the actual date the rate is observed. The date should already be adjusted for any applicable business day convention.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="observedRate" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The actual observed rate before any required rate treatment is applied, e.g. before converting a rate quoted on a discount basis to an equivalent yield. An observed rate of 5% would be represented as 0.05.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="treatedRate" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The observed rate after any required rate treatment is applied. A treated rate of 5% would be represented as 0.05.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="observationWeight" type="xsd:positiveInteger">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The number of days weighting to be associated with the rate observation, i.e. the number of days such rate is in effect. This is applicable in the case of a weighted average method of calculation where more than one reset date is established for a single calculation period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rateReference" type="RateReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a floating rate component defined as part of a stub calculation period amount component. It is only required when it is necessary to distinguish two rate observations for the same fixing date which could occur when linear interpolation of two different rates occurs for a stub calculation period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="forecastRate" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The value representing the forecast rate used to calculate the forecast future value of the accrual period.A value of 1% should be represented as 0.01</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="treatedForecastRate" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The value representing the forecast rate after applying rate treatment rules. A value of 1% should be represented as 0.01</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="RateSourcePage">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="rateSourcePageScheme" type="xsd:anyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Reference" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The abstract base class for all types which define intra-document pointers.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  <xsd:complexType name="ReferenceAmount">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specifies the reference amount using a scheme.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="referenceAmountScheme" type="xsd:anyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ReferenceBank">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type to describe an institution (party) identified by means of a coding scheme and an optional name.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="referenceBankId" type="ReferenceBankId">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An institution (party) identifier, e.g. a bank identifier code (BIC).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="referenceBankName" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The name of the institution (party). A free format string. FpML does not define usage rules for the element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferenceBankId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="referenceBankIdScheme" type="xsd:anyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RelativeDateOffset">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a date (referred to as the derived date) as a relative offset from another date (referred to as the anchor date). If the anchor date is itself an adjustable date then the offset is assumed to be calculated from the adjusted anchor date. A number of different scenarios can be supported, namely; 1) the derived date may simply be a number of calendar periods (days, weeks, months or years) preceding or following the anchor date; 2) the unadjusted derived date may be a number of calendar periods(days, weeks, months or years) preceding or following the anchor date with the resulting unadjusted derived date subject to adjustment in accordance with a specified business day convention, i.e. the derived date must fall on a good business day; 3) the derived date may be a number of business days preceding or following the anchor date. Note that the businessDayConvention specifies any required adjustment to the unadjusted derived date. A negative or positive value in the periodMultiplier indicates whether the unadjusted derived precedes or follows the anchor date. The businessDayConvention should contain a value NONE if the day type element contains a value of Business (since specifying a negative or positive business days offset would already guarantee that the derived date would fall on a good business day in the specified business centers).</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Offset">
        <xsd:sequence>
          <xsd:element name="businessDayConvention" type="BusinessDayConventionEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The convention for adjusting a date if it would otherwise fall on a day that is not a business day.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
          <xsd:element name="dateRelativeTo" type="DateReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the anchor as an href attribute. The href attribute value is a pointer style reference to the element or component elsewhere in the document where the anchor date is defined.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RelativeDates">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing a set of dates defined as relative to another set of dates.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="RelativeDateOffset">
        <xsd:sequence>
          <xsd:element name="periodSkip" type="xsd:positiveInteger" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="scheduleBounds" type="DateRange" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The first and last dates of a schedule. This can be used to restrict the range of values in a reference series of dates.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RelativeDateSequence">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing a date when this date is defined in reference to another date through one or several date offsets.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="dateRelativeTo" type="DateReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the anchor as an href attribute. The href attribute value is a pointer style reference to the element or component elsewhere in the document where the anchor date is defined.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dateOffset" type="DateOffset" maxOccurs="unbounded" />
      <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RequiredIdentifierDate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A date with a required identifier which can be referenced elsewhere.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:date">
        <xsd:attribute name="id" type="xsd:ID" use="required" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ResetFrequency">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the reset frequency. In the case of a weekly reset, also specifies the day of the week that the reset occurs. If the reset frequency is greater than the calculation period frequency the this implies that more or more reset dates is established for each calculation period and some form of rate averaginhg is applicable. The specific averaging method of calculation is specified in FloatingRateCalculation. In case the reset frequency is of value T (term), the period is defined by the swap\swapStream\calculationPerioDates\effectiveDate and the swap\swapStream\calculationPerioDates\terminationDate.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Frequency">
        <xsd:sequence>
          <xsd:element name="weeklyRollConvention" type="WeeklyRollConventionEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The day of the week on which a weekly reset date occurs. This element must be included if the reset frequency is defined as weekly and not otherwise.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapNotionalAmountReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to the return swap notional amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="NotionalAmount" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Rounding">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a rounding direction and precision to be used in the rounding of a rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="roundingDirection" type="RoundingDirectionEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the rounding direction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="precision" type="xsd:nonNegativeInteger">
        <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="Routing">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that provides three alternative ways of identifying a party involved in the routing of a payment. The identification may use payment system identifiers only; actual name, address and other reference information; or a combination of both.</xsd:documentation>
    </xsd:annotation>
    <xsd:group ref="RoutingIdentification.model" />
  </xsd:complexType>
  <xsd:complexType name="RoutingExplicitDetails">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that models name, address and supplementary textual information for the purposes of identifying a party involved in the routing of a payment.</xsd:documentation>
    </xsd:annotation>
    <xsd:group ref="RoutingExplicitDetails.model" />
  </xsd:complexType>
  <xsd:complexType name="RoutingId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="routingIdCodeScheme" type="xsd:anyURI" default="http://www.fpml.org/ext/iso9362" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RoutingIds">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that provides for identifying a party involved in the routing of a payment by means of one or more standard identification codes. For example, both a SWIFT BIC code and a national bank identifier may be required.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="routingId" type="RoutingId" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A unique identifier for party that is a participant in a recognized payment system.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RoutingIdsAndExplicitDetails">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that provides a combination of payment system identification codes with physical postal address details, for the purposes of identifying a party involved in the routing of a payment.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="routingIds" type="RoutingIds" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A set of unique identifiers for a party, eachone identifying the party within a payment system. The assumption is that each party will not have more than one identifier within the same payment system.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="RoutingExplicitDetails.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Schedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a schedule of rates or amounts in terms of an initial value and then a series of step date and value pairs. On each step date the rate or amount changes to the new step value. The series of step date and value pairs are optional. If not specified, this implies that the initial value remains unchanged over time.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="initialValue" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The initial rate or amount, as the case may be. An initial rate of 5% would be represented as 0.05.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="step" type="Step" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The schedule of step date and value pairs. On each step date the associated step value becomes effective A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="ScheduleReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to a schedule of rates or amounts.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="Schedule" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:simpleType name="Scheme">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The base class for all types which define coding schemes.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:normalizedString">
      <xsd:maxLength value="255" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="SettlementInformation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that represents the choice of methods for settling a potential currency payment resulting from a trade: by means of a standard settlement instruction, by netting it out with other payments, or with an explicit settlement instruction.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="standardSettlementStyle" type="StandardSettlementStyleEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An optional element used to describe how a trade will settle. This defines a scheme and is used for identifying trades that are identified as settling standard and/or flagged for settlement netting.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="settlementInstruction" type="SettlementInstruction">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An explicit specification of how a currency payment is to be made, when the payment is not netted and the route is other than the recipient's standard settlement instruction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="SettlementInstruction">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that models a complete instruction for settling a currency payment, including the settlement method to be used, the correspondent bank, any intermediary banks and the ultimate beneficary.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="settlementMethod" type="SettlementMethod" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The mechanism by which settlement is to be made. The scheme of domain values will include standard mechanisms such as CLS, Fedwire, Chips ABA, Chips UID, SWIFT, CHAPS and DDA.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="correspondentInformation" type="CorrespondentInformation" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The information required to identify the correspondent bank that will make delivery of the funds on the paying bank's behalf in the country where the payment is to be made</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="intermediaryInformation" type="IntermediaryInformation" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Information to identify an intermediary through which payment will be made by the correspondent bank to the ultimate beneficiary of the funds.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="beneficiaryBank" type="Beneficiary" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The bank that acts for the ultimate beneficiary of the funds in receiving payments.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="beneficiary" type="Beneficiary">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ultimate beneficiary of the funds. The beneficiary can be identified either by an account at the beneficiaryBank (qv) or by explicit routingInformation. This element provides for the latter.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="depositoryPartyReference" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Reference to the depository of the settlement.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="splitSettlement" type="SplitSettlement" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The set of individual payments that are to be made when a currency payment settling a trade needs to be split between a number of ultimate beneficiaries. Each split payment may need to have its own routing information.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementMethod">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="settlementMethodScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/settlement-method" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementPriceDefaultElection">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Coding scheme that specifies the settlement price default election.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="settlementPriceDefaultElectionScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/settlement-price-default-election" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementPriceSource">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The source from which the settlement price is to be obtained, e.g. a Reuters page, Prezzo di Riferimento, etc.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="settlementPriceSourceScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/settlement-price-source" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementRateSource">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the method for obtaining a settlement rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="informationSource" type="InformationSource">
        <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:element name="cashSettlementReferenceBanks" type="CashSettlementReferenceBanks">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A container for a set of reference institutions. These reference institutions may be called upon to provide rate quotations as part of the method to determine the applicable cash settlement amount. If institutions are not specified, it is assumed that reference institutions will be agreed between the parties on the exercise date, or in the case of swap transaction to which mandatory early termination is applicable, the cash settlement valuation date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="SharedAmericanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">TBA</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 first day of the exercise period for an American style option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expirationDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Choice between latest exercise time expressed as literal time, or using a determination method.</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="latestExerciseTime" type="BusinessCenterTime">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="latestExerciseTimeDetermination" type="DeterminationMethod">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Latest exercise time determination method.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SimplePayment">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A complex type to specified payments in a simpler fashion than the Payment type. This construct should be used from the version 4.3 onwards.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model" />
          <xsd:element name="paymentAmount" type="Money" />
          <xsd:element name="paymentDate" type="AdjustableOrRelativeAndAdjustedDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The payment date. This date is subject to adjustment in accordance with any applicable business day convention.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SplitSettlement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that supports the division of a gross settlement amount into a number of split settlements, each requiring its own settlement instruction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="splitSettlementAmount" type="Money">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">One of the monetary amounts in a split settlement payment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="beneficiaryBank" type="Routing" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The bank that acts for the ultimate beneficiary of the funds in receiving payments.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="beneficiary" type="Routing">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ultimate beneficiary of the funds. The beneficiary can be identified either by an account at the beneficiaryBank (qv) or by explicit routingInformation. This element provides for the latter.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SpreadSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Adds an optional spread type element to the Schedule to identify a long or short spread value.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Schedule">
        <xsd:sequence>
          <xsd:element name="type" type="SpreadScheduleType" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SpreadScheduleReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Provides a reference to a spread schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="SpreadSchedule" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SpreadScheduleType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a Spread Type Scheme to identify a long or short spread value.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="spreadScheduleTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/spread-schedule-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Step">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a step date and step value pair. This step definitions are used to define varying rate or amount schedules, e.g. a notional amortization or a step-up coupon schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="StepBase">
        <xsd:sequence>
          <xsd:element name="stepValue" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The rate or amount which becomes effective on the associated stepDate. A rate of 5% would be represented as 0.05.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StepBase" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a step date and step value pair. This step definitions are used to define varying rate or amount schedules, e.g. a notional amortization or a step-up coupon schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="stepDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which the associated stepValue becomes effective. This day may be subject to adjustment in accordance with a business day convention.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="StreetAddress">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes the set of street and building number information that identifies a postal address within a city.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="streetLine" type="xsd:string" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An individual line of street and building number information, forming part of a postal address.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Stub">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining how a stub calculation period amount is calculated and the start and end date of the stub. A single floating rate tenor different to that used for the regular part of the calculation periods schedule may be specified, or two floating rate tenors many be specified. If two floating rate tenors are specified then Linear Interpolation (in accordance with the 2000 ISDA Definitions, Section 8.3 Interpolation) is assumed to apply. Alternatively, an actual known stub rate or stub amount may be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="StubValue">
        <xsd:sequence>
          <xsd:element name="stubStartDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Start date of stub period. This was created to support use of the InterestRateStream within the Equity Derivative sphere, and this element is not expected to be produced in the representation of Interest Rate products.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="stubEndDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">End date of stub period. This was created to support use of the InterestRateStream within the Equity Derivative sphere, and this element is not expected to be produced in the representation of Interest Rate products.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StubValue">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining how a stub calculation period amount is calculated. A single floating rate tenor different to that used for the regular part of the calculation periods schedule may be specified, or two floating rate tenors many be specified. If two floating rate tenors are specified then Linear Interpolation (in accordance with the 2000 ISDA Definitions, Section 8.3 Interpolation) is assumed to apply. Alternatively, an actual known stub rate or stub amount may be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="floatingRate" type="FloatingRate" maxOccurs="2">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The rates to be applied to the initial or final stub may be the linear interpolation of two different rates. While the majority of the time, the rate indices will be the same as that specified in the stream and only the tenor itself will be different, it is possible to specift two different rates. For example, a 2 month stub period may use the linear interpolation of a 1 month and 3 month rate. The different rates would be specified in this component. Note that a maximum of two rates can be specified. If a stub period uses the same floating rate index, including tenor, as the regular calculation periods then this should not be specified again within this component, i.e. the stub calculation period amount component may not need to be specified even if there is an initial or final stub period. If a stub period uses a different floating rate index compared to the regular calculation periods then this should be specified within this component. If specified here, they are likely to have id attributes, allowing them to be referenced from within the cashflows component.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="stubRate" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An actual rate to apply for the initial or final stub period may have been agreed between the principal parties (in a similar way to how an initial rate may have been agreed for the first regular period). If an actual stub rate has been agreed then it would be included in this component. It will be a per annum rate, expressed as a decimal. A stub rate of 5% would be represented as 0.05.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="stubAmount" type="Money">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An actual amount to apply for the initial or final stub period may have been agreed between th two parties. If an actual stub amount has been agreed then it would be included in this component.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="Strike">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing a single cap or floor rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="strikeRate" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The rate for a cap or floor.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="buyer" type="IdentifiedPayerReceiver" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The buyer of the option</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="seller" type="IdentifiedPayerReceiver" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The party that has sold.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="StrikeSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing a schedule of cap or floor rates.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Schedule">
        <xsd:sequence>
          <xsd:element name="buyer" type="IdentifiedPayerReceiver" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The buyer of the option</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="seller" type="IdentifiedPayerReceiver" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The party that has sold.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TimezoneLocation">
    <xsd:annotation>
      <xsd:documentation>A geophraphic location for the purposes of defining a prevailing time according to the tz database.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="timezoneLocationScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/external/tzdatabase" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="americanExercise" type="AmericanExercise" substitutionGroup="exercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining the exercise period for an American style option together with any rules governing the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fees.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="bermudaExercise" type="BermudaExercise" substitutionGroup="exercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining the exercise period for a Bermuda style option together with any rules governing the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fees.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="europeanExercise" type="EuropeanExercise" substitutionGroup="exercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining the exercise period for a European style option together with any rules governing the notional amount of the underlying which can be exercised on any given exercise date and any associated exercise fees.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="exercise" type="Exercise" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An placeholder for the actual option exercise definitions.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="product" type="Product" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An abstract element used as a place holder for the substituting product elements.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:group name="BusinessCentersOrReference.model">
    <xsd:choice>
      <xsd:element name="businessCentersReference" type="BusinessCentersReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a set of financial business centers defined elsewhere in the document. This set of business centers is used to determine whether a particular day is a business day or not.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="businessCenters" type="BusinessCenters" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="BuyerSeller.model">
    <xsd:sequence>
      <xsd:element name="buyerPartyReference" type="PartyOrTradeSideReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to the party that buys this instrument, ie. pays for this instrument and receives the rights defined by it. See 2000 ISDA definitions Article 11.1 (b). In the case of FRAs this the fixed rate payer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="sellerPartyReference" type="PartyOrTradeSideReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to the party that sells ("writes") this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. See 2000 ISDA definitions Article 11.1 (a). In the case of FRAs this is the floating rate payer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="FloatingRateIndex.model">
    <xsd:sequence>
      <xsd:element name="floatingRateIndex" type="FloatingRateIndex" />
      <xsd:element name="indexTenor" type="Period" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ISDA Designated Maturity, i.e. the tenor of the floating rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PartialExercise.model">
    <xsd:sequence>
      <xsd:element name="notionalReference" type="NotionalReference" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to the associated notional schedule defined elsewhere in the document. This element has been made optional as part of its integration in the OptionBaseExtended, because not required for the options on securities.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="integralMultipleAmount" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element name="minimumNotionalAmount" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The minimum notional amount that can be exercised on a given exercise date. See multipleExercise.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="minimumNumberOfOptions" type="xsd:nonNegativeInteger">
          <xsd:annotation>
            <xsd:documentation>The minimum number of options that can be exercised on a given exercise date.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PayerReceiver.model">
    <xsd:sequence>
      <xsd:element name="payerPartyReference" type="PartyOrAccountReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to the party responsible for making the payments defined by this structure.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="receiverPartyReference" type="PartyOrAccountReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to the party that receives the payments corresponding to this structure.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PaymentDiscounting.model">
    <xsd:annotation>
      <xsd:documentation>A model group for representing the discounting elements that can be associated with a payment.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="discountFactor" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The value representing the discount factor used to calculate the present value of the cash flow.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="presentValueAmount" type="Money" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The amount representing the present value of the forecast payment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Period.model">
    <xsd:sequence>
      <xsd:element name="startDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Date on which this period begins.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="endDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Date on which this period ends.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Premium.model">
    <xsd:annotation>
      <xsd:documentation>A model group for representing the option premium when expressed in a way other than an amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="premiumType" type="PremiumTypeEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Forward start Premium type</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="pricePerOption" type="Money" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The amount of premium to be paid expressed as a function of the number of options.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="percentageOfNotional" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The amount of premium to be paid expressed as a percentage of the notional value of the transaction. A percentage of 5% would be expressed as 0.05.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Product.model">
    <xsd:sequence>
      <xsd:element name="productType" type="ProductType" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A classification of the type of product. FpML defines a simple product categorization using a coding scheme.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="productId" type="ProductId" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A product reference identifier allocated by a party. FpML does not define the domain values associated with this element. Note that the domain values for this element are not strictly an enumerated list.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="RoutingExplicitDetails.model">
    <xsd:sequence>
      <xsd:element name="routingName" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A real name that is used to identify a party involved in the routing of a payment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="routingAddress" type="Address" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A physical postal address via which a payment can be routed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="routingAccountNumber" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An account number via which a payment can be routed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="routingReferenceText" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A piece of free-format text used to assist the identification of a party involved in the routing of a payment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="RoutingIdentification.model">
    <xsd:choice>
      <xsd:element name="routingIds" type="RoutingIds">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A set of unique identifiers for a party, eachone identifying the party within a payment system. The assumption is that each party will not have more than one identifier within the same payment system.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="routingExplicitDetails" type="RoutingExplicitDetails">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A set of details that is used to identify a party involved in the routing of a payment when the party does not have a code that identifies it within one of the recognized payment systems.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="routingIdsAndExplicitDetails" type="RoutingIdsAndExplicitDetails">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A combination of coded payment system identifiers and details for physical addressing for a party involved in the routing of a payment.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="SettlementAmountOrCurrency.model">
    <xsd:choice>
      <xsd:element name="settlementAmount" type="Money">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Settlement Amount</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="settlementCurrency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Settlement Currency for use where the Settlement Amount cannot be known in advance</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="VersionHistory.model">
    <xsd:sequence>
      <xsd:element name="version" type="xsd:nonNegativeInteger">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The version number</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="effectiveDate" type="IdentifiedDate" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Optionally it is possible to specify a version effective date when a versionId is supplied.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
</xsd:schema>

