<!--
== 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: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: 2864 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:include schemaLocation="fpml-business-events-5-0.xsd" />
<xsd:complexType name="AllocationApproved">
<xsd:complexContent>
<xsd:extension base="ResponseMessage">
<xsd:sequence>
<xsd:element name="blockTradeIdentifier" type="TradeIdentifier" minOccurs="0" />
<xsd:element name="allocations" type="Allocations" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AllocationRefused">
<xsd:complexContent>
<xsd:extension base="ResponseMessage">
<xsd:sequence>
<xsd:element name="blockTradeIdentifier" type="TradeIdentifier" minOccurs="0" />
<xsd:element name="allocations" type="Allocations" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
<xsd:element name="reason" type="Reason" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ClearingConfirmed">
<xsd:complexContent>
<xsd:extension base="NotificationMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ClearingRefused">
<xsd:complexContent>
<xsd:extension base="NotificationMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
<xsd:element name="reason" type="Reason" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConfirmationAgreed">
<xsd:complexContent>
<xsd:extension base="ResponseMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConfirmationDisputed">
<xsd:complexContent>
<xsd:extension base="ResponseMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
<xsd:element name="reason" type="Reason" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConfirmationRetracted">
<xsd:complexContent>
<xsd:extension base="NonCorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConfirmationStatus">
<xsd:complexContent>
<xsd:extension base="ResponseMessage">
<xsd:sequence>
<xsd:element name="status" type="EventStatus">
<xsd:annotation>
<xsd:documentation xml:lang="en">Defines the confirmation status of a trade or post-trade event (e.g. Matched, Mismatched, Unmatched, Alleged).</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice>
<xsd:sequence>
<xsd:element name="assertedEvent" type="EventsChoice" />
<xsd:element name="proposedMatch" type="EventProposedMatch" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:element name="allegedEvent" type="EventsChoice" />
</xsd:choice>
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConsentGranted">
<xsd:complexContent>
<xsd:extension base="ResponseMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConsentRefused">
<xsd:complexContent>
<xsd:extension base="ResponseMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
<xsd:element name="reason" type="Reason" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ExecutionAdvice">
<xsd:complexContent>
<xsd:extension base="CorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" />
<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:group ref="PartiesAndAccounts.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ExecutionAdviceRetracted">
<xsd:complexContent>
<xsd:extension base="NonCorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<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:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ExecutionNotification">
<xsd:complexContent>
<xsd:extension base="CorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" />
<xsd:group ref="PartiesAndAccounts.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ExecutionRetracted">
<xsd:complexContent>
<xsd:extension base="NonCorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RequestAllocation">
<xsd:complexContent>
<xsd:extension base="CorrectableRequestMessage">
<xsd:sequence>
<xsd:element name="relatedParty" type="RelatedParty" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">Identifies a related party performing a role within the transaction.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="blockTradeIdentifier" type="TradeIdentifier" />
<xsd:element name="allocations" type="Allocations" />
<xsd:group ref="PartiesAndAccounts.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RequestAllocationRetracted">
<xsd:complexContent>
<xsd:extension base="NonCorrectableRequestMessage">
<xsd:sequence>
<xsd:element name="blockTradeIdentifier" type="TradeIdentifier" minOccurs="0" />
<xsd:element name="allocations" type="Allocations" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RequestClearing">
<xsd:complexContent>
<xsd:extension base="CorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" />
<xsd:group ref="PartiesAndAccounts.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RequestClearingRetracted">
<xsd:complexContent>
<xsd:extension base="NonCorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RequestConfirmation">
<xsd:complexContent>
<xsd:extension base="CorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" />
<xsd:group ref="PartiesAndAccounts.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RequestConsent">
<xsd:complexContent>
<xsd:extension base="CorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" />
<xsd:group ref="PartiesAndAccounts.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RequestConsentRetracted">
<xsd:complexContent>
<xsd:extension base="NonCorrectableRequestMessage">
<xsd:sequence>
<xsd:group ref="Events.model" minOccurs="0" />
<xsd:group ref="PartiesAndAccounts.model" minOccurs="0" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TradeChangeAdvice">
<xsd:annotation>
<xsd:documentation>Defines the structure for a message indicating that a trade is being changed due to a non-negotiated event.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="CorrectableRequestMessage">
<xsd:sequence>
<xsd:element name="change" type="TradeChangeContent">
<xsd:annotation>
<xsd:documentation>Describes the details of the change.</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:group ref="PartiesAndAccounts.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TradeChangeAdviceRetracted">
<xsd:annotation>
<xsd:documentation>Defines the structure for a message retracting a prior change advice.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="NonCorrectableRequestMessage">
<xsd:sequence>
<xsd:element name="tradeIdentifier" type="PartyTradeIdentifier" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>The qualified identifiers of the subject trade.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="change" type="TradeChangeContent" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Describes the details of the change being retracted.</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:group ref="PartiesAndAccounts.model" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation xml:lang="en">Confirmation messages.</xsd:documentation>
</xsd:annotation>
<!-- Execution -->
<xsd:element name="executionNotification" type="ExecutionNotification" />
<xsd:element name="executionRetracted" type="ExecutionRetracted" />
<xsd:element name="executionAcknowledgement" type="Acknowledgement" />
<xsd:element name="executionException" type="Exception" />
<!-- Execution Advice -->
<xsd:element name="executionAdvice" type="ExecutionAdvice" />
<xsd:element name="executionAdviceRetracted" type="ExecutionAdviceRetracted" />
<xsd:element name="executionAdviceAcknowledgement" type="Acknowledgement" />
<xsd:element name="executionAdviceException" type="Exception" />
<!-- Trade Change -->
<xsd:element name="tradeChangeAdvice" type="TradeChangeAdvice" />
<xsd:element name="tradeChangeAdviceRetracted" type="TradeChangeAdviceRetracted" />
<xsd:element name="tradeChangeAdviceAcknowledgement" type="Acknowledgement" />
<xsd:element name="tradeChangeAdviceException" type="Exception" />
<!-- Consent Negotiation -->
<xsd:element name="requestConsent" type="RequestConsent" />
<xsd:element name="requestConsentRetracted" type="RequestConsentRetracted" />
<xsd:element name="consentAcknowledgement" type="Acknowledgement" />
<xsd:element name="consentException" type="Exception" />
<xsd:element name="consentGranted" type="ConsentGranted" />
<xsd:element name="consentRefused" type="ConsentRefused" />
<!-- Confirmation -->
<xsd:element name="requestConfirmation" type="RequestConfirmation" />
<xsd:element name="requestConfirmationRetracted" type="ConfirmationRetracted" />
<xsd:element name="confirmationAcknowledgement" type="Acknowledgement" />
<xsd:element name="confirmationException" type="Exception" />
<xsd:element name="confirmationStatus" type="ConfirmationStatus" />
<xsd:element name="confirmationAgreed" type="ConfirmationAgreed" />
<xsd:element name="confirmationDisputed" type="ConfirmationDisputed" />
<!-- Clearing -->
<xsd:element name="requestClearing" type="RequestClearing" />
<xsd:element name="requestClearingRetracted" type="RequestClearingRetracted" />
<xsd:element name="clearingAcknowledgement" type="Acknowledgement" />
<xsd:element name="clearingException" type="Exception" />
<xsd:element name="clearingRefused" type="ClearingRefused" />
<xsd:element name="clearingConfirmed" type="ClearingConfirmed" />
<!-- Allocation -->
<xsd:element name="requestAllocation" type="RequestAllocation" />
<xsd:element name="requestAllocationRetracted" type="RequestAllocationRetracted" />
<xsd:element name="allocationAcknowledgement" type="Acknowledgement" />
<xsd:element name="allocationException" type="Exception" />
<xsd:element name="allocationRefused" type="AllocationRefused" />
<xsd:element name="allocationApproved" type="AllocationApproved" />
</xsd:schema>
|