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

<!-- 
== Copyright (c) 2002-2017 All rights reserved. 
== Financial Products Markup Language is subject to the FpML public license. 
== A copy of this license is available at http://www.fpml.org/license/license.html
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/transparency" xmlns:fpml-annotation="http://www.fpml.org/annotation" targetNamespace="http://www.fpml.org/FpML-5/transparency" ecore:documentRoot="FpML" ecore:nsPrefix="trnsp" ecore:package="org.fpml.transparency" version="$Revision: 12926 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:include schemaLocation="fpml-enum-5-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="Initial">
    <xsd:restriction base="xsd:normalizedString">
      <xsd:length value="1" />
    </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="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="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="Scheme">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The base class for all types which define coding schemes that are allowed to be empty.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="NormalizedString">
      <xsd:maxLength value="255" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NonEmptyScheme">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The base class for all types which define coding schemes that must be populated.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="NormalizedString">
      <xsd:minLength value="1"></xsd:minLength>
      <xsd:maxLength value="255" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NonEmptyLongScheme">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The base class for all types which define coding schemes that must be populated.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="NormalizedString">
      <xsd:minLength value="1"></xsd:minLength>
      <xsd:maxLength value="1023" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NonEmptyURI">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A URI that cannot be empty.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:anyURI">
      <xsd:minLength value="1"></xsd:minLength>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="String">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A string. FpML may define lenght restrictions in some views.</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="255" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NormalizedString">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A normalized string</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:normalizedString">
      <xsd:minLength value="0" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="Token">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A token. FpML redefines this type so that in some views it can enforce that it may not be empty</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:token">
      <xsd:minLength value="1"></xsd:minLength>
    </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="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:element name="accountId" type="AccountId" minOccurs="0" maxOccurs="unbounded">
        <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="AccountName" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The name by which the account is known.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="accountType" type="AccountType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of account. e.g., Client, House</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:element name="servicingParty" type="PartyReference" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A reference to the party that services/supports the account.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </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 account identifiers.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="NonEmptyScheme">
        <xsd:attribute name="accountIdScheme" type="NonEmptyURI">
          <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="AccountName">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for the name of the account.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="accountNameScheme" type="NonEmptyURI" use="optional">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The identifier scheme used with this accountName. A unique URI to determine the source of the account name.</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="AccountType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for account type.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="accountTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/account-type">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The identifier scheme used with this accountType. A unique URI to determine the the type of account.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ActionType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for ESMA action type.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="actionTypeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/action-type">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The identifier scheme used with this actionType. A unique URI to determine the the type of action.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </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="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="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="CountryCode" 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="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: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: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" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A date subject to adjustment.</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="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="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). This element is provided to maintain consistency with prior Transparency view models of valuationDates and should not be used for other purposes.</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="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="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 date 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 swap effective date, in an extendible/cancelable provision it is the swap termination date).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="earliestExerciseTime" type="BusinessCenterTime" minOccurs="0">
            <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" minOccurs="0">
            <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" minOccurs="0">
            <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="AssetClass">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="assetClassScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/asset-class" />
      </xsd:extension>
    </xsd:simpleContent>
  </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" minOccurs="0">
        <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" minOccurs="0">
        <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="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 date 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 swap effective date, in an extendible/cancelable provision it is the swap termination date).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="earliestExerciseTime" type="BusinessCenterTime" minOccurs="0">
            <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" minOccurs="0">
            <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="BusinessCenter">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A code identifying a business day calendar location. A business day calendar location is drawn from the list identified by the business day calendar location scheme.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="businessCenterScheme" type="NonEmptyURI" 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 business day calendar used in determining whether a day is a business day or not. A list of business day calendar locations may be ordered in the document alphabetically based on business day calendar location code. An FpML document containing an unordered business day calendar location list is still regarded as a conformant document.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="businessCenter" type="BusinessCenter" minOccurs="0" 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 business day calendar 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 day calendar location. For example, 11:00am London time.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="hourMinuteTime" type="HourMinuteTime" minOccurs="0">
        <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" minOccurs="0" />
    </xsd:sequence>
  </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" minOccurs="0">
        <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="BusinessUnit">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that represents information about a unit within an organization.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name" type="String" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A name used to describe the organization unit</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="businessUnitId" type="Unit" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An identifier used to uniquely identify organization unit</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="contactInfo" type="ContactInformation" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Information on how to contact the unit using various means.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="country" type="CountryCode" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ISO 3166 standard code for the country where the individual works.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="BusinessUnitReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Reference to an organizational unit.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="BusinessUnit" />
      </xsd:extension>
    </xsd:complexContent>
  </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" minOccurs="0">
            <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="CashflowNotional">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The notional/principal value/quantity/volume used to compute the cashflow.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <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="units" type="NormalizedString">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The units in which an amount (not monetary) is denominated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="amount" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The quantity of notional (in currency or other units).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </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="NonEmptyURI" default="http://www.fpml.org/coding-scheme/cashflow-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="NonEmptyURI" default="http://www.fpml.org/coding-scheme/clearance-system" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Collateral">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining the obligations of the counterparty subject to credit support requirements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="independentAmount" type="IndependentAmount" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Independent Amount is an amount that usually less creditworthy counterparties are asked to provide. It can either be a fixed amount or a percentage of the Transaction's value. The Independent Amount can be: (i) transferred before any trading between the parties occurs (as a deposit at a third party's account or with the counterparty) or (ii) callable after trading has occurred (typically because a downgrade has occurred). In situation (i), the Independent Amount is not included in the calculation of Exposure, but in situation (ii), it is included in the calculation of Exposure. Thus, for situation (ii), the Independent Amount may be transferred along with any collateral call. Independent Amount is a defined term in the ISDA Credit Support Annex. ("with respect to a party, the amount specified as such for that party in Paragraph 13; if no amount is specified, zero").</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContactInformation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that represents how to contact an individual or organization.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="telephone" type="TelephoneNumber" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A telephonic contact.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="email" type="NormalizedString" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An address on an electronic mail or messaging sysem .</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="address" type="Address" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A postal or street address.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CountryCode">
    <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="Token">
        <xsd:attribute name="countryScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/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="NonEmptyURI" 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="CreditRating">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A party's credit rating.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="creditRatingScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/moodys" />
      </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="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/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" minOccurs="0" 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" minOccurs="0">
            <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:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </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="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="NonEmptyURI" 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="NonEmptyURI" 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="DirectionalLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An abstract base class for all directional leg types with effective date, termination date, where a payer makes a stream of payments of greater than zero value to a receiver.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:element name="legIdentifier" type="LegIdentifier" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Version aware identification of this leg.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the effective date of this leg of the swap. When defined in relation to a date specified somewhere else in the document (through the relativeDate component), this element will typically point to the effective date of the other leg of the swap.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="terminationDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the termination date of this leg of the swap. When defined in relation to a date specified somewhere else in the document (through the relativeDate component), this element will typically point to the termination date of the other leg of the swap.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EmbeddedOptionType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A flexible description of the type or characteristics of an option embbedded within another product. For example, a cancelable provision or an optional early termination provision.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="embeddedOptionTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/embedded-option-type">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The type scheme used with this option type.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </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="NonEmptyScheme">
        <xsd:attribute name="entityIdScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/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="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/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: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="NonEmptyScheme">
        <xsd:attribute name="exchangeIdScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/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="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:element name="notionalReference" type="ScheduleReference" minOccurs="0">
        <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 minOccurs="0">
        <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" minOccurs="0">
        <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" minOccurs="0">
        <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" minOccurs="0" />
    </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="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="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:element name="capFloorStraddle" type="xsd:boolean" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">This element is applicable in Transparency view (only) if both a capRateSchedule and a floorRateSchedule are set. If this is true, the buyer of both the cap and the floor protection is the same, and the structure is a cap/floor straddle. If this is false, the buyer of the cap is the seller of the floor, and the structure is a collar. This is needed because explicit information about the buyer and seller of the protection is not available in Transparnecy view.</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: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="NonEmptyURI" default="http://www.fpml.org/coding-scheme/floating-rate-index" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="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="String" minOccurs="0">
        <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="NormalizedString" />
  </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:positiveInteger" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A time period multiplier, e.g. 1, 2 or 3 etc. 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" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A time period, e.g. a day, week, month, year or term of the stream.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </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 cash settlement occurs for non-deliverable forwards and cash-settled options (non-deliverable or otherwise).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="referenceCurrency" type="Currency" minOccurs="0" />
      <xsd:element name="notionalAmount" type="PositiveMoney" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The amount of money that the settlement will be derived from.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="settlementDate" type="AdjustableDate" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which settlement is scheduled to occur</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
<!--10-17-2014: Added new simplified FxCashSettlementSimple model to support Volatility products-->
  <xsd:complexType name="FxCashSettlementSimple">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that is used for describing cash settlement of a variance or volatility swap option. It includes the settlement currency together with the spot currency exchange required to calculate the settlement currency amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="settlementCurrency" type="Currency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency in which cash settlement occurs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="referenceCurrency" type="Currency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Reference Currency.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </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="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="NonEmptyURI" 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="IdentifiedRate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A rate which can be referenced elsewhere.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:decimal">
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="IndependentAmount">
    <xsd:sequence>
      <xsd:group ref="PayerReceiver.model" />
      <xsd:element name="paymentDetail" type="PaymentDetail" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A container element allowing a schedule of payments associated with the Independent Amount.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="IndustryClassification">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A party's industry sector classification.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="industryClassificationScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/regulatory-corporate-sector" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InformationProvider">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="informationProviderScheme" type="NonEmptyURI" 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" minOccurs="0">
        <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="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="NonEmptyScheme">
        <xsd:attribute name="instrumentIdScheme" type="NonEmptyURI" use="required" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="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="NonEmptyURI" default="http://www.fpml.org/coding-scheme/interpolation-method" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Language">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for indicating the language of the resource, described using the ISO 639-2/T Code.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="languageScheme" type="NonEmptyURI" />
      </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:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="LegId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Leg identity.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Token60">
        <xsd:attribute name="legIdScheme" type="NonEmptyURI" use="required" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="LegIdentifier">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Version aware identification of a leg.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="legId" type="LegId" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Identity of this leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="VersionHistory.model" minOccurs="0" />
    </xsd:sequence>
  </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: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="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="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="NonEmptyURI" />
      </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="NonNegativeDecimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">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:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </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="NonNegativeMoney" />
    </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="NumberOfOptionsReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to the number of options.</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="NumberOfUnitsReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to the number of units.</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>
<!--2015-01-06: GFXD: Accrual/Target-->
<!--2015-01-08: FpML FX WG: rename to ObservationFrequency-->
  <xsd:complexType name="ObservationFrequency">
    <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="Period">
<!--2015-01-13:GFXD: no need to support the concept such as EOM, etc. for observation or accrual expiry or settlement period dates. -->
        <xsd:sequence>
<!--2015-01-08:FpML FX WG: Need to specify something like roll convention. One of the use cases’ example: EOM for monthly frequency. It is also clearer when day of the week specified for weekly frequency rather than inferring it from the start date.-->
          <xsd:element name="periodConvention" type="RollConventionEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Used in conjunction with a frequency and the regular period start date of an observation period, determines each observation period end date within the regular part of a observation period schedule.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </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. E.g. calendar days, business days, Commodity Business days, etc..</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Period"></xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OffsetPrevailingTime">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">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 xml:lang="en">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="OnBehalfOf">
    <xsd:sequence>
      <xsd:element name="partyReference" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The party for which the message reciever should work.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="accountReference" type="AccountReference" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Identifies the account(s) related to the party when they cannot be determined from the party alone, for example in a inter-book trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OrganizationType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A code that describes what type of role an organization plays, for example a SwapsDealer, a Major Swaps Participant, or Other</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Token">
        <xsd:attribute name="organizationTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/organization-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="OriginatingEvent">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="originatingEventScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/originating-event" />
      </xsd:extension>
    </xsd:simpleContent>
  </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:choice>
      <xsd:group ref="Party.model" />
      <xsd:sequence>
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A group of parties acting as a single party (e.g. joint and several).</xsd:documentation>
        </xsd:annotation>
        <xsd:element name="groupType" type="PartyGroupType">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Party Group Type, e.g. JointAndSeveralLiability</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="partyReference" type="PartyReference" minOccurs="2" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Reference to a party that is a member of the group of entities that are acting together as a single party in a transaction.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
    <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="PartyGroupType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for party group classification.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="partyGroupTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/party-group-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="NonEmptyScheme">
        <xsd:attribute name="partyIdScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/iso9362" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PartyName">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for the legal name of an organization.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="partyNameScheme" type="NonEmptyURI" use="optional" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="PartyRole">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing a role played by a party in one or more transactions. Examples include roles such as guarantor, custodian, confirmation service provider, etc. This can be extended to provide custom roles.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="partyRoleScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/party-role" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PartyRoleType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type refining the role a role played by a party in one or more transactions. Examples include "AllPositions" and "SomePositions" for Guarantor. This can be extended to provide custom types.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="partyRoleTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/party-role-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </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. In Transparency view, normally the payer and receiver party references are not used; however they may be provided if necessary for administrative activities such as Reporting Party Determination in FX.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model">
            <xsd:annotation></xsd:annotation>
          </xsd:group>
          <xsd:element name="paymentAmount" type="NonNegativeMoney">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The currency amount of the payment.</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: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="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.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PaymentBase"></xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentDetail">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element name="paymentDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Payment date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence minOccurs="0">
            <xsd:element name="paymentRule" type="PaymentRule" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A type defining the calculation rule.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="paymentAmount" type="Money" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A fixed payment amount.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentRule" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The abstract base type from which all calculation rules of the independent amount must be derived.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  <xsd:complexType name="PaymentType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="paymentTypeScheme" type="NonEmptyURI" />
      </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" minOccurs="0" />
      <xsd:element name="calculationEndDate" type="AdjustableOrRelativeDate" minOccurs="0" />
      <xsd:element name="calculationPeriodFrequency" type="CalculationPeriodFrequency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The frequency at which calculation period end dates occur with the regular part of the calculation period schedule and their roll date convention.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationPeriodDatesAdjustments" type="BusinessDayAdjustments" minOccurs="0">
        <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="Person">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that represents information about a person connected with a trade or business process.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence minOccurs="0">
        <xsd:element name="honorific" type="NormalizedString" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">An honorific title, such as Mr., Ms., Dr. etc.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="firstName" type="NormalizedString" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Given name, such as John or Mary.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:choice minOccurs="0">
          <xsd:element name="middleName" type="NormalizedString" maxOccurs="unbounded" />
          <xsd:element name="initial" type="Initial" maxOccurs="unbounded" />
        </xsd:choice>
        <xsd:element name="surname" type="NormalizedString" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Family name, such as Smith or Jones.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="suffix" type="NormalizedString" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Name suffix, such as Jr., III, etc.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="personId" type="PersonId" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An identifier assigned by a system for uniquely identifying the individual</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="businessUnitReference" type="BusinessUnitReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The unit for which the indvidual works.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="contactInfo" type="ContactInformation" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Information on how to contact the individual using various means.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dateOfBirth" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The birth date of the person, e.g. 1970-01-01</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="country" type="CountryCode" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ISO 3166 standard code for the country where the individual works.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="PersonId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An identifier used to identify an individual person.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="NonEmptyScheme">
        <xsd:attribute name="personIdScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </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" minOccurs="0">
            <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="PrevailingTime">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">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" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">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="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" minOccurs="0">
        <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" minOccurs="0">
        <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" minOccurs="0">
        <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" minOccurs="0" />
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="ProductId">
    <xsd:simpleContent>
      <xsd:extension base="NonEmptyLongScheme">
        <xsd:attribute name="productIdScheme" type="NonEmptyURI" />
      </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="NonEmptyLongScheme">
        <xsd:attribute name="productTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/product-taxonomy" />
      </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" minOccurs="0">
        <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" minOccurs="0">
        <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" minOccurs="0">
        <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="RateSourcePage">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="rateSourcePageScheme" type="NonEmptyURI" />
      </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="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Region">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A code that describes the world region of a counterparty. For example, NorthAmerica, Europe, Asia.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="regionScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/region" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RelatedParty">
    <xsd:sequence>
      <xsd:group ref="PartyAndAccountReferences.model" />
      <xsd:element name="role" type="PartyRole">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The category of the relationship. The related party performs the role specified in this field for the base party. For example, if the role is "Guarantor", the related party acts as a guarantor for the base party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="type" type="PartyRoleType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Additional definition refining the type of relationship. For example, if the "role" is Guarantor, this element may be used to specify whether all positions are guaranteed, or only a subset of them.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </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="dateRelativeTo" type="DateReference" minOccurs="0">
            <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: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" minOccurs="0">
        <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" minOccurs="0" maxOccurs="unbounded" />
      <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReportingRegimeName">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An identifier of an reporting regime or format used for regulatory reporting, for example DoddFrankAct, MiFID, HongKongOTCDRepository, etc.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="reportingRegimeNameScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/reporting-regime" />
      </xsd:extension>
    </xsd:simpleContent>
  </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:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Resource">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the resource that contains the media representation of a business event (i.e used for stating the Publicly Available Information). For example, can describe a file or a URL that represents the event. This type is an extended version of a type defined by RIXML (www.rixml.org).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="resourceId" type="ResourceId" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The unique identifier of the resource within the event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="resourceType" type="ResourceType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A description of the type of the resource, e.g. a confirmation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="language" type="Language" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates the language of the resource, described using the ISO 639-2/T Code.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="sizeInBytes" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates the size of the resource in bytes. It could be used by the end user to estimate the download time and storage needs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="length" type="ResourceLength" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates the length of the resource. For example, if the resource were a PDF file, the length would be in pages.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="mimeType" type="MimeType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">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:element>
      <xsd:element name="name" type="NormalizedString" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The name of the resource.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="comments" type="String" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Any additional comments that are deemed necessary. For example, which software version is required to open the document? Or, how does this resource relate to the others for this event?</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="string" type="String">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Provides extra information as string. In case the extra information is in XML format, a CDATA section must be placed around the source message to prevent its interpretation as XML content.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="hexadecimalBinary" type="xsd:hexBinary">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Provides extra information as binary contents coded in hexadecimal.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="base64Binary" type="xsd:base64Binary">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Provides extra information as binary contents coded in base64.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="url" type="NonEmptyURI">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Indicates where the resource can be found, as a URL that references the information on a web server accessible to the message recipient.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ResourceId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for resource identifiers.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="NonEmptyScheme">
        <xsd:attribute name="resourceIdScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ResourceLength">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The type that indicates the length of the resource.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="lengthUnit" type="LengthUnitEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The length unit of the resource. For example, pages (pdf, text documents) or time (audio, video files).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="lengthValue" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The length value of the resource.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ResourceType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for describing the type or purpose of a resource, e.g. "Confirmation".</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="resourceTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/resource-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="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: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: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" minOccurs="0">
            <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: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:element name="paymentAmount" type="NonNegativeMoney" minOccurs="0" />
          <xsd:element name="paymentDate" type="AdjustableOrRelativeDate" 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:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </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="NonEmptyURI" default="http://www.fpml.org/coding-scheme/spread-schedule-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="String" minOccurs="0" 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="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="SupervisoryBody">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An identifier of an organization that supervises or regulates trading activity, e.g. CFTC, SEC, FSA, ODRF, etc.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="supervisoryBodyScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/supervisory-body" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TelephoneNumber">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that represents a telephonic contact.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type" type="TelephoneTypeEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of telephone number (work, personal, mobile).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="number" type="String" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A telephonic contact.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TimezoneLocation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">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="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/tzdatabase" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A trade 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:simpleContent>
      <xsd:extension base="NonEmptyScheme">
        <xsd:attribute name="tradeIdScheme" type="NonEmptyURI"></xsd:attribute>
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="UnderlyerInterestLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing interest payments associated with and underlyer, such as financing</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="DirectionalLeg">
        <xsd:sequence>
          <xsd:choice minOccurs="0">
            <xsd:element name="fixedRate" type="xsd:decimal" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The calculation period fixed rate. A per annum rate, expressed as a decimal. A fixed rate of 5% would be represented as 0.05.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="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:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Unit">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type used to record information about a unit, subdivision, desk, or other similar business entity.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="unitScheme" type="NonEmptyURI" use="optional" />
      </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="PartyReference" minOccurs="0">
        <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="PartyReference" minOccurs="0">
        <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="OnBehalfOf.model">
    <xsd:sequence>
      <xsd:element name="onBehalfOf" type="OnBehalfOf" minOccurs="0" maxOccurs="4">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates which party (or parties) (and accounts) a trade or event is being processed for. Normally there will only be a maximum of 2 parties, but in the case of a novation there could be a transferor, transferee, remaining party, and other remaining party. Also, in the context of a trade package there could be several parties for which limit check is requested, necessitating multiple onBehalfOf elements. Except for these cases, there should be no more than two onBehalfOf references in a message.</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 minOccurs="0">
        <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 xml:lang="en">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="PartiesAndAccounts.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Supporting party and account definitions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="party" type="Party" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">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:element>
      <xsd:element name="account" type="Account" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Optional account information used to precisely define the origination and destination of financial instruments.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Party.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A model group with the content model of a party.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="partyId" type="PartyId" minOccurs="0" 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="PartyName" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The legal name of the organization. A free format string. FpML does not define usage rules for this element.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="PartyInformation.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Descriptive/categorization information for a party.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:element name="contactInfo" type="ContactInformation" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Information on how to contact the party using various means.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="businessUnit" type="BusinessUnit" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Optional organization unit information used to describe the organization units (e.g. trading desks) involved in a transaction or business process .</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="person" type="Person" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Optional information about people involved in a transaction or busines process. (These are eomployees of the party).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PartyAndAccountReferences.model">
    <xsd:sequence>
      <xsd:element name="partyReference" type="PartyReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Reference to a party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PartyInformation.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Information about a party for reporting purposes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="classification" type="IndustryClassification" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The party's industry sector classification.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="creditRating" type="CreditRating" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The party's credit rating.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="country" type="CountryCode" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The country where the party is domiciled.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="region" type="Region" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A code for a grouping of countries to which this belongs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="jurisdiction" type="GoverningLaw" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The legal jurisdiction of the entity's registration.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="organizationType" type="OrganizationType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of an organization's participantion in the OTC derivatives market.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
<!--10-17-2014: Volatility Variance Swap/Volatility Swap - refactored PayerReceiver.model into Payer.model and Receiver.model to be used when Receiver is optional-->
  <xsd:group name="Payer.model">
    <xsd:sequence>
      <xsd:element name="payerPartyReference" type="PartyReference" minOccurs="0">
        <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:sequence>
  </xsd:group>
<!--10-17-2014: Volatility Variance Swap/Volatility Swap - refactored PayerReceiver.model into Payer.model and Receiver.model to be used when Receiver is optional-->
  <xsd:group name="PayerReceiver.model">
    <xsd:sequence>
      <xsd:group ref="Payer.model">
        <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:group>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Premium.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">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="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="primaryAssetClass" type="AssetClass" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A classification of the most important risk class of the trade. FpML defines a simple asset class categorization using a coding scheme.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="secondaryAssetClass" type="AssetClass" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A classification of additional risk classes of the trade, if any. FpML defines a simple asset class categorization using a coding scheme.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <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. The product ID is an identifier that describes the key economic characteristics of the trade type, with the exception of concepts such as size (notional, quantity, number of units) and price (fixed rate, strike, etc.) that are negotiated for each transaction. It can be used to hold identifiers such as the "UPI" (universal product identifier) required by certain regulatory reporting rules. It can also be used to hold identifiers of benchmark products or product temnplates used by certain trading systems or facilities. 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:element name="embeddedOptionType" type="EmbeddedOptionType" minOccurs="0" maxOccurs="2">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes the type of any embedded optionality in the transaction that might not otherwise be apparent. Can be used to represent embedded optionality such as early termination provisions, extendible provisions, or cancelable provisions, etc., where applicable. If omitted, no embedded optionality is applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
<!--10-17-2014: Volatility Variance Swap/Volatility Swap - refactored PayerReceiver.model into Payer.model and Receiver.model to be used when Receiver is optional-->
  <xsd:group name="Receiver.model">
    <xsd:sequence></xsd:sequence>
  </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="StockLoan.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Stock Loan Content Model</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="lossOfStockBorrow" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If true, then loss of stock borrow is applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="maximumStockLoanRate" type="RestrictedPercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the maximum stock loan rate for Loss of Stock Borrow.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="increasedCostOfStockBorrow" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If true, then increased cost of stock borrow is applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="initialStockLoanRate" type="RestrictedPercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the initial stock loan rate for Increased Cost of Stock Borrow.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:complexType name="IssuerId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The data type used for issuer identifiers.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="NonEmptyScheme">
        <xsd:attribute name="issuerIdScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="IssuerTradeId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A complex type for a two part identifier such as a USI.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="IssuerTradeId.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:group name="IssuerTradeId.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A model group for a two part identifier such as a USI.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="issuer" type="IssuerId" />
      <xsd:element name="tradeId" type="TradeId" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="VersionHistory.model">
    <xsd:sequence>
      <xsd:element name="version" type="xsd:nonNegativeInteger" minOccurs="0">
        <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>

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