<?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" xmlns:fpml-annotation="http://www.fpml.org/annotation" ecore:nsPrefix="fpml" ecore:package="org.fpml" ecore:documentRoot="FpML" targetNamespace="http://www.fpml.org/2010/FpML-4-9" version="$Revision: 7265 $" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xsd:include schemaLocation="fpml-msg-4-9.xsd" />
  <xsd:complexType name="TradeAmended" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="Misuse of this message was causing interoperability problems. See TradeExecutionModified message instead.">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">This message is DEPRECATED and should not be used in new implementations. See TradeExecutionModified message instead. A notification to inform downstream systems when a system that acts as source of trade information detects that a trade has been modified.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="Trade" />
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeCancelled" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="Misuse of this message was causing interoperability problems. See TradeExecutionCancelled message instead.">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">This message is DEPRECATED and should not be used in new implementations. See TradeExecutionCancelled message instead. A notification to inform downstream systems when a system that acts as source of trade information detects that a trade has been cancelled.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="tradeIdentifier" type="TradeIdentifier" maxOccurs="unbounded" />
            <xsd:element name="trade" type="Trade" />
          </xsd:choice>
          <xsd:element name="party" type="Party" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeCreated" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="Misuse of this message was causing interoperability problems. See TradeExecution message instead for block-level trade execution.">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">This message is DEPRECATED and should not be used in new implementations. See TradeExecution message instead. A notification to inform downstream systems when a system that acts as source of trade information detects that a new trade has been created.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="Trade" />
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeExecution">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">This message is used to report the execution of a block-level trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:element name="trade" type="Trade">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Block-level trade being executed.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Parties referenced by the trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeExecutionCancelled">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">This message is used to cancel a previously reported trade execution, e.g. if the trade was raised in error.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:choice>
            <xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded" />
            <xsd:element name="trade" type="Trade" />
          </xsd:choice>
          <xsd:element name="party" type="Party" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Parties referenced by the trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TradeExecutionModified">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">This message is used to report a modification to a previously-reported trade execution.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NotificationMessage">
        <xsd:sequence>
          <xsd:choice minOccurs="0">
            <xsd:element name="originalTrade" type="Trade">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Complete description of the trade prior to the modification.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="originalTradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Identifiers of the trade prior to the modification.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="revisedTrade" type="Trade">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Complete description of the trade after the modification.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Parties referenced by the trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:schema>

