Schema Name: fpml-business-events-5-9.xsd
Target Namespace: http://www.fpml.org/FpML-5/confirmation
Collapse XSD Schema Code:

<!-- 
== Copyright (c) 2002-2017 All rights reserved. 
== Financial Products Markup Language is subject to the FpML public license. 
== A copy of this license is available at http://www.fpml.org/license/license.html
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/confirmation" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:fpml-annotation="http://www.fpml.org/annotation" targetNamespace="http://www.fpml.org/FpML-5/confirmation" ecore:documentRoot="FpML" ecore:nsPrefix="conf" ecore:package="org.fpml.confirmation" version="$Revision: 12889 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:include schemaLocation="fpml-msg-5-9.xsd" />
  <xsd:include schemaLocation="fpml-asset-5-9.xsd" />
  <xsd:include schemaLocation="fpml-com-5-9.xsd" />
  <xsd:complexType name="AbstractEvent" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base type for all events.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="eventIdentifier" type="BusinessEventIdentifier" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ActionOnExpiration">
    <xsd:sequence>
      <xsd:group ref="OptionExerciseAmount.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AdditionalEvent" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base type for an extension/substitution point to customize FpML and add additional events.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AbstractEvent" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="AmountRef">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a nominal amount with a reference.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="amount" type="PositiveDecimal" />
      <xsd:element name="amountReference" type="AmountReference" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="BasketChangeEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure indicating that the basket underlyer of the trade has changed due to client trading activity</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="ChangeEvent"></xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BusinessEventIdentifier">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining an event identifier issued by the indicated party.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="PartyAndAccountReferences.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a party identifier and optionally an account identifier defined elsewhere in the document. The party referenced has allocated the trade identifier.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:element name="eventId" type="EventId" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="ChangeEvent" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base type for non-negotiated trade change descriptions</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AbstractEvent"></xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ClearingStatusItem">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A component of a clearing status report. This provides the clearing status for a single trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="tradeIdentifier" type="TradeIdentifier" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Identifier(s) for the trade which is the subject of the clearing request to which this status relates.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:group ref="TradeReferenceInformation.model">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Identifying information for the trade which is the subject of the clearing request to which this status relates.</xsd:documentation>
          </xsd:annotation>
        </xsd:group>
        <xsd:element name="trade" type="Trade">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Complete economics of the trade</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="tradePackage" type="TradePackage" />
      </xsd:choice>
      <xsd:element name="clearingStatusValue" type="ClearingStatusValue">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The status of the clearing process for the identified trade. For example, Received, Pending (Approval), Registered (i.e. cleared), Rejected, etc.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="updatedDateTime" type="xsd:dateTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">When the clearing status changed to the current value. This is mostly useful if the clearing status messages could be delayed from when the status actually changes; this could be important if the status date is used as the basis of any settlement calculations.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="reason" type="Reason" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Supporting information which may be produced to explain the clearing process status. This may be a business reason e.g. failed eligibility criteria for a trade in Rejected status.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="statusAppliesTo" type="PartyReference" minOccurs="0" maxOccurs="2">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Reference to parties currently in this status, e.g. parties for which we are awaiting approval. For example, if a trade is in "Pending" status, this would identify which parties' approval the trade was pending.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ClearingInstructions">
    <xsd:sequence>
      <xsd:element name="requestedClearingAction" type="RequestedClearingAction" minOccurs="0" />
      <xsd:element name="requestedClearingOrganizationPartyReference" type="PartyReference" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CompressionActivity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that shows how multiple trades have been combined into a result.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="compressionType" type="CompressionType" minOccurs="0" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="replacementTradeIdentifier" type="TradeIdentifier" minOccurs="0" />
          <xsd:element name="originatingTradeIdentifier" type="TradeIdentifier" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:sequence>
          <xsd:annotation>
            <xsd:documentation xml:lang="en">This option is deprecated in favour of the first choice.</xsd:documentation>
          </xsd:annotation>
          <xsd:element name="replacementTradeId" type="TradeId" minOccurs="0" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="Deprecated in favor of replacementTradeIdentifier" />
          <xsd:element name="originatingTradeId" type="TradeId" minOccurs="0" maxOccurs="unbounded" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="Deprecated in favor of originatingTradeIdentifier" />
        </xsd:sequence>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CompressionType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that identifies the type of trade amalgamation, for example netting or portfolio compression.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="compressionTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/compression-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CorporateActionEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure indicating that a trade has changed due to a corporate action</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="ChangeEvent">
        <xsd:sequence>
          <xsd:element name="type" type="CorporateActionType" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CorporateActionType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes what type of corporate action occurred.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="corporateActionScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CreditLimitBase">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a basic credit limit.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="limitId" type="LimitId" />
      <xsd:group ref="Product.model" />
      <xsd:element name="currency" type="Currency" />
      <xsd:element name="tenor" type="Period">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The maximum allowed tenor for a trade under this limit. When this structure is used as part of a suspendCredit message, this tenor imposes a temporary tenor limit on allowed trade types.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditLimit">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a credit limit with applicability constraints.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CreditLimitBase">
        <xsd:sequence>
          <xsd:element name="limitApplicable" type="LimitApplicable" maxOccurs="unbounded" />
          <xsd:element name="expirationDate" type="xsd:dateTime" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CreditLimitInformation">
    <xsd:annotation>
      <xsd:documentation />
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="partyInformation" type="PartyTradeInformation" />
      <xsd:element name="limitModel" type="LimitModelEnum" />
      <xsd:element name="creditLimit" type="CreditLimit" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditLimitUtilization">
    <xsd:annotation>
      <xsd:documentation />
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="executed" type="CreditLimitUtilizationPosition">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Credit limit utilization attributable to executed trades.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="pending" type="CreditLimitUtilizationPosition">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Credit limit utilization attributable to pending unexecuted orders.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CreditLimitUtilizationPosition">
    <xsd:annotation>
      <xsd:documentation />
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="short" type="NonNegativeDecimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Credit limit utilization attributable to short positions.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="long" type="NonNegativeDecimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Credit limit utilization attributable to long positions.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="global" type="NonNegativeDecimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Global credit limit utilization amount, agnostic of long/short position direction.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="global" type="NonNegativeDecimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Global credit limit utilization amount, agnostic of long/short position direction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="DeClear">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a declear event. The deClear event allows a firm to request that a trade be removed from clearing, or a clearing service to request consent for this, or to report that is has been done.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded" />
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element name="reason" type="DeclearReason" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DeclearReason">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes why a trade was removed from clearing.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="declearReasonScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/declear-reason" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EventId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A post-trade event reference identifier allocated by a party. FpML does not define the domain values associated with this element. Note that the domain values for this element are not strictly an enumerated list.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="NonEmptyScheme">
        <xsd:attribute name="eventIdScheme" type="NonEmptyURI" />
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EventProposedMatch">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure that describes a proposed match between trades or post-trade event reports.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:group ref="TradingEventsBase.model" />
        <xsd:group ref="PostTradeEventsBase.model" />
        <xsd:group ref="ChangeEventsBase.model" />
        <xsd:group ref="OptionsEventsBase.model" />
        <xsd:element ref="additionalEvent" />
      </xsd:choice>
      <xsd:group ref="ProposedMatch.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EventsChoice">
    <xsd:choice>
      <xsd:group ref="TradingEventsBase.model" />
      <xsd:group ref="PostTradeEventsBase.model" />
      <xsd:group ref="ChangeEventsBase.model" />
      <xsd:group ref="OptionsEventsBase.model" />
      <xsd:element ref="additionalEvent" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="IndexChange">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing the effect of a change to an index.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="ChangeEvent">
        <xsd:sequence>
          <xsd:element name="indexFactor" type="xsd:decimal" />
          <xsd:element name="factoredCalculationAmount" type="Money" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="KnockOutRateObservation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes an observation that caused a barrier knock out to trigger</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="TriggerRateObservation">
        <xsd:sequence>
          <xsd:element name="rebatePayment" type="NonNegativePayment" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Any rebate payable as a result of the knock out</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MoneyRef">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a currency amount with a reference.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PositiveMoney">
        <xsd:sequence>
          <xsd:element name="notionalReference" type="NotionalReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A pointer style reference to the associated notional schedule defined elsewhere in the document.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NoTouchLowerBarrierObservation">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="triggerRate" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The rate value (level) which was attained/breached, in order to trigger the barrier event.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Defines the currency pair and quote basis for an FX rate.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="minimumObservedRate" type="ObservedRate" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The minimum value observed during the condition period.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="triggerPrice" type="PositiveMoney">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The price value (level) which was attained/breached, in order to trigger the barrier event.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="minimumObservedPrice" type="ObservedPrice" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The minimum value observed during the condition period</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="NoTouchRateObservation">
    <xsd:sequence>
      <xsd:element name="observationStartDate" type="xsd:date" />
      <xsd:element name="observationEndDate" type="xsd:date" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="lowerBarrier" type="NoTouchLowerBarrierObservation" />
          <xsd:element name="upperBarrier" type="NoTouchUpperBarrierObservation" minOccurs="0" />
        </xsd:sequence>
        <xsd:element name="upperBarrier" type="NoTouchUpperBarrierObservation" />
      </xsd:choice>
      <xsd:choice>
        <xsd:sequence>
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Cloned from exercise but looks like some bits are extraneous like payment</xsd:documentation>
          </xsd:annotation>
          <xsd:element name="exerciseSide" type="ExerciseSideEnum" minOccurs="0" />
          <xsd:choice>
            <xsd:element name="settlementType" type="SettlementTypeEnum" />
            <xsd:element name="cashSettlement" type="SimplePayment" />
            <xsd:element name="physicalSettlement" type="PhysicalSettlement" />
          </xsd:choice>
          <xsd:element name="payment" type="NonNegativePayment" minOccurs="0" />
          <xsd:element name="clearingInstructions" type="ClearingInstructions" minOccurs="0" />
        </xsd:sequence>
        <xsd:element name="isExercisable" type="xsd:boolean">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">If the touch or no touch event hasn't generated an exercise, then we specify whether the option is exercisable or not.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NoTouchUpperBarrierObservation">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="triggerRate" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation>The rate value (level) which was attained/breached, in order to trigger the barrier event.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair">
          <xsd:annotation>
            <xsd:documentation>Defines the currency pair and quote basis for an FX rate.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="maximumObservedRate" type="ObservedRate" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation>The maximum value observed during the condition period</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="triggerPrice" type="PositiveMoney">
          <xsd:annotation>
            <xsd:documentation>The price value (level) which was attained/breached, in order to trigger the barrier event.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="maximumObservedPrice" type="ObservedPrice" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation>The maximum value observed during the condition period</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="LimitApplicable">
    <xsd:annotation>
      <xsd:documentation />
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="limitType" type="LimitType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Standard code to indicate which type of credit line is being referred to - i.e. IM, DV01, PV01, CS01, Notional, Clip Size, Notional, maximumOrderQuantity</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="clipSize" type="xsd:integer" />
      <xsd:choice minOccurs="0">
        <xsd:element name="amountUtilized" type="xsd:integer" />
        <xsd:element name="utilization" type="CreditLimitUtilization">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Credit limit utilization breakdown by executed trades and pending orders.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="amountRemaining" type="xsd:integer" minOccurs="0" />
      <xsd:element name="currency" type="Currency" minOccurs="0" />
      <xsd:element name="velocity" type="Velocity" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LimitId">
    <xsd:annotation>
      <xsd:documentation />
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="NonEmptyScheme">
        <xsd:attribute name="creditLimitIdScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="LimitType">
    <xsd:annotation>
      <xsd:documentation />
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="creditLimitTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/credit-limit-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ObservedPrice">
    <xsd:sequence>
      <xsd:element name="price" type="NonNegativeMoney">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The observed rate value which triggered the barrier event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="date" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date when the rate was observed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="time" type="xsd:time" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The time when the rate ws observed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="informationSource" type="InformationSource" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The source of the observation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ObservedRate">
    <xsd:sequence>
      <xsd:element name="rate" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The observed rate value which triggered the barrier event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="date" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date when the rate was observed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="time" type="xsd:time" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The time when the rate ws observed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="informationSource" type="InformationSource" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The source of the observation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OptionEvent">
    <xsd:complexContent>
      <xsd:extension base="AbstractEvent">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="originalTrade" type="Trade">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Fully describes the original trade (prior to the exercise).</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Identified the trade to which the option event applies.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:choice>
            <xsd:element name="knockIn" type="TriggerRateObservation">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A structure describing a barrier knock in event</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="knockOut" type="KnockOutRateObservation">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A structure describing a barrier knock out event</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="touch" type="TouchRateObservation" maxOccurs="2">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A structure describing a touch event</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="noTouch" type="NoTouchRateObservation">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A structure describing the outcome of an option having no touch events</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OptionExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing an option exercise. The OptionExercise type supports partial exercise (specify the number of options or amount to exercise), full exercise (use fullExercise flag), as well as the option to request options not to be exercised.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AbstractEvent">
        <xsd:sequence>
          <xsd:element name="optionSeller" type="PartyReference" minOccurs="0" />
          <xsd:element name="optionBuyer" type="PartyReference" minOccurs="0" />
          <xsd:choice>
            <xsd:element name="originalTrade" type="Trade">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Fully describes the original trade (prior to the exercise).</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded" />
          </xsd:choice>
          <xsd:choice>
            <xsd:sequence>
              <xsd:element name="exerciseDate" type="xsd:date" minOccurs="0" />
              <xsd:element name="exerciseTime" type="xsd:time" minOccurs="0" />
            </xsd:sequence>
            <xsd:element name="exerciseTiming" type="ExerciseTimingEnum" />
          </xsd:choice>
          <xsd:group ref="OptionExerciseAmount.model" />
          <xsd:element name="exerciseSide" type="ExerciseSideEnum" minOccurs="0" />
          <xsd:choice minOccurs="0">
            <xsd:element name="settlementType" type="SettlementTypeEnum" />
            <xsd:element name="cashSettlement" type="SimplePayment" />
            <xsd:element name="physicalSettlement" type="PhysicalSettlement" />
          </xsd:choice>
          <xsd:element name="payment" type="NonNegativePayment" minOccurs="0" />
          <xsd:element name="clearingInstructions" type="ClearingInstructions" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OptionExerciseAmounts">
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="notionalReference" type="NotionalReference" minOccurs="0" />
        <xsd:element name="exerciseInNotionalAmount" type="Money">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the option should be exercised expressed as notional amount.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNotionalAmount" type="Money" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Notional amount after the Change</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="notionalScheduleReference" type="NotionalReference" minOccurs="0" />
        <xsd:element name="exerciseInNotionalSchedule" type="NonNegativeAmountSchedule">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the amount by which the option should be exercised expressed as notional schedule.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNotionalSchedule" type="NonNegativeAmountSchedule" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Notional schedule after the Change</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="numberOfOptionsReference" type="NumberOfOptionsReference" minOccurs="0" />
        <xsd:element name="exerciseInNumberOfOptions" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the option should be exercised expressed as number of options.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNumberOfOptions" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Number of Options after the Change.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="numberOfUnitsReference" type="NumberOfUnitsReference" minOccurs="0" />
        <xsd:element name="exerciseInNumberOfUnits" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the option should be exercised express as number of units.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNumberOfUnits" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Number of Units</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="OptionExpiry">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing an option expiring (i.e. passing its last exercise time and becoming worthless.)</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AbstractEvent">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="originalTrade" type="Trade">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Fully describes the original trade (prior to the exercise).</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded" />
          </xsd:choice>
          <xsd:element name="date" type="xsd:date" />
          <xsd:element name="time" type="xsd:time" />
          <xsd:element name="exerciseProcedure" type="ExerciseProcedureOption" minOccurs="0" />
          <xsd:element name="actionOnExpiration" type="ActionOnExpiration" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OptionExpiryBase">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing an option expiring.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded" />
      <xsd:element name="date" type="xsd:date" />
      <xsd:element name="time" type="xsd:time" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PackageHeader">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Identifying information for a tradePackage (a bundle of trades).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="packageIdentifier" type="IssuerTradeId" minOccurs="0" />
      <xsd:element name="orderIdentifier" type="OrderIdentifier" minOccurs="0" />
      <xsd:element name="packageType" type="PackageType" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Classification of the package. FpML has defined a list of coding scheme values. Different organizations might have different naming schemes for the packages so the multiplicity of unbounded is meant to support synonyms but it does not mean that a trade has multiple package types.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="size" type="PositiveDecimal" minOccurs="0" />
      <xsd:element name="originatingEvent" type="OriginatingEvent" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This may be used to describe why a package was created. This can be used to provide context for a newly created package that is not part of a post-trade event. For example, it can report that the package was created as a result of netting activity, or due to a transfer, an allocation process, etc.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="packageInformation" type="PackageInformation" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PhysicalSettlement">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure that describes how an option settles into a physical trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="resultingTradeIdentifier" type="PartyTradeIdentifier">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ID of the trade that resulted from the physical settlement.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="resultingTrade" type="Trade">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The trade that resulted from the physical settlement.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element ref="product" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ReportingRegimeIdentifier">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that provides identification for reporting regimes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="name" type="ReportingRegimeName">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identifies the reporting regime under which this data is reported. For example, Dodd-Frank, MiFID, HongKongOTCDRepository, ODRF</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="supervisorRegistration" type="SupervisorRegistration" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identifies the specific regulator or other supervisory body for which this data is produced. For example, CFTC, SEC, UKFSA, ODRF, SFC, ESMA.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:element name="supervisorRegistration" type="SupervisorRegistration" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Identifies the specific regulator or other supervisory body for which this data is produced. For example, CFTC, SEC, UKFSA, ODRF, SFC, ESMA.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="reportingRole" type="ReportingRole" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Identifies the role of this party in reporting this trade for this regulator; roles could include ReportingParty and Voluntary reporting.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="actionType" type="ActionType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Reports a regulator-specific code for the action associated with this submission. Used, for example, to report the ESMA action type.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RequestedClearingAction">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes whether a trade is to be cleared.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="requestedClearingActionScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/requested-clearing-action" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="RequestedWithdrawalAction">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes what the requester would like to see done to implement the withdrawal, e.g. ExpungeRecords, RetainRecords.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="requestedWithdrawalActionScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/requested-withdrawal-action" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TerminatingEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes why a trade terminated.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="terminatingEventScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/terminating-event" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="TradeAmendmentContent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a negotiated amendment.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AbstractEvent">
        <xsd:sequence>
          <xsd:element name="trade" type="Trade">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A full description of the amended trade (i.e. the trade after the amendment).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="AgreementAndEffectiveDates.model" />
          <xsd:group ref="ReportingNotionalChange.model" minOccurs="0" />
          <xsd:group ref="TradeAlterationPayment.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeChangeBase">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a trade change.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AbstractEvent">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded" />
            <xsd:element name="originalTrade" type="Trade" />
          </xsd:choice>
          <xsd:element name="resultingTrade" type="Trade" minOccurs="0" />
          <xsd:group ref="AgreementAndEffectiveDates.model" />
          <xsd:group ref="TradeAlterationPayment.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeChangeContent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a non-negotiated trade resulting from a market event.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:element name="oldTradeIdentifier" type="PartyTradeIdentifier">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The original qualified trade identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="oldTrade" type="Trade">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The original trade details.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="trade" type="Trade">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A full description of the amended trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="effectiveDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which the change become effective</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element ref="changeEvent">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Substitution point for types of change</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="payment" type="Payment" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes a payment made in settlement of the change.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeLegPriceChange">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a change to the size of a single leg or stream of a trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="priceReference" type="Reference" />
        <xsd:element name="instrumentId" type="InstrumentId" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Identification of the underlying asset, using public and/or private identifiers.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="priceChangeAmount" type="xsd:decimal" />
      <xsd:element name="newPrice" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeLegSizeChange">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a change to the size of a single leg or stream of a trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:group ref="TradeLegNotionalChange.model" />
      <xsd:group ref="TradeLegNumberOfOptionsChange.model" />
      <xsd:group ref="TradeLegNumberOfUnitsChange.model" />
      <xsd:group ref="TradeLegNotionalScheduleChange.model" />
      <xsd:group ref="TradeLegFixedAmountChange.model" />
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="TradeMaturity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a trade maturing.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded" />
      <xsd:element name="date" type="xsd:date" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeNotionalChange">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a change to the size of a trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="TradeChangeBase">
        <xsd:sequence>
          <xsd:choice>
            <xsd:group ref="TradeNotionalChange.model" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="The model could not provide support for linking notionals with product legs. Also, there was limitation in the existing increase and termination events which don’t allow the reporting of both change of units or change of notional amount as required for dividend swaps, for example. Instead, sizeChange, should be used." />
            <xsd:element name="sizeChange" type="TradeLegSizeChange" maxOccurs="unbounded" />
          </xsd:choice>
          <xsd:element name="priceChange" type="TradeLegPriceChange" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeNovationContent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing a novation.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="AbstractEvent">
        <xsd:sequence>
          <xsd:choice>
            <xsd:group ref="NewTrade.model" />
            <xsd:sequence>
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Choice between identification and representation of the old contract.</xsd:documentation>
              </xsd:annotation>
              <xsd:group ref="OldTrade.model" />
              <xsd:group ref="FeeTrade.model" minOccurs="0" />
              <xsd:group ref="NewTrade.model" minOccurs="0" />
            </xsd:sequence>
            <xsd:sequence>
              <xsd:group ref="FeeTrade.model" />
              <xsd:group ref="NewTrade.model" minOccurs="0" />
            </xsd:sequence>
          </xsd:choice>
          <xsd:group ref="NovationRoles.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The roles of the participants in the novation</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:group ref="NovationDates.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The dates and times associated with the novation event.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:group ref="NovationAmounts.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The amounts novated and remaining. These are optional in some reporting views because when reporting standalone fee trades this information would be duplicated.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:group ref="NovationTerms.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Documentation and other terms relating to the novation.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="payment" type="Payment" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Describes a payment made in settlement of the novation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradePackage">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A bundle of trades collected together into a single unit for reporting.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="packageHeader" type="PackageHeader" minOccurs="0" />
      <xsd:choice>
        <xsd:element name="trade" type="Trade" maxOccurs="unbounded" />
        <xsd:group ref="TradeReferenceInformation.model" maxOccurs="unbounded" />
        <xsd:element name="tradeIdentifier" type="TradeIdentifier" maxOccurs="unbounded" />
      </xsd:choice>
      <xsd:element name="approvals" type="Approvals" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A container for approval states in the workflow.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TradeReferenceInformation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a type that allows trade identifiers and/or trade information to be represented for a trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:element name="originatingEvent" type="OriginatingEvent">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">This may be used to describe why a trade was created. This can be used to provide context for a newly created trade that is not part of a post-trade event. For example, it can report that the trade was created as a result of netting activity, or due to a transfer, an allocation process, etc. Omitting this implies that the trade record was created as a result of a negotiated new trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="terminatingEvent" type="TerminatingEvent">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">This may be used to describe why a trade was terminated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="partyTradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This allows the acknowledging party to supply additional trade identifiers for a trade underlying a request relating to a business event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="partyTradeInformation" type="PartyTradeInformation" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This allows the acknowledging party to supply additional trade information about a trade underlying a request relating to a business event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="productType" type="ProductType" minOccurs="0" />
      <xsd:element name="productId" type="ProductId" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TouchRateObservation">
    <xsd:complexContent>
      <xsd:extension base="TriggerRateObservation">
        <xsd:choice>
          <xsd:sequence>
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Cloned from exercise but looks like some bits are extraneous like payment</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="exerciseSide" type="ExerciseSideEnum" minOccurs="0" />
            <xsd:choice>
              <xsd:element name="settlementType" type="SettlementTypeEnum" />
              <xsd:element name="cashSettlement" type="SimplePayment" />
              <xsd:element name="physicalSettlement" type="PhysicalSettlement" />
            </xsd:choice>
            <xsd:element name="payment" type="NonNegativePayment" minOccurs="0" />
            <xsd:element name="clearingInstructions" type="ClearingInstructions" minOccurs="0" />
          </xsd:sequence>
          <xsd:element name="isExercisable" type="xsd:boolean">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">If the touch or no touch event hasn't generated an exercise, then we specify whether the option is exercisable or not.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TriggerRateObservation">
    <xsd:sequence>
      <xsd:element name="observationDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which the rate observation occurred, in order to trigger the barrier event.observationDate</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="observationTime" type="BusinessCenterTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The time at which the observation occurred.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="informationSource" type="InformationSource" minOccurs="0" />
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="triggerRate" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The rate value (level) which was attained/breached, in order to trigger the barrier event.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines the currency pair and quote basis for an FX rate.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="observedRate" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The observed rate value which triggered the barrier event.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element name="triggerPrice" type="PositiveMoney">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The price value (level) which was attained/breached, in order to trigger the barrier event.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="observedPrice" type="PositiveMoney" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The observed price value which triggered the barrier event.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:choice>
      <xsd:element name="triggerCondition" type="TriggerConditionEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The side of the trigger rate/price (level) on which a rate observation occurred, in order to trigger the barrier event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Velocity">
    <xsd:annotation>
      <xsd:documentation />
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="periodMultiplier" type="xsd:integer" />
      <xsd:element name="period" type="PeriodTimeEnum" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Withdrawal">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure describing the removal of a trade from a service, such as a reporting service.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="partyTradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identifiers of the trade that is being withdrawn.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="partyTradeInformation" type="WithdrawalPartyTradeInformation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Holds party-specific information about the trade that is being withdrawn from.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:element name="trade" type="Trade">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The full trade representation that is being withdrawn.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="effectiveDate" type="xsd:date" />
      <xsd:element name="requestedAction" type="RequestedWithdrawalAction" minOccurs="0" />
      <xsd:element name="reason" type="WithdrawalReason" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="reportingRegime" type="ReportingRegimeIdentifier" minOccurs="0" maxOccurs="unbounded" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="Deprecated in favor of partyTradeInformation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">DEPRECATED. The supervisor/regulator to which this withdrawal applies</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WithdrawalPartyTradeInformation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining party-specific additional information that may be recorded against a trade, for withdrawal purposes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="PartyAndAccountReferences.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Identifies that party that has ownership of this information. For shared trade information, this will reference the originator of the date (for example, an execution facility or clearinghouse).</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:element name="relatedParty" type="RelatedParty" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This may be used to identify one or more parties that perform a role within the transaction. If this is within a partyTradeInformation block, the related party performs the role with respect to the party identifie by the "partyReference" in the partyTradeInformation block.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="reportingRegime" type="ReportingRegimeIdentifier" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Allows the organization to specify which if any relevant regulators or other supervisory bodies this is relevant for, and what reporting rules apply.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WithdrawalReason">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type that describes why a trade was withdrawn.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="withdrawalReasonScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/withdrawal-reason" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="additionalEvent" type="AdditionalEvent" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The additionalEvent element is an extension/substitution point to customize FpML and add additional events.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="basketChange" type="BasketChangeEvent" substitutionGroup="changeEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a change due to change in composition of basket underlyer</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="changeEvent" type="ChangeEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract substitutable place holder for specific change details.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="corporateAction" type="CorporateActionEvent" substitutionGroup="changeEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a change due to a corporate action</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="indexChange" type="IndexChange" substitutionGroup="changeEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes a change due to an index component being adjusted.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:group name="AgreementAndEffectiveDates.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A model group defining agreement and effective dates.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="agreementDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which the change was agreed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="executionDateTime" type="ExecutionDateTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date and time at which the negotiated change to the terms of the original contract was agreed, such as via telephone or electronic trading system (i.e., agreement date/time).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="effectiveDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date on which the change become effective.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="ChangeEventsBase.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Choice between change-related events.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="change" type="TradeChangeContent" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="Compression.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A model group holding information about compressions affecting this trade/event.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="compressionActivity" type="CompressionActivity">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Compression information for the trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="OptionsEventsBase.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Choice between options related events.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="optionExercise" type="OptionExercise">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A structure describing an option exercise event. The optionExercise event supports partial exercise (specify the number of options or amount to exercise), full exercise (use fullExercise flag), as well as the option to request options not to be exercised.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="optionExpiry" type="OptionExpiry" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A structure describing an option expiring event (i.e. passing its last exercise time and becoming worthless.)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="optionEvent" type="OptionEvent">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A structure describing knock in, knock out, touch and no touch events.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="PostTradeEventsBase.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Choice between amendment, increase, termination, and novation events.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="amendment" type="TradeAmendmentContent" />
      <xsd:element name="increase" type="TradeNotionalChange" />
      <xsd:sequence>
        <xsd:element name="terminatingEvent" type="TerminatingEvent" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">This may be used to describe why a trade was terminated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="termination" type="TradeNotionalChange" />
      </xsd:sequence>
      <xsd:element name="novation" type="TradeNovationContent" />
      <xsd:element name="withdrawal" type="Withdrawal" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="TradingAndPostTradeEvents.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Choice between a trading, a post-trade event, and the extension point additional event</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:group ref="TradingEventsBase.model" />
      <xsd:group ref="PostTradeEventsBase.model" />
      <xsd:element ref="additionalEvent" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="TradingEvents.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Information about a trading event that represent a new trading activity (on a newly-created trade), or in some cases the a representation of the trade's current state. Also allows the "additionEvent" extension point.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:group ref="TradingEventsBase.model" />
      <xsd:element ref="additionalEvent" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="TradingEventsBase.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Information about a trading event that represents a new trading activity (on a newly-created trade or package of trades), or in some cases the a representation of the trade's current state..</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="tradePackage" type="TradePackage" />
      <xsd:sequence>
        <xsd:element name="originatingEvent" type="OriginatingEvent" minOccurs="0" />
        <xsd:element name="trade" type="Trade" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="EventValuation.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A model group holding valuation information for an event.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quote" type="BasicQuotation" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Pricing information for the trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="FeeTrade.model">
    <xsd:choice>
      <xsd:element name="feeTradeIdentifier" type="PartyTradeIdentifier">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates a reference to the implied trade (the "fee trade") that the associated novation fee based on. This is equivalent to the new trade that is created by the novation (between the transferee and the remaining party), but is between the transferor and the transferee.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="feeTrade" type="Trade">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates the original trade between the transferor and the remaining party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="NewTrade.model">
    <xsd:choice>
      <xsd:annotation>
        <xsd:documentation xml:lang="en">Choice between identification and representation of the new contract.</xsd:documentation>
      </xsd:annotation>
      <xsd:element name="newTradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates a reference to the new trade between the transferee and the remaining party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="newTrade" type="Trade">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates the new trade between the transferee and the remaining party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="NovationAmounts.model">
    <xsd:choice>
      <xsd:group ref="NovationAmountsOld.model" />
      <xsd:element name="novationAmount" type="TradeLegSizeChange" maxOccurs="unbounded" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="NovationAmountsOld.model">
    <xsd:choice>
      <xsd:annotation>
        <xsd:documentation xml:lang="en">Choice for expressing the novated amount as either a money amount, number of options, or number of units, according the the financial product which is being novated.</xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="novatedAmount" type="Money" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The amount which represents the portion of the Old Contract being novated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="remainingAmount" type="Money" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The amount which represents the portion of the Old Contract not being novated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="novatedNumberOfOptions" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The number of options which represent the portion of the Old Contract being novated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="remainingNumberOfOptions" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The number of options which represent the portion of the Old Contract not being novated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="novatedNumberOfUnits" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The number of options which represent the portion of the Old Contract being novated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="remainingNumberOfUnits" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The number of options which represent the portion of the Old Contract not being novated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="NovationDates.model">
    <xsd:sequence>
      <xsd:element name="novationDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the date that one party's legal obligations with regard to a trade are transferred to another party. It corresponds to the Novation Date section of the 2004 ISDA Novation Definitions, section 1.16.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="executionDateTime" type="ExecutionDateTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date and time at which the change was agreed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="novationTradeDate" type="xsd:date" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the date the parties agree to assign or novate a Contract. If this element is not specified, the novationContractDate will be deemed to be the novationDate. It corresponds to the Novation Trade Date section of the 2004 ISDA Novation Definitions, section 1.17.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="NovationRoles.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The roles of the parties involved in the novation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="transferor" type="PartyReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a party identifier defined elsewhere in the document. In a three-way novation the party referenced is the Transferor (outgoing party) in the novation. The Transferor means a party which transfers by novation to a Transferee all of its rights, liabilities, duties and obligations with respect to a Remaining Party. In a four-way novation the party referenced is Transferor 1 which transfers by novation to Transferee 1 all of its rights, liabilities, duties and obligations with respect to Transferor 2. ISDA 2004 Novation Term: Transferor (three-way novation) or Transferor 1 (four-way novation).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="transferorAccount" type="AccountReference" minOccurs="0" />
      <xsd:element name="transferee" type="PartyReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a party identifier defined elsewhere in the document. In a three-way novation the party referenced is the Transferee (incoming party) in the novation. Transferee means a party which accepts by way of novation all rights, liabilities, duties and obligations of a Transferor with respect to a Remaining Party. In a four-way novation the party referenced is Transferee 1 which accepts by way of novation the rights, liabilities, duties and obligations of Transferor 1. ISDA 2004 Novation Term: Transferee (three-way novation) or Transferee 1 (four-way novation).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="otherTransferee" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a party identifier defined elsewhere in the document. In a five-way novation the party referenced is the Transferee's legal entity that is involved in the settlement of the fee leg of the novation transaction (this might be a different legal entity than the one that assumes the novation trade). NB: this element has been added pending confirmation of the business need/context in which it would be used, and might not appear in a subsequent draft of this schema.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="transfereeAccount" type="AccountReference" minOccurs="0" />
      <xsd:element name="otherTransfereeAccount" type="AccountReference" minOccurs="0" />
      <xsd:element name="remainingParty" type="PartyReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a party identifier defined elsewhere in the document. In a three-way novation the party referenced is the Remaining Party in the novation. Remaining Party means a party which consents to a Transferor's transfer by novation and the acceptance thereof by the Transferee of all of the Transferor's rights, liabilities, duties and obligations with respect to such Remaining Party under and with respect of the Novated Amount of a transaction. In a four-way novation the party referenced is Transferor 2 per the ISDA definition and acts in the role of a Transferor. Transferor 2 transfers by novation to Transferee 2 all of its rights, liabilities, duties and obligations with respect to Transferor 1. ISDA 2004 Novation Term: Remaining Party (three-way novation) or Transferor 2 (four-way novation).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="remainingPartyAccount" type="AccountReference" minOccurs="0" />
      <xsd:element name="otherRemainingParty" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a party identifier defined elsewhere in the document. This element is not applicable in a three-way novation and should be omitted. In a four-way novation the party referenced is Transferee 2. Transferee 2 means a party which accepts by way of novation the rights, liabilities, duties and obligations of Transferor 2. ISDA 2004 Novation Term: Transferee 2 (four-way novation).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="otherRemainingPartyAccount" type="AccountReference" minOccurs="0" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="NovationTerms.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Documentation and other terms (such as date terms) specific to this novation event.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="fullFirstCalculationPeriod" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This element corresponds to the applicability of the Full First Calculation Period as defined in the 2004 ISDA Novation Definitions, section 1.20.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="firstPeriodStartDate" type="FirstPeriodStartDate" minOccurs="0" maxOccurs="2">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Element that is used to be able to make sense of the “new transaction” without requiring reference back to the “old transaction”. In the case of interest rate products there are potentially 2 “first period start dates” to reference – one with respect to each party to the new transaction. For Credit Default Swaps there is just the one with respect to the party that is the fixed rate payer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="nonReliance" type="Empty" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This element corresponds to the non-Reliance section in the 2004 ISDA Novation Definitions, section 2.1 (c) (i). The element appears in the instance document when non-Reliance is applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="creditDerivativesNotices" type="CreditDerivativesNotices" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This element should be specified if one or more of either a Credit Event Notice, Notice of Publicly Available Information, Notice of Physical Settlement or Notice of Intended Physical Settlement, as applicable, has been delivered by or to the Transferor or the Remaining Party. The type of notice or notices that have been delivered should be indicated by setting the relevant boolean element value(s) to true. The absence of the element means that no Credit Event Notice, Notice of Publicly Available Information, Notice of Physical Settlement or Notice of Intended Physical Settlement, as applicable, has been delivered by or to the Transferor or the Remaining Party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="contractualDefinitions" type="ContractualDefinitions" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The definitions (such as those published by ISDA) that will define the terms of the novation transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="contractualTermsSupplement" type="ContractualTermsSupplement" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A contractual supplement (such as those published by ISDA) that will apply to the trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="OldTrade.model">
    <xsd:choice>
      <xsd:element name="oldTradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates a reference to the original trade between the transferor and the remaining party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="oldTrade" type="Trade">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates the original trade between the transferor and the remaining party.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="OptionExerciseAmount.model">
    <xsd:choice>
      <xsd:element name="exerciseAction" type="ExerciseActionEnum" />
      <xsd:element name="expiry" type="xsd:boolean" />
      <xsd:element name="fullExercise" type="xsd:boolean" />
      <xsd:sequence>
        <xsd:element name="exerciseInNotionalAmount" type="Money">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the option should be exercised expressed as notional amount.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNotionalAmount" type="Money">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Notional amount after the Change</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="exerciseInNumberOfOptions" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the option should be exercised expressed as number of options.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNumberOfOptions" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Number of Options after the Change.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="exerciseInNumberOfUnits" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the option should be exercised express as number of units.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNumberOfUnits" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Number of Units</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="specifiedExercise" type="OptionExerciseAmounts" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the Number of Units</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="ProposedMatch.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure that describes a potential match for a trade or event, together with descriptors of that match (quality, etc.).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="matchId" type="MatchId" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A unique identifier assigned by the matching service to each set of matched positions.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="difference" type="TradeDifference" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A type used to record the details of a difference between two sides of a business event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="matchScore" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Numeric score to represent the quality of the match.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="ReportingNotionalChange.model">
    <xsd:sequence>
      <xsd:element name="notionalChange" type="NotionalChangeEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Indication as to whether the transaction is an increase or decrease of notional of a derivative contract. Only applies when there is change in notional for a derivative contract</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element name="changeInNotional" type="MoneyRef" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The change in notional amount for a prior report as a result of this event. The current notional will be reported in the trade itself. This corresponds to MiFIR Nominal or Monetary amount values; these can be distinguished by the esmaNotionalType indicator.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="changeInNumberOfOptions" type="AmountRef" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The change in nominal amount from a prior report as a result of this event. The current number of options will be reported in the trade itself. This corresponds to the MiFIR "units" value.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="changeInQuantity" type="UnitQuantityRef" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The change in quantity(s) from a prior report as a result of this event. The current quantity will be reported in the trade itself. This corresponds to the MiFIR "units" value.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeAlterationPayment.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A model group defining a payment structure.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="payment" type="Payment" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes a payment made in settlement of the change. Normally there will be a single fee, but there could be additional payments such as principal exchanges resulting from the termination.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeLegFixedAmountChange.model">
    <xsd:sequence>
      <xsd:element name="knownAmountReference" type="AmountReference" minOccurs="0" />
      <xsd:element name="changeInKnownAmount" type="NonNegativeMoney" />
      <xsd:element name="outstandingKnownAmount" type="NonNegativeMoney" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeLegNotionalChange.model">
    <xsd:sequence>
      <xsd:element name="notionalReference" type="NotionalReference" minOccurs="0" />
      <xsd:element name="changeInNotionalAmount" type="NonNegativeMoney" />
      <xsd:element name="outstandingNotionalAmount" type="NonNegativeMoney" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeLegNotionalScheduleChange.model">
    <xsd:sequence>
      <xsd:element name="notionalScheduleReference" type="NotionalReference" minOccurs="0" />
      <xsd:element name="changeInNotionalSchedule" type="NonNegativeAmountSchedule" />
      <xsd:element name="outstandingNotionalSchedule" type="NonNegativeAmountSchedule" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeLegNumberOfOptionsChange.model">
    <xsd:sequence>
      <xsd:element name="numberOfOptionsReference" type="NumberOfOptionsReference" minOccurs="0" />
      <xsd:element name="changeInNumberOfOptions" type="xsd:decimal" />
      <xsd:element name="outstandingNumberOfOptions" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeLegNumberOfUnitsChange.model">
    <xsd:sequence>
      <xsd:element name="numberOfUnitsReference" type="NumberOfUnitsReference" minOccurs="0" />
      <xsd:element name="changeInNumberOfUnits" type="xsd:decimal" />
      <xsd:element name="outstandingNumberOfUnits" type="xsd:decimal" />
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="TradeNotionalChange.model" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="The model could not provide support for linking notionals with product legs. Also, there was limitation in the existing increase and termination events which don’t allow the reporting of both change of units or change of notional amount as required for dividend swaps, for example. Instead, sizeChange, should be used.">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">DEPRECATED. A structure describing a change to the trade notional.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="changeInNotionalAmount" type="NonNegativeMoney" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the Notional Amount changes. The direction of the change (increase or decrease) is specified by the event type (Termination =&gt; reduction, Increase =&gt; greater.)</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNotionalAmount" type="NonNegativeMoney" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Notional amount after the Change</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="changeInNumberOfOptions" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the Number of Options changes</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNumberOfOptions" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Number of Options after the Change.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="changeInNumberOfUnits" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the fixed amount by which the Number of Units changes</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="outstandingNumberOfUnits" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the Number of Units</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="TradeOrInfo.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a model group that allows either details of an event or information about a trade to be provided. Typically this will be used in a response to a request.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="originatingEvent" type="OriginatingEvent" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">This may be used to describe why a trade was created. This can be used to provide context for a newly created trade that is not part of a post-trade event. For example, it can report that the trade was created as a result of netting activity, or due to a transfer, an allocation process, etc. Omitting this implies that the trade record was created as a result of a negotiated new trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="trade" type="Trade" />
      </xsd:sequence>
      <xsd:group ref="TradeReferenceInformation.model" />
      <xsd:element name="tradePackage" type="TradePackage" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="TradeReferenceInformation.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a model group that allows information about a trade to be represented.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="tradeReferenceInformation" type="TradeReferenceInformation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Information about a trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:complexType name="UnitQuantityRef">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a quantity and unit with a reference.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="UnitQuantity">
        <xsd:sequence>
          <xsd:element name="quantityReference" type="NotionalReference" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:schema>

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