<?xml version="1.0" encoding="utf-8"?>
<!-- 
== Copyright (c) 2002-2010. All rights reserved. 
== Financial Products Markup Language is subject to the FpML public license. 
== A copy of this license is available at http://www.fpml.org/license/license.html
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.fpml.org/2010/FpML-4-9" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:fpml="http://www.fpml.org/2010/FpML-4-9" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" ecore:nsPrefix="fpml" ecore:package="org.fpml" ecore:documentRoot="FpML" targetNamespace="http://www.fpml.org/2010/FpML-4-9" version="$Revision: 7265 $" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xsd:include schemaLocation="fpml-msg-4-9.xsd" />
  <xsd:include schemaLocation="fpml-reconciliation-4-9.xsd" />
  <xsd:complexType name="ChangeEvent" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The abstract base class for all types which define the changes resulting from a market event.</xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>
  <xsd:complexType name="ContractAmended">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that a Contract has been Amended.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="amendment" type="ContractAmendment">
            <xsd:annotation>
              <xsd:documentation>Details of the amendment</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractAmendedCancelled">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that an Amendment to the Contract has been subject to Cancellation.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="ContractReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of a single Contract which is the subject of this message. Each Party may provide one to many identifiers for this contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="amendment" type="ContractAmendment" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation>Details of the amendment being cancelled</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractAmendment">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Details of the amendment.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="contract" type="Contract">
        <xsd:annotation>
          <xsd:documentation>A fulll description of the amended contract.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="agreementDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation>The date on which the change was agreed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="effectiveDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation>The date on which the change become effective</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="payment" type="Payment" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes a payment made in settlement of the change.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractCancelled">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that a Contract has been subject to Cancellation.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="ContractReferenceMessage" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractChange">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Details of the Contract's non-negotiated changes.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:element name="oldContractIdentifier" type="PartyTradeIdentifier" />
        <xsd:element name="oldContract" type="Contract" />
      </xsd:choice>
      <xsd:element name="contract" type="Contract">
        <xsd:annotation>
          <xsd:documentation>A fulll description of the changed contract.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="effectiveDate" type="xsd:date">
        <xsd:annotation>
          <xsd:documentation>The date on which the change become effective.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element ref="changeEvent">
        <xsd:annotation>
          <xsd:documentation>Substitution point for types of change.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="payment" type="Payment" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Describes a payment made in settlement of this change.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ContractChanged">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that a Contract has been subject to non-negotiated changes resulting from a market event.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="change" type="ContractChange">
            <xsd:annotation>
              <xsd:documentation>Details of the Contract's non-negotiated changes.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractChangedCancelled">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that a Contract's non-negotiated changes has been subject to Cancellation.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="ContractReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of a single Contract which is the subject of this message. Each Party may provide one to many identifiers for this contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="change" type="ContractChange">
            <xsd:annotation>
              <xsd:documentation>Details of the changes being cancelled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractCreated">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that a Contract has been Created.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="tradeReference" type="PartyTradeIdentifiers" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Optional reference to trade execution.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="contract" type="Contract">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Contract which has been created.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractFullTermination">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification of an agreed Contract Full Termination. A separate notification message is provided for Contract Partial Termination, which should not result in the contract being Fully Terminated.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="termination" type="ContractTermination">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the full termination.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractFullTerminationCancelled">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A Notification that a Full Termination event is cancelled.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="ContractReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Reference to the contract affected by the cancellation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="termination" type="ContractTermination" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the Full Termination being cancelled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractIncreased">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that a Contract has been Increased.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="increase" type="ChangeContractSize">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Increase Details.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractIncreasedCancelled">
    <xsd:annotation>
      <xsd:documentation>A Notification that an Increase event is cancelled.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="ContractReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Reference to the contract affected by the cancellation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="increase" type="ChangeContractSize" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the Increase being cancelled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractNovated">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that a Contract has been Novated.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="novation" type="ContractNovation">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Novation Details.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" minOccurs="3" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractNovatedCancelled">
    <xsd:annotation>
      <xsd:documentation>A Notification that a Novation event is cancelled.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="ContractReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Reference to the contract affected by the cancellation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="novation" type="ContractNovation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the Novation being cancelled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractPartialTermination">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Notification that a Contract has been subject to Partial Termination.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="termination" type="ChangeContractSize">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Termination details.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractPartialTerminationCancelled">
    <xsd:annotation>
      <xsd:documentation>A Notification that a Partial Termination event is cancelled.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="ContractReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Reference to the contract affected by the cancellation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="termination" type="ChangeContractSize" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the Termination being cancelled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Details of the payments, like amount breakdowns, settlement information.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ContractReferenceMessage" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base class for Contract notification messages that require Contract Reference only.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="contractReference" type="ContractReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of a single Contract which is the subject of this message. Each Party may provide one to many identifiers for this contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Identification of the Parties to this Contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="IndexChange">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines index factor information when credit events occur on index constituents.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="ChangeEvent">
        <xsd:sequence>
          <xsd:element name="indexFactor" type="RestrictedPercentage">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The index version factor, expressed as a decimal, that multiplied by the original notional amount yields the notional amount covered by the seller. A factor of 75% would be represented as 0.75.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="factoredCalculationAmount" type="Money">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">This relates only to CDS index contracts and represents the factored notional amount, obtained by multiplying the index factor to the contract notional amount. See indexFactor description above.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="changeEvent" type="ChangeEvent" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The head of the substitution group for all elements which define the changes resulting from a market event.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="indexChange" type="IndexChange" substitutionGroup="changeEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Contains index factor information when credit events occur on index constituents.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
</xsd:schema>

