<xsd:schema targetNamespace="http://www.fpml.org/2005/FpML-4-2" xmlns="http://www.fpml.org/2005/FpML-4-2" elementFormDefault="qualified" attributeFormDefault="unqualified" jxb:version="1.0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fpml="http://www.fpml.org/2005/FpML-4-2" xmlns:jxb="http://java.sun.com/xml/ns/jaxb">
  <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig.xsd" />
  <xsd:annotation>
    <xsd:appinfo>
      <jxb:schemaBindings>
        <jxb:package name="com.jpmorgan.fpml" />
        <jxb:nameXmlTransform>
          <jxb:typeName suffix="Type" />
          <jxb:elementName suffix="Element" />
        </jxb:nameXmlTransform>
      </jxb:schemaBindings>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:complexType name="Document" abstract="true">
    <xsd:attribute name="version">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="versionAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
      <xsd:simpleType>
        <xsd:restriction base="xsd:token">
          <xsd:enumeration value="4-0" />
          <xsd:enumeration value="4-1" />
          <xsd:enumeration value="4-2" />
          <xsd:enumeration value="4-3" />
          <xsd:enumeration value="4-4" />
          <xsd:enumeration value="4-5" />
          <xsd:enumeration value="4-6" />
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute name="expectedBuild" type="xsd:positiveInteger">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="expectedBuildAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="actualBuild" type="xsd:positiveInteger">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="actualBuildAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Message" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Document" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestMessage" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Message">
        <xsd:sequence>
          <xsd:element name="header" type="fpml:RequestMessageHeader" />
          <xsd:group ref="fpml:Validation.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MessageHeader" abstract="true">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="conversationId" type="fpml:ConversationId" />
      <xsd:element name="messageId" type="fpml:MessageId" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RequestMessageHeader">
    <xsd:complexContent>
      <xsd:extension base="MessageHeader">
        <xsd:sequence>
          <xsd:group ref="fpml:MessageHeader.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ConversationId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="conversationIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="conversationIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MessageId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="messageIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="messageIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MessageAddress">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="partyIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="partyIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Trade">
    <xsd:sequence>
      <xsd:element name="tradeHeader" type="fpml:TradeHeader" />
      <xsd:element ref="fpml:product" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="otherPartyPayment" type="fpml:Payment" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="brokerPartyReference" type="fpml:PartyReference" />
      <xsd:group ref="fpml:CalculationAgent.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="collateral" type="fpml:Collateral" />
      <xsd:element minOccurs="0" maxOccurs="1" name="documentation" type="fpml:Documentation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="governingLaw" type="fpml:GoverningLaw" />
      <xsd:element minOccurs="0" maxOccurs="1" name="allocations" type="fpml:Allocations" />
      <xsd:element minOccurs="0" maxOccurs="2" name="tradeSide" type="fpml:TradeSide" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="TradeHeader">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="partyTradeIdentifier" type="fpml:PartyTradeIdentifier" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="partyTradeInformation" type="fpml:PartyTradeInformation" />
      <xsd:element name="tradeDate" type="fpml:IdentifiedDate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeIdentifier">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyReference" />
      <xsd:choice maxOccurs="unbounded">
        <xsd:element name="tradeId" type="fpml:TradeId" />
        <xsd:element name="versionedTradeId" type="fpml:VersionedTradeId" />
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="PartyTradeIdentifier">
    <xsd:complexContent>
      <xsd:extension base="TradeIdentifier">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="linkId" type="fpml:LinkId" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Reference" abstract="true" />
  <xsd:complexType name="PartyReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="tradeIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="tradeIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedDate">
    <xsd:simpleContent>
      <xsd:extension base="xsd:date">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Product" abstract="true">
    <xsd:sequence>
      <xsd:group ref="fpml:Product.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ProductType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="productTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="productTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PartyOrTradeSideReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MoneyBase" abstract="true">
    <xsd:sequence>
      <xsd:element name="currency" type="fpml:Currency" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Money">
    <xsd:complexContent>
      <xsd:extension base="MoneyBase">
        <xsd:sequence>
          <xsd:element name="amount" type="xsd:decimal" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Currency">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="currencyScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="currencySchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="AdjustableOrRelativeDate">
    <xsd:choice>
      <xsd:element name="adjustableDate" type="fpml:AdjustableDate" />
      <xsd:element name="relativeDate" type="fpml:RelativeDateOffset" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Interval">
    <xsd:sequence>
      <xsd:group ref="fpml:Interval.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Offset">
    <xsd:complexContent>
      <xsd:extension base="Interval">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="dayType" type="fpml:DayTypeEnum" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RelativeDateOffset">
    <xsd:complexContent>
      <xsd:extension base="Offset">
        <xsd:sequence>
          <xsd:element name="businessDayConvention" type="fpml:BusinessDayConventionEnum" />
          <xsd:group ref="fpml:BusinessCentersOrReference.model" minOccurs="0" />
          <xsd:element name="dateRelativeTo" type="fpml:DateReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessCenters">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="businessCenter" type="fpml:BusinessCenter" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="BusinessCenter">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="businessCenterScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="businessCenterSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DateReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Asset" abstract="true">
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedAsset" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Asset">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="instrumentId" type="fpml:InstrumentId" />
          <xsd:element minOccurs="0" maxOccurs="1" name="description" type="xsd:string" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="UnderlyingAsset" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="IdentifiedAsset">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
          <xsd:element minOccurs="0" maxOccurs="1" name="exchangeId" type="fpml:ExchangeId" />
          <xsd:element minOccurs="0" maxOccurs="1" name="clearanceSystem" type="fpml:ClearanceSystem" />
          <xsd:element minOccurs="0" maxOccurs="1" name="definition" type="fpml:ProductReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ExchangeTraded" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:group ref="fpml:ExchangeIdentifier.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityAsset">
    <xsd:complexContent>
      <xsd:extension base="ExchangeTraded" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InstrumentId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="instrumentIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="instrumentIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ExchangeId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="exchangeIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="exchangeIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Party">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="partyId" type="fpml:PartyId" />
      <xsd:element minOccurs="0" maxOccurs="1" name="partyName" type="xsd:normalizedString" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="account" type="fpml:Account" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="PartyId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="partyIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="partyIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="QuotedCurrencyPair">
    <xsd:sequence>
      <xsd:element name="currency1" type="fpml:Currency" />
      <xsd:element name="currency2" type="fpml:Currency" />
      <xsd:element name="quoteBasis" type="fpml:QuoteBasisEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TimeDimension">
    <xsd:choice>
      <xsd:element name="tenor" type="fpml:Interval" />
      <xsd:sequence>
        <xsd:element name="date" type="xsd:date" />
        <xsd:element minOccurs="0" maxOccurs="1" name="tenor" type="fpml:Interval" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="GenericDimension">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="name" type="xsd:normalizedString">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="nameAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CoalTransportationEquipment">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityCoalTransportationEquipmentScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityCoalTransportationEquipmentSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityDeliveryRisk">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryRiskScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="deliveryRiskSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingRateIndex">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="floatingRateIndexScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="floatingRateIndexSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityNotionalQuantity">
    <xsd:sequence>
      <xsd:element name="quantityUnit" type="fpml:QuantityUnit" />
      <xsd:element name="quantityFrequency" type="fpml:CommodityQuantityFrequency" />
      <xsd:element name="quantity" type="xsd:decimal" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CommodityPhysicalQuantitySchedule">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="quantityStep" type="fpml:CommodityNotionalQuantity" />
      <xsd:group ref="fpml:CommodityDeliveryPeriodsPointer.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="UnitQuantity">
    <xsd:sequence>
      <xsd:element name="quantityUnit" type="fpml:QuantityUnit" />
      <xsd:element name="quantity" type="fpml:NonNegativeDecimal" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ProductId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="productIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="productIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Country">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="countryScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="countrySchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="AdjustableDates">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="unadjustedDate" type="fpml:IdentifiedDate" />
      <xsd:element name="dateAdjustments" type="fpml:BusinessDayAdjustments" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CommodityCalculationPeriodsSchedule">
    <xsd:complexContent>
      <xsd:extension base="Interval">
        <xsd:sequence>
          <xsd:element name="balanceOfFirstPeriod" type="xsd:boolean" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodsReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodsScheduleReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CoalAttributePercentage">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="standardContent" type="fpml:RestrictedPercentage" />
        <xsd:element minOccurs="0" maxOccurs="1" name="rejectionLimit" type="fpml:RestrictedPercentage" />
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="rejectionLimit" type="fpml:RestrictedPercentage" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="QuantityUnit">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="quantityUnitScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="quantityUnitSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="NonNegativeMoney">
    <xsd:complexContent>
      <xsd:extension base="MoneyBase">
        <xsd:sequence>
          <xsd:element name="amount" type="fpml:NonNegativeDecimal" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityStrikeSchedule">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="strikePricePerUnitStep" type="fpml:NonNegativeMoney" />
      <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityMarketDisruption">
    <xsd:sequence>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="marketDisruptionEvents" type="fpml:MarketDisruptionEventsEnum" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="additionalMarketDisruptionEvent" type="fpml:MarketDisruptionEvent" />
        </xsd:sequence>
        <xsd:element maxOccurs="unbounded" name="marketDisruptionEvent" type="fpml:MarketDisruptionEvent" />
      </xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="disruptionFallbacks" type="fpml:DisruptionFallbacksEnum" />
        <xsd:element maxOccurs="unbounded" name="disruptionFallback" type="fpml:SequencedDirsuptionFallback" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="fallbackReferencePrice" type="fpml:Underlyer" />
      <xsd:element minOccurs="0" maxOccurs="1" name="maximumNumberOfDaysOfDisruption" type="xsd:nonNegativeInteger" />
      <xsd:element minOccurs="0" maxOccurs="1" name="priceMaterialityPercentage" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="minimumFuturesContracts" type="xsd:positiveInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Rounding">
    <xsd:sequence>
      <xsd:element name="roundingDirection" type="fpml:RoundingDirectionEnum" />
      <xsd:element name="precision" type="xsd:nonNegativeInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PricingParameterDerivative">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="description" type="xsd:string" />
      <xsd:choice>
        <xsd:element minOccurs="0" maxOccurs="1" name="parameterReference" type="fpml:AssetOrTermPointOrPricingStructureReference" />
        <xsd:element maxOccurs="unbounded" name="inputDateReference" type="fpml:ValuationReference" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationProcedure" type="fpml:DerivativeCalculationProcedure" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="DerivativeFormula">
    <xsd:sequence>
      <xsd:element name="term" type="fpml:FormulaTerm" />
      <xsd:element name="denominatorTerm" type="fpml:DenominatorTerm" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Event" abstract="true">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="eventId" type="fpml:EventId" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Novation">
    <xsd:complexContent>
      <xsd:extension base="Event">
        <xsd:sequence>
          <xsd:group ref="fpml:NovationDetails.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="payment" type="fpml:Payment" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CoalAttributeDecimal">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="standardContent" type="xsd:decimal" />
        <xsd:element minOccurs="0" maxOccurs="1" name="rejectionLimit" type="xsd:decimal" />
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="rejectionLimit" type="xsd:decimal" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="PricingStructureReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LegalEntity">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="entityName" type="fpml:EntityName" />
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="entityId" type="fpml:EntityId" />
      </xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="entityId" type="fpml:EntityId" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="LegalEntityReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TermCurve">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="interpolationMethod" type="fpml:InterpolationMethod" />
      <xsd:element minOccurs="0" maxOccurs="1" name="extrapolationPermitted" type="xsd:boolean" />
      <xsd:element maxOccurs="unbounded" name="point" type="fpml:TermPoint" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PartyMessageInformation">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Lag">
    <xsd:sequence>
      <xsd:element name="lagDuration" type="fpml:Interval" />
      <xsd:element minOccurs="0" maxOccurs="1" name="firstObservationDateOffset" type="fpml:Interval" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="LagReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PerturbationType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="perturbationTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="perturbationTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="OptionalEarlyTermination">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="singlePartyOption" type="fpml:SinglePartyOption" />
      <xsd:element ref="fpml:exercise" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="exerciseNotice" type="fpml:ExerciseNotice" />
      <xsd:element minOccurs="0" maxOccurs="1" name="followUpConfirmation" type="xsd:boolean" />
      <xsd:element name="calculationAgent" type="fpml:CalculationAgent" />
      <xsd:element name="cashSettlement" type="fpml:CashSettlement" />
      <xsd:element minOccurs="0" maxOccurs="1" name="optionalEarlyTerminationAdjustedDates" type="fpml:OptionalEarlyTerminationAdjustedDates" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExercisePeriod">
    <xsd:sequence>
      <xsd:element name="earliestExerciseDateTenor" type="fpml:Interval" />
      <xsd:element minOccurs="0" maxOccurs="1" name="exerciseFrequency" type="fpml:Interval" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Empty" />
  <xsd:complexType name="PartialTerminationAmount">
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:sequence>
          <xsd:element name="decreaseInNotionalAmount" type="fpml:Money" />
          <xsd:element name="outstandingNotionalAmount" type="fpml:Money" />
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element name="decreaseInNumberOfOptions" type="xsd:decimal" />
          <xsd:element name="outstandingNumberOfOptions" type="xsd:decimal" />
        </xsd:sequence>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeIdentifyingItems">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="partyTradeIdentifier" type="fpml:PartyTradeIdentifier" />
      <xsd:element minOccurs="0" maxOccurs="1" name="tradeDetails" type="fpml:TradeDetails" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PaymentMatching">
    <xsd:sequence>
      <xsd:element name="identifier" type="fpml:PaymentId" />
      <xsd:group ref="fpml:PayerReceiver.model" />
      <xsd:element name="paymentAmount" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="calculationDetails" type="fpml:CalculationDetails" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityBase">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityBaseScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityBaseSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityDetails">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityDetailsScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityDetailsSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InformationSource">
    <xsd:sequence>
      <xsd:element name="rateSource" type="fpml:InformationProvider" />
      <xsd:element minOccurs="0" maxOccurs="1" name="rateSourcePage" type="fpml:RateSourcePage" />
      <xsd:element minOccurs="0" maxOccurs="1" name="rateSourcePageHeading" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MandatoryEarlyTermination">
    <xsd:sequence>
      <xsd:element name="mandatoryEarlyTerminationDate" type="fpml:AdjustableDate" />
      <xsd:element name="calculationAgent" type="fpml:CalculationAgent" />
      <xsd:element name="cashSettlement" type="fpml:CashSettlement" />
      <xsd:element minOccurs="0" maxOccurs="1" name="mandatoryEarlyTerminationAdjustedDates" type="fpml:MandatoryEarlyTerminationAdjustedDates" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Reason">
    <xsd:sequence>
      <xsd:element name="reasonCode" type="fpml:ReasonCode" />
      <xsd:element minOccurs="0" maxOccurs="1" name="location" type="fpml:ProblemLocation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="description" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="validationRuleId" type="fpml:Validation" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="additionalData" type="fpml:AdditionalData" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdditionalData">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="additionalDataScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="additionalDataSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="AssetMeasureType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="assetMeasureScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="assetMeasureSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PriceQuoteUnits">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="priceQuoteUnitsScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="priceQuoteUnitsSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="QuoteTiming">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="quoteTimingScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="quoteTimingSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CashflowType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="cashflowTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="cashflowTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ContractReference">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="identifier" type="fpml:ContractIdentifier" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Contract">
    <xsd:sequence>
      <xsd:element name="header" type="fpml:ContractHeader" />
      <xsd:element ref="fpml:product" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="otherPartyPayment" type="fpml:Payment" />
      <xsd:group ref="fpml:CalculationAgent.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="collateral" type="fpml:Collateral" />
      <xsd:element minOccurs="0" maxOccurs="1" name="documentation" type="fpml:Documentation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="governingLaw" type="fpml:GoverningLaw" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FirstPeriodStartDate">
    <xsd:simpleContent>
      <xsd:extension base="xsd:date">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CreditDerivativesNotices">
    <xsd:sequence>
      <xsd:element name="creditEvent" type="xsd:boolean" />
      <xsd:element name="publiclyAvailableInformation" type="xsd:boolean" />
      <xsd:element name="physicalSettlement" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractualDefinitions">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="contractualDefinitionsScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="contractualDefinitionsSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ContractualTermsSupplement">
    <xsd:sequence>
      <xsd:element name="type" type="fpml:ContractualSupplement" />
      <xsd:element minOccurs="0" maxOccurs="1" name="publicationDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EventId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="eventIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="eventIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DealSummary">
    <xsd:complexContent>
      <xsd:extension base="IdentifiedAsset">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="creditAgreementDate" type="xsd:date" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FacilitySummary">
    <xsd:complexContent>
      <xsd:extension base="IdentifiedAsset">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="currency" type="fpml:Currency" />
            <xsd:element name="originalCommitmentAmount" type="fpml:Money" />
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FacilityCommitmentPosition">
    <xsd:sequence>
      <xsd:element name="currentAmount" type="fpml:ParticipationAmount" />
      <xsd:element minOccurs="0" maxOccurs="1" name="priorAmount" type="fpml:ParticipationAmount" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="loanContractPosition" type="fpml:LoanContractPosition" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="lcPosition" type="fpml:LcPosition" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RoutingIds">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="routingId" type="fpml:RoutingId" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RoutingExplicitDetails">
    <xsd:sequence>
      <xsd:group ref="fpml:RoutingExplicitDetails.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RoutingIdsAndExplicitDetails">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="routingIds" type="fpml:RoutingIds" />
      <xsd:group ref="fpml:RoutingExplicitDetails.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Valuation">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="objectReference" type="fpml:AnyAssetReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationScenarioReference" type="fpml:ValuationScenarioReference" />
    </xsd:sequence>
    <xsd:attribute name="definitionRef" type="xsd:IDREF">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="definitionRefAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AssetValuation">
    <xsd:complexContent>
      <xsd:extension base="Valuation">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="quote" type="fpml:Quotation" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fxRate" type="fpml:FxRate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ValuationReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPricingDates">
    <xsd:sequence>
      <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="lag" type="fpml:Lag" />
          <xsd:choice>
            <xsd:sequence>
              <xsd:group ref="fpml:PricingDays.model" />
              <xsd:element minOccurs="0" maxOccurs="1" name="businessCalendar" type="fpml:CommodityBusinessCalendar" />
            </xsd:sequence>
            <xsd:element maxOccurs="unbounded" name="settlementPeriods" type="fpml:SettlementPeriods" />
            <xsd:element maxOccurs="unbounded" name="settlementPeriodsReference" type="fpml:SettlementPeriodsReference" />
          </xsd:choice>
        </xsd:sequence>
        <xsd:element maxOccurs="unbounded" name="pricingDates" type="fpml:AdjustableDates" />
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="TradeCashflowsId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="tradeCashflowsIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="tradeCashflowsIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Bond">
    <xsd:complexContent>
      <xsd:extension base="ExchangeTraded">
        <xsd:sequence>
          <xsd:group ref="fpml:BondContent.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="parValue" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="faceAmount" type="xsd:decimal" />
          <xsd:group ref="fpml:BondCalculation.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ConvertibleBond">
    <xsd:complexContent>
      <xsd:extension base="Bond">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="underlyingEquity" type="fpml:EquityAsset" />
          <xsd:element minOccurs="0" maxOccurs="1" name="redemptionDate" type="xsd:date" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityFrequencyType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityFrequencyTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityFrequencyTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Address">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="streetAddress" type="fpml:StreetAddress" />
      <xsd:element minOccurs="0" maxOccurs="1" name="city" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="state" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="country" type="fpml:Country" />
      <xsd:element minOccurs="0" maxOccurs="1" name="postalCode" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PartyTradeIdentifiers">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="partyTradeIdentifier" type="fpml:PartyTradeIdentifier" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AssetReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxFeature">
    <xsd:sequence>
      <xsd:element name="referenceCurrency" type="fpml:IdentifiedCurrency" />
      <xsd:choice>
        <xsd:element name="composite" type="fpml:Composite" />
        <xsd:element name="quanto" type="fpml:Quanto" />
        <xsd:element name="crossCurrency" type="fpml:Composite" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="StrategyFeature">
    <xsd:choice>
      <xsd:element name="strikeSpread" type="fpml:StrikeSpread" />
      <xsd:element name="calendarSpread" type="fpml:CalendarSpread" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="Validation">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="validationScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="validationSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DayCountFraction">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="dayCountFractionScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="dayCountFractionSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Asian">
    <xsd:sequence>
      <xsd:element name="averagingInOut" type="fpml:AveragingInOutEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="strikeFactor" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="averagingPeriodIn" type="fpml:AveragingPeriod" />
      <xsd:element minOccurs="0" maxOccurs="1" name="averagingPeriodOut" type="fpml:AveragingPeriod" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Barrier">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="barrierCap" type="fpml:TriggerEvent" />
      <xsd:element minOccurs="0" maxOccurs="1" name="barrierFloor" type="fpml:TriggerEvent" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Knock">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="knockIn" type="fpml:TriggerEvent" />
      <xsd:element minOccurs="0" maxOccurs="1" name="knockOut" type="fpml:TriggerEvent" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PassThrough">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="passThroughItem" type="fpml:PassThroughItem" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OptionFeatures">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="asian" type="fpml:Asian" />
      <xsd:element minOccurs="0" maxOccurs="1" name="barrier" type="fpml:Barrier" />
      <xsd:element minOccurs="0" maxOccurs="1" name="knock" type="fpml:Knock" />
      <xsd:element minOccurs="0" maxOccurs="1" name="passThrough" type="fpml:PassThrough" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendAdjustment" type="fpml:DividendAdjustment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BasketName">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="basketNameScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="basketNameSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="BasketId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="basketIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="basketIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityFixedPriceSchedule">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element maxOccurs="unbounded" name="fixedPriceStep" type="fpml:FixedPrice" />
        <xsd:element maxOccurs="unbounded" name="worldscaleRateStep" type="xsd:decimal" />
        <xsd:element maxOccurs="unbounded" name="contractRateStep" type="fpml:NonNegativeMoney" />
        <xsd:element maxOccurs="unbounded" name="settlementPeriodsPriceSchedule" type="fpml:CommoditySettlementPeriodsPriceSchedule" />
      </xsd:choice>
      <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FixedPrice">
    <xsd:sequence>
      <xsd:element name="price" type="xsd:decimal" />
      <xsd:group ref="fpml:Price.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriodsFixedPrice">
    <xsd:complexContent>
      <xsd:extension base="FixedPrice">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="settlementPeriodsReference" type="fpml:SettlementPeriodsReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityRelativePaymentDates">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="payRelativeTo" type="fpml:PayRelativeToEnum" />
        <xsd:element name="payRelativeToEvent" type="fpml:CommodityPayRelativeToEvent" />
      </xsd:choice>
      <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
      <xsd:element name="paymentDaysOffset" type="fpml:DateOffset" />
      <xsd:group ref="fpml:BusinessCentersOrReference.model" minOccurs="0" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AdjustableDatesOrRelativeDateOffset">
    <xsd:choice>
      <xsd:element name="adjustableDates" type="fpml:AdjustableDates" />
      <xsd:element name="relativeDate" type="fpml:RelativeDateOffset" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ReportingRoles">
    <xsd:sequence>
      <xsd:element name="baseParty" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="activityProvider" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="positionProvider" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationProvider" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PositionConstituent">
    <xsd:choice minOccurs="0" maxOccurs="1">
      <xsd:element name="trade" type="fpml:Trade" />
      <xsd:element name="contract" type="fpml:Contract" />
      <xsd:element name="positionVersionReference" type="xsd:positiveInteger" />
      <xsd:element name="tradeReference" type="fpml:PartyTradeIdentifiers" />
      <xsd:element name="contractReference" type="fpml:ContractReference" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ScheduledDate">
    <xsd:sequence>
      <xsd:group ref="fpml:AdjustedAndOrUnadjustedDate.model" />
      <xsd:element name="type" type="fpml:ScheduledDateType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="assetReference" type="fpml:AnyAssetReference" />
      <xsd:group ref="fpml:AssociatedValue.model" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PricingDataPointCoordinate">
    <xsd:sequence>
      <xsd:group ref="fpml:PricingStructureIndex.model" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="PricingDataPointCoordinateReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityNotionalQuantitySchedule">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element maxOccurs="unbounded" name="notionalStep" type="fpml:CommodityNotionalQuantity" />
        <xsd:element maxOccurs="unbounded" name="settlementPeriodsNotionalQuantitySchedule" type="fpml:CommoditySettlementPeriodsNotionalQuantitySchedule" />
      </xsd:choice>
      <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CommoditySettlementPeriodsNotionalQuantity">
    <xsd:complexContent>
      <xsd:extension base="CommodityNotionalQuantity">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="settlementPeriodsReference" type="fpml:SettlementPeriodsReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="QuantityReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractualSupplement">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="contractualSupplementScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="contractualSupplementSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CreditEvents">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="bankruptcy" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="failureToPay" type="fpml:FailureToPay" />
      <xsd:element minOccurs="0" maxOccurs="1" name="failureToPayPrincipal" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="failureToPayInterest" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="obligationDefault" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="obligationAcceleration" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="repudiationMoratorium" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="restructuring" type="fpml:Restructuring" />
      <xsd:element minOccurs="0" maxOccurs="1" name="distressedRatingsDowngrade" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="maturityExtension" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="writedown" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="defaultRequirement" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="creditEventNotice" type="fpml:CreditEventNotice" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CreditSeniority">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="creditSeniorityScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="creditSenioritySchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Obligations">
    <xsd:sequence>
      <xsd:element name="category" type="fpml:ObligationCategoryEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notSubordinated" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="specifiedCurrency" type="fpml:SpecifiedCurrency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notSovereignLender" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notDomesticCurrency" type="fpml:NotDomesticCurrency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notDomesticLaw" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="listed" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notDomesticIssuance" type="fpml:Empty" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="fullFaithAndCreditObLiability" type="fpml:Empty" />
        <xsd:element name="generalFundObligationLiability" type="fpml:Empty" />
        <xsd:element name="revenueObligationLiability" type="fpml:Empty" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="notContingent" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="excluded" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="othReferenceEntityObligations" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="designatedPriority" type="fpml:Lien" />
      <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlementOnly" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="deliveryOfCommitments" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="continuity" type="fpml:Empty" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DeliverableObligations">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="accruedInterest" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="category" type="fpml:ObligationCategoryEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notSubordinated" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="specifiedCurrency" type="fpml:SpecifiedCurrency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notSovereignLender" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notDomesticCurrency" type="fpml:NotDomesticCurrency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notDomesticLaw" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="listed" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notContingent" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notDomesticIssuance" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="assignableLoan" type="fpml:PCDeliverableObligationCharac" />
      <xsd:element minOccurs="0" maxOccurs="1" name="consentRequiredLoan" type="fpml:PCDeliverableObligationCharac" />
      <xsd:element minOccurs="0" maxOccurs="1" name="directLoanParticipation" type="fpml:LoanParticipation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="transferable" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="maximumMaturity" type="fpml:Interval" />
      <xsd:element minOccurs="0" maxOccurs="1" name="acceleratedOrMatured" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notBearer" type="fpml:Empty" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="fullFaithAndCreditObLiability" type="fpml:Empty" />
        <xsd:element name="generalFundObligationLiability" type="fpml:Empty" />
        <xsd:element name="revenueObligationLiability" type="fpml:Empty" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="indirectLoanParticipation" type="fpml:LoanParticipation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="excluded" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="othReferenceEntityObligations" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CouponType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="couponTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="couponTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationAgent">
    <xsd:choice>
      <xsd:element maxOccurs="unbounded" name="calculationAgentPartyReference" type="fpml:PartyReference" />
      <xsd:element name="calculationAgentParty" type="fpml:CalculationAgentPartyEnum" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="AdjustableDate">
    <xsd:sequence>
      <xsd:element name="unadjustedDate" type="fpml:IdentifiedDate" />
      <xsd:element name="dateAdjustments" type="fpml:BusinessDayAdjustments" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AccountReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentBase" abstract="true">
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="InterestPayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element name="calculationMethod" type="fpml:InterestCalculationMethodEnum" />
          <xsd:element name="paymentDate" type="xsd:date" />
          <xsd:element name="amount" type="fpml:ParticipationAmount" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InterestAccrualSchedule">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="interestRatePeriod" type="fpml:InterestRatePeriod" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="pikPeriod" type="fpml:PikPeriod" />
      <xsd:element maxOccurs="unbounded" name="lenderLoanContractPeriod" type="fpml:LenderLoanContractPeriod" />
      <xsd:element maxOccurs="unbounded" name="interestAccrualPeriod" type="fpml:InterestAccrualPeriod" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalQualityAdjustments">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityCoalQualityAdjustmentsScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityCoalQualityAdjustmentsSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="GasDeliveryPoint">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryPointScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="deliveryPointSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityDeliveryPoint">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryPointScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="deliveryPointSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessCentersReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NotionalReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ForecastRateIndex">
    <xsd:sequence>
      <xsd:element name="floatingRateIndex" type="fpml:FloatingRateIndex" />
      <xsd:element name="indexTenor" type="fpml:Interval" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PositionId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="positionIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="positionIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Collateral">
    <xsd:sequence>
      <xsd:element name="independentAmount" type="fpml:IndependentAmount" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Approvals">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="approval" type="fpml:Approval" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PartyOrAccountReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Discounting">
    <xsd:sequence>
      <xsd:element name="discountingType" type="fpml:DiscountingTypeEnum" />
      <xsd:group ref="fpml:DiscountRate.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SinglePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element name="adjustablePaymentDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="adjustedPaymentDate" type="xsd:date" />
          <xsd:element name="fixedAmount" type="fpml:Money" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="IndexId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="indexIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="indexIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="WeightedAveragingObservation">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="dateTime" type="xsd:dateTime" />
        <xsd:element name="observationNumber" type="xsd:positiveInteger" />
      </xsd:choice>
      <xsd:element name="weight" type="fpml:NonNegativeDecimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AveragingObservationList">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="averagingObservation" type="fpml:WeightedAveragingObservation" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Exercise">
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="SharedAmericanExercise">
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="commencementDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="expirationDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="latestExerciseTime" type="fpml:BusinessCenterTime" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityAmericanExercise">
    <xsd:complexContent>
      <xsd:extension base="SharedAmericanExercise">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="expirationTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="multipleExercise" type="fpml:CommodityMultipleExercise" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessCenterTime">
    <xsd:sequence>
      <xsd:element name="hourMinuteTime" type="fpml:HourMinuteTime" />
      <xsd:element name="businessCenter" type="fpml:BusinessCenter" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityMultipleExercise">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="integralMultipleQuantity" type="fpml:CommodityNotionalQuantity" />
      <xsd:element name="minimumNotionalQuantity" type="fpml:CommodityNotionalQuantity" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalProductType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityCoalProductTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityCoalProductTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Loan">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="borrower" type="fpml:LegalEntity" />
            <xsd:element name="borrowerReference" type="fpml:LegalEntityReference" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="1" name="lien" type="fpml:Lien" />
          <xsd:element minOccurs="0" maxOccurs="1" name="facilityType" type="fpml:FacilityType" />
          <xsd:element minOccurs="0" maxOccurs="1" name="maturity" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="creditAgreementDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="tranche" type="fpml:UnderlyingAssetTranche" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ClearanceSystem">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="clearanceSystemScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="clearanceSystemSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ProductReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Lien">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="lienScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="lienSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="FacilityType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="facilityTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="facilityTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="UnderlyingAssetTranche">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="loanTrancheScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="loanTrancheSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeCashflowsStatus">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="tradeCashflowsStatusScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="tradeCashflowsStatusSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="FxSpotRateSource">
    <xsd:sequence>
      <xsd:element name="primaryRateSource" type="fpml:InformationSource" />
      <xsd:element minOccurs="0" maxOccurs="1" name="secondaryRateSource" type="fpml:InformationSource" />
      <xsd:element name="fixingTime" type="fpml:BusinessCenterTime" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxFixing">
    <xsd:complexContent>
      <xsd:extension base="FxSpotRateSource">
        <xsd:sequence>
          <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
          <xsd:element name="fixingDate" type="xsd:date" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Strategy">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="premiumProductReference" type="fpml:ProductReference" />
          <xsd:element maxOccurs="unbounded" ref="fpml:product" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingAmountProvisions">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="WACCapInterestProvision" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="stepUpProvision" type="fpml:Empty" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EntityType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="entityTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="entityTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapNotional">
    <xsd:choice>
      <xsd:element name="amountRelativeTo" type="fpml:AmountReference" />
      <xsd:element name="relativeNotionalAmount" type="fpml:ReturnSwapNotionalAmountReference" />
      <xsd:element name="relativeDeterminationMethod" type="fpml:DeterminationMethodReference" />
      <xsd:element name="determinationMethod" type="fpml:DeterminationMethod" />
      <xsd:element name="notionalAmount" type="fpml:NotionalAmount" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AmountReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapNotionalAmountReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DeterminationMethodReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DeterminationMethod">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="determinationMethodScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="determinationMethodSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="NotionalAmount">
    <xsd:complexContent>
      <xsd:extension base="Money" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AveragingSchedule">
    <xsd:sequence>
      <xsd:group ref="fpml:Period.model" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="frequency" type="xsd:positiveInteger" />
          <xsd:element name="frequencyType" type="fpml:FrequencyType" />
          <xsd:element minOccurs="0" maxOccurs="1" name="weekNumber" type="xsd:positiveInteger" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dayOfWeek" type="fpml:WeeklyRollConventionEnum" />
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element name="averagingPeriodFrequency" type="fpml:CalculationPeriodFrequency" />
        </xsd:sequence>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FrequencyType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="frequencyTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="frequencyTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodFrequency">
    <xsd:complexContent>
      <xsd:extension base="Interval">
        <xsd:sequence>
          <xsd:element name="rollConvention" type="fpml:RollConventionEnum" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NotificationMessage" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Message">
        <xsd:sequence>
          <xsd:element name="header" type="fpml:NotificationMessageHeader" />
          <xsd:group ref="fpml:Validation.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractChanged">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="change" type="fpml:ContractChange" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NotificationMessageHeader">
    <xsd:complexContent>
      <xsd:extension base="MessageHeader">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="inReplyTo" type="fpml:MessageId" />
          <xsd:group ref="fpml:MessageHeader.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractChange">
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="oldContractIdentifier" type="fpml:PartyTradeIdentifier" />
        <xsd:element name="oldContract" type="fpml:Contract" />
      </xsd:choice>
      <xsd:element name="contract" type="fpml:Contract" />
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element ref="fpml:changeEvent" />
      <xsd:element minOccurs="0" maxOccurs="1" name="payment" type="fpml:Payment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PaymentDetails">
    <xsd:sequence>
      <xsd:element name="paymentReference" type="fpml:PaymentReference" />
      <xsd:element maxOccurs="unbounded" name="grossCashflow" type="fpml:GrossCashflow" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementInformation" type="fpml:SettlementInformation" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeCashflowsProposedMatch">
    <xsd:sequence>
      <xsd:group ref="fpml:IdAndTradeCashflows.model" />
      <xsd:element name="matchId" type="fpml:MatchId" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="difference" type="fpml:TradeDifference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MatchId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="matchIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="matchIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeDifference">
    <xsd:sequence>
      <xsd:element name="differenceType" type="fpml:DifferenceTypeEnum" />
      <xsd:element name="differenceSeverity" type="fpml:DifferenceSeverityEnum" />
      <xsd:element name="element" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="basePath" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="baseValue" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="otherPath" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="otherValue" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="missingElement" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="extraElement" type="xsd:string" />
      <xsd:element name="message" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CashflowFixing">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="observationReference" type="fpml:CashflowObservationReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="calculatedValue" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="multiplier" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="spread" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="capValue" type="fpml:Strike" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="floorValue" type="fpml:Strike" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CashflowObservationReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Strike">
    <xsd:sequence>
      <xsd:element name="strikeRate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="buyer" type="fpml:IdentifiedPayerReceiver" />
      <xsd:element minOccurs="0" maxOccurs="1" name="seller" type="fpml:IdentifiedPayerReceiver" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CancelTradeCashflows">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:group ref="fpml:IdAndTradeCashflows.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="matchId" type="fpml:MatchId" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ValuationDatesReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RelevantUnderlyingDateReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DeprecatedScheduledTerminationDate">
    <xsd:sequence>
      <xsd:element name="adjustableDate" type="fpml:AdjustableDate2" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdjustableDate2">
    <xsd:sequence>
      <xsd:element name="unadjustedDate" type="fpml:IdentifiedDate" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="dateAdjustments" type="fpml:BusinessDayAdjustments" />
        <xsd:element name="dateAdjustmentsReference" type="fpml:BusinessDayAdjustmentsReference" />
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="EquityDerivativeBase" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" />
          <xsd:element name="optionType" type="fpml:OptionTypeEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="equityEffectiveDate" type="xsd:date" />
          <xsd:element name="underlyer" type="fpml:Underlyer" />
          <xsd:element minOccurs="0" maxOccurs="1" name="notional" type="fpml:Money" />
          <xsd:element name="equityExercise" type="fpml:EquityExerciseValuationSettlement" />
          <xsd:group ref="fpml:Feature.model" minOccurs="0" />
          <xsd:element minOccurs="0" maxOccurs="1" name="strategyFeature" type="fpml:StrategyFeature" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityDerivativeShortFormBase" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="EquityDerivativeBase">
        <xsd:sequence>
          <xsd:element name="strike" type="fpml:EquityStrike" />
          <xsd:element minOccurs="0" maxOccurs="1" name="spotPrice" type="fpml:NonNegativeDecimal" />
          <xsd:element name="numberOfOptions" type="fpml:NonNegativeDecimal" />
          <xsd:element name="equityPremium" type="fpml:EquityPremium" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Underlyer">
    <xsd:choice>
      <xsd:element name="singleUnderlyer" type="fpml:SingleUnderlyer" />
      <xsd:element name="basket" type="fpml:Basket" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="EquityExerciseValuationSettlement">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="equityEuropeanExercise" type="fpml:EquityEuropeanExercise" />
        <xsd:element name="equityAmericanExercise" type="fpml:EquityAmericanExercise" />
        <xsd:element name="equityBermudaExercise" type="fpml:EquityBermudaExercise" />
      </xsd:choice>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="automaticExercise" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="makeWholeProvisions" type="fpml:MakeWholeProvisions" />
        </xsd:sequence>
        <xsd:element name="prePayment" type="fpml:PrePayment" />
      </xsd:choice>
      <xsd:element name="equityValuation" type="fpml:EquityValuation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:element name="settlementCurrency" type="fpml:Currency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementPriceSource" type="fpml:SettlementPriceSource" />
      <xsd:element name="settlementType" type="fpml:SettlementTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementMethodElectionDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementMethodElectingPartyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EquityStrike">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="strikePrice" type="xsd:decimal" />
        <xsd:sequence>
          <xsd:element name="strikePercentage" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="strikeDeterminationDate" type="fpml:AdjustableOrRelativeDate" />
        </xsd:sequence>
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EquityPremium">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="premiumType" type="fpml:PremiumTypeEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentAmount" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentDate" type="fpml:AdjustableDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="swapPremium" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="pricePerOption" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="1" name="percentageOfNotional" type="xsd:decimal" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Leg" abstract="true" />
  <xsd:complexType name="DirectionalLeg" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="legIdentifier" type="fpml:LegIdentifier" />
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="effectiveDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="terminationDate" type="fpml:AdjustableOrRelativeDate" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LegIdentifier">
    <xsd:sequence>
      <xsd:element name="legId" type="fpml:LegId" />
      <xsd:group ref="fpml:VersionHistory.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxTerms">
    <xsd:sequence>
      <xsd:element name="fxRate" type="fpml:FxRate" />
      <xsd:element name="fixingDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxRate">
    <xsd:sequence>
      <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
      <xsd:element name="rate" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ChangeEvent" abstract="true" />
  <xsd:complexType name="IndexChange">
    <xsd:complexContent>
      <xsd:extension base="ChangeEvent">
        <xsd:sequence>
          <xsd:element name="indexFactor" type="fpml:RestrictedPercentage" />
          <xsd:element name="factoredCalculationAmount" type="fpml:Money" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxConversion">
    <xsd:choice>
      <xsd:element name="amountRelativeTo" type="fpml:AmountReference" />
      <xsd:element maxOccurs="unbounded" name="fxRate" type="fpml:FxRate" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ResponseMessage" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Message">
        <xsd:sequence>
          <xsd:element name="header" type="fpml:ResponseMessageHeader" />
          <xsd:group ref="fpml:Validation.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositionsAcknowledged">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="portfolio" type="fpml:PortfolioDefinition" />
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="definedPosition" type="fpml:PositionReference" />
            <xsd:element name="removedPosition" type="fpml:PositionReference" />
            <xsd:element name="unprocessedPosition" type="fpml:UnprocessedPosition" />
          </xsd:choice>
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ResponseMessageHeader">
    <xsd:complexContent>
      <xsd:extension base="MessageHeader">
        <xsd:sequence>
          <xsd:element name="inReplyTo" type="fpml:MessageId" />
          <xsd:group ref="fpml:MessageHeader.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PortfolioDefinition">
    <xsd:sequence>
      <xsd:element name="portfolioName" type="xsd:normalizedString" />
      <xsd:element name="asOfDate" type="xsd:date" />
      <xsd:element name="definingParty" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="matchingParty" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PositionReference">
    <xsd:sequence>
      <xsd:group ref="fpml:PositionIdAndVersion.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="UnprocessedPosition">
    <xsd:sequence>
      <xsd:group ref="fpml:PositionIdAndVersion.model" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="reason" type="fpml:Reason" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SplitSettlement">
    <xsd:sequence>
      <xsd:element name="splitSettlementAmount" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="beneficiaryBank" type="fpml:Routing" />
      <xsd:element name="beneficiary" type="fpml:Routing" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Routing">
    <xsd:choice>
      <xsd:group ref="fpml:RoutingIdentification.model" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ExerciseNotice">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="exerciseNoticePartyReference" type="fpml:PartyReference" />
      <xsd:element name="businessCenter" type="fpml:BusinessCenter" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DataDocument">
    <xsd:complexContent>
      <xsd:extension base="Document">
        <xsd:sequence>
          <xsd:group ref="fpml:Validation.model" />
          <xsd:choice>
            <xsd:sequence>
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="trade" type="fpml:Trade" />
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="portfolio" type="fpml:Portfolio" />
            </xsd:sequence>
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" ref="fpml:event" />
            </xsd:sequence>
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Portfolio">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="partyPortfolioName" type="fpml:PartyPortfolioName" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="tradeId" type="fpml:TradeId" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="portfolio" type="fpml:Portfolio" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ReferencePool">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="referencePoolItem" type="fpml:ReferencePoolItem" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferencePoolItem">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="constituentWeight" type="fpml:ConstituentWeight" />
      <xsd:element name="referencePair" type="fpml:ReferencePair" />
      <xsd:element minOccurs="0" maxOccurs="1" name="protectionTermsReference" type="fpml:ProtectionTermsReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementTermsReference" type="fpml:SettlementTermsReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdjustedRelativeDateOffset">
    <xsd:complexContent>
      <xsd:extension base="RelativeDateOffset">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="relativeDateAdjustments" type="fpml:BusinessDayAdjustments" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessDayAdjustments">
    <xsd:sequence>
      <xsd:element name="businessDayConvention" type="fpml:BusinessDayConventionEnum" />
      <xsd:group ref="fpml:BusinessCentersOrReference.model" minOccurs="0" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="FxAverageRateOption">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" />
          <xsd:element name="expiryDateTime" type="fpml:ExpiryDateTime" />
          <xsd:element name="exerciseStyle" type="fpml:ExerciseStyleEnum" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="fxOptionPremium" type="fpml:FxOptionPremium" />
          <xsd:element name="valueDate" type="xsd:date" />
          <xsd:element name="putCurrencyAmount" type="fpml:Money" />
          <xsd:element name="callCurrencyAmount" type="fpml:Money" />
          <xsd:element name="fxStrikePrice" type="fpml:FxStrikePrice" />
          <xsd:element minOccurs="0" maxOccurs="1" name="spotRate" type="xsd:decimal" />
          <xsd:element name="payoutCurrency" type="fpml:Currency" />
          <xsd:element name="averageRateQuoteBasis" type="fpml:StrikeQuoteBasisEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="precision" type="xsd:nonNegativeInteger" />
          <xsd:element minOccurs="0" maxOccurs="1" name="payoutFormula" type="xsd:string" />
          <xsd:element name="primaryRateSource" type="fpml:InformationSource" />
          <xsd:element minOccurs="0" maxOccurs="1" name="secondaryRateSource" type="fpml:InformationSource" />
          <xsd:element name="fixingTime" type="fpml:BusinessCenterTime" />
          <xsd:choice>
            <xsd:element name="averageRateObservationSchedule" type="fpml:FxAverageRateObservationSchedule" />
            <xsd:element maxOccurs="unbounded" name="averageRateObservationDate" type="fpml:FxAverageRateObservationDate" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="observedRates" type="fpml:ObservedRates" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ExpiryDateTime">
    <xsd:sequence>
      <xsd:element name="expiryDate" type="xsd:date" />
      <xsd:element name="expiryTime" type="fpml:BusinessCenterTime" />
      <xsd:element minOccurs="0" maxOccurs="1" name="cutName" type="fpml:CutName" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxOptionPremium">
    <xsd:sequence>
      <xsd:group ref="fpml:PayerReceiver.model" />
      <xsd:element name="premiumAmount" type="fpml:Money" />
      <xsd:element name="premiumSettlementDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementInformation" type="fpml:SettlementInformation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="premiumQuote" type="fpml:PremiumQuote" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxStrikePrice">
    <xsd:sequence>
      <xsd:element name="rate" type="xsd:decimal" />
      <xsd:element name="strikeQuoteBasis" type="fpml:StrikeQuoteBasisEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxAverageRateObservationSchedule">
    <xsd:sequence>
      <xsd:element name="observationStartDate" type="xsd:date" />
      <xsd:element name="observationEndDate" type="xsd:date" />
      <xsd:element name="calculationPeriodFrequency" type="fpml:CalculationPeriodFrequency" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxAverageRateObservationDate">
    <xsd:sequence>
      <xsd:element name="observationDate" type="xsd:date" />
      <xsd:element name="averageRateWeightingFactor" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ObservedRates">
    <xsd:sequence>
      <xsd:element name="observationDate" type="xsd:date" />
      <xsd:element name="observedRate" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferencePair">
    <xsd:sequence>
      <xsd:element name="referenceEntity" type="fpml:LegalEntity" />
      <xsd:choice>
        <xsd:element name="referenceObligation" type="fpml:ReferenceObligation" />
        <xsd:element name="noReferenceObligation" type="fpml:Empty" />
      </xsd:choice>
      <xsd:element name="entityType" type="fpml:EntityType" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferenceObligation">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element ref="fpml:bond" />
        <xsd:element ref="fpml:convertibleBond" />
        <xsd:element ref="fpml:mortgage" />
        <xsd:element ref="fpml:loan" />
      </xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="primaryObligor" type="fpml:LegalEntity" />
        <xsd:element name="primaryObligorReference" type="fpml:LegalEntityReference" />
      </xsd:choice>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="guarantor" type="fpml:LegalEntity" />
        <xsd:element name="guarantorReference" type="fpml:LegalEntityReference" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PricingStructure" abstract="true">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:normalizedString" />
      <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CreditCurve">
    <xsd:complexContent>
      <xsd:extension base="PricingStructure">
        <xsd:sequence>
          <xsd:group ref="fpml:CreditCurveCharacteristics.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Compounding">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="compoundingMethod" type="fpml:CompoundingMethodEnum" />
      <xsd:element name="compoundingRate" type="fpml:CompoundingRate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="compoundingSpread" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CompoundingRate">
    <xsd:choice>
      <xsd:element name="interestLegRate" type="fpml:FloatingRateCalculationReference" />
      <xsd:element name="specificRate" type="fpml:InterestAccrualsMethod" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="CalculatedAmount" abstract="true">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationDates" type="fpml:AdjustableRelativeOrPeriodicDates" />
      <xsd:element minOccurs="0" maxOccurs="1" name="observationStartDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="optionsExchangeDividends" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="additionalDividends" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="allDividends" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdjustableRelativeOrPeriodicDates">
    <xsd:choice>
      <xsd:element name="adjustableDates" type="fpml:AdjustableDates" />
      <xsd:element name="relativeDateSequence" type="fpml:RelativeDateSequence" />
      <xsd:element name="periodicDates" type="fpml:PeriodicDates" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Payment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element name="paymentAmount" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentDate" type="fpml:AdjustableDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="adjustedPaymentDate" type="fpml:IdentifiedDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentType" type="fpml:PaymentType" />
          <xsd:element minOccurs="0" maxOccurs="1" name="settlementInformation" type="fpml:SettlementInformation" />
          <xsd:element minOccurs="0" maxOccurs="1" name="discountFactor" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="presentValueAmount" type="fpml:Money" />
        </xsd:sequence>
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element maxOccurs="unbounded" name="tradeIdentifier" type="fpml:TradeIdentifier" />
            <xsd:element name="trade" type="fpml:Trade" />
          </xsd:choice>
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ResetDatesReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BoundedCorrelation">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="minimumBoundaryPercent" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="maximumBoundaryPercent" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EquityOptionTermination">
    <xsd:sequence>
      <xsd:element name="settlementAmountPaymentDate" type="fpml:AdjustableDate" />
      <xsd:element name="settlementAmount" type="fpml:Money" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OptionNumericStrike">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="strikePrice" type="xsd:decimal" />
        <xsd:element name="strikePercentage" type="xsd:decimal" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OptionStrike">
    <xsd:complexContent>
      <xsd:extension base="OptionNumericStrike">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="QuotableFxRate">
    <xsd:sequence>
      <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PaymentId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="paymentIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="paymentIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationDetails">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="grossCashflow" type="fpml:GrossCashflow" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="observationElements" type="fpml:CashflowObservation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationElements" type="fpml:CashflowCalculationElements" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Position">
    <xsd:sequence>
      <xsd:group ref="fpml:PositionIdAndVersion.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="reportingRoles" type="fpml:ReportingRoles" />
      <xsd:element name="constituent" type="fpml:PositionConstituent" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="scheduledDate" type="fpml:ScheduledDate" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="valuation" type="fpml:AssetValuation" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="DefinePosition">
    <xsd:complexContent>
      <xsd:extension base="Position">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="forceMatch" type="fpml:PositionReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AverageDailyTradingVolumeLimit">
    <xsd:sequence>
      <xsd:element name="limitationPercentage" type="fpml:RestrictedPercentage" />
      <xsd:element name="limitationPeriod" type="xsd:nonNegativeInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="VersionedTradeId">
    <xsd:sequence>
      <xsd:element name="tradeId" type="fpml:TradeId" />
      <xsd:group ref="fpml:VersionHistory.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodDates">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="effectiveDate" type="fpml:AdjustableDate" />
        <xsd:element name="relativeEffectiveDate" type="fpml:AdjustedRelativeDateOffset" />
      </xsd:choice>
      <xsd:choice>
        <xsd:element name="terminationDate" type="fpml:AdjustableDate" />
        <xsd:element name="relativeTerminationDate" type="fpml:RelativeDateOffset" />
      </xsd:choice>
      <xsd:element name="calculationPeriodDatesAdjustments" type="fpml:BusinessDayAdjustments" />
      <xsd:element minOccurs="0" maxOccurs="1" name="firstPeriodStartDate" type="fpml:AdjustableDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="firstRegularPeriodStartDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="firstCompoundingPeriodEndDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="lastRegularPeriodEndDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="stubPeriodType" type="fpml:StubPeriodTypeEnum" />
      <xsd:element name="calculationPeriodFrequency" type="fpml:CalculationPeriodFrequency" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="InterestRateStream">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element name="calculationPeriodDates" type="fpml:CalculationPeriodDates" />
          <xsd:element name="paymentDates" type="fpml:PaymentDates" />
          <xsd:element minOccurs="0" maxOccurs="1" name="resetDates" type="fpml:ResetDates" />
          <xsd:element name="calculationPeriodAmount" type="fpml:CalculationPeriodAmount" />
          <xsd:element minOccurs="0" maxOccurs="1" name="stubCalculationPeriodAmount" type="fpml:StubCalculationPeriodAmount" />
          <xsd:element minOccurs="0" maxOccurs="1" name="principalExchanges" type="fpml:PrincipalExchanges" />
          <xsd:element minOccurs="0" maxOccurs="1" name="cashflows" type="fpml:Cashflows" />
          <xsd:element minOccurs="0" maxOccurs="1" name="settlementProvision" type="fpml:SettlementProvision" />
          <xsd:element minOccurs="0" maxOccurs="1" name="formula" type="fpml:Formula" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentDates">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="calculationPeriodDatesReference" type="fpml:CalculationPeriodDatesReference" />
        <xsd:element name="resetDatesReference" type="fpml:ResetDatesReference" />
        <xsd:element name="valuationDatesReference" type="fpml:ValuationDatesReference" />
      </xsd:choice>
      <xsd:element name="paymentFrequency" type="fpml:Interval" />
      <xsd:element minOccurs="0" maxOccurs="1" name="firstPaymentDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="lastRegularPaymentDate" type="xsd:date" />
      <xsd:element name="payRelativeTo" type="fpml:PayRelativeToEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="paymentDaysOffset" type="fpml:Offset" />
      <xsd:element name="paymentDatesAdjustments" type="fpml:BusinessDayAdjustments" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ResetDates">
    <xsd:sequence>
      <xsd:element name="calculationPeriodDatesReference" type="fpml:CalculationPeriodDatesReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="resetRelativeTo" type="fpml:ResetRelativeToEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="initialFixingDate" type="fpml:RelativeDateOffset" />
      <xsd:element name="fixingDates" type="fpml:RelativeDateOffset" />
      <xsd:element minOccurs="0" maxOccurs="1" name="rateCutOffDaysOffset" type="fpml:Offset" />
      <xsd:element name="resetFrequency" type="fpml:ResetFrequency" />
      <xsd:element name="resetDatesAdjustments" type="fpml:BusinessDayAdjustments" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodAmount">
    <xsd:choice>
      <xsd:element name="calculation" type="fpml:Calculation" />
      <xsd:element name="knownAmountSchedule" type="fpml:AmountSchedule" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="StubCalculationPeriodAmount">
    <xsd:sequence>
      <xsd:element name="calculationPeriodDatesReference" type="fpml:CalculationPeriodDatesReference" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="initialStub" type="fpml:StubValue" />
          <xsd:element minOccurs="0" maxOccurs="1" name="finalStub" type="fpml:StubValue" />
        </xsd:sequence>
        <xsd:element name="finalStub" type="fpml:StubValue" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PrincipalExchanges">
    <xsd:sequence>
      <xsd:element name="initialExchange" type="xsd:boolean" />
      <xsd:element name="finalExchange" type="xsd:boolean" />
      <xsd:element name="intermediateExchange" type="xsd:boolean" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Cashflows">
    <xsd:sequence>
      <xsd:element name="cashflowsMatchParameters" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="principalExchange" type="fpml:PrincipalExchange" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentCalculationPeriod" type="fpml:PaymentCalculationPeriod" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementProvision">
    <xsd:sequence>
      <xsd:element name="settlementCurrency" type="fpml:Currency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="nonDeliverableSettlement" type="fpml:NonDeliverableSettlement" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Formula">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="formulaDescription" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="math" type="fpml:Math" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="formulaComponent" type="fpml:FormulaComponent" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FloatingRateDefinition">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="calculatedRate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="rateObservation" type="fpml:RateObservation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="floatingRateMultiplier" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="spread" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="capRate" type="fpml:Strike" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="floorRate" type="fpml:Strike" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RateObservation">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="resetDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedFixingDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="observedRate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="treatedRate" type="xsd:decimal" />
      <xsd:element name="observationWeight" type="xsd:positiveInteger" />
      <xsd:element minOccurs="0" maxOccurs="1" name="rateReference" type="fpml:RateReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="forecastRate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="treatedForecastRate" type="xsd:decimal" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="VarianceSwapTransactionSupplement">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="varianceLeg" type="fpml:VarianceLeg" />
          <xsd:group ref="fpml:EquityUnderlyerProvisions.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DirectionalLegUnderlyer" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="DirectionalLeg">
        <xsd:sequence>
          <xsd:element name="underlyer" type="fpml:Underlyer" />
          <xsd:group ref="fpml:OptionSettlement.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fxFeature" type="fpml:FxFeature" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DirectionalLegUnderlyerValuation" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="DirectionalLegUnderlyer">
        <xsd:sequence>
          <xsd:element name="valuation" type="fpml:EquityValuation" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="VarianceLeg">
    <xsd:complexContent>
      <xsd:extension base="DirectionalLegUnderlyerValuation">
        <xsd:sequence>
          <xsd:element name="amount" type="fpml:VarianceAmount" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CreditEventNotice">
    <xsd:sequence>
      <xsd:element name="notifyingParty" type="fpml:NotifyingParty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="businessCenter" type="fpml:BusinessCenter" />
      <xsd:element minOccurs="0" maxOccurs="1" name="publiclyAvailableInformation" type="fpml:PubliclyAvailableInformation" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NotifyingParty">
    <xsd:sequence>
      <xsd:element name="buyerPartyReference" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="sellerPartyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PubliclyAvailableInformation">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="standardPublicSources" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="publicSource" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="specifiedNumber" type="xsd:positiveInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommoditySettlementPeriodsNotionalQuantitySchedule">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="settlementPeriodsNotionalQuantityStep" type="fpml:CommodityNotionalQuantity" />
      <xsd:element maxOccurs="unbounded" name="settlementPeriodsReference" type="fpml:SettlementPeriodsReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriodsReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractPartialTerminationCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="fpml:ContractReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="termination" type="fpml:ChangeContractSize" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ChangeContract" abstract="true">
    <xsd:sequence>
      <xsd:element name="contractReference" type="fpml:ContractReference" />
      <xsd:element name="date" type="xsd:date" />
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="payment" type="fpml:Payment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ChangeContractSize">
    <xsd:complexContent>
      <xsd:extension base="ChangeContract">
        <xsd:choice>
          <xsd:sequence>
            <xsd:element name="changeInNotionalAmount" type="fpml:Money" />
            <xsd:element name="outstandingNotionalAmount" type="fpml:Money" />
          </xsd:sequence>
          <xsd:sequence>
            <xsd:element name="changeInNumberOfOptions" type="xsd:decimal" />
            <xsd:element name="outstandingNumberOfOptions" type="xsd:decimal" />
          </xsd:sequence>
          <xsd:sequence>
            <xsd:element name="changeInNumberOfUnits" type="xsd:decimal" />
            <xsd:element name="outstandingNumberOfUnits" type="xsd:decimal" />
          </xsd:sequence>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InstrumentSet">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" ref="fpml:underlyingAsset" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferenceBank">
    <xsd:sequence>
      <xsd:element name="referenceBankId" type="fpml:ReferenceBankId" />
      <xsd:element minOccurs="0" maxOccurs="1" name="referenceBankName" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferenceBankId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="referenceBankIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="referenceBankIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InformationProvider">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="informationProviderScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="informationProviderSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="AdditionalTerm">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="additionalTermScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="additionalTermSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MakeWholeProvisions">
    <xsd:sequence>
      <xsd:element name="makeWholeDate" type="xsd:date" />
      <xsd:element name="recallSpread" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EquityDerivativeLongFormBase" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="EquityDerivativeBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="dividendConditions" type="fpml:DividendConditions" />
          <xsd:element name="methodOfAdjustment" type="fpml:MethodOfAdjustmentEnum" />
          <xsd:element name="extraordinaryEvents" type="fpml:ExtraordinaryEvents" />
          <xsd:element minOccurs="0" maxOccurs="1" name="equityFeatures" type="fpml:OptionFeatures" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityOption">
    <xsd:complexContent>
      <xsd:extension base="EquityDerivativeLongFormBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="strike" type="fpml:EquityStrike" />
          <xsd:element minOccurs="0" maxOccurs="1" name="spotPrice" type="fpml:NonNegativeDecimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="numberOfOptions" type="fpml:NonNegativeDecimal" />
          <xsd:element name="optionEntitlement" type="fpml:PositiveDecimal" />
          <xsd:element name="equityPremium" type="fpml:EquityPremium" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DividendConditions">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendReinvestment" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendEntitlement" type="fpml:DividendEntitlementEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendAmount" type="fpml:DividendAmountTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendPaymentDate" type="fpml:DividendPaymentDate" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="dividendPeriodEffectiveDate" type="fpml:DateReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dividendPeriodEndDate" type="fpml:DateReference" />
        </xsd:sequence>
        <xsd:element name="dividendPeriod" type="fpml:DividendPeriodEnum" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="extraOrdinaryDividends" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="excessDividendAmount" type="fpml:DividendAmountTypeEnum" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="currency" type="fpml:Currency" />
        <xsd:element name="determinationMethod" type="fpml:DeterminationMethod" />
        <xsd:element name="currencyReference" type="fpml:IdentifiedCurrencyReference" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="paymentCurrency" type="fpml:PaymentCurrency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendFxTriggerDate" type="fpml:DividendPaymentDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="interestAccrualsMethod" type="fpml:InterestAccrualsCompoundingMethod" />
      <xsd:element minOccurs="0" maxOccurs="1" name="numberOfIndexUnits" type="fpml:NonNegativeDecimal" />
      <xsd:group ref="fpml:DeclaredCashAndCashEquivalentDividendPercentage.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExtraordinaryEvents">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="mergerEvents" type="fpml:EquityCorporateEvents" />
      <xsd:element minOccurs="0" maxOccurs="1" name="tenderOffer" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="tenderOfferEvents" type="fpml:EquityCorporateEvents" />
      <xsd:element minOccurs="0" maxOccurs="1" name="compositionOfCombinedConsideration" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="indexAdjustmentEvents" type="fpml:IndexAdjustmentEvents" />
      <xsd:choice>
        <xsd:element name="additionalDisruptionEvents" type="fpml:AdditionalDisruptionEvents" />
        <xsd:element name="failureToDeliver" type="xsd:boolean" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="representations" type="fpml:Representations" />
      <xsd:element minOccurs="0" maxOccurs="1" name="nationalisationOrInsolvency" type="fpml:NationalisationOrInsolvencyOrDelistingEventEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="delisting" type="fpml:NationalisationOrInsolvencyOrDelistingEventEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InterestAccrualPeriod">
    <xsd:sequence>
      <xsd:group ref="fpml:Period.model" />
      <xsd:element name="shareInterestAccrualAmount" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="sharePikAccrualAmount" type="fpml:Money" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ConstituentWeight">
    <xsd:choice>
      <xsd:element name="openUnits" type="xsd:decimal" />
      <xsd:element name="basketPercentage" type="fpml:RestrictedPercentage" />
      <xsd:element name="basketAmount" type="fpml:Money" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="SpreadScheduleReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Amendment">
    <xsd:complexContent>
      <xsd:extension base="Event">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:group ref="fpml:AmendmentDetails.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="payment" type="fpml:Payment" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SpecifiedCurrency">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="currency" type="fpml:Currency" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NotDomesticCurrency">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CalculationFromObservation" abstract="true">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="initialLevel" type="xsd:decimal" />
        <xsd:element name="closingLevel" type="xsd:boolean" />
        <xsd:element name="expiringLevel" type="xsd:boolean" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="expectedN" type="xsd:positiveInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Correlation">
    <xsd:complexContent>
      <xsd:extension base="CalculationFromObservation">
        <xsd:sequence>
          <xsd:element name="notionalAmount" type="fpml:Money" />
          <xsd:element name="correlationStrikePrice" type="fpml:CorrelationValue" />
          <xsd:element minOccurs="0" maxOccurs="1" name="boundedCorrelation" type="fpml:BoundedCorrelation" />
          <xsd:element minOccurs="0" maxOccurs="1" name="numberOfDataSeries" type="xsd:positiveInteger" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StrikeSpread">
    <xsd:sequence>
      <xsd:element name="upperStrike" type="fpml:OptionStrike" />
      <xsd:element name="upperStrikeNumberOfOptions" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CalendarSpread">
    <xsd:sequence>
      <xsd:element name="expirationDateTwo" type="fpml:AdjustableOrRelativeDate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="GasDelivery">
    <xsd:sequence>
      <xsd:group ref="fpml:CommodityDeliveryPoints.model" />
      <xsd:element name="deliveryType" type="fpml:DeliveryTypeEnum" />
      <xsd:sequence minOccurs="0" maxOccurs="1">
        <xsd:element name="buyerHub" type="fpml:CommodityHub" />
        <xsd:element name="sellerHub" type="fpml:CommodityHub" />
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityHub">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyOrAccountReference" />
      <xsd:element name="hubCode" type="fpml:CommodityHubCode" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityFx">
    <xsd:sequence>
      <xsd:element name="primaryRateSource" type="fpml:InformationSource" />
      <xsd:element minOccurs="0" maxOccurs="1" name="secondaryRateSource" type="fpml:InformationSource" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fxType" type="fpml:CommodityFxType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="averagingMethod" type="fpml:AveragingMethodEnum" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="fixingTime" type="fpml:BusinessCenterTime" />
        <xsd:sequence>
          <xsd:choice>
            <xsd:element maxOccurs="unbounded" name="fxObservationDates" type="fpml:AdjustableDates" />
            <xsd:sequence>
              <xsd:sequence minOccurs="0" maxOccurs="1">
                <xsd:group ref="fpml:PricingDays.model" />
                <xsd:group ref="fpml:LagOrReference.model" minOccurs="0" />
              </xsd:sequence>
              <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
            </xsd:sequence>
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="1" name="fixingTime" type="fpml:BusinessCenterTime" />
        </xsd:sequence>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityFxType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityFxTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityFxTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityDeliveryPeriods">
    <xsd:choice>
      <xsd:element name="periods" type="fpml:AdjustableDates" />
      <xsd:element name="periodsSchedule" type="fpml:CommodityCalculationPeriodsSchedule" />
      <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ContractChangedCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="fpml:ContractReference" />
          <xsd:element name="change" type="fpml:ContractChange" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StreetAddress">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="streetLine" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractNovated">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="novation" type="fpml:ContractNovation" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element minOccurs="3" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractNovation">
    <xsd:sequence>
      <xsd:group ref="fpml:ContractNovationDetails.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="payment" type="fpml:Payment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxEuropeanTrigger">
    <xsd:sequence>
      <xsd:element name="triggerCondition" type="fpml:TriggerConditionEnum" />
      <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
      <xsd:element name="triggerRate" type="xsd:decimal" />
      <xsd:element maxOccurs="unbounded" name="informationSource" type="fpml:InformationSource" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditDefaultSwap">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="generalTerms" type="fpml:GeneralTerms" />
          <xsd:element name="feeLeg" type="fpml:FeeLeg" />
          <xsd:element maxOccurs="unbounded" name="protectionTerms" type="fpml:ProtectionTerms" />
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="cashSettlementTerms" type="fpml:CashSettlementTerms" />
            <xsd:element name="physicalSettlementTerms" type="fpml:PhysicalSettlementTerms" />
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="GeneralTerms">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="effectiveDate" type="fpml:AdjustableDate2" />
      <xsd:element minOccurs="0" maxOccurs="1" name="scheduledTerminationDate" type="fpml:DeprecatedScheduledTerminationDate" />
      <xsd:element name="sellerPartyReference" type="fpml:PartyOrTradeSideReference" />
      <xsd:element name="buyerPartyReference" type="fpml:PartyOrTradeSideReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dateAdjustments" type="fpml:BusinessDayAdjustments" />
      <xsd:choice>
        <xsd:element name="referenceInformation" type="fpml:ReferenceInformation" />
        <xsd:element name="indexReferenceInformation" type="fpml:IndexReferenceInformation" />
        <xsd:element name="basketReferenceInformation" type="fpml:BasketReferenceInformation" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="additionalTerm" type="fpml:AdditionalTerm" />
      <xsd:element minOccurs="0" maxOccurs="1" name="substitution" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="modifiedEquityDelivery" type="fpml:Empty" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FeeLeg">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="initialPayment" type="fpml:InitialPayment" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="singlePayment" type="fpml:SinglePayment" />
          <xsd:element minOccurs="0" maxOccurs="1" name="periodicPayment" type="fpml:PeriodicPayment" />
          <xsd:element minOccurs="0" maxOccurs="1" name="marketFixedRate" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentDelay" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="initialPoints" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="quotationStyle" type="fpml:QuotationStyleEnum" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ProtectionTerms">
    <xsd:sequence>
      <xsd:element name="calculationAmount" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="creditEvents" type="fpml:CreditEvents" />
      <xsd:element minOccurs="0" maxOccurs="1" name="obligations" type="fpml:Obligations" />
      <xsd:element minOccurs="0" maxOccurs="1" name="floatingAmountEvents" type="fpml:FloatingAmountEvents" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="SettlementTerms">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementCurrency" type="fpml:Currency" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CashSettlementTerms">
    <xsd:complexContent>
      <xsd:extension base="SettlementTerms">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="valuationDate" type="fpml:ValuationDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="valuationTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="quotationMethod" type="fpml:QuotationRateTypeEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="quotationAmount" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="1" name="minimumQuotationAmount" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="dealer" type="xsd:string" />
          <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlementBusinessDays" type="xsd:nonNegativeInteger" />
          <xsd:group ref="fpml:FixedRecovery.model" minOccurs="0" />
          <xsd:element minOccurs="0" maxOccurs="1" name="accruedInterest" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="valuationMethod" type="fpml:ValuationMethodEnum" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PhysicalSettlementTerms">
    <xsd:complexContent>
      <xsd:extension base="SettlementTerms">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="physicalSettlementPeriod" type="fpml:PhysicalSettlementPeriod" />
          <xsd:element minOccurs="0" maxOccurs="1" name="deliverableObligations" type="fpml:DeliverableObligations" />
          <xsd:element minOccurs="0" maxOccurs="1" name="escrow" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="sixtyBusinessDaySettlementCap" type="xsd:boolean" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPipeline">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="pipelineScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="pipelineSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Resource">
    <xsd:sequence>
      <xsd:element name="resourceId" type="fpml:ResourceId" />
      <xsd:element minOccurs="0" maxOccurs="1" name="language" type="fpml:Language" />
      <xsd:element minOccurs="0" maxOccurs="1" name="sizeInBytes" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="length" type="fpml:ResourceLength" />
      <xsd:element name="mimeType" type="fpml:MimeType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:normalizedString" />
      <xsd:element minOccurs="0" maxOccurs="1" name="comments" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="url" type="xsd:anyURI" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ResourceId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="resourceIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="resourceIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Language">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="languageScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="languageSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ResourceLength">
    <xsd:sequence>
      <xsd:element name="lengthUnit" type="fpml:LengthUnitEnum" />
      <xsd:element name="lengthValue" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MimeType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="mimeTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="mimeTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InterpolationMethod">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="interpolationMethodScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="interpolationMethodSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ContractId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="contractIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="contractIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DividendPeriod" abstract="true">
    <xsd:sequence>
      <xsd:element name="unadjustedStartDate" type="fpml:IdentifiedDate" />
      <xsd:element name="unadjustedEndDate" type="fpml:IdentifiedDate" />
      <xsd:element name="dateAdjustments" type="fpml:BusinessDayAdjustments" />
      <xsd:element minOccurs="0" maxOccurs="1" name="underlyerReference" type="fpml:AssetReference" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="DividendPeriodPayment">
    <xsd:complexContent>
      <xsd:extension base="DividendPeriod">
        <xsd:sequence>
          <xsd:element name="fixedStrike" type="fpml:PositiveDecimal" />
          <xsd:element name="paymentDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="valuationDate" type="fpml:AdjustableOrRelativeDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="GasQuality">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="gasQualityScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="gasQualitySchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPayRelativeToEvent">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityPayRelativeToEventScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityPayRelativeToEventSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DateOffset">
    <xsd:complexContent>
      <xsd:extension base="Offset">
        <xsd:sequence>
          <xsd:element name="businessDayConvention" type="fpml:BusinessDayConventionEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="sequence" type="xsd:positiveInteger" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CancelTradeMatch">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="partyTradeIdentifier" type="fpml:PartyTradeIdentifier" />
          <xsd:element name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CancelTradeConfirmation">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="partyTradeIdentifier" type="fpml:PartyTradeIdentifier" />
          <xsd:element name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SensitivitySetDefinition">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="sensitivityCharacteristics" type="fpml:QuotationCharacteristics" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationScenarioReference" type="fpml:ValuationScenarioReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="pricingInputType" type="fpml:PricingInputType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="pricingInputReference" type="fpml:PricingStructureReference" />
      <xsd:element name="scale" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="sensitivityDefinition" type="fpml:SensitivityDefinition" />
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationProcedure" type="fpml:DerivativeCalculationProcedure" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="QuotationCharacteristics">
    <xsd:sequence>
      <xsd:group ref="fpml:QuotationCharacteristics.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ValuationScenarioReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PricingInputType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="pricingInputTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="pricingInputTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SensitivityDefinition">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationScenarioReference" type="fpml:ValuationScenarioReference" />
      <xsd:choice>
        <xsd:group ref="fpml:ComputedDerivative.model" />
        <xsd:group ref="fpml:SensitivityDescription.model" />
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="DerivativeCalculationProcedure">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="method" type="fpml:DerivativeCalculationMethod" />
      <xsd:group ref="fpml:DerivativeCalculationParameters.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NovationNotificationMessage" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:group ref="fpml:NovationMessage.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NovationConfirmed">
    <xsd:complexContent>
      <xsd:extension base="NovationNotificationMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodDatesReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ResetFrequency">
    <xsd:complexContent>
      <xsd:extension base="Interval">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="weeklyRollConvention" type="fpml:WeeklyRollConventionEnum" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CashSettlement">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlementValuationTime" type="fpml:BusinessCenterTime" />
      <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlementValuationDate" type="fpml:RelativeDateOffset" />
      <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlementPaymentDate" type="fpml:CashSettlementPaymentDate" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="cashPriceMethod" type="fpml:CashPriceMethod" />
        <xsd:element name="cashPriceAlternateMethod" type="fpml:CashPriceMethod" />
        <xsd:element name="parYieldCurveAdjustedMethod" type="fpml:YieldCurveMethod" />
        <xsd:element name="zeroCouponYieldAdjustedMethod" type="fpml:YieldCurveMethod" />
        <xsd:element name="parYieldCurveUnadjustedMethod" type="fpml:YieldCurveMethod" />
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="MandatoryEarlyTerminationAdjustedDates">
    <xsd:sequence>
      <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date" />
      <xsd:element name="adjustedCashSettlementValuationDate" type="xsd:date" />
      <xsd:element name="adjustedCashSettlementPaymentDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FloatingRateCalculationReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LoanContract">
    <xsd:sequence>
      <xsd:element name="loanContractSummary" type="fpml:LoanContractSummary" />
      <xsd:element name="borrowerPartyReference" type="fpml:PartyReference" />
      <xsd:choice>
        <xsd:element name="amount" type="fpml:Money" />
        <xsd:element name="participationAmount" type="fpml:ParticipationAmount" />
      </xsd:choice>
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="conditionsPrecedentMet" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="conditionsPrecedentComment" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="fxTermsSchedule" type="fpml:FxTermsSchedule" />
      <xsd:element name="currentInterestRatePeriod" type="fpml:InterestRatePeriod" />
      <xsd:element minOccurs="0" maxOccurs="1" name="interestPaymentTenor" type="fpml:Interval" />
      <xsd:element minOccurs="0" maxOccurs="1" name="nextInterestPaymentDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LoanContractSummary">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="identifier" type="fpml:ContractIdentifier" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="originalAmount" type="fpml:Money" />
        <xsd:element name="participationAmount" type="fpml:ParticipationAmount" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="maturityDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ParticipationAmount">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="globalAmount" type="fpml:Money" />
      <xsd:element name="shareAmount" type="fpml:Money" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxTermsSchedule">
    <xsd:sequence>
      <xsd:group ref="fpml:Period.model" />
      <xsd:element name="fxTerms" type="fpml:FxTerms" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InterestRatePeriod">
    <xsd:sequence>
      <xsd:element name="rateFixingDate" type="xsd:date" />
      <xsd:group ref="fpml:Period.model" />
      <xsd:group ref="fpml:FloatingRateIndex.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="interestRate" type="fpml:PositiveDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="margin" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="mandatoryCostRate" type="fpml:PositiveDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="allInRate" type="fpml:PositiveDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="interestDayBasis" type="fpml:DayCountFraction" />
      <xsd:element minOccurs="0" maxOccurs="1" name="tenor" type="fpml:Interval" />
      <xsd:element minOccurs="0" maxOccurs="1" name="projectedInterestAmount" type="fpml:ParticipationAmount" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliverySystemFirm">
    <xsd:sequence>
      <xsd:element name="applicable" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="system" type="fpml:CommodityDeliveryPoint" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Quotation">
    <xsd:sequence>
      <xsd:group ref="fpml:Quotation.model" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="sensitivitySet" type="fpml:SensitivitySet" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SensitivitySet">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="definitionReference" type="fpml:SensitivitySetDefinitionReference" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="sensitivity" type="fpml:Sensitivity" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="NovationRequestMessage" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:group ref="fpml:NovationMessage.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestNovationConfirmation">
    <xsd:complexContent>
      <xsd:extension base="NovationRequestMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FixedRate">
    <xsd:simpleContent>
      <xsd:extension base="xsd:decimal">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CorrelationAmount">
    <xsd:complexContent>
      <xsd:extension base="CalculatedAmount">
        <xsd:sequence>
          <xsd:element name="correlation" type="fpml:Correlation" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LegId">
    <xsd:simpleContent>
      <xsd:extension base="Token60">
        <xsd:attribute name="legIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="legIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MatrixType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="matrixTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="matrixTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CreditSupportAgreement">
    <xsd:sequence>
      <xsd:element name="type" type="fpml:CreditSupportAgreementType" />
      <xsd:element name="date" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditSupportAgreementType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="creditSupportAgreementTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="creditSupportAgreementTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="LinkId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="linkIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="linkIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SinglePartyOption">
    <xsd:sequence>
      <xsd:group ref="fpml:BuyerSeller.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OptionalEarlyTerminationAdjustedDates">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="earlyTerminationEvent" type="fpml:EarlyTerminationEvent" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxLinkedNotionalAmount">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="resetDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedFxSpotFixingDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="observedFxSpotRate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notionalAmount" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PricingStructureValuation">
    <xsd:complexContent>
      <xsd:extension base="Valuation">
        <xsd:sequence>
          <xsd:group ref="fpml:PricingInputDates.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="YieldCurveValuation">
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="inputs" type="fpml:QuotedAssetSet" />
          <xsd:element minOccurs="0" maxOccurs="1" name="zeroCurve" type="fpml:ZeroRateCurve" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="forwardCurve" type="fpml:ForwardRateCurve" />
          <xsd:element minOccurs="0" maxOccurs="1" name="discountFactorCurve" type="fpml:TermCurve" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AnyAssetReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="QuotedAssetSet">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="instrumentSet" type="fpml:InstrumentSet" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="assetQuote" type="fpml:BasicAssetValuation" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ZeroRateCurve">
    <xsd:sequence>
      <xsd:element name="compoundingFrequency" type="fpml:CompoundingFrequency" />
      <xsd:element name="rateCurve" type="fpml:TermCurve" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ForwardRateCurve">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="assetReference" type="fpml:AssetReference" />
      <xsd:element name="rateCurve" type="fpml:TermCurve" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LegAmount">
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="currency" type="fpml:Currency" />
        <xsd:element name="determinationMethod" type="fpml:DeterminationMethod" />
        <xsd:element name="currencyReference" type="fpml:IdentifiedCurrencyReference" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="paymentCurrency" type="fpml:PaymentCurrency" />
      <xsd:choice>
        <xsd:element name="referenceAmount" type="fpml:ReferenceAmount" />
        <xsd:element name="formula" type="fpml:Formula" />
        <xsd:element name="encodedDescription" type="xsd:base64Binary" />
        <xsd:element name="variance" type="fpml:DeprecatedVariance" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationDates" type="fpml:AdjustableRelativeOrPeriodicDates" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapAmount">
    <xsd:complexContent>
      <xsd:extension base="LegAmount">
        <xsd:sequence>
          <xsd:element name="cashSettlement" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="optionsExchangeDividends" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="additionalDividends" type="xsd:boolean" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DeprecatedVarianceAmount">
    <xsd:complexContent>
      <xsd:extension base="ReturnSwapAmount">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlementPaymentDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="observationStartDate" type="fpml:StartingDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="allDividends" type="xsd:boolean" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedCurrencyReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentCurrency">
    <xsd:choice minOccurs="0" maxOccurs="1">
      <xsd:element name="currency" type="fpml:Currency" />
      <xsd:element name="determinationMethod" type="fpml:DeterminationMethod" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="href" type="xsd:IDREF">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="hrefAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ReferenceAmount">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="referenceAmountScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="referenceAmountSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DeprecatedVariance">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="initialLevel" type="xsd:decimal" />
        <xsd:element name="closingLevel" type="xsd:boolean" />
        <xsd:element name="expiringLevel" type="xsd:boolean" />
      </xsd:choice>
      <xsd:element name="varianceAmount" type="fpml:Money" />
      <xsd:choice>
        <xsd:element name="volatilityStrikePrice" type="xsd:decimal" />
        <xsd:element name="varianceStrikePrice" type="xsd:decimal" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="expectedN" type="xsd:integer" />
      <xsd:element minOccurs="0" maxOccurs="1" name="varianceCap" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="unadjustedVarianceCap" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="exchangeTradedContractNearest" type="fpml:ExchangeTradedContract" />
      <xsd:element minOccurs="0" maxOccurs="1" name="vegaNotionalAmount" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fxFeature" type="fpml:FxFeature" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="StartingDate">
    <xsd:choice>
      <xsd:element name="dateRelativeTo" type="fpml:DateReference" />
      <xsd:element name="adjustableDate" type="fpml:AdjustableDate" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="LoanContractNotice" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:group ref="fpml:FacilityNoticeDetails.model" />
          <xsd:choice>
            <xsd:element name="loanContract" type="fpml:LoanContract" />
            <xsd:element name="loanContractSummary" type="fpml:LoanContractSummary" />
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DrawdownNotice">
    <xsd:complexContent>
      <xsd:extension base="LoanContractNotice">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="drawdownEventType" type="fpml:DrawdownEventTypeEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="conditionsPrecedentType" type="fpml:ConditionsPrecedentEnum" />
          <xsd:element name="drawdownPayment" type="fpml:DrawdownPayment" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DrawdownPayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element name="paymentDate" type="xsd:date" />
          <xsd:element name="shareLoanContractAmount" type="fpml:Money" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractAmendment">
    <xsd:sequence>
      <xsd:element name="contract" type="fpml:Contract" />
      <xsd:element name="agreementDate" type="xsd:date" />
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="payment" type="fpml:Payment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PartyTradeInformation">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="trader" type="fpml:Trader" />
      <xsd:element minOccurs="0" maxOccurs="1" name="executionDateTime" type="fpml:ExecutionDateTime" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Trader">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="traderScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="traderSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ExecutionDateTime">
    <xsd:simpleContent>
      <xsd:extension base="xsd:dateTime">
        <xsd:attribute name="executionDateTimeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="executionDateTimeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeErrorResponse" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:group ref="fpml:TradeOrTradeReference.model" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ProblemLocation">
    <xsd:simpleContent>
      <xsd:extension base="xsd:normalizedString">
        <xsd:attribute name="locationType" type="xsd:token">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="locationTypeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="problemLocationScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="problemLocationSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeTerminationResponse">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="termination" type="fpml:Termination" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Termination">
    <xsd:complexContent>
      <xsd:extension base="Event">
        <xsd:sequence>
          <xsd:group ref="fpml:TradeOrTradeReference.model" />
          <xsd:group ref="fpml:TerminationDetails.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="payment" type="fpml:Payment" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Swaption">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="premium" type="fpml:Payment" />
          <xsd:element ref="fpml:exercise" />
          <xsd:element minOccurs="0" maxOccurs="1" name="exerciseProcedure" type="fpml:ExerciseProcedure" />
          <xsd:element minOccurs="0" maxOccurs="1" name="calculationAgent" type="fpml:CalculationAgent" />
          <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlement" type="fpml:CashSettlement" />
          <xsd:element name="swaptionStraddle" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="swaptionAdjustedDates" type="fpml:SwaptionAdjustedDates" />
          <xsd:element ref="fpml:swap" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ExerciseProcedure">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="manualExercise" type="fpml:ManualExercise" />
        <xsd:element name="automaticExercise" type="fpml:AutomaticExercise" />
      </xsd:choice>
      <xsd:element name="followUpConfirmation" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="limitedRightToConfirm" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="splitTicket" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SwaptionAdjustedDates">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="exerciseEvent" type="fpml:ExerciseEvent" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Swap">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="swapStream" type="fpml:InterestRateStream" />
          <xsd:element minOccurs="0" maxOccurs="1" name="earlyTerminationProvision" type="fpml:EarlyTerminationProvision" />
          <xsd:element minOccurs="0" maxOccurs="1" name="cancelableProvision" type="fpml:CancelableProvision" />
          <xsd:element minOccurs="0" maxOccurs="1" name="extendibleProvision" type="fpml:ExtendibleProvision" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="additionalPayment" type="fpml:Payment" />
          <xsd:element minOccurs="0" maxOccurs="1" name="additionalTerms" type="fpml:SwapAdditionalTerms" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="VarianceAmount">
    <xsd:complexContent>
      <xsd:extension base="CalculatedAmount">
        <xsd:sequence>
          <xsd:element name="variance" type="fpml:Variance" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Variance">
    <xsd:complexContent>
      <xsd:extension base="CalculationFromObservation">
        <xsd:sequence>
          <xsd:element name="varianceAmount" type="fpml:Money" />
          <xsd:choice>
            <xsd:element name="volatilityStrikePrice" type="fpml:NonNegativeDecimal" />
            <xsd:element name="varianceStrikePrice" type="fpml:NonNegativeDecimal" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="1" name="varianceCap" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="unadjustedVarianceCap" type="fpml:PositiveDecimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="boundedVariance" type="fpml:BoundedVariance" />
          <xsd:element minOccurs="0" maxOccurs="1" name="exchangeTradedContractNearest" type="fpml:ExchangeTradedContract" />
          <xsd:element minOccurs="0" maxOccurs="1" name="vegaNotionalAmount" type="xsd:decimal" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Restructuring">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="restructuringType" type="fpml:RestructuringType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="multipleHolderObligation" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="multipleCreditEventNotices" type="fpml:Empty" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RestructuringType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="restructuringScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="restructuringSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CoalStandardQuality">
    <xsd:sequence>
      <xsd:group ref="fpml:CommodityCoalComposition.model" />
      <xsd:group ref="fpml:CommodityCoalProperties.model" />
      <xsd:group ref="fpml:CommodityCoalReducingAtmosphere.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditEvent" />
  <xsd:complexType name="BankruptcyEvent">
    <xsd:complexContent>
      <xsd:extension base="CreditEvent" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositionReport">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="asOfDate" type="fpml:IdentifiedDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dataSetName" type="xsd:string" />
          <xsd:element minOccurs="0" maxOccurs="1" name="quotationCharacteristics" type="fpml:QuotationCharacteristics" />
          <xsd:element maxOccurs="unbounded" name="position" type="fpml:Position" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CompoundingFrequency">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="compoundingFrequencyScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="compoundingFrequencySchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ReferenceSwapCurve">
    <xsd:sequence>
      <xsd:element name="swapUnwindValue" type="fpml:SwapCurveValuation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="makeWholeAmount" type="fpml:MakeWholeAmount" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SwapCurveValuation">
    <xsd:sequence>
      <xsd:group ref="fpml:FloatingRateIndex.model" />
      <xsd:element name="spread" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="side" type="fpml:QuotationSideEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MakeWholeAmount">
    <xsd:complexContent>
      <xsd:extension base="SwapCurveValuation">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="interpolationMethod" type="fpml:InterpolationMethod" />
          <xsd:element name="earlyCallDate" type="fpml:IdentifiedDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RatePeriod">
    <xsd:sequence>
      <xsd:group ref="fpml:Period.model" />
      <xsd:element name="rate" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommoditySpreadSchedule">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="spreadStep" type="fpml:Money" />
      <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SwapAdditionalTerms">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="bondReference" type="fpml:BondReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BondReference">
    <xsd:sequence>
      <xsd:element ref="fpml:bond" />
      <xsd:element name="conditionPrecedentBond" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="discrepancyClause" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DateRelativeToPaymentDates">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="paymentDatesReference" type="fpml:PaymentDatesReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PaymentDatesReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OptionBase" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" />
          <xsd:element name="optionType" type="fpml:OptionTypeEnum" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OptionBaseExtended" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="OptionBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="premium" type="fpml:Premium" />
          <xsd:element ref="fpml:exercise" />
          <xsd:element name="exerciseProcedure" type="fpml:ExerciseProcedure" />
          <xsd:element minOccurs="0" maxOccurs="1" name="feature" type="fpml:OptionFeature" />
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="notionalReference" type="fpml:NotionalAmountReference" />
            <xsd:element name="notionalAmount" type="fpml:Money" />
          </xsd:choice>
          <xsd:group ref="fpml:OptionDenomination.model" minOccurs="0" />
          <xsd:group ref="fpml:OptionSettlement.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CreditDefaultSwapOption">
    <xsd:complexContent>
      <xsd:extension base="OptionBaseExtended">
        <xsd:sequence>
          <xsd:element name="strike" type="fpml:CreditOptionStrike" />
          <xsd:element ref="fpml:creditDefaultSwap" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SimplePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element name="paymentAmount" type="fpml:Money" />
          <xsd:element name="paymentDate" type="fpml:AdjustableOrRelativeAndAdjustedDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Premium">
    <xsd:complexContent>
      <xsd:extension base="SimplePayment">
        <xsd:sequence>
          <xsd:group ref="fpml:Premium.model" minOccurs="0" />
          <xsd:group ref="fpml:PaymentDiscounting.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OptionFeature">
    <xsd:sequence>
      <xsd:group ref="fpml:OptionBaseFeature.model" />
      <xsd:group ref="fpml:OptionFeature.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NotionalAmountReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CreditOptionStrike">
    <xsd:choice>
      <xsd:element name="spread" type="xsd:decimal" />
      <xsd:element name="price" type="xsd:decimal" />
      <xsd:element name="strikeReference" type="fpml:FixedRateReference" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="TriggerEvent">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="schedule" type="fpml:AveragingSchedule" />
      <xsd:element minOccurs="0" maxOccurs="1" name="triggerDates" type="fpml:DateList" />
      <xsd:element name="trigger" type="fpml:Trigger" />
      <xsd:element minOccurs="0" maxOccurs="1" name="featurePayment" type="fpml:FeaturePayment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SingleUnderlyer">
    <xsd:sequence>
      <xsd:element ref="fpml:underlyingAsset" />
      <xsd:element minOccurs="0" maxOccurs="1" name="openUnits" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendPayout" type="fpml:DividendPayout" />
      <xsd:element minOccurs="0" maxOccurs="1" name="couponPayment" type="fpml:PendingPayment" />
      <xsd:element minOccurs="0" maxOccurs="1" name="averageDailyTradingVolume" type="fpml:AverageDailyTradingVolumeLimit" />
      <xsd:element minOccurs="0" maxOccurs="1" name="depositoryReceipt" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DividendPayout">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="dividendPayoutRatio" type="xsd:decimal" />
        <xsd:element name="dividendPayoutConditions" type="xsd:string" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="dividendPayment" type="fpml:PendingPayment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PendingPayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element name="paymentDate" type="xsd:date" />
          <xsd:element name="amount" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="1" name="accruedInterest" type="fpml:Money" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BasicAssetValuation">
    <xsd:complexContent>
      <xsd:extension base="Valuation">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="quote" type="fpml:BasicQuotation" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BasicQuotation">
    <xsd:sequence>
      <xsd:group ref="fpml:Quotation.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RateReference">
    <xsd:attribute name="href" type="xsd:IDREF">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="hrefAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ValuationPostponement">
    <xsd:sequence>
      <xsd:element name="maximumDaysOfPostponement" type="xsd:positiveInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PriceSourceDisruption">
    <xsd:sequence>
      <xsd:element name="fallbackReferencePrice" type="fpml:FallbackReferencePrice" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FallbackReferencePrice">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationPostponement" type="fpml:ValuationPostponement" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="fallbackSettlementRateOption" type="fpml:SettlementRateOption" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fallbackSurveyValuationPostponenment" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationAgentDetermination" type="fpml:CalculationAgent" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapLeg" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentFrequency" type="fpml:Interval" />
        </xsd:sequence>
        <xsd:attribute name="legIdentifier" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="legIdentifierAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapLegUnderlyer" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="ReturnSwapLeg">
        <xsd:sequence>
          <xsd:element name="effectiveDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="terminationDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="underlyer" type="fpml:Underlyer" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ClassifiedPayment">
    <xsd:complexContent>
      <xsd:extension base="SimplePayment">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentType" type="fpml:PaymentType" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AdjustableOrRelativeAndAdjustedDate">
    <xsd:complexContent>
      <xsd:extension base="AdjustableOrRelativeDate">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="adjustedDate" type="fpml:IdentifiedDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="paymentTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="paymentTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriodsSchedule">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="settlementPeriodsStep" type="fpml:SettlementPeriodsStep" />
      <xsd:group ref="fpml:CommodityDeliveryPeriodsPointer.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriodsStep">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="settlementPeriodsReference" type="fpml:SettlementPeriodsReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RequestAmendmentConfirmation">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="amendment" type="fpml:Amendment" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SpreadScheduleType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="spreadScheduleTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="spreadScheduleTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="entityIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="entityIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RelativeDateSequence">
    <xsd:sequence>
      <xsd:element name="dateRelativeTo" type="fpml:DateReference" />
      <xsd:element maxOccurs="unbounded" name="dateOffset" type="fpml:DateOffset" />
      <xsd:group ref="fpml:BusinessCentersOrReference.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PeriodicDates">
    <xsd:sequence>
      <xsd:element name="calculationStartDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationEndDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:element name="calculationPeriodFrequency" type="fpml:CalculationPeriodFrequency" />
      <xsd:element name="calculationPeriodDatesAdjustments" type="fpml:BusinessDayAdjustments" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriod">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="unadjustedStartDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="unadjustedEndDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedStartDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedEndDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationPeriodNumberOfDays" type="xsd:positiveInteger" />
      <xsd:choice>
        <xsd:element name="notionalAmount" type="xsd:decimal" />
        <xsd:element name="fxLinkedNotionalAmount" type="fpml:FxLinkedNotionalAmount" />
      </xsd:choice>
      <xsd:choice>
        <xsd:element name="floatingRateDefinition" type="fpml:FloatingRateDefinition" />
        <xsd:element name="fixedRate" type="xsd:decimal" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="dayCountYearFraction" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="forecastAmount" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="forecastRate" type="xsd:decimal" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="BusinessDayAdjustmentsReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxOptionLeg">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" />
          <xsd:element name="expiryDateTime" type="fpml:ExpiryDateTime" />
          <xsd:element name="exerciseStyle" type="fpml:ExerciseStyleEnum" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="fxOptionPremium" type="fpml:FxOptionPremium" />
          <xsd:element name="valueDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlementTerms" type="fpml:FxCashSettlement" />
          <xsd:element name="putCurrencyAmount" type="fpml:Money" />
          <xsd:element name="callCurrencyAmount" type="fpml:Money" />
          <xsd:element name="fxStrikePrice" type="fpml:FxStrikePrice" />
          <xsd:element minOccurs="0" maxOccurs="1" name="quotedAs" type="fpml:QuotedAs" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxCashSettlement">
    <xsd:sequence>
      <xsd:element name="settlementCurrency" type="fpml:Currency" />
      <xsd:element maxOccurs="unbounded" name="fixing" type="fpml:FxFixing" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="QuotedAs">
    <xsd:sequence>
      <xsd:element name="optionOnCurrency" type="fpml:Currency" />
      <xsd:element name="faceOnCurrency" type="fpml:Currency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="quotedTenor" type="fpml:Interval" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MarketDisruption">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="marketDisruptionScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="marketDisruptionSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDelivery">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="deliveryPoint" type="fpml:ElectricityDeliveryPoint" />
        <xsd:element minOccurs="0" maxOccurs="1" name="deliveryType">
          <xsd:complexType>
            <xsd:sequence />
          </xsd:complexType>
        </xsd:element>
        <xsd:element minOccurs="0" maxOccurs="1" name="transmissionContingency" type="fpml:ElectricityTransmissionContingency" />
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="deliveryZone" type="fpml:CommodityDeliveryPoint" />
        <xsd:element minOccurs="0" maxOccurs="1" name="electingPartyReference" type="fpml:PartyReference" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliveryPoint">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryPointScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="deliveryPointSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityTransmissionContingency">
    <xsd:sequence>
      <xsd:element name="contingency" type="fpml:ElectricityTransmissionContingencyType" />
      <xsd:element maxOccurs="2" name="contingentParty" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeDetails">
    <xsd:sequence>
      <xsd:element name="tradeDate" type="fpml:IdentifiedDate" />
      <xsd:element name="effectiveDate" type="fpml:AdjustableDate2" />
      <xsd:element name="terminationDate" type="fpml:AdjustableDate2" />
      <xsd:element minOccurs="0" maxOccurs="1" name="productType" type="fpml:ProductType" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="underlyer" type="fpml:TradeUnderlyer" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="notional" type="fpml:CashflowNotional" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AssertedPosition">
    <xsd:sequence>
      <xsd:group ref="fpml:PositionIdAndVersion.model" />
      <xsd:group ref="fpml:PositionWithoutId.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InterestAccrualsMethod">
    <xsd:choice>
      <xsd:element name="floatingRateCalculation" type="fpml:FloatingRateCalculation" />
      <xsd:element name="fixedRate" type="xsd:decimal" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="InterestAccrualsCompoundingMethod">
    <xsd:complexContent>
      <xsd:extension base="InterestAccrualsMethod">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <xsd:element name="compoundingMethod" type="fpml:CompoundingMethodEnum" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Rate" abstract="true">
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="FloatingRate">
    <xsd:complexContent>
      <xsd:extension base="Rate">
        <xsd:sequence>
          <xsd:group ref="fpml:FloatingRateIndex.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="floatingRateMultiplierSchedule" type="fpml:Schedule" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="spreadSchedule" type="fpml:SpreadSchedule" />
          <xsd:element minOccurs="0" maxOccurs="1" name="rateTreatment" type="fpml:RateTreatmentEnum" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="capRateSchedule" type="fpml:StrikeSchedule" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="floorRateSchedule" type="fpml:StrikeSchedule" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingRateCalculation">
    <xsd:complexContent>
      <xsd:extension base="FloatingRate">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="initialRate" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="finalRateRounding" type="fpml:Rounding" />
          <xsd:element minOccurs="0" maxOccurs="1" name="averagingMethod" type="fpml:AveragingMethodEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="negativeInterestRateTreatment" type="fpml:NegativeInterestRateTreatmentEnum" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DateRelativeToCalculationPeriodDates">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="calculationPeriodDatesReference" type="fpml:CalculationPeriodDatesReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DefaultProbabilityCurve">
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element name="baseYieldCurve" type="fpml:PricingStructureReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="defaultProbabilities" type="fpml:TermCurve" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DividendPaymentDate">
    <xsd:sequence>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="dividendDateReference" type="fpml:DividendDateReferenceEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentDateOffset" type="fpml:Offset" />
        </xsd:sequence>
        <xsd:element name="adjustableDate" type="fpml:AdjustableDate" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AbsoluteTolerance">
    <xsd:sequence>
      <xsd:element name="positive" type="xsd:decimal" />
      <xsd:element name="negative" type="xsd:decimal" />
      <xsd:element name="unit" type="fpml:QuantityUnit" />
      <xsd:element minOccurs="0" maxOccurs="1" name="optionOwnerPartyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FutureId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="futureIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="futureIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TerminationConfirmed">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="termination" type="fpml:Termination" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NovationAlleged">
    <xsd:complexContent>
      <xsd:extension base="NovationNotificationMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InterestLeg">
    <xsd:complexContent>
      <xsd:extension base="ReturnSwapLeg">
        <xsd:sequence>
          <xsd:element name="interestLegCalculationPeriodDates" type="fpml:InterestLegCalculationPeriodDates" />
          <xsd:element name="notional" type="fpml:ReturnSwapNotional" />
          <xsd:element name="interestAmount" type="fpml:LegAmount" />
          <xsd:element name="interestCalculation" type="fpml:InterestCalculation" />
          <xsd:element minOccurs="0" maxOccurs="1" name="stubCalculationPeriod" type="fpml:StubCalculationPeriod" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InterestLegCalculationPeriodDates">
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:element name="terminationDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:element name="interestLegResetDates" type="fpml:InterestLegResetDates" />
      <xsd:element name="interestLegPaymentDates" type="fpml:AdjustableRelativeOrPeriodicDates2" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="InterestCalculation">
    <xsd:complexContent>
      <xsd:extension base="InterestAccrualsMethod">
        <xsd:sequence>
          <xsd:element name="dayCountFraction" type="fpml:DayCountFraction" />
          <xsd:element minOccurs="0" maxOccurs="1" name="compounding" type="fpml:Compounding" />
          <xsd:element minOccurs="0" maxOccurs="1" name="interpolationMethod" type="fpml:InterpolationMethod" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StubCalculationPeriod">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="initialStub" type="fpml:Stub" />
        <xsd:element minOccurs="0" maxOccurs="1" name="finalStub" type="fpml:Stub" />
      </xsd:sequence>
      <xsd:element name="finalStub" type="fpml:Stub" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="FacilityNotice" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:group ref="fpml:FacilityNoticeDetails.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RepaymentNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:element name="repayment" type="fpml:Repayment" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Repayment">
    <xsd:sequence>
      <xsd:element name="facilityRepayment" type="fpml:FacilityRepayment" />
      <xsd:element maxOccurs="unbounded" name="loanContractRepayment" type="fpml:LoanContractRepayment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NewLoanContracts">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="loanContract" type="fpml:LoanContract" />
      <xsd:element minOccurs="0" maxOccurs="1" name="drawdownPayment" type="fpml:DrawdownPayment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FailureToPay">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="gracePeriodExtension" type="fpml:GracePeriodExtension" />
      <xsd:element minOccurs="0" maxOccurs="1" name="paymentRequirement" type="fpml:Money" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="GracePeriodExtension">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="gracePeriod" type="fpml:Offset" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeNovated">
    <xsd:complexContent>
      <xsd:extension base="NovationNotificationMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CreditEventNoticeDocument">
    <xsd:complexContent>
      <xsd:extension base="Event">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="affectedTransactions" type="fpml:AffectedTransactions" />
          <xsd:element name="referenceEntity" type="fpml:LegalEntity" />
          <xsd:element ref="fpml:creditEvent" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="publiclyAvailableInformation" type="fpml:Resource" />
          <xsd:element name="notifyingPartyReference" type="fpml:PartyReference" />
          <xsd:element name="notifiedPartyReference" type="fpml:PartyReference" />
          <xsd:element name="creditEventNoticeDate" type="xsd:date" />
          <xsd:element name="creditEventDate" type="xsd:date" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AffectedTransactions">
    <xsd:choice maxOccurs="unbounded">
      <xsd:group ref="fpml:TradeOrTradeReference.model" maxOccurs="unbounded" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ContractIdentifier">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyReference" />
      <xsd:choice>
        <xsd:element maxOccurs="unbounded" name="contractId" type="fpml:ContractId" />
        <xsd:element maxOccurs="unbounded" name="versionedContractId" type="fpml:VersionedContractId" />
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Account">
    <xsd:sequence>
      <xsd:sequence maxOccurs="unbounded">
        <xsd:element name="accountId" type="fpml:AccountId" />
        <xsd:element minOccurs="0" maxOccurs="1" name="accountName" type="xsd:normalizedString" />
      </xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="accountBeneficiary" type="fpml:PartyReference" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AccountId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="accountIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="accountIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="AllocationAmended">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="amendment" type="fpml:TradeAmendment" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAmendment">
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="originalTrade" type="fpml:Trade" />
        <xsd:element maxOccurs="unbounded" name="originalTradeIdentifier" type="fpml:PartyTradeIdentifier" />
      </xsd:choice>
      <xsd:element name="amendedTrade" type="fpml:Trade" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PrincipalExchange">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="unadjustedPrincipalExchangeDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedPrincipalExchangeDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="principalExchangeAmount" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="discountFactor" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="presentValuePrincipalExchangeAmount" type="fpml:Money" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="PaymentCalculationPeriod">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="unadjustedPaymentDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="adjustedPaymentDate" type="xsd:date" />
          <xsd:choice>
            <xsd:element maxOccurs="unbounded" name="calculationPeriod" type="fpml:CalculationPeriod" />
            <xsd:element name="fixedPaymentAmount" type="xsd:decimal" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="1" name="discountFactor" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="forecastPaymentAmount" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="1" name="presentValueAmount" type="fpml:Money" />
        </xsd:sequence>
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Representations">
    <xsd:sequence>
      <xsd:element name="nonReliance" type="xsd:boolean" />
      <xsd:element name="agreementsRegardingHedging" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="indexDisclaimer" type="xsd:boolean" />
      <xsd:element name="additionalAcknowledgements" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PhysicalLeg" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OilPhysicalLeg">
    <xsd:complexContent>
      <xsd:extension base="PhysicalLeg">
        <xsd:sequence>
          <xsd:element name="deliveryPeriods" type="fpml:CommodityDeliveryPeriods" />
          <xsd:element name="oil" type="fpml:OilProduct" />
          <xsd:element name="deliveryConditions" type="fpml:OilDelivery" />
          <xsd:element name="deliveryQuantity" type="fpml:CommodityPhysicalQuantity" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OilProduct">
    <xsd:sequence>
      <xsd:element name="type" type="fpml:OilProductType" />
      <xsd:element name="grade" type="fpml:CommodityProductGrade" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OilDelivery">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="pipeline" type="fpml:OilPipelineDelivery" />
        <xsd:element name="transfer" type="fpml:OilTransferDelivery" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="importerOfRecord" type="fpml:PartyReference" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="absoluteTolerance" type="fpml:AbsoluteTolerance" />
        <xsd:element name="percentageTolerance" type="fpml:PercentageTolerance" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityPhysicalQuantityBase" abstract="true">
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CommodityPhysicalQuantity">
    <xsd:complexContent>
      <xsd:extension base="CommodityPhysicalQuantityBase">
        <xsd:sequence>
          <xsd:group ref="fpml:CommodityFixedPhysicalQuantity.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityPhysicalDeliveryQuantitySchedule">
    <xsd:complexContent>
      <xsd:extension base="CommodityPhysicalQuantitySchedule">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="settlementPeriodsReference" type="fpml:SettlementPeriodsReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MutualFund">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="openEndedFund" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fundManager" type="xsd:string" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityCorporateEvents">
    <xsd:sequence>
      <xsd:element name="shareForShare" type="fpml:ShareExtraordinaryEventEnum" />
      <xsd:element name="shareForOther" type="fpml:ShareExtraordinaryEventEnum" />
      <xsd:element name="shareForCombined" type="fpml:ShareExtraordinaryEventEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="QuantityScheduleReference">
    <xsd:complexContent>
      <xsd:extension base="Reference" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SensitivitySetDefinitionReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractTermination">
    <xsd:complexContent>
      <xsd:extension base="ChangeContract" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PassThroughItem">
    <xsd:sequence>
      <xsd:group ref="fpml:PayerReceiver.model" />
      <xsd:element name="underlyerReference" type="fpml:AssetReference" />
      <xsd:element name="passThroughPercentage" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliveryFirm">
    <xsd:sequence>
      <xsd:element name="forceMajeure" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalDelivery">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="deliveryPoint" type="fpml:CoalDeliveryPoint" />
        <xsd:element name="deliveryAtSource" type="xsd:boolean" />
      </xsd:choice>
      <xsd:group ref="fpml:CommodityUSCoalDelivery.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalDeliveryPoint">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryPointScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="deliveryPointSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="QuotableProduct" abstract="true">
    <xsd:sequence>
      <xsd:group ref="fpml:Product.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="QuotableFxLeg">
    <xsd:complexContent>
      <xsd:extension base="QuotableProduct">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="exchangedCurrency" type="fpml:QuotablePayment" />
          <xsd:element name="exchangeRate" type="fpml:QuotableFxRate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="nonDeliverableForward" type="fpml:FxCashSettlement" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="QuotablePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" minOccurs="0" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentAmount" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentDate" type="fpml:AdjustableDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SimpleCreditDefaultSwap">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:group ref="fpml:CreditEntity.model" />
          <xsd:element name="term" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentFrequency" type="fpml:Interval" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Sensitivity">
    <xsd:simpleContent>
      <xsd:extension base="xsd:decimal">
        <xsd:attribute name="name" type="xsd:normalizedString">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="nameAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="definitionRef" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="definitionRefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Schedule">
    <xsd:sequence>
      <xsd:element name="initialValue" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="step" type="fpml:Step" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AmountSchedule">
    <xsd:complexContent>
      <xsd:extension base="Schedule">
        <xsd:sequence>
          <xsd:element name="currency" type="fpml:Currency" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Step">
    <xsd:sequence>
      <xsd:element name="stepDate" type="xsd:date" />
      <xsd:element name="stepValue" type="xsd:decimal" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="QueryParameter">
    <xsd:sequence>
      <xsd:element name="queryParameterId" type="fpml:QueryParameterId" />
      <xsd:element minOccurs="0" maxOccurs="1" name="queryParameterValue" type="xsd:normalizedString" />
      <xsd:element minOccurs="0" maxOccurs="1" name="queryParameterOperator" type="fpml:QueryParameterOperator" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="QueryParameterId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="queryParameterIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="queryParameterIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="QueryParameterOperator">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="queryParameterOperatorScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="queryParameterOperatorSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CapFloor">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="capFloorStream" type="fpml:InterestRateStream" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="premium" type="fpml:Payment" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="additionalPayment" type="fpml:Payment" />
          <xsd:element minOccurs="0" maxOccurs="1" name="earlyTerminationProvision" type="fpml:EarlyTerminationProvision" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EarlyTerminationProvision">
    <xsd:choice>
      <xsd:sequence>
        <xsd:group ref="fpml:MandatoryEarlyTermination.model" />
        <xsd:group ref="fpml:OptionalEarlyTermination.model" minOccurs="0" />
      </xsd:sequence>
      <xsd:group ref="fpml:OptionalEarlyTermination.model" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AveragingPeriod">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="schedule" type="fpml:AveragingSchedule" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="averagingDateTimes" type="fpml:DateTimeList" />
        <xsd:element name="averagingObservations" type="fpml:AveragingObservationList" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="marketDisruption" type="fpml:MarketDisruption" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DateTimeList">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="dateTime" type="xsd:dateTime" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeIncreaseResponse">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="increase" type="fpml:Increase" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Increase">
    <xsd:complexContent>
      <xsd:extension base="Event">
        <xsd:sequence>
          <xsd:group ref="fpml:TradeOrTradeReference.model" />
          <xsd:group ref="fpml:IncreaseDetails.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="payment" type="fpml:Payment" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliveryUnitFirm">
    <xsd:sequence>
      <xsd:element name="applicable" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="generationAsset" type="fpml:CommodityDeliveryPoint" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeAlreadyAffirmed">
    <xsd:complexContent>
      <xsd:extension base="TradeErrorResponse" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DerivativeCalculationMethod">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="derivativeCalculationMethodScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="derivativeCalculationMethodSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RequiredIdentifierDate">
    <xsd:simpleContent>
      <xsd:extension base="xsd:date">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="GoverningLaw">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="governingLawScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="governingLawSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SpreadSchedule">
    <xsd:complexContent>
      <xsd:extension base="Schedule">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="type" type="fpml:SpreadScheduleType" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StrikeSchedule">
    <xsd:complexContent>
      <xsd:extension base="Schedule">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="buyer" type="fpml:IdentifiedPayerReceiver" />
          <xsd:element minOccurs="0" maxOccurs="1" name="seller" type="fpml:IdentifiedPayerReceiver" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ValuationDate">
    <xsd:choice>
      <xsd:element name="singleValuationDate" type="fpml:SingleValuationDate" />
      <xsd:element name="multipleValuationDates" type="fpml:MultipleValuationDates" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="SingleValuationDate">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="businessDays" type="xsd:nonNegativeInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MultipleValuationDates">
    <xsd:complexContent>
      <xsd:extension base="SingleValuationDate">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="businessDaysThereafter" type="xsd:positiveInteger" />
          <xsd:element minOccurs="0" maxOccurs="1" name="numberValuationDates" type="xsd:positiveInteger" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnLegValuation">
    <xsd:sequence>
      <xsd:element name="initialPrice" type="fpml:ReturnLegValuationPrice" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notionalReset" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationPriceInterim" type="fpml:ReturnLegValuationPrice" />
      <xsd:element name="valuationPriceFinal" type="fpml:ReturnLegValuationPrice" />
      <xsd:element name="paymentDates" type="fpml:ReturnSwapPaymentDates" />
      <xsd:element minOccurs="0" maxOccurs="1" name="exchangeTradedContractNearest" type="fpml:ExchangeTradedContract" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Price">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="commission" type="fpml:Commission" />
      <xsd:choice>
        <xsd:element name="determinationMethod" type="fpml:DeterminationMethod" />
        <xsd:element name="amountRelativeTo" type="fpml:AmountReference" />
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="grossPrice" type="fpml:ActualPrice" />
          <xsd:element name="netPrice" type="fpml:ActualPrice" />
          <xsd:element minOccurs="0" maxOccurs="1" name="accruedInterestPrice" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fxConversion" type="fpml:FxConversion" />
        </xsd:sequence>
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="cleanNetPrice" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="quotationCharacteristics" type="fpml:QuotationCharacteristics" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReturnLegValuationPrice">
    <xsd:complexContent>
      <xsd:extension base="Price">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="valuationRules" type="fpml:EquityValuation" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapPaymentDates">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="paymentDatesInterim" type="fpml:AdjustableOrRelativeDates" />
      <xsd:element name="paymentDateFinal" type="fpml:AdjustableOrRelativeDate" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ExchangeTradedContract">
    <xsd:complexContent>
      <xsd:extension base="ExchangeTraded">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="multiplier" type="xsd:positiveInteger" />
          <xsd:element minOccurs="0" maxOccurs="1" name="contractReference" type="xsd:string" />
          <xsd:element minOccurs="0" maxOccurs="1" name="expirationDate" type="fpml:AdjustableOrRelativeDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityAmericanExercise">
    <xsd:complexContent>
      <xsd:extension base="SharedAmericanExercise">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="latestExerciseTimeType" type="fpml:TimeTypeEnum" />
          <xsd:element name="equityExpirationTimeType" type="fpml:TimeTypeEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="equityExpirationTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="equityMultipleExercise" type="fpml:EquityMultipleExercise" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityMultipleExercise">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="integralMultipleExercise" type="fpml:PositiveDecimal" />
      <xsd:element name="minimumNumberOfOptions" type="fpml:NonNegativeDecimal" />
      <xsd:element name="maximumNumberOfOptions" type="fpml:NonNegativeDecimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RateSourcePage">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="rateSourcePageScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="rateSourcePageSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="FinalCalculationPeriodDateAdjustment">
    <xsd:sequence>
      <xsd:element name="relevantUnderlyingDateReference" type="fpml:RelevantUnderlyingDateReference" />
      <xsd:element name="swapStreamReference" type="fpml:InterestRateStreamReference" />
      <xsd:element name="businessDayConvention" type="fpml:BusinessDayConventionEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InterestRateStreamReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BondOption">
    <xsd:complexContent>
      <xsd:extension base="OptionBaseExtended">
        <xsd:sequence>
          <xsd:element name="strike" type="fpml:BondOptionStrike" />
          <xsd:group ref="fpml:BondChoice.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BondOptionStrike">
    <xsd:choice>
      <xsd:element name="referenceSwapCurve" type="fpml:ReferenceSwapCurve" />
      <xsd:element name="price" type="fpml:OptionStrike" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="PrincipalExchangeFeatures">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="principalExchanges" type="fpml:PrincipalExchanges" />
      <xsd:element maxOccurs="unbounded" name="principalExchangeDescriptions" type="fpml:PrincipalExchangeDescriptions" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PrincipalExchangeDescriptions">
    <xsd:sequence>
      <xsd:group ref="fpml:PayerReceiver.model" />
      <xsd:element name="principalExchangeAmount" type="fpml:PrincipalExchangeAmount" />
      <xsd:element minOccurs="0" maxOccurs="1" name="principalExchangeDate" type="fpml:AdjustableOrRelativeDate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Mortgage">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="insurer" type="fpml:LegalEntity" />
            <xsd:element name="insurerReference" type="fpml:LegalEntityReference" />
          </xsd:choice>
          <xsd:group ref="fpml:BondContent.model" />
          <xsd:group ref="fpml:BondCalculation.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="originalPrincipalAmount" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="pool" type="fpml:AssetPool" />
          <xsd:element minOccurs="0" maxOccurs="1" name="sector" type="fpml:MortgageSector" />
          <xsd:element minOccurs="0" maxOccurs="1" name="tranche" type="xsd:token" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AssetPool">
    <xsd:sequence>
      <xsd:group ref="fpml:VersionHistory.model" minOccurs="0" />
      <xsd:element name="initialFactor" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="currentFactor" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MortgageSector">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="mortgageSectorScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="mortgageSectorSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ContractAmended">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="amendment" type="fpml:ContractAmendment" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ObligationDefaultEvent">
    <xsd:complexContent>
      <xsd:extension base="CreditEvent" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ValuationScenario">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
      <xsd:element name="valuationDate" type="fpml:IdentifiedDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="marketReference" type="fpml:MarketReference" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="shift" type="fpml:PricingParameterShift" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="replacement" type="fpml:PricingInputReplacement" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="MarketReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PricingParameterShift">
    <xsd:sequence>
      <xsd:element name="parameterReference" type="fpml:AssetOrTermPointOrPricingStructureReference" />
      <xsd:element name="shift" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="shiftUnits" type="fpml:PriceQuoteUnits" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="PricingInputReplacement">
    <xsd:sequence>
      <xsd:element name="originalInputReference" type="fpml:PricingStructureReference" />
      <xsd:element name="replacementInputReference" type="fpml:PricingStructureReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MainPublication">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="mainPublicationScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="mainPublicationSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementInstruction">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementMethod" type="fpml:SettlementMethod" />
      <xsd:element minOccurs="0" maxOccurs="1" name="correspondentInformation" type="fpml:CorrespondentInformation" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="intermediaryInformation" type="fpml:IntermediaryInformation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="beneficiaryBank" type="fpml:Beneficiary" />
      <xsd:element name="beneficiary" type="fpml:Beneficiary" />
      <xsd:element minOccurs="0" maxOccurs="1" name="depositoryPartyReference" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="splitSettlement" type="fpml:SplitSettlement" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementMethod">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="settlementMethodScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="settlementMethodSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CorrespondentInformation">
    <xsd:sequence>
      <xsd:group ref="fpml:RoutingIdentification.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="correspondentPartyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="IntermediaryInformation">
    <xsd:sequence>
      <xsd:group ref="fpml:RoutingIdentification.model" />
      <xsd:element name="intermediarySequenceNumber" type="xsd:positiveInteger" />
      <xsd:element minOccurs="0" maxOccurs="1" name="intermediaryPartyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Beneficiary">
    <xsd:sequence>
      <xsd:group ref="fpml:RoutingIdentification.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="beneficiaryPartyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExerciseFeeSchedule">
    <xsd:sequence>
      <xsd:group ref="fpml:PayerReceiver.model" />
      <xsd:element name="notionalReference" type="fpml:ScheduleReference" />
      <xsd:choice>
        <xsd:element name="feeAmountSchedule" type="fpml:AmountSchedule" />
        <xsd:element name="feeRateSchedule" type="fpml:Schedule" />
      </xsd:choice>
      <xsd:element name="feePaymentDate" type="fpml:RelativeDateOffset" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ScheduleReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapBase" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" minOccurs="0" />
          <xsd:element maxOccurs="unbounded" ref="fpml:returnSwapLeg" />
          <xsd:element minOccurs="0" maxOccurs="1" name="principalExchangeFeatures" type="fpml:PrincipalExchangeFeatures" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Approval">
    <xsd:sequence>
      <xsd:element name="type" type="xsd:normalizedString" />
      <xsd:element name="status" type="xsd:normalizedString" />
      <xsd:element minOccurs="0" maxOccurs="1" name="approver" type="xsd:normalizedString" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeStatusValue">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="tradeStatusScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="tradeStatusSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapAdditionalPayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element name="additionalPaymentAmount" type="fpml:AdditionalPaymentAmount" />
          <xsd:element name="additionalPaymentDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentType" type="fpml:PaymentType" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AdditionalPaymentAmount">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="paymentAmount" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="formula" type="fpml:Formula" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EquityForward">
    <xsd:complexContent>
      <xsd:extension base="EquityDerivativeLongFormBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="forwardPrice" type="fpml:Money" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PricingParameterDerivativeReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositionMatchStatus">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="positionStatusScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="positionStatusSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="GrossCashflow">
    <xsd:sequence>
      <xsd:sequence minOccurs="0" maxOccurs="1">
        <xsd:element name="cashflowId" type="fpml:CashflowId" />
        <xsd:group ref="fpml:PayerReceiver.model" />
        <xsd:element name="cashflowAmount" type="fpml:Money" />
      </xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="cashflowType" type="fpml:CashflowType" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CashflowObservation">
    <xsd:sequence>
      <xsd:element name="underlyerReference" type="fpml:TradeUnderlyerReference" />
      <xsd:element minOccurs="0" maxOccurs="1" ref="fpml:underlyingAsset" />
      <xsd:element name="observationDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="observedValue" type="fpml:BasicQuotation" />
      <xsd:element minOccurs="0" maxOccurs="1" name="weight" type="xsd:decimal" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CashflowCalculationElements">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="numberOfUnits" type="fpml:UnderlyerReferenceUnits" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notional" type="fpml:CashflowNotional" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="underlyer" type="fpml:TradeUnderlyer" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="calculatedRate" type="fpml:CashflowFixing" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="calculationPeriod" type="fpml:CashflowCalculationPeriod" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PremiumQuote">
    <xsd:sequence>
      <xsd:element name="premiumValue" type="xsd:decimal" />
      <xsd:element name="premiumQuoteBasis" type="fpml:PremiumQuoteBasisEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditCurveValuation">
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="inputs" type="fpml:QuotedAssetSet" />
          <xsd:element minOccurs="0" maxOccurs="1" name="defaultProbabilityCurve" type="fpml:DefaultProbabilityCurve" />
          <xsd:group ref="fpml:RecoveryRate.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestTradeConfirmation">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DeprecatedVarianceLeg">
    <xsd:complexContent>
      <xsd:extension base="ReturnSwapLeg">
        <xsd:sequence>
          <xsd:element name="underlyer" type="fpml:Underlyer" />
          <xsd:element name="equityValuation" type="fpml:EquityValuation" />
          <xsd:element name="equityAmount" type="fpml:DeprecatedVarianceAmount" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityValuation">
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="valuationDate" type="fpml:AdjustableDateOrRelativeDateSequence" />
        <xsd:element name="valuationDates" type="fpml:AdjustableRelativeOrPeriodicDates" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationTimeType" type="fpml:TimeTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationTime" type="fpml:BusinessCenterTime" />
      <xsd:element minOccurs="0" maxOccurs="1" name="futuresPriceValuation" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="optionsPriceValuation" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="numberOfValuationDates" type="xsd:nonNegativeInteger" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedCurrency">
    <xsd:simpleContent>
      <xsd:extension base="Currency">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Composite">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="determinationMethod" type="fpml:DeterminationMethod" />
      <xsd:element minOccurs="0" maxOccurs="1" name="relativeDate" type="fpml:RelativeDateOffset" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fxSpotRateSource" type="fpml:FxSpotRateSource" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Quanto">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="fxRate" type="fpml:FxRate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fxSpotRateSource" type="fpml:FxSpotRateSource" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OilTransferDelivery">
    <xsd:sequence>
      <xsd:element name="applicable" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="deliveryLocation" type="fpml:CommodityDeliveryPoint" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="GasPhysicalQuantity">
    <xsd:complexContent>
      <xsd:extension base="CommodityPhysicalQuantityBase">
        <xsd:choice>
          <xsd:group ref="fpml:CommodityFixedPhysicalQuantity.model" />
          <xsd:sequence>
            <xsd:element maxOccurs="unbounded" name="minPhysicalQuantity" type="fpml:CommodityNotionalQuantity" />
            <xsd:element maxOccurs="unbounded" name="maxPhysicalQuantity" type="fpml:CommodityNotionalQuantity" />
            <xsd:element minOccurs="0" maxOccurs="1" name="electingParty" type="fpml:PartyReference" />
          </xsd:sequence>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityTransmissionContingencyType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="electricityTransmissionContingencyScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="electricityTransmissionContingencySchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommoditySettlementPeriodsPriceSchedule">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="settlementPeriodsPriceStep" type="fpml:FixedPrice" />
      <xsd:element maxOccurs="unbounded" name="settlementPeriodsReference" type="fpml:SettlementPeriodsReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityBusinessCalendar">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityBusinessCalendarScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityBusinessCalendarSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriods">
    <xsd:sequence>
      <xsd:element name="duration" type="fpml:SettlementPeriodDurationEnum" />
      <xsd:element minOccurs="0" maxOccurs="7" name="applicableDay" type="fpml:DayOfWeekEnum" />
      <xsd:element name="startTime" type="fpml:OffsetPrevailingTime" />
      <xsd:element name="endTime" type="fpml:OffsetPrevailingTime" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="excludeHolidays" type="fpml:CommodityBusinessCalendar" />
        <xsd:element name="includeHolidays" type="fpml:CommodityBusinessCalendar" />
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="QuoteAlreadyExpired">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StubValue">
    <xsd:choice>
      <xsd:element maxOccurs="2" name="floatingRate" type="fpml:FloatingRate" />
      <xsd:element name="stubRate" type="xsd:decimal" />
      <xsd:element name="stubAmount" type="fpml:Money" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="Stub">
    <xsd:complexContent>
      <xsd:extension base="StubValue">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="stubStartDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="stubEndDate" type="fpml:AdjustableOrRelativeDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReasonCode">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="reasonCodeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="reasonCodeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DeprecatedEquityLegValuationPrice">
    <xsd:complexContent>
      <xsd:extension base="Price">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="equityValuation" type="fpml:EquityValuation" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Commission">
    <xsd:sequence>
      <xsd:element name="commissionDenomination" type="fpml:CommissionDenominationEnum" />
      <xsd:element name="commissionAmount" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="commissionPerTrade" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="fxRate" type="fpml:FxRate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ActualPrice">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
      <xsd:element name="amount" type="xsd:decimal" />
      <xsd:element name="priceExpression" type="fpml:PriceExpressionEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="VolatilityMatrix">
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element name="dataPoints" type="fpml:MultiDimensionalPricingData" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="adjustment" type="fpml:ParametricAdjustment" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MultiDimensionalPricingData">
    <xsd:sequence>
      <xsd:group ref="fpml:QuotationCharacteristics.model" minOccurs="0" />
      <xsd:element maxOccurs="unbounded" name="point" type="fpml:PricingStructurePoint" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ParametricAdjustment">
    <xsd:sequence>
      <xsd:element name="name" type="xsd:normalizedString" />
      <xsd:element minOccurs="0" maxOccurs="1" name="inputUnits" type="fpml:PriceQuoteUnits" />
      <xsd:element maxOccurs="unbounded" name="datapoint" type="fpml:ParametricAdjustmentPoint" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxCurveValuation">
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="settlementCurrencyYieldCurve" type="fpml:PricingStructureReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="forecastCurrencyYieldCurve" type="fpml:PricingStructureReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="spotRate" type="fpml:FxRateSet" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fxForwardCurve" type="fpml:TermCurve" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fxForwardPointsCurve" type="fpml:TermCurve" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxRateSet">
    <xsd:complexContent>
      <xsd:extension base="QuotedAssetSet" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="GasDeliveryPeriods">
    <xsd:complexContent>
      <xsd:extension base="CommodityDeliveryPeriods">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <xsd:element name="supplyStartTime" type="fpml:PrevailingTime" />
          <xsd:element name="supplyEndTime" type="fpml:PrevailingTime" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PrevailingTime">
    <xsd:sequence>
      <xsd:element name="hourMinuteTime" type="fpml:HourMinuteTime" />
      <xsd:element name="location" type="fpml:TimezoneLocation" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SimpleFra">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:element name="startTerm" type="fpml:Interval" />
          <xsd:element name="endTerm" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dayCountFraction" type="fpml:DayCountFraction" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementRateSource">
    <xsd:choice>
      <xsd:element name="informationSource" type="fpml:InformationSource" />
      <xsd:element name="cashSettlementReferenceBanks" type="fpml:CashSettlementReferenceBanks" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="CashSettlementReferenceBanks">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="referenceBank" type="fpml:ReferenceBank" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="VersionedContractId">
    <xsd:sequence>
      <xsd:element name="contractId" type="fpml:ContractId" />
      <xsd:group ref="fpml:VersionHistory.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractReferenceMessage" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="fpml:ContractReference" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAmendmentRequest">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="amendment" type="fpml:Amendment" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MatrixSource">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="settledEntityMatrixSourceScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="settledEntityMatrixSourceSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RequestTradeMatch">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MasterAgreement">
    <xsd:sequence>
      <xsd:element name="masterAgreementType" type="fpml:MasterAgreementType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="masterAgreementVersion" type="fpml:MasterAgreementVersion" />
      <xsd:element minOccurs="0" maxOccurs="1" name="masterAgreementDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MasterAgreementType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="masterAgreementTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="masterAgreementTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MasterAgreementVersion">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="masterAgreementVersionScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="masterAgreementVersionSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ExerciseEvent">
    <xsd:sequence>
      <xsd:element name="adjustedExerciseDate" type="xsd:date" />
      <xsd:element name="adjustedRelevantSwapEffectiveDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedCashSettlementValuationDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedCashSettlementPaymentDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedExerciseFeePaymentDate" type="xsd:date" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="IndexAnnexSource">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="indexAnnexSourceScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="indexAnnexSourceSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ConfirmationCancelled">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementInformation">
    <xsd:choice>
      <xsd:element name="standardSettlementStyle" type="fpml:StandardSettlementStyleEnum" />
      <xsd:element name="settlementInstruction" type="fpml:SettlementInstruction" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ScheduledTerminationDate">
    <xsd:choice>
      <xsd:element name="adjustableDate" type="fpml:AdjustableDate2" />
      <xsd:element name="relativeDate" type="fpml:Interval" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="SequencedDirsuptionFallback">
    <xsd:sequence>
      <xsd:element name="fallback" type="fpml:DisruptionFallback" />
      <xsd:element name="sequence" type="xsd:positiveInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DisruptionFallback">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMarketDisruptionFallbackScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityMarketDisruptionFallbackSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityEuropeanExercise">
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="expirationDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="expirationTime" type="fpml:BusinessCenterTime" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAffirmed">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestedPositions">
    <xsd:choice>
      <xsd:element name="queryPortfolio" type="fpml:QueryPortfolio" />
      <xsd:group ref="fpml:PositionIdAndVersion.model" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="QueryPortfolio">
    <xsd:complexContent>
      <xsd:extension base="Portfolio">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="queryParameter" type="fpml:QueryParameter" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentBaseExtended" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element name="paymentDate" type="fpml:AdjustableOrRelativeDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestTradeStatus">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestAllocation">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="blockTradeIdentifier" type="fpml:BlockTradeIdentifier" />
          <xsd:element name="allocations" type="fpml:Allocations" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BlockTradeIdentifier">
    <xsd:complexContent>
      <xsd:extension base="PartyTradeIdentifier">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="allocationTradeId" type="fpml:PartyTradeIdentifier" />
          <xsd:element minOccurs="0" maxOccurs="1" name="blockTradeId" type="fpml:PartyTradeIdentifier" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Allocations">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="allocation" type="fpml:Allocation" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NotionalStepRule">
    <xsd:sequence>
      <xsd:element name="calculationPeriodDatesReference" type="fpml:CalculationPeriodDatesReference" />
      <xsd:element name="stepFrequency" type="fpml:Interval" />
      <xsd:element name="firstNotionalStepDate" type="xsd:date" />
      <xsd:element name="lastNotionalStepDate" type="xsd:date" />
      <xsd:choice>
        <xsd:element name="notionalStepAmount" type="xsd:decimal" />
        <xsd:sequence>
          <xsd:element name="notionalStepRate" type="xsd:decimal" />
          <xsd:element name="stepRelativeTo" type="fpml:StepRelativeToEnum" />
        </xsd:sequence>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementTermsReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TermPoint">
    <xsd:sequence>
      <xsd:element name="term" type="fpml:TimeDimension" />
      <xsd:group ref="fpml:BidMidAsk.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="spreadValue" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="definition" type="fpml:AssetReference" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="MaturingLoanContract">
    <xsd:sequence>
      <xsd:element name="loanContractSummary" type="fpml:LoanContractSummary" />
      <xsd:group ref="fpml:InterestPaymentDetails.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LenderLoanContractPeriod">
    <xsd:sequence>
      <xsd:group ref="fpml:Period.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="shareCommitmentAmount" type="fpml:Money" />
      <xsd:element name="shareLoanContractAmount" type="fpml:Money" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LcIssuanceNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:element name="letterOfCredit" type="fpml:LetterOfCredit" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LetterOfCredit">
    <xsd:sequence>
      <xsd:element name="lcSummary" type="fpml:LcSummary" />
      <xsd:element name="lcType" type="fpml:LcTypeEnum" />
      <xsd:element name="lcPurpose" type="fpml:LcPurposeEnum" />
      <xsd:element name="borrowerPartyReference" type="fpml:PartyReference" />
      <xsd:choice>
        <xsd:element name="beneficiaryPartyReference" type="fpml:PartyReference" />
        <xsd:element name="beneficiaryPartyName" type="xsd:string" />
      </xsd:choice>
      <xsd:element name="originalAmount" type="fpml:Money" />
      <xsd:element name="amount" type="fpml:Money" />
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element name="expiryDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fxTerms" type="fpml:FxTerms" />
      <xsd:element minOccurs="0" maxOccurs="1" name="evergreenOption" type="fpml:LcEvergreenOption" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AcceptQuote">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="trade" type="fpml:Trade" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ConfirmTrade">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="partyTradeIdentifier" type="fpml:PartyTradeIdentifier" />
          <xsd:element name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SimpleIRSwap">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:element name="term" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentFrequency" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dayCountFraction" type="fpml:DayCountFraction" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TimezoneLocation">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="timezoneLocationScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="timezoneLocationSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAlreadyCancelled">
    <xsd:complexContent>
      <xsd:extension base="TradeErrorResponse" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxSwap">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" ref="fpml:fxSingleLeg" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxLeg">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="exchangedCurrency1" type="fpml:Payment" />
          <xsd:element name="exchangedCurrency2" type="fpml:Payment" />
          <xsd:choice>
            <xsd:element name="valueDate" type="xsd:date" />
            <xsd:sequence>
              <xsd:element name="currency1ValueDate" type="xsd:date" />
              <xsd:element name="currency2ValueDate" type="xsd:date" />
            </xsd:sequence>
          </xsd:choice>
          <xsd:element name="exchangeRate" type="fpml:ExchangeRate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="nonDeliverableForward" type="fpml:FxCashSettlement" />
          <xsd:element minOccurs="0" maxOccurs="1" name="confirmationSenderPartyReference" type="fpml:PartyReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AutomaticExercise">
    <xsd:sequence>
      <xsd:element name="thresholdRate" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxDigitalOption">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" />
          <xsd:element name="expiryDateTime" type="fpml:ExpiryDateTime" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="fxOptionPremium" type="fpml:FxOptionPremium" />
          <xsd:element name="valueDate" type="xsd:date" />
          <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
          <xsd:element minOccurs="0" maxOccurs="1" name="spotRate" type="xsd:decimal" />
          <xsd:choice>
            <xsd:element maxOccurs="unbounded" name="fxEuropeanTrigger" type="fpml:FxEuropeanTrigger" />
            <xsd:element maxOccurs="unbounded" name="fxAmericanTrigger" type="fpml:FxAmericanTrigger" />
          </xsd:choice>
          <xsd:element name="triggerPayout" type="fpml:FxOptionPayout" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxAmericanTrigger">
    <xsd:sequence>
      <xsd:element name="touchCondition" type="fpml:TouchConditionEnum" />
      <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
      <xsd:element name="triggerRate" type="xsd:decimal" />
      <xsd:element maxOccurs="unbounded" name="informationSource" type="fpml:InformationSource" />
      <xsd:element minOccurs="0" maxOccurs="1" name="observationStartDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="observationEndDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxOptionPayout">
    <xsd:complexContent>
      <xsd:extension base="Money">
        <xsd:sequence>
          <xsd:element name="payoutStyle" type="fpml:PayoutEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="settlementInformation" type="fpml:SettlementInformation" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ExtendibleProvision">
    <xsd:sequence>
      <xsd:group ref="fpml:BuyerSeller.model" />
      <xsd:element ref="fpml:exercise" />
      <xsd:element minOccurs="0" maxOccurs="1" name="exerciseNotice" type="fpml:ExerciseNotice" />
      <xsd:element name="followUpConfirmation" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="extendibleProvisionAdjustedDates" type="fpml:ExtendibleProvisionAdjustedDates" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExtendibleProvisionAdjustedDates">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="extensionEvent" type="fpml:ExtensionEvent" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CalculationAmount">
    <xsd:complexContent>
      <xsd:extension base="Money">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="step" type="fpml:Step" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MarginRateChange">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="borrowingOptionType" type="fpml:BorrowingOptionType" />
        <xsd:element name="loanContractSummary" type="fpml:LoanContractSummary" />
      </xsd:choice>
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="priorRate" type="xsd:decimal" />
      <xsd:element name="postRate" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BorrowingOptionType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="borrowingOptionTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="borrowingOptionTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CoalProductSpecifications">
    <xsd:choice>
      <xsd:element name="standardQuality" type="fpml:CoalStandardQuality" />
      <xsd:element name="standardQualitySchedule" type="fpml:CoalStandardQualitySchedule" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="CoalStandardQualitySchedule">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="StandardQualityStep" type="fpml:CoalStandardQuality" />
      <xsd:group ref="fpml:CommodityDeliveryPeriodsPointer.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeConfirmed">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="YieldCurveMethod">
    <xsd:sequence>
      <xsd:sequence>
        <xsd:element minOccurs="0" maxOccurs="1" name="settlementRateSource" type="fpml:SettlementRateSource" />
        <xsd:element name="quotationRateType" type="fpml:QuotationRateTypeEnum" />
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PeriodicPayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentFrequency" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="firstPeriodStartDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="firstPaymentDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="lastRegularPaymentDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="rollConvention" type="fpml:RollConventionEnum" />
          <xsd:choice>
            <xsd:element name="fixedAmount" type="fpml:Money" />
            <xsd:element name="fixedAmountCalculation" type="fpml:FixedAmountCalculation" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="adjustedPaymentDates" type="fpml:AdjustedPaymentDates" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FixedAmountCalculation">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationAmount" type="fpml:CalculationAmount" />
      <xsd:element name="fixedRate" type="fpml:FixedRate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dayCountFraction" type="fpml:DayCountFraction" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdjustedPaymentDates">
    <xsd:sequence>
      <xsd:element name="adjustedPaymentDate" type="xsd:date" />
      <xsd:element name="paymentAmount" type="fpml:Money" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PaymentRule" abstract="true" />
  <xsd:complexType name="PercentageRule">
    <xsd:complexContent>
      <xsd:extension base="PaymentRule">
        <xsd:sequence>
          <xsd:element name="paymentPercent" type="xsd:decimal" />
          <xsd:element name="notionalAmountReference" type="fpml:NotionalAmountReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAmended">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractIncreased">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="increase" type="fpml:ChangeContractSize" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Calculation">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="notionalSchedule" type="fpml:Notional" />
        <xsd:element name="fxLinkedNotionalSchedule" type="fpml:FxLinkedNotionalSchedule" />
      </xsd:choice>
      <xsd:choice>
        <xsd:element name="fixedRateSchedule" type="fpml:Schedule" />
        <xsd:element ref="fpml:rateCalculation" />
      </xsd:choice>
      <xsd:element name="dayCountFraction" type="fpml:DayCountFraction" />
      <xsd:element minOccurs="0" maxOccurs="1" name="discounting" type="fpml:Discounting" />
      <xsd:element minOccurs="0" maxOccurs="1" name="compoundingMethod" type="fpml:CompoundingMethodEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Notional">
    <xsd:sequence>
      <xsd:element name="notionalStepSchedule" type="fpml:AmountSchedule" />
      <xsd:element minOccurs="0" maxOccurs="1" name="notionalStepParameters" type="fpml:NotionalStepRule" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="FxLinkedNotionalSchedule">
    <xsd:sequence>
      <xsd:element name="constantNotionalScheduleReference" type="fpml:NotionalReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="initialValue" type="xsd:decimal" />
      <xsd:element name="varyingNotionalCurrency" type="fpml:Currency" />
      <xsd:element name="varyingNotionalFixingDates" type="fpml:RelativeDateOffset" />
      <xsd:element name="fxSpotRateSource" type="fpml:FxSpotRateSource" />
      <xsd:element name="varyingNotionalInterimExchangePaymentDates" type="fpml:RelativeDateOffset" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LcBalanceNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:element name="lcSummary" type="fpml:LcSummary" />
          <xsd:element name="effectiveDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="priorAmount" type="fpml:ParticipationAmount" />
          <xsd:element name="balanceChangeAmount" type="fpml:ParticipationAmount" />
          <xsd:element name="currentAmount" type="fpml:ParticipationAmount" />
          <xsd:element name="lcDrawFlag" type="xsd:boolean" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LcSummary">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="identifier" type="fpml:ContractIdentifier" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeMatched">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="differences" type="fpml:TradeDifference" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeIncreaseRequest">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="increase" type="fpml:Increase" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EarlyTerminationEvent">
    <xsd:sequence>
      <xsd:element name="adjustedExerciseDate" type="xsd:date" />
      <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date" />
      <xsd:element name="adjustedCashSettlementValuationDate" type="xsd:date" />
      <xsd:element name="adjustedCashSettlementPaymentDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedExerciseFeePaymentDate" type="xsd:date" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="FxBarrier">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="fxBarrierType" type="fpml:FxBarrierTypeEnum" />
      <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
      <xsd:element name="triggerRate" type="xsd:decimal" />
      <xsd:element maxOccurs="unbounded" name="informationSource" type="fpml:InformationSource" />
      <xsd:element minOccurs="0" maxOccurs="1" name="observationStartDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="observationEndDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CancelableProvisionAdjustedDates">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="cancellationEvent" type="fpml:CancellationEvent" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CancellationEvent">
    <xsd:sequence>
      <xsd:element name="adjustedExerciseDate" type="xsd:date" />
      <xsd:element name="adjustedEarlyTerminationDate" type="xsd:date" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="FixedPaymentAmount">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentAmount" type="fpml:Money" />
          <xsd:element name="paymentDate" type="fpml:RelativeDateOffset" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BoundedVariance">
    <xsd:sequence>
      <xsd:element name="realisedVarianceMethod" type="fpml:RealisedVarianceMethodEnum" />
      <xsd:element name="daysInRangeAdjustment" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="upperBarrier" type="fpml:NonNegativeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="lowerBarrier" type="fpml:NonNegativeDecimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MaturingLoanContracts">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="maturingLoanContract" type="fpml:MaturingLoanContract" />
      <xsd:element minOccurs="0" maxOccurs="1" name="repayment" type="fpml:Repayment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FeeAccrualSchedule">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element maxOccurs="unbounded" name="lenderCommitmentPeriod" type="fpml:LenderPositionPeriod" />
        <xsd:element maxOccurs="unbounded" name="lenderUtilizationPeriod" type="fpml:LenderPositionPeriod" />
        <xsd:element maxOccurs="unbounded" name="lenderUnutilizedPeriod" type="fpml:LenderPositionPeriod" />
        <xsd:element maxOccurs="unbounded" name="lcBalancePeriod" type="fpml:LenderPositionPeriod" />
      </xsd:choice>
      <xsd:element maxOccurs="unbounded" name="feeRatePeriod" type="fpml:RatePeriod" />
      <xsd:element maxOccurs="unbounded" name="feeAccrualPeriod" type="fpml:FeeAccrualPeriod" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LenderPositionPeriod">
    <xsd:sequence>
      <xsd:group ref="fpml:Period.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="positionAmount" type="fpml:ParticipationAmount" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FeeAccrualPeriod">
    <xsd:sequence>
      <xsd:group ref="fpml:Period.model" />
      <xsd:element name="accrualAmount" type="fpml:ParticipationAmount" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DenominatorTerm">
    <xsd:sequence>
      <xsd:element name="weightedPartial" type="fpml:WeightedPartialDerivative" />
      <xsd:element name="power" type="xsd:positiveInteger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WeightedPartialDerivative">
    <xsd:sequence>
      <xsd:element name="partialDerivativeReference" type="fpml:PricingStructureReference" />
      <xsd:element name="weight" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AllegedCashflow">
    <xsd:sequence>
      <xsd:group ref="fpml:DefinitionAndCashflows.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PricingStructurePoint">
    <xsd:sequence>
      <xsd:group ref="fpml:PricingCoordinateOrReference.model" minOccurs="0" maxOccurs="unbounded" />
      <xsd:group ref="fpml:UnderlyingAssetOrReference.model" minOccurs="0" />
      <xsd:group ref="fpml:Quotation.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="MarketDisruptionEvent">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMarketDisruptionScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityMarketDisruptionSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAffirmation">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FixedRateReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LoanContractPosition">
    <xsd:sequence>
      <xsd:element name="loanContractSummary" type="fpml:LoanContractSummary" />
      <xsd:element name="currentAmount" type="fpml:ParticipationAmount" />
      <xsd:element minOccurs="0" maxOccurs="1" name="priorAmount" type="fpml:ParticipationAmount" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeExecutionModified">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="originalTrade" type="fpml:Trade" />
            <xsd:element maxOccurs="unbounded" name="originalTradeIdentifier" type="fpml:PartyTradeIdentifier" />
          </xsd:choice>
          <xsd:element name="revisedTrade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Commodity">
    <xsd:complexContent>
      <xsd:extension base="IdentifiedAsset">
        <xsd:sequence>
          <xsd:group ref="fpml:CommodityProduct.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ExchangeRate">
    <xsd:complexContent>
      <xsd:extension base="FxRate">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="spotRate" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="forwardPoints" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="sideRates" type="fpml:SideRates" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OnGoingFeeNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="loanContractSummary" type="fpml:LoanContractSummary" />
            <xsd:element name="lcSummary" type="fpml:LcSummary" />
          </xsd:choice>
          <xsd:element name="feePayment" type="fpml:OnGoingFeePayment" />
          <xsd:element name="feeAccrualSchedule" type="fpml:FeeAccrualSchedule" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OnGoingFeePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element name="feeType" type="fpml:OnGoingFeeTypeEnum" />
          <xsd:group ref="fpml:Period.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="feeDayBasis" type="fpml:DayCountFraction" />
          <xsd:element name="paymentDate" type="xsd:date" />
          <xsd:element name="amount" type="fpml:ParticipationAmount" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CoalProduct">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="type" type="fpml:CoalProductType" />
        <xsd:element name="coalProductSpecifications" type="fpml:CoalProductSpecifications" />
      </xsd:choice>
      <xsd:element maxOccurs="unbounded" name="source" type="fpml:CoalProductSource" />
      <xsd:group ref="fpml:CommodityUSCoalProduct.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalProductSource">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityCoalProductSourceScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityCoalProductSourceSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeExecution">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityBusinessCalendarTime">
    <xsd:sequence>
      <xsd:element name="hourMinuteTime" type="fpml:HourMinuteTime" />
      <xsd:element name="timeZone" type="fpml:TimeZone" />
      <xsd:element name="businessCalendar" type="fpml:CommodityBusinessCalendar" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TimeZone">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="timeZoneScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="timeZoneSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="FormulaTerm">
    <xsd:sequence>
      <xsd:element name="coefficient" type="xsd:decimal" />
      <xsd:element maxOccurs="unbounded" name="partialDerivativeReference" type="fpml:PricingParameterDerivativeReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractCancelled">
    <xsd:complexContent>
      <xsd:extension base="ContractReferenceMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ProtectionTermsReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InterestLegCalculationPeriodDatesReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BullionPhysicalLeg">
    <xsd:complexContent>
      <xsd:extension base="PhysicalLeg">
        <xsd:sequence>
          <xsd:element name="bullionType" type="fpml:BullionTypeEnum" />
          <xsd:element name="deliveryLocation" type="fpml:BullionDeliveryLocation" />
          <xsd:group ref="fpml:CommodityFixedPhysicalQuantity.model" />
          <xsd:element name="settlementDate" type="fpml:AdjustableOrRelativeDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BullionDeliveryLocation">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="bullionDeliveryLocationScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="bullionDeliveryLocationSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Math">
    <xsd:sequence>
      <xsd:any maxOccurs="unbounded" processContents="lax" namespace="##other" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FormulaComponent">
    <xsd:sequence>
      <xsd:element name="componentDescription" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="formula" type="fpml:Formula" />
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:normalizedString">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="nameAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="href" type="xsd:IDREF">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="hrefAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="DeprecatedEquityPaymentDates">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="equityPaymentDatesInterim" type="fpml:AdjustableOrRelativeDates" />
      <xsd:element name="equityPaymentDateFinal" type="fpml:AdjustableOrRelativeDate" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AdjustableOrRelativeDates">
    <xsd:choice>
      <xsd:element name="adjustableDates" type="fpml:AdjustableDates" />
      <xsd:element name="relativeDates" type="fpml:RelativeDates" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CommodityExercise">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="americanExercise" type="fpml:CommodityAmericanExercise" />
        <xsd:element name="europeanExercise" type="fpml:CommodityEuropeanExercise" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="automaticExercise" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="writtenConfirmation" type="xsd:boolean" />
      <xsd:element name="settlementCurrency" type="fpml:IdentifiedCurrency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fx" type="fpml:CommodityFx" />
      <xsd:element minOccurs="0" maxOccurs="1" name="conversionFactor" type="xsd:decimal" />
      <xsd:group ref="fpml:CommodityPaymentDates.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractAmendedCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="fpml:ContractReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="amendment" type="fpml:ContractAmendment" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="IncreaseConfirmed">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="increase" type="fpml:Increase" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MasterConfirmationType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="masterConfirmationTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="masterConfirmationTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InflationRateCalculation">
    <xsd:complexContent>
      <xsd:extension base="FloatingRateCalculation">
        <xsd:sequence>
          <xsd:element name="inflationLag" type="fpml:Offset" />
          <xsd:element name="indexSource" type="fpml:RateSourcePage" />
          <xsd:element minOccurs="0" maxOccurs="1" name="mainPublication" type="fpml:MainPublication" />
          <xsd:element name="interpolationMethod" type="fpml:InterpolationMethod" />
          <xsd:element minOccurs="0" maxOccurs="1" name="initialIndexLevel" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fallbackBondApplicable" type="xsd:boolean" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReferenceInformation">
    <xsd:sequence>
      <xsd:element name="referenceEntity" type="fpml:LegalEntity" />
      <xsd:choice>
        <xsd:element maxOccurs="unbounded" name="referenceObligation" type="fpml:ReferenceObligation" />
        <xsd:element name="noReferenceObligation" type="fpml:Empty" />
        <xsd:element name="unknownReferenceObligation" type="fpml:Empty" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="allGuarantees" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="referencePrice" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="referencePolicy" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="securedList" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="IndexReferenceInformation">
    <xsd:sequence>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="indexName" type="fpml:IndexName" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="indexId" type="fpml:IndexId" />
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="indexId" type="fpml:IndexId" />
        </xsd:sequence>
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="indexSeries" type="xsd:positiveInteger" />
      <xsd:element minOccurs="0" maxOccurs="1" name="indexAnnexVersion" type="xsd:positiveInteger" />
      <xsd:element minOccurs="0" maxOccurs="1" name="indexAnnexDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="indexAnnexSource" type="fpml:IndexAnnexSource" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="excludedReferenceEntity" type="fpml:LegalEntity" />
      <xsd:element minOccurs="0" maxOccurs="1" name="tranche" type="fpml:Tranche" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settledEntityMatrix" type="fpml:SettledEntityMatrix" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="BasketReferenceInformation">
    <xsd:sequence>
      <xsd:group ref="fpml:BasketIdentifier.model" minOccurs="0" />
      <xsd:element name="referencePool" type="fpml:ReferencePool" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:sequence>
          <xsd:element name="nthToDefault" type="xsd:positiveInteger" />
          <xsd:element minOccurs="0" maxOccurs="1" name="mthToDefault" type="xsd:positiveInteger" />
        </xsd:sequence>
        <xsd:element name="tranche" type="fpml:Tranche" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FloatingAmountEvents">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="failureToPayPrincipal" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="interestShortfall" type="fpml:InterestShortFall" />
      <xsd:element minOccurs="0" maxOccurs="1" name="writedown" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="floatingAmountProvisions" type="fpml:FloatingAmountProvisions" />
      <xsd:element minOccurs="0" maxOccurs="1" name="additionalFixedPayments" type="fpml:AdditionalFixedPayments" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InterestShortFall">
    <xsd:sequence>
      <xsd:element name="interestShortfallCap" type="fpml:InterestShortfallCapEnum" />
      <xsd:element name="compounding" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="rateSource" type="fpml:FloatingRateIndex" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdditionalFixedPayments">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="interestShortfallReimbursement" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="principalShortfallReimbursement" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="writedownReimbursement" type="fpml:Empty" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BrokerEquityOption">
    <xsd:complexContent>
      <xsd:extension base="EquityDerivativeShortFormBase">
        <xsd:sequence>
          <xsd:element name="deltaCrossed" type="xsd:boolean" />
          <xsd:element name="brokerageFee" type="fpml:Money" />
          <xsd:element name="brokerNotes" type="xsd:string" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="VarianceOptionTransactionSupplement">
    <xsd:complexContent>
      <xsd:extension base="OptionBase">
        <xsd:sequence>
          <xsd:element name="equityPremium" type="fpml:EquityPremium" />
          <xsd:element name="equityExercise" type="fpml:EquityExerciseValuationSettlement" />
          <xsd:element minOccurs="0" maxOccurs="1" name="exchangeLookAlike" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="methodOfAdjustment" type="fpml:MethodOfAdjustmentEnum" />
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="optionEntitlement" type="fpml:PositiveDecimal" />
            <xsd:element name="multiplier" type="fpml:PositiveDecimal" />
          </xsd:choice>
          <xsd:element ref="fpml:varianceSwapTransactionSupplement" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ModifyTradeMatch">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeUnderlyerReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestPortfolio">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="asOfDate" type="xsd:anyType" />
          <xsd:choice>
            <xsd:element name="portfolioName" type="xsd:normalizedString" />
            <xsd:element name="requestedPositions" type="fpml:RequestedPositions" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ManualExercise">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="exerciseNotice" type="fpml:ExerciseNotice" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fallbackExercise" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExtensionEvent">
    <xsd:sequence>
      <xsd:element name="adjustedExerciseDate" type="xsd:date" />
      <xsd:element name="adjustedExtendedTerminationDate" type="xsd:date" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ReturnLeg">
    <xsd:complexContent>
      <xsd:extension base="ReturnSwapLegUnderlyer">
        <xsd:sequence>
          <xsd:element name="rateOfReturn" type="fpml:ReturnLegValuation" />
          <xsd:element name="notional" type="fpml:ReturnSwapNotional" />
          <xsd:element name="amount" type="fpml:ReturnSwapAmount" />
          <xsd:element name="return" type="fpml:Return" />
          <xsd:element name="notionalAdjustments" type="fpml:NotionalAdjustmentEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fxFeature" type="fpml:FxFeature" />
          <xsd:element minOccurs="0" maxOccurs="1" name="averagingDates" type="fpml:AveragingPeriod" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Return">
    <xsd:sequence>
      <xsd:element name="returnType" type="fpml:ReturnTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendConditions" type="fpml:DividendConditions" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DividendPeriodDividend">
    <xsd:complexContent>
      <xsd:extension base="DividendPeriod">
        <xsd:sequence>
          <xsd:element name="dividend" type="fpml:Money" />
          <xsd:element name="multiplier" type="fpml:PositiveDecimal" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CreditEventsReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="GasProduct">
    <xsd:sequence>
      <xsd:element name="type" type="fpml:GasProductTypeEnum" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="calorificValue" type="fpml:NonNegativeDecimal" />
        <xsd:element name="quality" type="fpml:GasQuality" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="UnderlyerReferenceUnits">
    <xsd:sequence>
      <xsd:element name="underlyerReference" type="fpml:TradeUnderlyerReference" />
      <xsd:element name="quantity" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AllocationCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:choice maxOccurs="unbounded">
            <xsd:element name="trade" type="fpml:Trade" />
            <xsd:element name="partyTradeIdentifier" type="fpml:PartyTradeIdentifier" />
          </xsd:choice>
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Valuations">
    <xsd:sequence>
      <xsd:group ref="fpml:AssetValuationOrReference.model" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeCashflowsMatchResult">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="status" type="fpml:TradeCashflowsStatus" />
          <xsd:choice>
            <xsd:sequence>
              <xsd:element name="assertedCashflow" type="fpml:AssertedCashflow" />
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="proposedMatch" type="fpml:TradeCashflowsProposedMatch" />
            </xsd:sequence>
            <xsd:element name="allegedCashflow" type="fpml:AllegedCashflow" />
          </xsd:choice>
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AssertedCashflow">
    <xsd:sequence>
      <xsd:group ref="fpml:DefinitionAndCashflows.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SideRates">
    <xsd:sequence>
      <xsd:element name="baseCurrency" type="fpml:Currency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="currency1SideRate" type="fpml:SideRate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="currency2SideRate" type="fpml:SideRate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SideRate">
    <xsd:sequence>
      <xsd:element name="currency" type="fpml:Currency" />
      <xsd:element name="sideRateBasis" type="fpml:SideRateBasisEnum" />
      <xsd:element name="rate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="spotRate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="forwardPoints" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementRateOption">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="settlementRateOptionScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="settlementRateOptionSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PCDeliverableObligationCharac">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="partialCashSettlement" type="fpml:Empty" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RequestQuoteResponse">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" ref="fpml:product" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StepReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MatrixTerm">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="matrixTermScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="matrixTermSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeValuationItem">
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element maxOccurs="unbounded" name="partyTradeIdentifier" type="fpml:PartyTradeIdentifier" />
        <xsd:element name="trade" type="fpml:Trade" />
      </xsd:choice>
      <xsd:element ref="fpml:valuationSet" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ValuationSet">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="valuationScenario" type="fpml:ValuationScenario" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="valuationScenarioReference" type="fpml:ValuationScenarioReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="baseParty" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="quotationCharacteristics" type="fpml:QuotationCharacteristics" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="sensitivitySetDefinition" type="fpml:SensitivitySetDefinition" />
      <xsd:element minOccurs="0" maxOccurs="1" name="detail" type="fpml:ValuationSetDetail" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="assetValuation" type="fpml:AssetValuation" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="DividendAdjustment">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="dividendPeriod" type="fpml:DividendPeriodDividend" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NettedSwapBase" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="additionalPayment" type="fpml:ClassifiedPayment" />
          <xsd:element minOccurs="0" maxOccurs="1" name="extraordinaryEvents" type="fpml:ExtraordinaryEvents" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PricingChangeNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="pricingChangeReason" type="fpml:PricingChangeReason" />
          <xsd:choice>
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" name="marginRateChange" type="fpml:MarginRateChange" />
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="onGoingFeeRateChange" type="fpml:OnGoingFeeRateChange" />
            </xsd:sequence>
            <xsd:element maxOccurs="unbounded" name="onGoingFeeRateChange" type="fpml:OnGoingFeeRateChange" />
          </xsd:choice>
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PricingChangeReason">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="pricingChangeReasonScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="pricingChangeReasonSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="OnGoingFeeRateChange">
    <xsd:sequence>
      <xsd:element name="feeType" type="fpml:OnGoingFeeTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="lcSummary" type="fpml:LcSummary" />
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="priorRate" type="xsd:decimal" />
      <xsd:element name="postRate" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NovateTrade">
    <xsd:complexContent>
      <xsd:extension base="NovationRequestMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeUnmatched">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="bestFitTradeId" type="fpml:TradeIdentifier" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NonDeliverableSettlement">
    <xsd:sequence>
      <xsd:element name="referenceCurrency" type="fpml:Currency" />
      <xsd:choice>
        <xsd:element name="fxFixingDate" type="fpml:FxFixingDate" />
        <xsd:element name="fxFixingSchedule" type="fpml:AdjustableDates" />
      </xsd:choice>
      <xsd:element name="settlementRateOption" type="fpml:SettlementRateOption" />
      <xsd:element minOccurs="0" maxOccurs="1" name="priceSourceDisruption" type="fpml:PriceSourceDisruption" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxFixingDate">
    <xsd:complexContent>
      <xsd:extension base="Offset">
        <xsd:sequence>
          <xsd:element name="businessDayConvention" type="fpml:BusinessDayConventionEnum" />
          <xsd:group ref="fpml:BusinessCentersOrReference.model" minOccurs="0" />
          <xsd:choice>
            <xsd:element name="dateRelativeToPaymentDates" type="fpml:DateRelativeToPaymentDates" />
            <xsd:element name="dateRelativeToCalculationPeriodDates" type="fpml:DateRelativeToCalculationPeriodDates" />
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ParametricAdjustmentPoint">
    <xsd:sequence>
      <xsd:element name="parameterValue" type="xsd:decimal" />
      <xsd:element name="adjustmentValue" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="IndexAdjustmentEvents">
    <xsd:sequence>
      <xsd:element name="indexModification" type="fpml:IndexEventConsequenceEnum" />
      <xsd:element name="indexCancellation" type="fpml:IndexEventConsequenceEnum" />
      <xsd:element name="indexDisruption" type="fpml:IndexEventConsequenceEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PrePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element name="prePayment" type="xsd:boolean" />
          <xsd:element name="prePaymentAmount" type="fpml:Money" />
          <xsd:element name="prePaymentDate" type="fpml:AdjustableDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityPhysicalLeg">
    <xsd:complexContent>
      <xsd:extension base="PhysicalLeg">
        <xsd:sequence>
          <xsd:element name="deliveryPeriods" type="fpml:CommodityDeliveryPeriods" />
          <xsd:element maxOccurs="unbounded" name="settlementPeriods" type="fpml:SettlementPeriods" />
          <xsd:element minOccurs="0" maxOccurs="1" name="settlementPeriodsSchedule" type="fpml:SettlementPeriodsSchedule" />
          <xsd:element name="electricity" type="fpml:ElectricityProduct" />
          <xsd:element name="deliveryConditions" type="fpml:ElectricityDelivery" />
          <xsd:element name="deliveryQuantity" type="fpml:ElectricityPhysicalQuantity" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityProduct">
    <xsd:sequence>
      <xsd:element name="type" type="fpml:ElectricityProductTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="voltage" type="fpml:PositiveDecimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityPhysicalQuantity">
    <xsd:complexContent>
      <xsd:extension base="CommodityPhysicalQuantityBase">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element maxOccurs="unbounded" name="physicalQuantity" type="fpml:ElectricityPhysicalDeliveryQuantity" />
            <xsd:element maxOccurs="unbounded" name="physicalQuantitySchedule" type="fpml:ElectricityPhysicalDeliveryQuantitySchedule" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="1" name="totalPhysicalQuantity" type="fpml:UnitQuantity" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NonNegativePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBaseExtended">
        <xsd:sequence>
          <xsd:element name="paymentAmount" type="fpml:NonNegativeMoney" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MasterConfirmationAnnexType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="masterConfirmationAnnexTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="masterConfirmationAnnexTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PartyPortfolioName">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyReference" />
      <xsd:element maxOccurs="unbounded" name="portfolioName" type="fpml:PortfolioName" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CashflowId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="cashflowIdScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="cashflowIdSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeNotFound">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
            <xsd:group ref="fpml:TradeOrTradeReference.model" />
          </xsd:choice>
          <xsd:element name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LoanParticipation">
    <xsd:complexContent>
      <xsd:extension base="PCDeliverableObligationCharac">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="qualifyingParticipationSeller" type="xsd:string" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityForward">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="valueDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="fixedLeg" type="fpml:NonPeriodicFixedPriceLeg" />
          <xsd:choice>
            <xsd:element name="bullionPhysicalLeg" type="fpml:BullionPhysicalLeg" />
          </xsd:choice>
          <xsd:group ref="fpml:CommodityContent.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NonPeriodicFixedPriceLeg">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element name="fixedPrice" type="fpml:FixedPrice" />
          <xsd:element name="quantityReference" type="fpml:QuantityReference" />
          <xsd:group ref="fpml:CommodityPaymentDates.model" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ScheduledDateType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="scheduledDateTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="scheduledDateTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RoutingId">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="routingIdCodeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="routingIdCodeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwap">
    <xsd:complexContent>
      <xsd:extension base="ReturnSwapBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="additionalPayment" type="fpml:ReturnSwapAdditionalPayment" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="earlyTermination" type="fpml:ReturnSwapEarlyTermination" />
          <xsd:element minOccurs="0" maxOccurs="1" name="extraordinaryEvents" type="fpml:ExtraordinaryEvents" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReturnSwapEarlyTermination">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyReference" />
      <xsd:element name="startingDate" type="fpml:StartingDate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Basket">
    <xsd:complexContent>
      <xsd:extension base="Asset">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="openUnits" type="xsd:decimal" />
          <xsd:element maxOccurs="unbounded" name="basketConstituent" type="fpml:BasketConstituent" />
          <xsd:element minOccurs="0" maxOccurs="1" name="basketDivisor" type="xsd:decimal" />
          <xsd:group ref="fpml:BasketIdentifier.model" minOccurs="0" />
          <xsd:element minOccurs="0" maxOccurs="1" name="basketCurrency" type="fpml:Currency" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MessageRejected">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:group ref="fpml:Exception.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DateRange">
    <xsd:sequence>
      <xsd:element name="unadjustedFirstDate" type="xsd:date" />
      <xsd:element name="unadjustedLastDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CashPriceMethod">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="cashSettlementReferenceBanks" type="fpml:CashSettlementReferenceBanks" />
      <xsd:element name="cashSettlementCurrency" type="fpml:Currency" />
      <xsd:element name="quotationRateType" type="fpml:QuotationRateTypeEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LcTerminationNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:element name="lcSummary" type="fpml:LcSummary" />
          <xsd:element name="effectiveDate" type="xsd:date" />
          <xsd:element name="lcExpiryFlag" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="currentAmount" type="fpml:ParticipationAmount" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PartyRole">
    <xsd:choice>
      <xsd:element name="party" type="fpml:PartyReference" />
      <xsd:element name="account" type="fpml:AccountReference" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="PortfolioName">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="portfolioNameScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="portfolioNameSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="QuoteAcceptanceConfirmed">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="trade" type="fpml:Trade" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MasterConfirmation">
    <xsd:sequence>
      <xsd:element name="masterConfirmationType" type="fpml:MasterConfirmationType" />
      <xsd:element name="masterConfirmationDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="masterConfirmationAnnexDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="masterConfirmationAnnexType" type="fpml:MasterConfirmationAnnexType" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RelativeDates">
    <xsd:complexContent>
      <xsd:extension base="RelativeDateOffset">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="periodSkip" type="xsd:positiveInteger" />
          <xsd:element minOccurs="0" maxOccurs="1" name="scheduleBounds" type="fpml:DateRange" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Trigger">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="level" type="xsd:decimal" />
        <xsd:element name="levelPercentage" type="xsd:decimal" />
        <xsd:choice>
          <xsd:element name="creditEvents" type="fpml:CreditEvents" />
          <xsd:element name="creditEventsReference" type="fpml:CreditEventsReference" />
        </xsd:choice>
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="triggerType" type="fpml:TriggerTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="triggerTimeType" type="fpml:TriggerTimeTypeEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExerciseFee">
    <xsd:sequence>
      <xsd:group ref="fpml:PayerReceiver.model" />
      <xsd:element name="notionalReference" type="fpml:NotionalReference" />
      <xsd:choice>
        <xsd:element name="feeAmount" type="xsd:decimal" />
        <xsd:element name="feeRate" type="xsd:decimal" />
      </xsd:choice>
      <xsd:element name="feePaymentDate" type="fpml:RelativeDateOffset" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityQuantityFrequency">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="quantityFrequencyScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="quantityFrequencySchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PaymentReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LcAmendmentNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:element name="effectiveDate" type="xsd:date" />
          <xsd:element name="priorLc" type="fpml:LetterOfCredit" />
          <xsd:element name="postLc" type="fpml:LetterOfCredit" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CoalPhysicalLeg">
    <xsd:complexContent>
      <xsd:extension base="PhysicalLeg">
        <xsd:sequence>
          <xsd:element name="deliveryPeriods" type="fpml:CommodityDeliveryPeriods" />
          <xsd:element name="coal" type="fpml:CoalProduct" />
          <xsd:element name="deliveryConditions" type="fpml:CoalDelivery" />
          <xsd:element name="deliveryQuantity" type="fpml:CommodityPhysicalQuantity" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeExecutionCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element maxOccurs="unbounded" name="tradeIdentifier" type="fpml:PartyTradeIdentifier" />
            <xsd:element name="trade" type="fpml:Trade" />
          </xsd:choice>
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAlreadyTerminated">
    <xsd:complexContent>
      <xsd:extension base="TradeErrorResponse" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InterestLegResetDates">
    <xsd:sequence>
      <xsd:element name="calculationPeriodDatesReference" type="fpml:InterestLegCalculationPeriodDatesReference" />
      <xsd:choice>
        <xsd:element name="resetRelativeTo" type="fpml:ResetRelativeToEnum" />
        <xsd:element name="resetFrequency" type="fpml:ResetFrequency" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="initialFixingDate" type="fpml:RelativeDateOffset" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fixingDates" type="fpml:AdjustableDatesOrRelativeDateOffset" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdjustableRelativeOrPeriodicDates2">
    <xsd:choice>
      <xsd:element name="adjustableDates" type="fpml:AdjustableDates" />
      <xsd:element name="relativeDates" type="fpml:RelativeDates" />
      <xsd:element name="periodicDates" type="fpml:PeriodicDates" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="EquityEuropeanExercise">
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="expirationDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="equityExpirationTimeType" type="fpml:TimeTypeEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="equityExpirationTime" type="fpml:BusinessCenterTime" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PikPeriod">
    <xsd:sequence>
      <xsd:group ref="fpml:Period.model" />
      <xsd:element name="pikPercent" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Cash">
    <xsd:complexContent>
      <xsd:extension base="IdentifiedAsset">
        <xsd:sequence>
          <xsd:element name="currency" type="fpml:Currency" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CashSettlementPaymentDate">
    <xsd:choice>
      <xsd:element name="adjustableDates" type="fpml:AdjustableDates" />
      <xsd:element name="relativeDate" type="fpml:RelativeDateOffset" />
      <xsd:element name="businessDateRange" type="fpml:BusinessDateRange" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="OffsetPrevailingTime">
    <xsd:sequence>
      <xsd:element name="time" type="fpml:PrevailingTime" />
      <xsd:element minOccurs="0" maxOccurs="1" name="offset" type="fpml:Offset" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeCashflowsAsserted">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:group ref="fpml:TradeCashflowsDefinition.model" />
          <xsd:group ref="fpml:TradeCashflows.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="matchId" type="fpml:MatchId" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractInformation">
    <xsd:sequence>
      <xsd:element name="partyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BulletPayment">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="payment" type="fpml:Payment" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DeprecatedEquityLeg">
    <xsd:complexContent>
      <xsd:extension base="ReturnSwapLeg">
        <xsd:sequence>
          <xsd:element name="effectiveDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="terminationDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="underlyer" type="fpml:Underlyer" />
          <xsd:element name="valuation" type="fpml:DeprecatedEquityLegValuation" />
          <xsd:element name="notional" type="fpml:ReturnSwapNotional" />
          <xsd:element name="equityAmount" type="fpml:ReturnSwapAmount" />
          <xsd:element name="return" type="fpml:Return" />
          <xsd:element name="notionalAdjustments" type="fpml:NotionalAdjustmentEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="fxFeature" type="fpml:FxFeature" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DeprecatedEquityLegValuation">
    <xsd:sequence>
      <xsd:element name="initialPrice" type="fpml:DeprecatedEquityLegValuationPrice" />
      <xsd:element name="equityNotionalReset" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationPriceInterim" type="fpml:DeprecatedEquityLegValuationPrice" />
      <xsd:element name="valuationPriceFinal" type="fpml:DeprecatedEquityLegValuationPrice" />
      <xsd:element name="equityPaymentDates" type="fpml:DeprecatedEquityPaymentDates" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PercentageTolerance">
    <xsd:sequence>
      <xsd:element name="postitive" type="fpml:RestrictedPercentage" />
      <xsd:element name="negative" type="fpml:RestrictedPercentage" />
      <xsd:element minOccurs="0" maxOccurs="1" name="option" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AssetOrTermPointOrPricingStructureReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementPriceSource">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="settlementPriceSourceScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="settlementPriceSourceSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="MultipleExercise">
    <xsd:sequence>
      <xsd:group ref="fpml:PartialExercise.model" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="maximumNotionalAmount" type="xsd:decimal" />
        <xsd:element name="maximumNumberOfOptions" type="xsd:nonNegativeInteger" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeSide">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="orderer" type="fpml:PartyRole" />
      <xsd:element minOccurs="0" maxOccurs="1" name="introducer" type="fpml:PartyRole" />
      <xsd:element minOccurs="0" maxOccurs="1" name="executor" type="fpml:PartyRole" />
      <xsd:element minOccurs="0" maxOccurs="1" name="confirmer" type="fpml:PartyRole" />
      <xsd:element name="creditor" type="fpml:PartyRole" />
      <xsd:element minOccurs="0" maxOccurs="1" name="calculater" type="fpml:PartyRole" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settler" type="fpml:PartyRole" />
      <xsd:element minOccurs="0" maxOccurs="1" name="beneficiary" type="fpml:PartyRole" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="accountant" type="fpml:PartyRole" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="AllocationCreated">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityOptionTransactionSupplement">
    <xsd:complexContent>
      <xsd:extension base="EquityDerivativeShortFormBase">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="exchangeLookAlike" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="exchangeTradedContractNearest" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="multipleExchangeIndexAnnexFallback" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="methodOfAdjustment" type="fpml:MethodOfAdjustmentEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="localJurisdiction" type="fpml:Country" />
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="optionEntitlement" type="fpml:PositiveDecimal" />
            <xsd:element name="multiplier" type="fpml:PositiveDecimal" />
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingLegCalculation">
    <xsd:sequence>
      <xsd:element name="pricingDates" type="fpml:CommodityPricingDates" />
      <xsd:element minOccurs="0" maxOccurs="1" name="averagingMethod" type="fpml:AveragingMethodEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="conversionFactor" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="rounding" type="fpml:Rounding" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="spread" type="fpml:Money" />
        <xsd:element maxOccurs="unbounded" name="spreadSchedule" type="fpml:CommoditySpreadSchedule" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="fx" type="fpml:CommodityFx" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeUnderlyer">
    <xsd:choice>
      <xsd:element name="floatingRate" type="fpml:FloatingRate" />
      <xsd:element name="fixedRate" type="fpml:Schedule" />
      <xsd:element ref="fpml:underlyingAsset" />
      <xsd:element name="referenceEntity" type="fpml:LegalEntity" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="CashflowNotional">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="currency" type="fpml:Currency" />
        <xsd:element name="units" type="xsd:normalizedString" />
      </xsd:choice>
      <xsd:element name="amount" type="xsd:decimal" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="RolloverNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:element name="maturingLoanContracts" type="fpml:MaturingLoanContracts" />
          <xsd:element name="newLoanContracts" type="fpml:NewLoanContracts" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InterestPaymentNotice">
    <xsd:complexContent>
      <xsd:extension base="LoanContractNotice">
        <xsd:sequence>
          <xsd:group ref="fpml:InterestPaymentDetails.model" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NovationConsentRequest">
    <xsd:complexContent>
      <xsd:extension base="NovationRequestMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxRateAsset">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
          <xsd:element minOccurs="0" maxOccurs="1" name="rateSource" type="fpml:FxSpotRateSource" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestPositionReport">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="asOfDate" type="xsd:anyType" />
          <xsd:choice>
            <xsd:element name="dataSetName" type="xsd:normalizedString" />
            <xsd:element name="requestedPositions" type="fpml:RequestedPositions" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessDateRange">
    <xsd:complexContent>
      <xsd:extension base="DateRange">
        <xsd:sequence>
          <xsd:element name="businessDayConvention" type="fpml:BusinessDayConventionEnum" />
          <xsd:group ref="fpml:BusinessCentersOrReference.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CorrelationLeg">
    <xsd:complexContent>
      <xsd:extension base="DirectionalLegUnderlyerValuation">
        <xsd:sequence>
          <xsd:element name="amount" type="fpml:CorrelationAmount" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FixedPriceLeg">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:group ref="fpml:CommodityCalculationPeriods.model" />
          <xsd:group ref="fpml:CommodityFixedPrice.model" />
          <xsd:group ref="fpml:CommodityNotionalQuantity.model" />
          <xsd:group ref="fpml:CommodityPaymentDates.model" />
          <xsd:group ref="fpml:CommodityFreightFlatRate.model" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CashflowCalculationPeriod">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="calculatedRateReference" type="fpml:CashflowFixingReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedStartDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="adjustedEndDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="numberOfDays" type="xsd:positiveInteger" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fixedRateStepReference" type="fpml:StepReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dayCountFraction" type="fpml:DayCountFraction" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dayCountYearFraction" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="compoundingMethod" type="fpml:CompoundingMethodEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="accruedAmount" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CashflowFixingReference">
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hrefAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BrokerConfirmation">
    <xsd:sequence>
      <xsd:element name="brokerConfirmationType" type="fpml:BrokerConfirmationType" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BrokerConfirmationType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="brokerConfirmationTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="brokerConfirmationTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Quote">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" ref="fpml:product" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RepudiationMoratoriumEvent">
    <xsd:complexContent>
      <xsd:extension base="CreditEvent" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BasketConstituent">
    <xsd:sequence>
      <xsd:element ref="fpml:underlyingAsset" />
      <xsd:element minOccurs="0" maxOccurs="1" name="constituentWeight" type="fpml:ConstituentWeight" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dividendPayout" type="fpml:DividendPayout" />
      <xsd:element minOccurs="0" maxOccurs="1" name="underlyerPrice" type="fpml:Price" />
      <xsd:element minOccurs="0" maxOccurs="1" name="underlyerNotional" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="underlyerSpread" type="fpml:SpreadScheduleReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="couponPayment" type="fpml:PendingPayment" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="ScheduledDates">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="scheduledDate" type="fpml:ScheduledDate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PaymentDetail">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="adjustablePaymentDate" type="fpml:AdjustableDate2" />
            <xsd:element name="adjustedPaymentDate" type="xsd:date" />
            <xsd:element name="paymentDate" type="fpml:AdjustableOrRelativeDate" />
          </xsd:choice>
          <xsd:choice>
            <xsd:element name="paymentAmount" type="fpml:Money" />
            <xsd:sequence>
              <xsd:element name="paymentRule" type="fpml:PaymentRule" />
              <xsd:element minOccurs="0" maxOccurs="1" name="paymentAmount" type="fpml:Money" />
            </xsd:sequence>
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NovationResponseMessage" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:sequence minOccurs="0" maxOccurs="1">
            <xsd:group ref="fpml:NovationMessage.model" />
          </xsd:sequence>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NovationConsentGranted">
    <xsd:complexContent>
      <xsd:extension base="NovationResponseMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityPhysicalDeliveryQuantity">
    <xsd:complexContent>
      <xsd:extension base="CommodityNotionalQuantity">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="settlementPeriodsReference" type="fpml:SettlementPeriodsReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FailureToPayEvent">
    <xsd:complexContent>
      <xsd:extension base="CreditEvent" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AmericanExercise">
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="commencementDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="expirationDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="relevantUnderlyingDate" type="fpml:AdjustableOrRelativeDates" />
          <xsd:element name="earliestExerciseTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="latestExerciseTime" type="fpml:BusinessCenterTime" />
          <xsd:element name="expirationTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="multipleExercise" type="fpml:MultipleExercise" />
          <xsd:element minOccurs="0" maxOccurs="1" name="exerciseFeeSchedule" type="fpml:ExerciseFeeSchedule" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractPartialTermination">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="termination" type="fpml:ChangeContractSize" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PhysicalSettlementPeriod">
    <xsd:choice>
      <xsd:element name="businessDaysNotSpecified" type="fpml:Empty" />
      <xsd:element name="businessDays" type="xsd:nonNegativeInteger" />
      <xsd:element name="maximumBusinessDays" type="xsd:nonNegativeInteger" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="FixedPaymentLeg">
    <xsd:complexContent>
      <xsd:extension base="DirectionalLeg">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="fixedPayment" type="fpml:FixedPaymentAmount" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OilProductType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityOilProductTypeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="commodityOilProductTypeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityProductGrade">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="productGradeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="productGradeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ExchangeTradedCalculatedPrice" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="ExchangeTraded">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="constituentExchangeId" type="fpml:ExchangeId" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Index">
    <xsd:complexContent>
      <xsd:extension base="ExchangeTradedCalculatedPrice">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="futureId" type="fpml:FutureId" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Deposit">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:element name="term" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentFrequency" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dayCountFraction" type="fpml:DayCountFraction" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositiveMoney">
    <xsd:complexContent>
      <xsd:extension base="MoneyBase">
        <xsd:sequence>
          <xsd:element name="amount" type="fpml:PositiveDecimal" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CancelableProvision">
    <xsd:sequence>
      <xsd:group ref="fpml:BuyerSeller.model" />
      <xsd:element ref="fpml:exercise" />
      <xsd:element minOccurs="0" maxOccurs="1" name="exerciseNotice" type="fpml:ExerciseNotice" />
      <xsd:element name="followUpConfirmation" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="cancelableProvisionAdjustedDates" type="fpml:CancelableProvisionAdjustedDates" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="finalCalculationPeriodDateAdjustment" type="fpml:FinalCalculationPeriodDateAdjustment" />
      <xsd:element minOccurs="0" maxOccurs="1" name="initialFee" type="fpml:SimplePayment" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RequestQuote">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" ref="fpml:quotableProduct" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="IdentifiedPayerReceiver">
    <xsd:simpleContent>
      <xsd:extension base="PayerReceiverEnum">
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EuropeanExercise">
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="expirationDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element minOccurs="0" maxOccurs="1" name="relevantUnderlyingDate" type="fpml:AdjustableOrRelativeDates" />
          <xsd:element name="earliestExerciseTime" type="fpml:BusinessCenterTime" />
          <xsd:element name="expirationTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="partialExercise" type="fpml:PartialExercise" />
          <xsd:element minOccurs="0" maxOccurs="1" name="exerciseFee" type="fpml:ExerciseFee" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PartialExercise">
    <xsd:sequence>
      <xsd:group ref="fpml:PartialExercise.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LcPosition">
    <xsd:sequence>
      <xsd:element name="lcSummary" type="fpml:LcSummary" />
      <xsd:element name="currentAmount" type="fpml:ParticipationAmount" />
      <xsd:element minOccurs="0" maxOccurs="1" name="priorAmount" type="fpml:ParticipationAmount" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeAlreadyConfirmed">
    <xsd:complexContent>
      <xsd:extension base="TradeErrorResponse" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractCreated">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="tradeReference" type="fpml:PartyTradeIdentifiers" />
          <xsd:element name="contract" type="fpml:Contract" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="LcEvergreenOption">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="extensionNoticePeriod" type="xsd:decimal" />
      <xsd:element name="extensionPeriod" type="xsd:decimal" />
      <xsd:element name="finalExpirationDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Market">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="benchmarkQuotes" type="fpml:QuotedAssetSet" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" ref="fpml:pricingStructure" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" ref="fpml:pricingStructureValuation" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="benchmarkPricingMethod" type="fpml:PricingMethod" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="PricingMethod">
    <xsd:sequence>
      <xsd:element name="assetReference" type="fpml:AnyAssetReference" />
      <xsd:element name="pricingInputReference" type="fpml:PricingStructureReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EntityName">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="entityNameScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="entityNameSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RequestValuationReport">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
          <xsd:element minOccurs="0" maxOccurs="1" ref="fpml:market" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="portfolioValuationItem" type="fpml:PortfolioValuationItem" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="tradeValuationItem" type="fpml:TradeValuationItem" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PortfolioValuationItem">
    <xsd:sequence>
      <xsd:element ref="fpml:portfolio" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="tradeValuationItem" type="fpml:TradeValuationItem" />
      <xsd:element minOccurs="0" maxOccurs="1" ref="fpml:valuationSet" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TermDeposit">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="initialPayerReference" type="fpml:PartyReference" />
          <xsd:element name="initialReceiverReference" type="fpml:PartyReference" />
          <xsd:element name="startDate" type="xsd:date" />
          <xsd:element name="maturityDate" type="xsd:date" />
          <xsd:element name="dayCountFraction" type="fpml:DayCountFraction" />
          <xsd:element name="principal" type="fpml:Money" />
          <xsd:element name="fixedRate" type="xsd:decimal" />
          <xsd:element minOccurs="0" maxOccurs="1" name="interest" type="fpml:Money" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="payment" type="fpml:Payment" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AmendmentConfirmed">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="amendment" type="fpml:Amendment" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ValuationDocument">
    <xsd:complexContent>
      <xsd:extension base="DataDocument">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" ref="fpml:market" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" ref="fpml:valuationSet" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ValuationReport">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
          <xsd:element minOccurs="0" maxOccurs="1" ref="fpml:market" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="portfolioValuationItem" type="fpml:PortfolioValuationItem" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="tradeValuationItem" type="fpml:TradeValuationItem" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AdditionalDisruptionEvents">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="changeInLaw" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="failureToDeliver" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="insolvencyFiling" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="hedgingDisruption" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="lossOfStockBorrow" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="maximumStockLoanRate" type="fpml:RestrictedPercentage" />
      <xsd:element minOccurs="0" maxOccurs="1" name="increasedCostOfStockBorrow" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="initialStockLoanRate" type="fpml:RestrictedPercentage" />
      <xsd:element minOccurs="0" maxOccurs="1" name="increasedCostOfHedging" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="determiningPartyReference" type="fpml:PartyReference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityPremium">
    <xsd:complexContent>
      <xsd:extension base="NonNegativePayment">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="premiumPerUnit" type="fpml:NonNegativeMoney" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquityBermudaExercise">
    <xsd:complexContent>
      <xsd:extension base="SharedAmericanExercise">
        <xsd:sequence>
          <xsd:element name="bermudaExerciseDates" type="fpml:DateList" />
          <xsd:element minOccurs="0" maxOccurs="1" name="latestExerciseTimeType" type="fpml:TimeTypeEnum" />
          <xsd:element name="equityExpirationTimeType" type="fpml:TimeTypeEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="equityExpirationTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="equityMultipleExercise" type="fpml:EquityMultipleExercise" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="QuoteUpdated">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" ref="fpml:quotableProduct" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestIncreaseConfirmation">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="increase" type="fpml:Increase" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeMismatched">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="bestFitTrade" type="fpml:BestFitTrade" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BestFitTrade">
    <xsd:sequence>
      <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="differences" type="fpml:TradeDifference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeAlleged">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="bestFitTradeId" type="fpml:TradeIdentifier" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CorrelationSwap">
    <xsd:complexContent>
      <xsd:extension base="NettedSwapBase">
        <xsd:sequence>
          <xsd:element name="correlationLeg" type="fpml:CorrelationLeg" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OneOffFeePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:element name="feeType" type="fpml:OneOffFeeTypeEnum" />
          <xsd:element name="effectiveDate" type="xsd:date" />
          <xsd:element name="paymentDate" type="xsd:date" />
          <xsd:element name="amount" type="fpml:ParticipationAmount" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RestructuringEvent">
    <xsd:complexContent>
      <xsd:extension base="CreditEvent">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="partialExerciseAmount" type="fpml:Money" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeStatus">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="tradeStatusItem" type="fpml:TradeStatusItem" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeStatusItem">
    <xsd:sequence>
      <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
      <xsd:element name="tradeStatusValue" type="fpml:TradeStatusValue" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FeaturePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:choice>
            <xsd:element name="levelPercentage" type="xsd:decimal" />
            <xsd:element name="amount" type="fpml:NonNegativeDecimal" />
          </xsd:choice>
          <xsd:element minOccurs="0" maxOccurs="1" name="time" type="fpml:TimeTypeEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
          <xsd:element minOccurs="0" maxOccurs="1" name="featurePaymentDate" type="fpml:AdjustableOrRelativeDate" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="IndependentAmount">
    <xsd:sequence>
      <xsd:group ref="fpml:PayerReceiver.model" />
      <xsd:element maxOccurs="unbounded" name="paymentDetail" type="fpml:PaymentDetail" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AllocationTradeIdentifier">
    <xsd:complexContent>
      <xsd:extension base="PartyTradeIdentifier">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="blockTradeId" type="fpml:PartyTradeIdentifier" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CutName">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="cutNameScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="cutNameSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityHubCode">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="hubCodeScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="hubCodeSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ContractNovatedCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="fpml:ContractReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="novation" type="fpml:ContractNovation" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositivePayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBaseExtended">
        <xsd:sequence>
          <xsd:element name="paymentAmount" type="fpml:PositiveMoney" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EquitySwapTransactionSupplement">
    <xsd:complexContent>
      <xsd:extension base="ReturnSwapBase">
        <xsd:sequence>
          <xsd:group ref="fpml:MutualOrOptionalEarlyTermination.model" minOccurs="0" />
          <xsd:group ref="fpml:EquityUnderlyerProvisions.model" minOccurs="0" />
          <xsd:element minOccurs="0" maxOccurs="1" name="extraordinaryEvents" type="fpml:ExtraordinaryEvents" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OilPipelineDelivery">
    <xsd:sequence>
      <xsd:element name="pipelineName" type="fpml:CommodityPipeline" />
      <xsd:element minOccurs="0" maxOccurs="1" name="withdrawalPoint" type="fpml:CommodityDeliveryPoint" />
      <xsd:element minOccurs="0" maxOccurs="1" name="entryPoint" type="fpml:CommodityDeliveryPoint" />
      <xsd:element name="deliverableByBarge" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="risk" type="fpml:CommodityDeliveryRisk" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="cycle" type="fpml:CommodityPipelineCycle" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityPipelineCycle">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="pipelineCycleScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="pipelineCycleSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DividendLeg">
    <xsd:complexContent>
      <xsd:extension base="DirectionalLegUnderlyer">
        <xsd:sequence>
          <xsd:group ref="fpml:DeclaredCashAndCashEquivalentDividendPercentage.model" />
          <xsd:element maxOccurs="unbounded" name="dividendPeriod" type="fpml:DividendPeriodPayment" />
          <xsd:element minOccurs="0" maxOccurs="1" name="specialDividends" type="xsd:boolean" />
          <xsd:element minOccurs="0" maxOccurs="1" name="materialDividend" type="xsd:boolean" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AdjustableDateOrRelativeDateSequence">
    <xsd:choice>
      <xsd:element name="adjustableDate" type="fpml:AdjustableDate" />
      <xsd:element name="relativeDateSequence" type="fpml:RelativeDateSequence" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID">
      <xsd:annotation>
        <xsd:appinfo>
          <jxb:property name="idAttribute" />
        </xsd:appinfo>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="FacilityRepayment">
    <xsd:sequence>
      <xsd:element name="refusalAllowed" type="xsd:boolean" />
      <xsd:element name="adjustsCommitment" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="breakageCost" type="fpml:BreakageCostEnum" />
      <xsd:element name="repaymentDate" type="xsd:date" />
      <xsd:element name="amount" type="fpml:ParticipationAmount" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractFullTerminationCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="fpml:ContractReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="termination" type="fpml:ContractTermination" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositionMatchResult">
    <xsd:sequence>
      <xsd:element name="status" type="fpml:PositionMatchStatus" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="assertedPosition" type="fpml:AssertedPosition" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="proposedMatch" type="fpml:PositionProposedMatch" />
        </xsd:sequence>
        <xsd:element name="allegedPosition" type="fpml:AssertedPosition" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PositionProposedMatch">
    <xsd:sequence>
      <xsd:group ref="fpml:PositionIdAndVersion.model" />
      <xsd:group ref="fpml:PositionWithoutId.model" minOccurs="0" />
      <xsd:element minOccurs="0" maxOccurs="1" name="matchId" type="fpml:MatchId" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="difference" type="fpml:TradeDifference" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeTerminationRequest">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="termination" type="fpml:Termination" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PrincipalExchangeAmount">
    <xsd:choice>
      <xsd:element name="amountRelativeTo" type="fpml:AmountReference" />
      <xsd:element name="determinationMethod" type="fpml:DeterminationMethod" />
      <xsd:element name="principalAmount" type="fpml:Money" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="TradeCreated">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RateIndex">
    <xsd:complexContent>
      <xsd:extension base="UnderlyingAsset">
        <xsd:sequence>
          <xsd:element name="floatingRateIndex" type="fpml:FloatingRateIndex" />
          <xsd:element name="term" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="paymentFrequency" type="fpml:Interval" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dayCountFraction" type="fpml:DayCountFraction" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Future">
    <xsd:complexContent>
      <xsd:extension base="ExchangeTraded">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="multiplier" type="xsd:positiveInteger" />
          <xsd:element minOccurs="0" maxOccurs="1" name="futureContractReference" type="xsd:string" />
          <xsd:element minOccurs="0" maxOccurs="1" name="maturity" type="xsd:date" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InitialPortfolioDefinition">
    <xsd:complexContent>
      <xsd:extension base="PortfolioDefinition">
        <xsd:sequence>
          <xsd:element name="newPortfolioDefinition" type="xsd:boolean" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NovationMatched">
    <xsd:complexContent>
      <xsd:extension base="NovationNotificationMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractHeader">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="identifier" type="fpml:ContractIdentifier" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="information" type="fpml:ContractInformation" />
      <xsd:element name="contractDate" type="fpml:IdentifiedDate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BermudaExercise">
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="bermudaExerciseDates" type="fpml:AdjustableOrRelativeDates" />
          <xsd:element minOccurs="0" maxOccurs="1" name="relevantUnderlyingDate" type="fpml:AdjustableOrRelativeDates" />
          <xsd:element name="earliestExerciseTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="latestExerciseTime" type="fpml:BusinessCenterTime" />
          <xsd:element name="expirationTime" type="fpml:BusinessCenterTime" />
          <xsd:element minOccurs="0" maxOccurs="1" name="multipleExercise" type="fpml:MultipleExercise" />
          <xsd:element minOccurs="0" maxOccurs="1" name="exerciseFeeSchedule" type="fpml:ExerciseFeeSchedule" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAmendmentResponse">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="amendment" type="fpml:Amendment" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SettledEntityMatrix">
    <xsd:sequence>
      <xsd:element name="matrixSource" type="fpml:MatrixSource" />
      <xsd:element minOccurs="0" maxOccurs="1" name="publicationDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditEventNotification">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="creditEventNotice" type="fpml:CreditEventNoticeDocument" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Tranche">
    <xsd:sequence>
      <xsd:element name="attachmentPoint" type="xsd:decimal" />
      <xsd:element name="exhaustionPoint" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="incurredRecoveryApplicable" type="xsd:boolean" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PositionsAsserted">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="portfolio" type="fpml:InitialPortfolioDefinition" />
          <xsd:element name="submissionsComplete" type="xsd:boolean" />
          <xsd:choice>
            <xsd:sequence>
              <xsd:element name="replaceAllPositions" type="fpml:Empty" />
              <xsd:element maxOccurs="unbounded" name="definePosition" type="fpml:DefinePosition" />
            </xsd:sequence>
            <xsd:choice minOccurs="0" maxOccurs="unbounded">
              <xsd:element name="definePosition" type="fpml:DefinePosition" />
              <xsd:element name="removePosition" type="fpml:PositionReference" />
            </xsd:choice>
          </xsd:choice>
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="InitialPayment">
    <xsd:complexContent>
      <xsd:extension base="PaymentBase">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:element minOccurs="0" maxOccurs="1" name="adjustablePaymentDate" type="xsd:date" />
          <xsd:element minOccurs="0" maxOccurs="1" name="adjustedPaymentDate" type="xsd:date" />
          <xsd:element name="paymentAmount" type="fpml:Money" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="IndexName">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="indexNameScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="indexNameSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DateList">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="date" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="VolatilityRepresentation">
    <xsd:complexContent>
      <xsd:extension base="PricingStructure">
        <xsd:sequence>
          <xsd:element name="asset" type="fpml:AnyAssetReference" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxCurve">
    <xsd:complexContent>
      <xsd:extension base="PricingStructure">
        <xsd:sequence>
          <xsd:group ref="fpml:FxCurveCharacteristics.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Allocation">
    <xsd:sequence>
      <xsd:element name="allocationTradeId" type="fpml:PartyTradeIdentifier" />
      <xsd:group ref="fpml:AccountReferenceOrPartyReference.model" />
      <xsd:choice>
        <xsd:element name="allocatedFraction" type="xsd:decimal" />
        <xsd:element name="allocatedNotional" type="fpml:Money" />
      </xsd:choice>
      <xsd:group ref="fpml:AllocationContent.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractFullTermination">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="termination" type="fpml:ContractTermination" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxBarrierOption">
    <xsd:complexContent>
      <xsd:extension base="FxOptionLeg">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="spotRate" type="xsd:decimal" />
          <xsd:element maxOccurs="unbounded" name="fxBarrier" type="fpml:FxBarrier" />
          <xsd:element minOccurs="0" maxOccurs="1" name="triggerPayout" type="fpml:FxOptionPayout" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ModifyTradeConfirmation">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="fpml:Trade" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractualMatrix">
    <xsd:sequence>
      <xsd:element name="matrixType" type="fpml:MatrixType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="publicationDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="matrixTerm" type="fpml:MatrixTerm" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliveryPeriods">
    <xsd:complexContent>
      <xsd:extension base="CommodityDeliveryPeriods">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="settlementPeriods" type="fpml:SettlementPeriods" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NovationConsentRefused">
    <xsd:complexContent>
      <xsd:extension base="NovationResponseMessage">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="reason" type="fpml:Reason" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="VarianceSwap">
    <xsd:complexContent>
      <xsd:extension base="NettedSwapBase">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="varianceLeg" type="fpml:VarianceLeg" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="GasPhysicalLeg">
    <xsd:complexContent>
      <xsd:extension base="PhysicalLeg">
        <xsd:sequence>
          <xsd:element name="deliveryPeriods" type="fpml:GasDeliveryPeriods" />
          <xsd:element name="gas" type="fpml:GasProduct" />
          <xsd:element name="deliveryConditions" type="fpml:GasDelivery" />
          <xsd:element name="deliveryQuantity" type="fpml:GasPhysicalQuantity" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommoditySwap">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="effectiveDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="terminationDate" type="fpml:AdjustableOrRelativeDate" />
          <xsd:element name="settlementCurrency" type="fpml:IdentifiedCurrency" />
          <xsd:choice maxOccurs="unbounded">
            <xsd:element name="fixedLeg" type="fpml:FixedPriceLeg" />
            <xsd:element name="floatingLeg" type="fpml:FloatingPriceLeg" />
            <xsd:element name="coalPhysicalLeg" type="fpml:CoalPhysicalLeg" />
            <xsd:element name="electricityPhysicalLeg" type="fpml:ElectricityPhysicalLeg" />
            <xsd:element name="gasPhysicalLeg" type="fpml:GasPhysicalLeg" />
            <xsd:element name="oilPhysicalLeg" type="fpml:OilPhysicalLeg" />
          </xsd:choice>
          <xsd:group ref="fpml:CommodityContent.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingPriceLeg">
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="fpml:PayerReceiver.model" />
          <xsd:group ref="fpml:CommodityCalculationPeriods.model" />
          <xsd:element name="commodity" type="fpml:Commodity" />
          <xsd:group ref="fpml:CommodityNotionalQuantity.model" />
          <xsd:element name="calculation" type="fpml:FloatingLegCalculation" />
          <xsd:group ref="fpml:CommodityPaymentDates.model" />
          <xsd:group ref="fpml:CommodityFreightFlatRate.model" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="idAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DerivedValuationScenario">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
      <xsd:element name="baseValuationScenario" type="fpml:ValuationScenarioReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationDate" type="fpml:IdentifiedDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="marketReference" type="fpml:MarketReference" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="shift" type="fpml:PricingParameterShift" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LoanContractRepayment">
    <xsd:sequence>
      <xsd:element name="loanContractSummary" type="fpml:LoanContractSummary" />
      <xsd:element name="amount" type="fpml:ParticipationAmount" />
      <xsd:element name="interestPaidWithRepayment" type="fpml:InterestPaidWithRepaymentEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExchangeTradedFund">
    <xsd:complexContent>
      <xsd:extension base="ExchangeTradedCalculatedPrice">
        <xsd:sequence>
          <xsd:element minOccurs="0" maxOccurs="1" name="fundManager" type="xsd:string" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DividendSwapTransactionSupplement">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="dividendLeg" type="fpml:DividendLeg" />
          <xsd:element name="fixedLeg" type="fpml:FixedPaymentLeg" />
          <xsd:group ref="fpml:EquityUnderlyerProvisions.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAlreadyMatched">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractIncreasedCancelled">
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="fpml:ContractReference" />
          <xsd:element minOccurs="0" maxOccurs="1" name="increase" type="fpml:ChangeContractSize" />
          <xsd:element minOccurs="0" maxOccurs="unbounded" name="paymentDetails" type="fpml:PaymentDetails" />
          <xsd:element maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ValuationSetDetail">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="valuationSetDetailScheme" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:appinfo>
              <jxb:property name="valuationSetDetailSchemeAttribute" />
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ObligationAccelerationEvent">
    <xsd:complexContent>
      <xsd:extension base="CreditEvent" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PositionsMatchResults">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="portfolio" type="fpml:PortfolioDefinition" />
          <xsd:element maxOccurs="unbounded" name="positionMatchResult" type="fpml:PositionMatchResult" />
          <xsd:element name="matchCompleted" type="xsd:boolean" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Documentation">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="masterAgreement" type="fpml:MasterAgreement" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="masterConfirmation" type="fpml:MasterConfirmation" />
        <xsd:element name="brokerConfirmation" type="fpml:BrokerConfirmation" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualDefinitions" type="fpml:ContractualDefinitions" />
      <xsd:choice>
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualSupplement" type="fpml:ContractualSupplement" />
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualTermsSupplement" type="fpml:ContractualTermsSupplement" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualMatrix" type="fpml:ContractualMatrix" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="creditSupportDocument" type="xsd:normalizedString" />
        <xsd:element name="creditSupportAgreement" type="fpml:CreditSupportAgreement" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OneOffFeeNotice">
    <xsd:complexContent>
      <xsd:extension base="FacilityNotice">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="loanContractSummary" type="fpml:LoanContractSummary" />
            <xsd:element name="lcSummary" type="fpml:LcSummary" />
          </xsd:choice>
          <xsd:element name="feePayment" type="fpml:OneOffFeePayment" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAlreadySubmitted">
    <xsd:complexContent>
      <xsd:extension base="ResponseMessage">
        <xsd:sequence>
          <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier" />
          <xsd:element name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="Fra">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" />
          <xsd:element name="adjustedEffectiveDate" type="fpml:RequiredIdentifierDate" />
          <xsd:element name="adjustedTerminationDate" type="xsd:date" />
          <xsd:element name="paymentDate" type="fpml:AdjustableDate" />
          <xsd:element name="fixingDateOffset" type="fpml:RelativeDateOffset" />
          <xsd:element name="dayCountFraction" type="fpml:DayCountFraction" />
          <xsd:element name="calculationPeriodNumberOfDays" type="xsd:positiveInteger" />
          <xsd:element name="notional" type="fpml:Money" />
          <xsd:element name="fixedRate" type="xsd:decimal" />
          <xsd:element name="floatingRateIndex" type="fpml:FloatingRateIndex" />
          <xsd:element maxOccurs="unbounded" name="indexTenor" type="fpml:Interval" />
          <xsd:element name="fraDiscounting" type="fpml:FraDiscountingEnum" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="YieldCurve">
    <xsd:complexContent>
      <xsd:extension base="PricingStructure">
        <xsd:sequence>
          <xsd:group ref="fpml:YieldCurveCharacteristics.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityOption">
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="fpml:BuyerSeller.model" />
          <xsd:element name="optionType" type="fpml:PutCallEnum" />
          <xsd:element name="commodity" type="fpml:Commodity" />
          <xsd:group ref="fpml:CommodityAsian.model" minOccurs="0" />
          <xsd:group ref="fpml:CommodityNotionalQuantity.model" />
          <xsd:element name="exercise" type="fpml:CommodityExercise" />
          <xsd:group ref="fpml:CommodityStrikePrice.model" />
          <xsd:element name="premium" type="fpml:CommodityPremium" />
          <xsd:group ref="fpml:CommodityContent.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RequestTerminationConfirmation">
    <xsd:complexContent>
      <xsd:extension base="RequestMessage">
        <xsd:sequence>
          <xsd:element name="termination" type="fpml:Termination" />
          <xsd:element minOccurs="2" maxOccurs="unbounded" name="party" type="fpml:Party" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:simpleType name="Scheme">
    <xsd:restriction base="xsd:normalizedString" />
  </xsd:simpleType>
  <xsd:simpleType name="PeriodEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="D" />
      <xsd:enumeration value="W" />
      <xsd:enumeration value="M" />
      <xsd:enumeration value="Y" />
      <xsd:enumeration value="T" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DayTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Business" />
      <xsd:enumeration value="Calendar" />
      <xsd:enumeration value="CommodityBusiness" />
      <xsd:enumeration value="CurrencyBusiness" />
      <xsd:enumeration value="ExchangeBusiness" />
      <xsd:enumeration value="ScheduledTradingDay" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="BusinessDayConventionEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="FOLLOWING" />
      <xsd:enumeration value="FRN" />
      <xsd:enumeration value="MODFOLLOWING" />
      <xsd:enumeration value="PRECEDING" />
      <xsd:enumeration value="MODPRECEDING" />
      <xsd:enumeration value="NEAREST" />
      <xsd:enumeration value="NONE" />
      <xsd:enumeration value="NotApplicable" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CommodityBullionSettlementDisruptionEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Negotiation" />
      <xsd:enumeration value="Cancellation and Payment" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PositiveDecimal">
    <xsd:restriction base="xsd:decimal" />
  </xsd:simpleType>
  <xsd:simpleType name="QuotationSideEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Bid" />
      <xsd:enumeration value="Ask" />
      <xsd:enumeration value="Mid" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="AveragingMethodEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Unweighted" />
      <xsd:enumeration value="Weighted" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CommodityDayTypeEnum">
    <xsd:union memberTypes="fpml:DayTypeEnum">
      <xsd:simpleType>
        <xsd:restriction base="xsd:token">
          <xsd:enumeration value="GasFlow" />
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:union>
  </xsd:simpleType>
  <xsd:simpleType name="DayOfWeekEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="MON" />
      <xsd:enumeration value="TUE" />
      <xsd:enumeration value="WED" />
      <xsd:enumeration value="THU" />
      <xsd:enumeration value="FRI" />
      <xsd:enumeration value="SAT" />
      <xsd:enumeration value="SUN" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PremiumTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="PrePaid" />
      <xsd:enumeration value="PostPaid" />
      <xsd:enumeration value="Variable" />
      <xsd:enumeration value="Fixed" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NonNegativeDecimal">
    <xsd:restriction base="xsd:decimal" />
  </xsd:simpleType>
  <xsd:simpleType name="SettlementTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Cash" />
      <xsd:enumeration value="Election" />
      <xsd:enumeration value="Physical" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="RestrictedPercentage">
    <xsd:restriction base="xsd:decimal" />
  </xsd:simpleType>
  <xsd:simpleType name="SpecifiedPriceEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Afternoon" />
      <xsd:enumeration value="Ask" />
      <xsd:enumeration value="Bid" />
      <xsd:enumeration value="Closing" />
      <xsd:enumeration value="High" />
      <xsd:enumeration value="Index" />
      <xsd:enumeration value="MeanOfBidAndAsk" />
      <xsd:enumeration value="Low" />
      <xsd:enumeration value="MeanOfHighAndLow" />
      <xsd:enumeration value="Morning" />
      <xsd:enumeration value="Official" />
      <xsd:enumeration value="Opening" />
      <xsd:enumeration value="OSP" />
      <xsd:enumeration value="Settlement" />
      <xsd:enumeration value="Spot" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DeliveryDatesEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="CalculationPeriod" />
      <xsd:enumeration value="FirstNearby" />
      <xsd:enumeration value="SecondNearby" />
      <xsd:enumeration value="ThirdNearby" />
      <xsd:enumeration value="SixthNearby" />
      <xsd:enumeration value="TwelfthNearby" />
      <xsd:enumeration value="Spot" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="FlatRateEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Fixed" />
      <xsd:enumeration value="Floating" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DiscountingTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Standard" />
      <xsd:enumeration value="FRA" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CalculationAgentPartyEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="ExercisingParty" />
      <xsd:enumeration value="NonExercisingParty" />
      <xsd:enumeration value="AsSpecifiedInMasterAgreement" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="WeeklyRollConventionEnum">
    <xsd:union memberTypes="fpml:DayOfWeekEnum">
      <xsd:simpleType>
        <xsd:restriction base="xsd:token">
          <xsd:enumeration value="TBILL" />
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:union>
  </xsd:simpleType>
  <xsd:simpleType name="OptionTypeEnum">
    <xsd:union memberTypes="fpml:PutCallEnum">
      <xsd:simpleType>
        <xsd:restriction base="xsd:token">
          <xsd:enumeration value="Forward" />
          <xsd:enumeration value="Payer" />
          <xsd:enumeration value="Receiver" />
          <xsd:enumeration value="Straddle" />
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:union>
  </xsd:simpleType>
  <xsd:simpleType name="PutCallEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Put" />
      <xsd:enumeration value="Call" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ExerciseStyleEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="American" />
      <xsd:enumeration value="Bermuda" />
      <xsd:enumeration value="European" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="StrikeQuoteBasisEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="PutCurrencyPerCallCurrency" />
      <xsd:enumeration value="CallCurrencyPerPutCurrency" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CompoundingMethodEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Flat" />
      <xsd:enumeration value="None" />
      <xsd:enumeration value="Straight" />
      <xsd:enumeration value="SpreadExclusive" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="StubPeriodTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="ShortInitial" />
      <xsd:enumeration value="ShortFinal" />
      <xsd:enumeration value="LongInitial" />
      <xsd:enumeration value="LongFinal" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MethodOfAdjustmentEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="CalculationAgent" />
      <xsd:enumeration value="OptionsExchange" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ObligationCategoryEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Payment" />
      <xsd:enumeration value="BorrowedMoney" />
      <xsd:enumeration value="ReferenceObligationsOnly" />
      <xsd:enumeration value="Bond" />
      <xsd:enumeration value="Loan" />
      <xsd:enumeration value="BondOrLoan" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CorrelationValue">
    <xsd:restriction base="xsd:decimal" />
  </xsd:simpleType>
  <xsd:simpleType name="DeliveryTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Firm" />
      <xsd:enumeration value="Interruptible" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TriggerConditionEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Above" />
      <xsd:enumeration value="Below" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PayRelativeToEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="CalculationPeriodStartDate" />
      <xsd:enumeration value="CalculationPeriodEndDate" />
      <xsd:enumeration value="LastPricingDate" />
      <xsd:enumeration value="ResetDate" />
      <xsd:enumeration value="ValuationDate" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="QuoteBasisEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Currency1PerCurrency2" />
      <xsd:enumeration value="Currency2PerCurrency1" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ResetRelativeToEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="CalculationPeriodStartDate" />
      <xsd:enumeration value="CalculationPeriodEndDate" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="Token60">
    <xsd:restriction base="xsd:token" />
  </xsd:simpleType>
  <xsd:simpleType name="DrawdownEventTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="NewDrawdownEvent" />
      <xsd:enumeration value="RateSetEvent" />
      <xsd:enumeration value="FxRateSetEvent" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ConditionsPrecedentEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Yes" />
      <xsd:enumeration value="No" />
      <xsd:enumeration value="Waived" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DividendDateReferenceEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="ExDate" />
      <xsd:enumeration value="DividendPaymentDate" />
      <xsd:enumeration value="RecordDate" />
      <xsd:enumeration value="TerminationDate" />
      <xsd:enumeration value="EquityPaymentDate" />
      <xsd:enumeration value="FollowingPaymentDate" />
      <xsd:enumeration value="AdHocDate" />
      <xsd:enumeration value="CumulativeEquityPaid" />
      <xsd:enumeration value="CumulativeLiborPaid" />
      <xsd:enumeration value="CumulativeEquityExDiv" />
      <xsd:enumeration value="CumulativeLiborExDiv" />
      <xsd:enumeration value="SharePayment" />
      <xsd:enumeration value="CashSettlementPaymentDate" />
      <xsd:enumeration value="FloatingAmountPaymentDate" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ShareExtraordinaryEventEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="AlternativeObligation" />
      <xsd:enumeration value="CancellationAndPayment" />
      <xsd:enumeration value="OptionsExchange" />
      <xsd:enumeration value="CalculationAgent" />
      <xsd:enumeration value="ModifiedCalculationAgent" />
      <xsd:enumeration value="PartialCancellationAndPayment" />
      <xsd:enumeration value="Component" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="RateTreatmentEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="BondEquivalentYield" />
      <xsd:enumeration value="MoneyMarketYield" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NegativeInterestRateTreatmentEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="NegativeInterestRateMethod" />
      <xsd:enumeration value="ZeroInterestRateMethod" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TimeTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Close" />
      <xsd:enumeration value="Open" />
      <xsd:enumeration value="OSP" />
      <xsd:enumeration value="SpecificTime" />
      <xsd:enumeration value="XETRA" />
      <xsd:enumeration value="DerivativesClose" />
      <xsd:enumeration value="AsSpecifiedInMasterConfirmation" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="RollConventionEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="EOM" />
      <xsd:enumeration value="FRN" />
      <xsd:enumeration value="IMM" />
      <xsd:enumeration value="IMMCAD" />
      <xsd:enumeration value="IMMAUD" />
      <xsd:enumeration value="IMMNZD" />
      <xsd:enumeration value="SFE" />
      <xsd:enumeration value="NONE" />
      <xsd:enumeration value="TBILL" />
      <xsd:enumeration value="1" />
      <xsd:enumeration value="2" />
      <xsd:enumeration value="3" />
      <xsd:enumeration value="4" />
      <xsd:enumeration value="5" />
      <xsd:enumeration value="6" />
      <xsd:enumeration value="7" />
      <xsd:enumeration value="8" />
      <xsd:enumeration value="9" />
      <xsd:enumeration value="10" />
      <xsd:enumeration value="11" />
      <xsd:enumeration value="12" />
      <xsd:enumeration value="13" />
      <xsd:enumeration value="14" />
      <xsd:enumeration value="15" />
      <xsd:enumeration value="16" />
      <xsd:enumeration value="17" />
      <xsd:enumeration value="18" />
      <xsd:enumeration value="19" />
      <xsd:enumeration value="20" />
      <xsd:enumeration value="21" />
      <xsd:enumeration value="22" />
      <xsd:enumeration value="23" />
      <xsd:enumeration value="24" />
      <xsd:enumeration value="25" />
      <xsd:enumeration value="26" />
      <xsd:enumeration value="27" />
      <xsd:enumeration value="28" />
      <xsd:enumeration value="29" />
      <xsd:enumeration value="30" />
      <xsd:enumeration value="MON" />
      <xsd:enumeration value="TUE" />
      <xsd:enumeration value="WED" />
      <xsd:enumeration value="THU" />
      <xsd:enumeration value="FRI" />
      <xsd:enumeration value="SAT" />
      <xsd:enumeration value="SUN" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DividendEntitlementEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="ExDate" />
      <xsd:enumeration value="RecordDate" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DividendAmountTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="RecordAmount" />
      <xsd:enumeration value="ExAmount" />
      <xsd:enumeration value="PaidAmount" />
      <xsd:enumeration value="AsSpecifiedInMasterConfirmation" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DividendPeriodEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="FirstPeriod" />
      <xsd:enumeration value="SecondPeriod" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PremiumQuoteBasisEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="PercentageOfCallCurrencyAmount" />
      <xsd:enumeration value="PercentageOfPutCurrencyAmount" />
      <xsd:enumeration value="CallCurrencyPerPutCurrency" />
      <xsd:enumeration value="PutCurrencyPerCallCurrency" />
      <xsd:enumeration value="Explicit" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CommissionDenominationEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="BPS" />
      <xsd:enumeration value="Percentage" />
      <xsd:enumeration value="CentsPerShare" />
      <xsd:enumeration value="FixedAmount" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="StepRelativeToEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Initial" />
      <xsd:enumeration value="Previous" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="QuotationRateTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Bid" />
      <xsd:enumeration value="Ask" />
      <xsd:enumeration value="Mid" />
      <xsd:enumeration value="ExercisingPartyPays" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DifferenceTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Value" />
      <xsd:enumeration value="Reference" />
      <xsd:enumeration value="Structure" />
      <xsd:enumeration value="Scheme" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DifferenceSeverityEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Warning" />
      <xsd:enumeration value="Error" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="FxBarrierTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Knockin" />
      <xsd:enumeration value="Knockout" />
      <xsd:enumeration value="ReverseKnockin" />
      <xsd:enumeration value="ReverseKnockout" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="HourMinuteTime">
    <xsd:restriction base="xsd:time">
      <xsd:pattern value="[0-2][0-9]:[0-5][0-9]:00" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="BullionTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Gold" />
      <xsd:enumeration value="Palladium" />
      <xsd:enumeration value="Platinum" />
      <xsd:enumeration value="Silver" />
      <xsd:enumeration value="RhodiumSponge" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="StandardSettlementStyleEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Standard" />
      <xsd:enumeration value="Net" />
      <xsd:enumeration value="StandardAndNet" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NotionalAdjustmentEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Execution" />
      <xsd:enumeration value="PortfolioRebalancing" />
      <xsd:enumeration value="Standard" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="GasProductTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="NaturalGas" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MarketDisruptionEventsEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Applicable" />
      <xsd:enumeration value="NotApplicable" />
      <xsd:enumeration value="AsSpecifiedInMasterAgreement" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="DisruptionFallbacksEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="AsSpecifiedInMasterAgreement" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PriceExpressionEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="AbsoluteTerms" />
      <xsd:enumeration value="PercentageOfNotional" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ReturnTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Dividend" />
      <xsd:enumeration value="Price" />
      <xsd:enumeration value="Total" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="IndexEventConsequenceEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="CalculationAgentAdjustment" />
      <xsd:enumeration value="NegotiatedCloseOut" />
      <xsd:enumeration value="CancellationAndPayment" />
      <xsd:enumeration value="RelatedExchange" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="RoundingDirectionEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Up" />
      <xsd:enumeration value="Down" />
      <xsd:enumeration value="Nearest" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="AveragingInOutEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="In" />
      <xsd:enumeration value="Out" />
      <xsd:enumeration value="Both" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TriggerTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="EqualOrLess" />
      <xsd:enumeration value="EqualOrGreater" />
      <xsd:enumeration value="Equal" />
      <xsd:enumeration value="Less" />
      <xsd:enumeration value="Greater" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TriggerTimeTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Closing" />
      <xsd:enumeration value="Anytime" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TouchConditionEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Touch" />
      <xsd:enumeration value="Notouch" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SideRateBasisEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Currency1PerBaseCurrency" />
      <xsd:enumeration value="BaseCurrencyPerCurrency1" />
      <xsd:enumeration value="Currency2PerBaseCurrency" />
      <xsd:enumeration value="BaseCurrencyPerCurrency2" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SettlementPeriodDurationEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="2Hours" />
      <xsd:enumeration value="1Hour" />
      <xsd:enumeration value="30Minutes" />
      <xsd:enumeration value="15Minutes" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LengthUnitEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Pages" />
      <xsd:enumeration value="TimeUnit" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PayerReceiverEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Payer" />
      <xsd:enumeration value="Receiver" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ElectricityProductTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Electricity" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="InterestCalculationMethodEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="ProRataShare" />
      <xsd:enumeration value="FacilityPosition" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="OnGoingFeeTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="CommitmentFee" />
      <xsd:enumeration value="UtilizationFee" />
      <xsd:enumeration value="FacilityFee" />
      <xsd:enumeration value="LetterOfCreditFee" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PayoutEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Deferred" />
      <xsd:enumeration value="Immediate" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="RealisedVarianceMethodEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Previous" />
      <xsd:enumeration value="Last" />
      <xsd:enumeration value="Both" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="OneOffFeeTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="AmendmentFee" />
      <xsd:enumeration value="AssignmentFee" />
      <xsd:enumeration value="FacilityExtensionFee" />
      <xsd:enumeration value="FundingFee" />
      <xsd:enumeration value="BreakageFee" />
      <xsd:enumeration value="UpfrontFee" />
      <xsd:enumeration value="WaiverFee" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="NationalisationOrInsolvencyOrDelistingEventEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="NegotiatedCloseout" />
      <xsd:enumeration value="CancellationAndPayment" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LcTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Standby" />
      <xsd:enumeration value="Commercial" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LcPurposeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Financial" />
      <xsd:enumeration value="Performance" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="BreakageCostEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="AgentBank" />
      <xsd:enumeration value="Lender" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="InterestPaidWithRepaymentEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="NoInterest" />
      <xsd:enumeration value="PayedOnShareAmount" />
      <xsd:enumeration value="PayedOnRepaymentAmount" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="InterestShortfallCapEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Fixed" />
      <xsd:enumeration value="Variable" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ValuationMethodEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Market" />
      <xsd:enumeration value="Highest" />
      <xsd:enumeration value="AverageMarket" />
      <xsd:enumeration value="AverageHighest" />
      <xsd:enumeration value="BlendedMarket" />
      <xsd:enumeration value="BlendedHighest" />
      <xsd:enumeration value="AverageBlendedMarket" />
      <xsd:enumeration value="AverageBlendedHighest" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="FraDiscountingEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="ISDA" />
      <xsd:enumeration value="AFMA" />
      <xsd:enumeration value="NONE" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="QuotationStyleEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="PointsUpFront" />
      <xsd:enumeration value="TradedSpread" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LoanRepaymentConfirmEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="AcceptInFull" />
      <xsd:enumeration value="PartiallyAccept" />
      <xsd:enumeration value="Deny" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="QueryParameterValue">
    <xsd:restriction base="xsd:string" />
  </xsd:simpleType>
  <xsd:simpleType name="FrequencyTypeEnum">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="Day" />
      <xsd:enumeration value="Business" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:group name="FxCurveCharacteristics.model">
    <xsd:sequence>
      <xsd:element name="quotedCurrencyPair" type="fpml:QuotedCurrencyPair" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PricingStructureIndex.model">
    <xsd:choice>
      <xsd:element name="term" type="fpml:TimeDimension" />
      <xsd:element name="expiration" type="fpml:TimeDimension" />
      <xsd:element name="strike" type="xsd:decimal" />
      <xsd:element name="generic" type="fpml:GenericDimension" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityUSCoalDelivery.model">
    <xsd:sequence>
      <xsd:element name="quantityVariationAdjustment" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="transportationEquipment" type="fpml:CoalTransportationEquipment" />
      <xsd:element minOccurs="0" maxOccurs="1" name="risk" type="fpml:CommodityDeliveryRisk" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="FloatingRateIndex.model">
    <xsd:sequence>
      <xsd:element name="floatingRateIndex" type="fpml:FloatingRateIndex" />
      <xsd:element minOccurs="0" maxOccurs="1" name="indexTenor" type="fpml:Interval" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityFixedPhysicalQuantity.model">
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="physicalQuantity" type="fpml:CommodityNotionalQuantity" />
        <xsd:element name="physicalQuantitySchedule" type="fpml:CommodityPhysicalQuantitySchedule" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="totalPhysicalQuantity" type="fpml:UnitQuantity" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="BidMidAsk.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="bid" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="mid" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="ask" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PaymentDiscounting.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="discountFactor" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="presentValueAmount" type="fpml:Money" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Product.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="productType" type="fpml:ProductType" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="productId" type="fpml:ProductId" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="IncreaseDetails.model">
    <xsd:sequence>
      <xsd:element name="increaseTradeDate" type="xsd:date" />
      <xsd:element name="increaseEffectiveDate" type="xsd:date" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="increaseInNotionalAmount" type="fpml:Money" />
          <xsd:element name="outstandingNotionalAmount" type="fpml:Money" />
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element name="increaseInNumberOfOptions" type="xsd:decimal" />
          <xsd:element name="outstandingNumberOfOptions" type="xsd:decimal" />
        </xsd:sequence>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="EquityUnderlyerProvisions.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="multipleExchangeIndexAnnexFallback" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="localJurisdiction" type="fpml:Country" />
      <xsd:element minOccurs="0" maxOccurs="1" name="relevantJurisdiction" type="fpml:Country" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityCalculationPeriods.model">
    <xsd:choice>
      <xsd:element name="calculationPeriods" type="fpml:AdjustableDates" />
      <xsd:element name="calculationPeriodsSchedule" type="fpml:CommodityCalculationPeriodsSchedule" />
      <xsd:group ref="fpml:CommodityCalculationPeriodsPointer.model" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityCoalComposition.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="moisture" type="fpml:CoalAttributePercentage" />
      <xsd:element minOccurs="0" maxOccurs="1" name="ash" type="fpml:CoalAttributePercentage" />
      <xsd:element minOccurs="0" maxOccurs="1" name="sulfur" type="fpml:CoalAttributePercentage" />
      <xsd:element minOccurs="0" maxOccurs="1" name="SO2" type="fpml:CoalAttributePercentage" />
      <xsd:element minOccurs="0" maxOccurs="1" name="volatile" type="fpml:CoalAttributePercentage" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Price.model">
    <xsd:sequence>
      <xsd:element name="priceCurrency" type="fpml:Currency" />
      <xsd:element name="priceUnit" type="fpml:QuantityUnit" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityStrikePrice.model">
    <xsd:choice>
      <xsd:element name="strikePricePerUnit" type="fpml:NonNegativeMoney" />
      <xsd:element name="strikePricePerUnitSchedule" type="fpml:CommodityStrikeSchedule" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityContent.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="commonPricing" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="marketDisruption" type="fpml:CommodityMarketDisruption" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementDisruption" type="fpml:CommodityBullionSettlementDisruptionEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="rounding" type="fpml:Rounding" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="ComputedDerivative.model">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="partialDerivative" type="fpml:PricingParameterDerivative" />
      <xsd:element minOccurs="0" maxOccurs="1" name="formula" type="fpml:DerivativeFormula" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="OptionDenomination.model">
    <xsd:sequence>
      <xsd:element name="optionEntitlement" type="fpml:PositiveDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="entitlementCurrency" type="fpml:Currency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="numberOfOptions" type="fpml:PositiveDecimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="NovationMessage.model">
    <xsd:sequence>
      <xsd:element name="novation" type="fpml:Novation" />
      <xsd:element minOccurs="3" maxOccurs="unbounded" name="party" type="fpml:Party" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityCoalReducingAtmosphere.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="initialDeformation" type="fpml:CoalAttributeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="softeningHeightWidth" type="fpml:CoalAttributeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="softeningHeightHalfWidth" type="fpml:CoalAttributeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fluid" type="fpml:CoalAttributeDecimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="SubstitutionDerivativeParameters.model">
    <xsd:sequence>
      <xsd:element name="replacementMarketInput" type="fpml:PricingStructureReference" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Interval.model">
    <xsd:sequence>
      <xsd:element name="periodMultiplier" type="xsd:integer" />
      <xsd:element name="period" type="fpml:PeriodEnum" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CreditEntity.model">
    <xsd:choice>
      <xsd:element name="referenceEntity" type="fpml:LegalEntity" />
      <xsd:element name="creditEntityReference" type="fpml:LegalEntityReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="AdjustedAndOrUnadjustedDate.model">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="unadjustedDate" type="xsd:date" />
        <xsd:element minOccurs="0" maxOccurs="1" name="adjustedDate" type="xsd:date" />
      </xsd:sequence>
      <xsd:element name="adjustedDate" type="xsd:date" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="RecoveryRate.model">
    <xsd:choice>
      <xsd:element name="recoveryRate" type="xsd:decimal" />
      <xsd:element name="recoveryRateCurve" type="fpml:TermCurve" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="MessageHeader.model">
    <xsd:sequence>
      <xsd:element name="sentBy" type="fpml:MessageAddress" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="sendTo" type="fpml:MessageAddress" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="copyTo" type="fpml:MessageAddress" />
      <xsd:element name="creationTimestamp" type="xsd:dateTime" />
      <xsd:element minOccurs="0" maxOccurs="1" name="expiryTimestamp" type="xsd:dateTime" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="partyMessageInformation" type="fpml:PartyMessageInformation" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" ref="dsig:Signature" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="LagOrReference.model">
    <xsd:choice>
      <xsd:element name="lag" type="fpml:Lag" />
      <xsd:element name="lagReference" type="fpml:LagReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="FiniteDifferenceDerivativeParameters.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="perturbationAmount" type="xsd:decimal" />
      <xsd:element name="averaged" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="perturbationType" type="fpml:PerturbationType" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="OptionalEarlyTermination.model">
    <xsd:choice>
      <xsd:element name="optionalEarlyTermination" type="fpml:OptionalEarlyTermination" />
      <xsd:sequence>
        <xsd:element name="optionalEarlyTerminationParameters" type="fpml:ExercisePeriod" />
        <xsd:element minOccurs="0" maxOccurs="1" name="optionalEarlyTermination" type="fpml:OptionalEarlyTermination" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="Period.model">
    <xsd:sequence>
      <xsd:element name="startDate" type="xsd:date" />
      <xsd:element name="endDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TerminationDetails.model">
    <xsd:sequence>
      <xsd:element name="terminationTradeDate" type="xsd:date" />
      <xsd:element name="terminationEffectiveDate" type="xsd:date" />
      <xsd:choice>
        <xsd:element name="full" type="fpml:Empty" />
        <xsd:element name="partial" type="fpml:PartialTerminationAmount" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeCashflows.model">
    <xsd:sequence>
      <xsd:element name="tradeIdentifyingItems" type="fpml:TradeIdentifyingItems" />
      <xsd:element name="adjustedPaymentDate" type="xsd:date" />
      <xsd:element maxOccurs="unbounded" name="payment" type="fpml:PaymentMatching" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityReferencePriceFramework.model">
    <xsd:sequence>
      <xsd:element name="commodityBase" type="fpml:CommodityBase" />
      <xsd:element name="commodityDetails" type="fpml:CommodityDetails" />
      <xsd:element name="unit" type="fpml:QuantityUnit" />
      <xsd:element name="currency" type="fpml:Currency" />
      <xsd:choice>
        <xsd:element name="exchangeId" type="fpml:ExchangeId" />
        <xsd:element name="publication" type="fpml:InformationSource" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="MandatoryEarlyTermination.model">
    <xsd:choice>
      <xsd:element name="mandatoryEarlyTermination" type="fpml:MandatoryEarlyTermination" />
      <xsd:sequence>
        <xsd:element name="mandatoryEarlyTerminationDateTenor" type="fpml:Interval" />
        <xsd:element minOccurs="0" maxOccurs="1" name="mandatoryEarlyTermination" type="fpml:MandatoryEarlyTermination" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="Exception.model">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" name="reason" type="fpml:Reason" />
      <xsd:element minOccurs="0" maxOccurs="1" name="additionalData" type="fpml:AdditionalData" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Quotation.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="value" type="xsd:decimal" />
      <xsd:group ref="fpml:QuotationCharacteristics.model" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="ContractNovationDetails.model">
    <xsd:sequence>
      <xsd:choice>
        <xsd:choice>
          <xsd:element name="newContractReference" type="fpml:ContractReference" />
          <xsd:element name="newContract" type="fpml:Contract" />
        </xsd:choice>
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="oldContractReference" type="fpml:ContractReference" />
            <xsd:element name="oldContract" type="fpml:Contract" />
          </xsd:choice>
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="newContractReference" type="fpml:ContractReference" />
            <xsd:element name="newContract" type="fpml:Contract" />
          </xsd:choice>
        </xsd:sequence>
      </xsd:choice>
      <xsd:element name="transferor" type="fpml:PartyReference" />
      <xsd:element name="transferee" type="fpml:PartyReference" />
      <xsd:element name="remainingParty" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="otherRemainingParty" type="fpml:PartyReference" />
      <xsd:element name="novationDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="novationContractDate" type="xsd:date" />
      <xsd:choice>
        <xsd:element name="novatedAmount" type="fpml:Money" />
        <xsd:element name="novatedNumberOfOptions" type="xsd:decimal" />
        <xsd:element name="novatedNumberOfUnits" type="xsd:decimal" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="fullFirstCalculationPeriod" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="2" name="firstPeriodStartDate" type="fpml:FirstPeriodStartDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="nonReliance" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="creditDerivativesNotices" type="fpml:CreditDerivativesNotices" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualDefinitions" type="fpml:ContractualDefinitions" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualTermsSupplement" type="fpml:ContractualTermsSupplement" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="FacilityNoticeDetails.model">
    <xsd:sequence>
      <xsd:element name="noticeDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="eventId" type="fpml:EventId" />
      <xsd:element minOccurs="0" maxOccurs="1" name="agentBankPartyReference" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="borrowerPartyReference" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="lenderPartyReference" type="fpml:PartyReference" />
      <xsd:element name="dealSummary" type="fpml:DealSummary" />
      <xsd:element name="facilitySummary" type="fpml:FacilitySummary" />
      <xsd:element minOccurs="0" maxOccurs="1" name="facilityCommitmentPosition" type="fpml:FacilityCommitmentPosition" />
      <xsd:element minOccurs="0" maxOccurs="1" name="exceptionFlag" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="comments" type="xsd:string" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityCoalProperties.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="BTUperLB" type="fpml:CoalAttributeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="topSize" type="fpml:CoalAttributeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="finesPassingScreen" type="fpml:CoalAttributeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="grindability" type="fpml:CoalAttributeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="ashFusionTemperature" type="fpml:CoalAttributeDecimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="RoutingIdentification.model">
    <xsd:choice>
      <xsd:element name="routingIds" type="fpml:RoutingIds" />
      <xsd:element name="routingExplicitDetails" type="fpml:RoutingExplicitDetails" />
      <xsd:element name="routingIdsAndExplicitDetails" type="fpml:RoutingIdsAndExplicitDetails" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="AssetValuationOrReference.model">
    <xsd:choice>
      <xsd:element name="valuation" type="fpml:AssetValuation" />
      <xsd:element name="valuationReference" type="fpml:ValuationReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="AssociatedValue.model">
    <xsd:choice>
      <xsd:element name="associatedValue" type="fpml:AssetValuation" />
      <xsd:element name="associatedValueReference" type="fpml:ValuationReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityCalculationPeriodsPointer.model">
    <xsd:choice>
      <xsd:element name="calculationPeriodsReference" type="fpml:CalculationPeriodsReference" />
      <xsd:element name="calculationPeriodsScheduleReference" type="fpml:CalculationPeriodsScheduleReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityAsian.model">
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:choice>
        <xsd:element name="calculationPeriodsSchedule" type="fpml:CommodityCalculationPeriodsSchedule" />
        <xsd:element name="calculationPeriods" type="fpml:AdjustableDates" />
      </xsd:choice>
      <xsd:element name="pricingDates" type="fpml:CommodityPricingDates" />
      <xsd:element minOccurs="0" maxOccurs="1" name="averagingMethod" type="fpml:AveragingMethodEnum" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="SettlementAmountOrCurrency.model">
    <xsd:choice>
      <xsd:element name="settlementAmount" type="fpml:Money" />
      <xsd:element name="settlementCurrency" type="fpml:Currency" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityDeliveryPeriodsPointer.model">
    <xsd:choice>
      <xsd:element name="deliveryPeriodsReference" type="fpml:CalculationPeriodsReference" />
      <xsd:element name="deliveryPeriodsScheduleReference" type="fpml:CalculationPeriodsScheduleReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="TradeCashflowsDefinition.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="asOfDate" type="xsd:dateTime" />
      <xsd:element name="tradeCashflowsId" type="fpml:TradeCashflowsId" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="BondChoice.model">
    <xsd:choice>
      <xsd:element ref="fpml:bond" />
      <xsd:element ref="fpml:convertibleBond" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="PricingDays.model">
    <xsd:sequence>
      <xsd:element name="dayType" type="fpml:CommodityDayTypeEnum" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="dayDistribution" type="fpml:CommodityFrequencyType" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dayCount" type="xsd:positiveInteger" />
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element maxOccurs="7" name="dayOfWeek" type="fpml:DayOfWeekEnum" />
          <xsd:element minOccurs="0" maxOccurs="1" name="dayNumber" type="xsd:integer" />
        </xsd:sequence>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Premium.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="premiumType" type="fpml:PremiumTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="pricePerOption" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="percentageOfNotional" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="AmendmentDetails.model">
    <xsd:sequence>
      <xsd:element name="amendmentTradeDate" type="xsd:date" />
      <xsd:element name="amendmentEffectiveDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="VersionHistory.model">
    <xsd:sequence>
      <xsd:element name="version" type="xsd:nonNegativeInteger" />
      <xsd:element minOccurs="0" maxOccurs="1" name="effectiveDate" type="fpml:IdentifiedDate" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="RoutingExplicitDetails.model">
    <xsd:sequence>
      <xsd:element name="routingName" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="routingAddress" type="fpml:Address" />
      <xsd:element minOccurs="0" maxOccurs="1" name="routingAccountNumber" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="routingReferenceText" type="xsd:string" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeOrTradeReference.model">
    <xsd:choice>
      <xsd:element name="trade" type="fpml:Trade" />
      <xsd:element name="tradeReference" type="fpml:PartyTradeIdentifiers" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="UnderlyingAssetOrReference.model">
    <xsd:choice>
      <xsd:element ref="fpml:underlyingAsset" />
      <xsd:element minOccurs="0" maxOccurs="1" name="underlyingAssetReference" type="fpml:AssetReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="OptionBaseFeature.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="fxFeature" type="fpml:FxFeature" />
      <xsd:element minOccurs="0" maxOccurs="1" name="strategyFeature" type="fpml:StrategyFeature" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="ExchangeIdentifier.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="relatedExchangeId" type="fpml:ExchangeId" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="optionsExchangeId" type="fpml:ExchangeId" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Validation.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="validation" type="fpml:Validation" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="BondCalculation.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="paymentFrequency" type="fpml:Interval" />
      <xsd:element minOccurs="0" maxOccurs="1" name="dayCountFraction" type="fpml:DayCountFraction" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="DiscountRate.model">
    <xsd:sequence>
      <xsd:element name="discountRate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="discountRateDayCountFraction" type="fpml:DayCountFraction" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="OptionFeature.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="asian" type="fpml:Asian" />
      <xsd:element minOccurs="0" maxOccurs="1" name="barrier" type="fpml:Barrier" />
      <xsd:element minOccurs="0" maxOccurs="1" name="knock" type="fpml:Knock" />
      <xsd:element minOccurs="0" maxOccurs="1" name="passThrough" type="fpml:PassThrough" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Feature.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="feature" type="fpml:OptionFeatures" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fxFeature" type="fpml:FxFeature" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="BasketIdentifier.model">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="basketName" type="fpml:BasketName" />
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="basketId" type="fpml:BasketId" />
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element maxOccurs="unbounded" name="basketId" type="fpml:BasketId" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="DeclaredCashAndCashEquivalentDividendPercentage.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="declaredCashDividendPercentage" type="fpml:NonNegativeDecimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="declaredCashEquivalentDividendPercentage" type="fpml:NonNegativeDecimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="OptionSettlement.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementType" type="fpml:SettlementTypeEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="settlementDate" type="fpml:AdjustableOrRelativeDate" />
      <xsd:group ref="fpml:SettlementAmountOrCurrency.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityFixedPrice.model">
    <xsd:choice>
      <xsd:element name="fixedPriceSchedule" type="fpml:CommodityFixedPriceSchedule" />
      <xsd:choice>
        <xsd:element name="fixedPrice" type="fpml:FixedPrice" />
        <xsd:element name="worldscaleRate" type="xsd:decimal" />
        <xsd:element name="contractRate" type="fpml:NonNegativeMoney" />
        <xsd:element maxOccurs="unbounded" name="settlementPeriodsPrice" type="fpml:SettlementPeriodsFixedPrice" />
      </xsd:choice>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityPaymentDates.model">
    <xsd:choice>
      <xsd:element name="relativePaymentDates" type="fpml:CommodityRelativePaymentDates" />
      <xsd:group ref="fpml:CommodityNonPeriodicPaymentDates.model" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="PositionWithoutId.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="reportingRoles" type="fpml:ReportingRoles" />
      <xsd:element name="constituent" type="fpml:PositionConstituent" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="scheduledDate" type="fpml:ScheduledDate" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="valuation" type="fpml:AssetValuation" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="FixedRecovery.model">
    <xsd:choice>
      <xsd:element name="cashSettlementAmount" type="fpml:Money" />
      <xsd:element name="recoveryFactor" type="fpml:RestrictedPercentage" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="PricingCoordinateOrReference.model">
    <xsd:choice>
      <xsd:element name="coordinate" type="fpml:PricingDataPointCoordinate" />
      <xsd:element name="coordinateReference" type="fpml:PricingDataPointCoordinateReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityNotionalQuantity.model">
    <xsd:choice>
      <xsd:sequence>
        <xsd:choice>
          <xsd:element name="notionalQuantitySchedule" type="fpml:CommodityNotionalQuantitySchedule" />
          <xsd:element name="notionalQuantity" type="fpml:CommodityNotionalQuantity" />
          <xsd:element maxOccurs="unbounded" name="settlementPeriodsNotionalQuantity" type="fpml:CommoditySettlementPeriodsNotionalQuantity" />
        </xsd:choice>
        <xsd:element minOccurs="0" maxOccurs="1" name="totalNotionalQuantity" type="xsd:decimal" />
      </xsd:sequence>
      <xsd:element name="quantityReference" type="fpml:QuantityReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="NovationDetails.model">
    <xsd:sequence>
      <xsd:choice>
        <xsd:choice>
          <xsd:element name="newTransactionReference" type="fpml:PartyTradeIdentifiers" />
          <xsd:element name="newTransaction" type="fpml:Trade" />
        </xsd:choice>
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="oldTransactionReference" type="fpml:PartyTradeIdentifiers" />
            <xsd:element name="oldTransaction" type="fpml:Trade" />
          </xsd:choice>
          <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="newTransactionReference" type="fpml:PartyTradeIdentifiers" />
            <xsd:element name="newTransaction" type="fpml:Trade" />
          </xsd:choice>
        </xsd:sequence>
      </xsd:choice>
      <xsd:element name="transferor" type="fpml:PartyReference" />
      <xsd:element name="transferee" type="fpml:PartyReference" />
      <xsd:element name="remainingParty" type="fpml:PartyReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="otherRemainingParty" type="fpml:PartyReference" />
      <xsd:element name="novationDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="novationTradeDate" type="xsd:date" />
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="novatedAmount" type="fpml:Money" />
        <xsd:element name="novatedNumberOfOptions" type="xsd:decimal" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="remainingTrade" type="fpml:Trade" />
      <xsd:element minOccurs="0" maxOccurs="1" name="fullFirstCalculationPeriod" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="2" name="firstPeriodStartDate" type="fpml:FirstPeriodStartDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="nonReliance" type="fpml:Empty" />
      <xsd:element minOccurs="0" maxOccurs="1" name="creditDerivativesNotices" type="fpml:CreditDerivativesNotices" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualDefinitions" type="fpml:ContractualDefinitions" />
      <xsd:choice>
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualSupplement" type="fpml:ContractualSupplement" />
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="contractualTermsSupplement" type="fpml:ContractualTermsSupplement" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="DefinitionAndCashflows.model">
    <xsd:sequence>
      <xsd:group ref="fpml:TradeCashflowsDefinition.model" />
      <xsd:group ref="fpml:TradeCashflows.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CreditCurveCharacteristics.model">
    <xsd:sequence>
      <xsd:group ref="fpml:CreditEntity.model" />
      <xsd:element minOccurs="0" maxOccurs="1" name="creditEvents" type="fpml:CreditEvents" />
      <xsd:element name="seniority" type="fpml:CreditSeniority" />
      <xsd:element name="secured" type="xsd:boolean" />
      <xsd:element name="currency" type="fpml:Currency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="obligations" type="fpml:Obligations" />
      <xsd:element minOccurs="0" maxOccurs="1" name="deliverableObligations" type="fpml:DeliverableObligations" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="BondContent.model">
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1">
        <xsd:element name="issuerName" type="xsd:string" />
        <xsd:element name="issuerPartyReference" type="fpml:PartyReference" />
      </xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="seniority" type="fpml:CreditSeniority" />
      <xsd:element minOccurs="0" maxOccurs="1" name="couponType" type="fpml:CouponType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="couponRate" type="xsd:decimal" />
      <xsd:element minOccurs="0" maxOccurs="1" name="maturity" type="xsd:date" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CalculationAgent.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationAgent" type="fpml:CalculationAgent" />
      <xsd:element minOccurs="0" maxOccurs="1" name="calculationAgentBusinessCenter" type="fpml:BusinessCenter" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="IdAndTradeCashflows.model">
    <xsd:sequence>
      <xsd:element name="tradeCashflowsId" type="fpml:TradeCashflowsId" />
      <xsd:group ref="fpml:TradeCashflows.model" minOccurs="0" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="SensitivityDescription.model">
    <xsd:choice>
      <xsd:element name="term" type="fpml:TimeDimension" />
      <xsd:group ref="fpml:PricingCoordinateOrReference.model" maxOccurs="unbounded" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityProduct.model">
    <xsd:sequence>
      <xsd:group ref="fpml:CommodityReferencePriceFramework.model" minOccurs="0" />
      <xsd:element name="specifiedPrice" type="fpml:SpecifiedPriceEnum" />
      <xsd:sequence minOccurs="0" maxOccurs="1">
        <xsd:choice>
          <xsd:element name="deliveryDates" type="fpml:DeliveryDatesEnum" />
          <xsd:element name="deliveryDate" type="fpml:AdjustableDate" />
          <xsd:element name="deliveryDateYearMonth" type="xsd:gYearMonth" />
        </xsd:choice>
        <xsd:element minOccurs="0" maxOccurs="1" name="deliveryDateRollConvention" type="fpml:Offset" />
      </xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="multiplier" type="fpml:PositiveDecimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="AccountReferenceOrPartyReference.model">
    <xsd:choice>
      <xsd:element name="accountReference" type="fpml:AccountReference" />
      <xsd:element name="partyReference" type="fpml:PartyReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="QuoteLocation.model">
    <xsd:choice>
      <xsd:element name="businessCenter" type="fpml:BusinessCenter" />
      <xsd:element name="exchangeId" type="fpml:ExchangeId" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="ContractOrContractReference.model">
    <xsd:choice>
      <xsd:element name="contract" type="fpml:Contract" />
      <xsd:element name="contractReference" type="fpml:ContractReference" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="InterestPaymentDetails.model">
    <xsd:sequence>
      <xsd:element name="interestPayment" type="fpml:InterestPayment" />
      <xsd:element name="interestAccrualSchedule" type="fpml:InterestAccrualSchedule" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityUSCoalProduct.model">
    <xsd:sequence>
      <xsd:element name="btuQualityAdjustment" type="fpml:CoalQualityAdjustments" />
      <xsd:element minOccurs="0" maxOccurs="1" name="so2QualityAdjustment" type="fpml:CoalQualityAdjustments" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityFreightFlatRate.model">
    <xsd:sequence>
      <xsd:element name="flatRate" type="fpml:FlatRateEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="flatRateAmount" type="fpml:NonNegativeMoney" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityDeliveryPoints.model">
    <xsd:choice>
      <xsd:element name="deliveryPoint" type="fpml:GasDeliveryPoint" />
      <xsd:sequence>
        <xsd:element name="entryPoint" type="fpml:CommodityDeliveryPoint" />
        <xsd:element name="withdrawalPoint" type="fpml:CommodityDeliveryPoint" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="BusinessCentersOrReference.model">
    <xsd:choice>
      <xsd:element name="businessCentersReference" type="fpml:BusinessCentersReference" />
      <xsd:element name="businessCenters" type="fpml:BusinessCenters" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="PartialExercise.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="notionalReference" type="fpml:NotionalReference" />
      <xsd:element minOccurs="0" maxOccurs="1" name="integralMultipleAmount" type="xsd:decimal" />
      <xsd:choice>
        <xsd:element name="minimumNotionalAmount" type="xsd:decimal" />
        <xsd:element name="minimumNumberOfOptions" type="xsd:nonNegativeInteger" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="BuyerSeller.model">
    <xsd:sequence>
      <xsd:element name="buyerPartyReference" type="fpml:PartyOrTradeSideReference" />
      <xsd:element name="sellerPartyReference" type="fpml:PartyOrTradeSideReference" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityNonPeriodicPaymentDates.model">
    <xsd:choice>
      <xsd:element name="paymentDates" type="fpml:AdjustableDatesOrRelativeDateOffset" />
      <xsd:element name="masterAgreementPaymentDates" type="xsd:boolean" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="PricingInputDates.model">
    <xsd:sequence>
      <xsd:element name="baseDate" type="fpml:IdentifiedDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="spotDate" type="fpml:IdentifiedDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="inputDataDate" type="fpml:IdentifiedDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="endDate" type="fpml:IdentifiedDate" />
      <xsd:element minOccurs="0" maxOccurs="1" name="buildDateTime" type="xsd:dateTime" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="DerivativeCalculationParameters.model">
    <xsd:choice>
      <xsd:group ref="fpml:FiniteDifferenceDerivativeParameters.model" />
      <xsd:group ref="fpml:AnalyticDerivativeParameters.model" />
      <xsd:group ref="fpml:SubstitutionDerivativeParameters.model" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="AnalyticDerivativeParameters.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="derivativeFormula" type="xsd:string" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="MutualOrOptionalEarlyTermination.model">
    <xsd:choice>
      <xsd:element minOccurs="0" maxOccurs="1" name="mutualEarlyTermination" type="xsd:boolean" />
      <xsd:sequence>
        <xsd:element name="optionalEarlyTermination" type="xsd:boolean" />
        <xsd:element minOccurs="0" maxOccurs="1" name="breakFundingRecovery" type="xsd:boolean" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="QuotationCharacteristics.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="measureType" type="fpml:AssetMeasureType" />
      <xsd:element minOccurs="0" maxOccurs="1" name="quoteUnits" type="fpml:PriceQuoteUnits" />
      <xsd:element minOccurs="0" maxOccurs="1" name="side" type="fpml:QuotationSideEnum" />
      <xsd:element minOccurs="0" maxOccurs="1" name="currency" type="fpml:Currency" />
      <xsd:element minOccurs="0" maxOccurs="1" name="timing" type="fpml:QuoteTiming" />
      <xsd:group ref="fpml:QuoteLocation.model" minOccurs="0" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="informationSource" type="fpml:InformationSource" />
      <xsd:element minOccurs="0" maxOccurs="1" name="time" type="xsd:dateTime" />
      <xsd:element minOccurs="0" maxOccurs="1" name="valuationDate" type="xsd:date" />
      <xsd:element minOccurs="0" maxOccurs="1" name="expiryTime" type="xsd:dateTime" />
      <xsd:element minOccurs="0" maxOccurs="1" name="cashFlowType" type="fpml:CashflowType" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="YieldCurveCharacteristics.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="algorithm" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="1" name="forecastRateIndex" type="fpml:ForecastRateIndex" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PositionIdAndVersion.model">
    <xsd:sequence>
      <xsd:element name="positionId" type="fpml:PositionId" />
      <xsd:element minOccurs="0" maxOccurs="1" name="version" type="xsd:positiveInteger" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="AllocationContent.model">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="collateral" type="fpml:Collateral" />
      <xsd:element minOccurs="0" maxOccurs="1" name="creditChargeAmount" type="fpml:Money" />
      <xsd:element minOccurs="0" maxOccurs="1" name="approvals" type="fpml:Approvals" />
      <xsd:element minOccurs="0" maxOccurs="1" name="masterConfirmationDate" type="xsd:date" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PayerReceiver.model">
    <xsd:sequence>
      <xsd:element name="payerPartyReference" type="fpml:PartyOrAccountReference" />
      <xsd:element name="receiverPartyReference" type="fpml:PartyOrAccountReference" />
    </xsd:sequence>
  </xsd:group>
  <xsd:element name="FpML" type="fpml:Document" />
  <xsd:element name="product" type="fpml:Product" />
  <xsd:element name="bond" type="fpml:Bond" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="underlyingAsset" type="fpml:Asset" />
  <xsd:element name="convertibleBond" type="fpml:ConvertibleBond" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="event" type="fpml:Event" />
  <xsd:element name="changeEvent" type="xsd:anyType" />
  <xsd:element name="exercise" type="fpml:Exercise" />
  <xsd:element name="swap" type="fpml:Swap" substitutionGroup="fpml:product" />
  <xsd:element name="creditDefaultSwap" type="fpml:CreditDefaultSwap" substitutionGroup="fpml:product" />
  <xsd:element name="creditEvent" type="fpml:CreditEvent" />
  <xsd:element name="returnSwapLeg" type="fpml:ReturnSwapLeg" />
  <xsd:element name="fxSingleLeg" type="fpml:FxLeg" substitutionGroup="fpml:product" />
  <xsd:element name="rateCalculation" type="fpml:Rate" />
  <xsd:element name="varianceSwapTransactionSupplement" type="fpml:VarianceSwapTransactionSupplement" substitutionGroup="fpml:product" />
  <xsd:element name="valuationSet" type="fpml:ValuationSet" />
  <xsd:element name="quotableProduct" type="fpml:QuotableProduct" />
  <xsd:element name="pricingStructure" type="fpml:PricingStructure" />
  <xsd:element name="pricingStructureValuation" type="fpml:PricingStructureValuation" />
  <xsd:element name="market" type="fpml:Market" />
  <xsd:element name="mortgage" type="fpml:Mortgage" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="loan" type="fpml:Loan" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="portfolio" type="fpml:Portfolio" />
  <xsd:element name="creditCurveValuation" type="fpml:CreditCurveValuation" substitutionGroup="fpml:pricingStructureValuation" />
  <xsd:element name="returnSwap" type="fpml:ReturnSwap" substitutionGroup="fpml:product" />
  <xsd:element name="quotableFxSingleLeg" type="fpml:QuotableFxLeg" substitutionGroup="fpml:quotableProduct" />
  <xsd:element name="volatilityMatrixValuation" type="fpml:VolatilityMatrix" substitutionGroup="fpml:pricingStructureValuation" />
  <xsd:element name="commoditySwap" type="fpml:CommoditySwap" substitutionGroup="fpml:product" />
  <xsd:element name="obligationAcceleration" type="fpml:ObligationAccelerationEvent" substitutionGroup="fpml:creditEvent" />
  <xsd:element name="equityForward" type="fpml:EquityForward" substitutionGroup="fpml:product" />
  <xsd:element name="queryPortfolio" type="fpml:QueryPortfolio" substitutionGroup="fpml:portfolio" />
  <xsd:element name="strategy" type="fpml:Strategy" substitutionGroup="fpml:product" />
  <xsd:element name="fxSwap" type="fpml:FxSwap" substitutionGroup="fpml:product" />
  <xsd:element name="creditEventNotice" type="fpml:CreditEventNoticeDocument" substitutionGroup="fpml:event" />
  <xsd:element name="exchangeTradedFund" type="fpml:ExchangeTradedFund" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="rateIndex" type="fpml:RateIndex" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="equity" type="fpml:EquityAsset" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="termDeposit" type="fpml:TermDeposit" substitutionGroup="fpml:product" />
  <xsd:element name="bankruptcy" type="fpml:BankruptcyEvent" substitutionGroup="fpml:creditEvent" />
  <xsd:element name="bermudaExercise" type="fpml:BermudaExercise" substitutionGroup="fpml:exercise" />
  <xsd:element name="yieldCurveValuation" type="fpml:YieldCurveValuation" substitutionGroup="fpml:pricingStructureValuation" />
  <xsd:element name="fxBarrierOption" type="fpml:FxBarrierOption" substitutionGroup="fpml:product" />
  <xsd:element name="swaption" type="fpml:Swaption" substitutionGroup="fpml:product" />
  <xsd:element name="commodityForward" type="fpml:CommodityForward" substitutionGroup="fpml:product" />
  <xsd:element name="equitySwap" type="fpml:ReturnSwap" substitutionGroup="fpml:product" />
  <xsd:element name="simpleFra" type="fpml:SimpleFra" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="cash" type="fpml:Cash" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="capFloor" type="fpml:CapFloor" substitutionGroup="fpml:product" />
  <xsd:element name="varianceSwap" type="fpml:VarianceSwap" substitutionGroup="fpml:product" />
  <xsd:element name="deposit" type="fpml:Deposit" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="fxCurveValuation" type="fpml:FxCurveValuation" substitutionGroup="fpml:pricingStructureValuation" />
  <xsd:element name="index" type="fpml:Index" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="creditDefaultSwapOption" type="fpml:CreditDefaultSwapOption" substitutionGroup="fpml:product" />
  <xsd:element name="americanExercise" type="fpml:AmericanExercise" substitutionGroup="fpml:exercise" />
  <xsd:element name="basket" type="fpml:Basket" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="yieldCurve" type="fpml:YieldCurve" substitutionGroup="fpml:pricingStructure" />
  <xsd:element name="fra" type="fpml:Fra" substitutionGroup="fpml:product" />
  <xsd:element name="indexChange" type="fpml:IndexChange" substitutionGroup="fpml:changeEvent" />
  <xsd:element name="correlationSwap" type="fpml:CorrelationSwap" substitutionGroup="fpml:product" />
  <xsd:element name="equityOptionTransactionSupplement" type="fpml:EquityOptionTransactionSupplement" substitutionGroup="fpml:product" />
  <xsd:element name="inflationRateCalculation" type="fpml:InflationRateCalculation" substitutionGroup="fpml:rateCalculation" />
  <xsd:element name="creditCurve" type="fpml:CreditCurve" substitutionGroup="fpml:pricingStructure" />
  <xsd:element name="equityOption" type="fpml:EquityOption" substitutionGroup="fpml:product" />
  <xsd:element name="simpleIrSwap" type="fpml:SimpleIRSwap" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="fxCurve" type="fpml:FxCurve" substitutionGroup="fpml:pricingStructure" />
  <xsd:element name="fxRate" type="fpml:FxRateAsset" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="future" type="fpml:Future" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="varianceOptionTransactionSupplement" type="fpml:VarianceOptionTransactionSupplement" substitutionGroup="fpml:product" />
  <xsd:element name="equitySwapTransactionSupplement" type="fpml:EquitySwapTransactionSupplement" substitutionGroup="fpml:product" />
  <xsd:element name="interestLeg" type="fpml:InterestLeg" substitutionGroup="fpml:returnSwapLeg" />
  <xsd:element name="failureToPay" type="fpml:FailureToPayEvent" substitutionGroup="fpml:creditEvent" />
  <xsd:element name="mutualFund" type="fpml:MutualFund" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="brokerEquityOption" type="fpml:BrokerEquityOption" substitutionGroup="fpml:product" />
  <xsd:element name="commodityOption" type="fpml:CommodityOption" substitutionGroup="fpml:product" />
  <xsd:element name="fxSimpleOption" type="fpml:FxOptionLeg" substitutionGroup="fpml:product" />
  <xsd:element name="bondOption" type="fpml:BondOption" substitutionGroup="fpml:product" />
  <xsd:element name="fxDigitalOption" type="fpml:FxDigitalOption" substitutionGroup="fpml:product" />
  <xsd:element name="bulletPayment" type="fpml:BulletPayment" substitutionGroup="fpml:product" />
  <xsd:element name="dividendSwapTransactionSupplement" type="fpml:DividendSwapTransactionSupplement" substitutionGroup="fpml:product" />
  <xsd:element name="commodity" type="fpml:Commodity" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="europeanExercise" type="fpml:EuropeanExercise" substitutionGroup="fpml:exercise" />
  <xsd:element name="fxAverageRateOption" type="fpml:FxAverageRateOption" substitutionGroup="fpml:product" />
  <xsd:element name="repudiationMoratorium" type="fpml:RepudiationMoratoriumEvent" substitutionGroup="fpml:creditEvent" />
  <xsd:element name="varianceLeg" type="fpml:DeprecatedVarianceLeg" substitutionGroup="fpml:returnSwapLeg" />
  <xsd:element name="returnLeg" type="fpml:ReturnLeg" substitutionGroup="fpml:returnSwapLeg" />
  <xsd:element name="simpleCreditDefaultSwap" type="fpml:SimpleCreditDefaultSwap" substitutionGroup="fpml:underlyingAsset" />
  <xsd:element name="equityLeg" type="fpml:DeprecatedEquityLeg" substitutionGroup="fpml:returnSwapLeg" />
  <xsd:element name="obligationDefault" type="fpml:ObligationDefaultEvent" substitutionGroup="fpml:creditEvent" />
  <xsd:element name="floatingRateCalculation" type="fpml:FloatingRateCalculation" substitutionGroup="fpml:rateCalculation" />
  <xsd:element name="volatilityRepresentation" type="fpml:VolatilityRepresentation" substitutionGroup="fpml:pricingStructure" />
  <xsd:element name="restructuring" type="fpml:RestructuringEvent" substitutionGroup="fpml:creditEvent" />
</xsd:schema>