# FpML 4.2 Trial Recommendation

## 10 September 2021

## Messaging Component Definitions

### Version: 4.2

### This Version:

> http://www.fpml.org/spec/fpml-4-2-13-tr-6

### Latest Version:

> http://www.fpml.org/spec/fpml-4-2-13-tr-6

### Previous Version:

> https://www.fpml.org/spec/fpml-4-2-12-rec-2/

### Errata for this Version:

> http://www.fpml.org/spec/errata/fpml-4-2-13-tr-6-errata.html

Document built: Thu 09/09/2021 16:55:44.94

Copyright (c) 1999 - 2006 by INTERNATIONAL SWAPS AND DERIVATIVES ASSOCIATION, INC.
Financial Products Markup Language is subject to the FpML public license
A copy of this license is available at http://www.fpml.org/documents/license.html

The FpML specifications provided are without warranty of any kind, either expressed or implied, including, without limitation, warranties that FpML, or the FpML specifications are free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the specifications is with you. Should any of the FpML specifications prove defective in any respect, you assume the cost of any necessary servicing or repair. Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall ISDA, any of its members, or any distributor of documents or software containing any of the FpML specifications, or any supplier of any of such parties, be liable to you or any other person for any indirect, special, incidental, or consequential damages of any character including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages.

# Contents

  Global Simple Types
  Global Complex Types
    AdditionalData
    ContractReferenceMessage
    ConversationId
    Message
    MessageAddress
    MessageHeader
    MessageId
    MessageRejected
    NotificationMessage
    NotificationMessageHeader
    PartyMessageInformation
    ProblemLocation
    Reason
    ReasonCode
    RequestMessage
    RequestMessageHeader
    RequestTradeStatus
    ResponseMessage
    ResponseMessageHeader
    TradeNotFound
    TradeStatus
    TradeStatusItem
    TradeStatusValue
  Global Elements
  Groups
    Exception.model
    MessageHeader.model
  Schema Listing

# Global Simple Types

The schema does not contain any global simple types.

# Global Complex Types

## AdditionalData

### Description:

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type xsd:string)

Attribute: additionalDataScheme (xsd:anyURI) - optional

### Used by:

- Reason/additionalData

### Schema Fragment:

    <xsd:complexType name="AdditionalData">
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="additionalDataScheme" type="xsd:anyURI" use="optional"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>

## ContractReferenceMessage

### Description:

Abstract base class for Contract notification messages that require Contract Reference only

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type NotificationMessage)

- A type defining the basic content for a message sent to inform another system that some 'business event' has occured. Notifications are not expected to be replied to.

contractReference (exactly one occurrence; of the type ContractReference)

party (one or more occurrences; of the type Party)

### Used by:

### Extension of:

- NotificationMessage

### Derived Types:

- ContractCancelled

### Schema Fragment:

    <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:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## ConversationId

### Description:

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type xsd:normalizedString)

Attribute: conversationIdScheme (xsd:anyURI) - required

### Used by:

- MessageHeader/conversationId

### Schema Fragment:

    <xsd:complexType name="ConversationId">
      <xsd:simpleContent>
        <xsd:extension base="xsd:normalizedString">
          <xsd:attribute name="conversationIdScheme" type="xsd:anyURI" use="required"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>

## Message

### Description:

A type defining the basic structure of all FpML messages which is refined by its derived types.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Document)

- The abstract base type from which all FpML compliant messages and documents must be derived.

### Used by:

### Extension of:

- Document

### Derived Types:

- NotificationMessage
- RequestMessage
- ResponseMessage

### Schema Fragment:

    <xsd:complexType name="Message" abstract="true">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the basic structure of all FpML messages which is
          refined by its derived types.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Document"/>
      </xsd:complexContent>
    </xsd:complexType>

## MessageAddress

### Description:

The data type used for identifying a message address. It includes a partyIdScheme for keeping the type backward compatible with the PartyId complex type. In the next major version, partyIdScheme attribute will be replaced by a messageAddressScheme attribute.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type xsd:normalizedString)

Attribute: partyIdScheme (xsd:anyURI)

### Used by:

### Schema Fragment:

    <xsd:complexType name="MessageAddress">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          The data type used for identifying a message address. It includes
          a partyIdScheme for keeping the type backward compatible with the
          PartyId complex type. In the next major version, partyIdScheme
          attribute will be replaced by a messageAddressScheme attribute.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:simpleContent>
        <xsd:extension base="xsd:normalizedString">
          <xsd:attribute name="partyIdScheme" type="xsd:anyURI" default="http://www.fpml.org/ext/iso9362"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>

## MessageHeader

### Description:

A type defining the content model for a generic message header that is refined by its derived classes.

### Figure:

### Contents:

conversationId (zero or one occurrence; of the type ConversationId)

- A unique identifier created by the initiator of a conversation allowing a group of message exchanges to be recognized as related.

messageId (exactly one occurrence; of the type MessageId)

- A unique identifier (within its coding scheme) assigned to the message by its creating party.

### Used by:

### Derived Types:

- NotificationMessageHeader
- RequestMessageHeader
- ResponseMessageHeader

### Schema Fragment:

    <xsd:complexType name="MessageHeader" abstract="true">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the content model for a generic message header
          that is refined by its derived classes.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="conversationId" type="ConversationId" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A unique identifier created by the initiator of a
              conversation allowing a group of message exchanges to be
              recognized as related.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="messageId" type="MessageId">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A unique identifier (within its coding scheme) assigned to
              the message by its creating party.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## MessageId

### Description:

The data type use for message identifiers.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type xsd:normalizedString)

Attribute: messageIdScheme (xsd:anyURI) - required

### Used by:

- MessageHeader/messageId
- NotificationMessageHeader/inReplyTo
- ResponseMessageHeader/inReplyTo

### Schema Fragment:

    <xsd:complexType name="MessageId">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          The data type use for message identifiers.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:simpleContent>
        <xsd:extension base="xsd:normalizedString">
          <xsd:attribute name="messageIdScheme" type="xsd:anyURI" use="required"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>

## MessageRejected

### Description:

A type defining the content for a standard message sent when a recipient cannot interpret or process an earlier message.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type NotificationMessage)

- A type defining the basic content for a message sent to inform another system that some 'business event' has occured. Notifications are not expected to be replied to.

reason (one or more occurrences; of the type Reason)

- An instance of the Reason type used to record the nature of any errors associated with a message.

additionalData (zero or one occurrence; of the type AdditionalData)

- Any string of additional data that may help the message processor, for example in a rejection message this might contain a code value or the text of the original request (within a CDATA section).

### Used by:

### Extension of:

- NotificationMessage

### Schema Fragment:

    <xsd:complexType name="MessageRejected">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the content for a standard message sent when a
          recipient cannot interpret or process an earlier message.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="NotificationMessage">
          <xsd:sequence>
            <xsd:group ref="Exception.model"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## NotificationMessage

### Description:

A type defining the basic content for a message sent to inform another system that some 'business event' has occured. Notifications are not expected to be replied to.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Message)

- A type defining the basic structure of all FpML messages which is refined by its derived types.

header (exactly one occurrence; of the type NotificationMessageHeader)

validation (zero or more occurrences; of the type Validation)

### Used by:

### Extension of:

- Message

### Derived Types:

- AllocationAmended
- AllocationCancelled
- AllocationCreated
- AmendmentConfirmed
- CancelTradeCashflows
- ContractCreated
- ContractFullTermination
- ContractIncreased
- ContractNovated
- ContractPartialTermination
- ContractReferenceMessage
- CreditEventNotification
- IncreaseConfirmed
- MessageRejected
- NovationNotificationMessage
- PositionReport
- TerminationConfirmed
- TradeAffirmation
- TradeAlleged
- TradeAmended
- TradeCancelled
- TradeCashflowsAsserted
- TradeConfirmed
- TradeCreated
- TradeMatched
- TradeMismatched
- TradeUnmatched
- ValuationReport

### Schema Fragment:

    <xsd:complexType name="NotificationMessage" abstract="true">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the basic content for a message sent to inform
          another system that some 'business event' has occured.
          Notifications are not expected to be replied to.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Message">
          <xsd:sequence>
            <xsd:element name="header" type="NotificationMessageHeader"/>
            <xsd:group ref="Validation.model"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## NotificationMessageHeader

### Description:

A type that refines the generic message header to match the requirements of a NotificationMessage.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type MessageHeader)

- A type defining the content model for a generic message header that is refined by its derived classes.

inReplyTo (zero or one occurrence; of the type MessageId)

- A copy of the unique message identifier (within it own coding scheme) to which this message is responding.

sentBy (exactly one occurrence; of the type MessageAddress)

- The unique identifier (within its coding scheme) for the originator of a message instance.

sendTo (zero or more occurrences; of the type MessageAddress)

- A unique identifier (within its coding scheme) indicating an intended recipent of a message.

copyTo (zero or more occurrences; of the type MessageAddress)

- A unique identifier (within the specified coding scheme) giving the details of some party to whom a copy of this message will be sent for reference.

creationTimestamp (exactly one occurrence; of the type xsd:dateTime)

- The date and time (on the source system) when this message instance was created.

expiryTimestamp (zero or one occurrence; of the type xsd:dateTime)

- The date and time (on the source system) when this message instance will be considered expired.

partyMessageInformation (zero or more occurrences; of the type PartyMessageInformation)

- Additional message information that may be provided by each involved party.

dsig:Signature (zero or more occurrences; defined in an imported schema)

### Used by:

- NotificationMessage/header

### Extension of:

- MessageHeader

### Schema Fragment:

    <xsd:complexType name="NotificationMessageHeader">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type that refines the generic message header to match the
          requirements of a NotificationMessage.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="MessageHeader">
          <xsd:sequence>
            <xsd:element name="inReplyTo" type="MessageId" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A copy of the unique message identifier (within it own
                  coding scheme) to which this message is responding.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:group ref="MessageHeader.model"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## PartyMessageInformation

### Description:

A type defining additional information that may be recorded against a message.

### Figure:

### Contents:

partyReference (exactly one occurrence; of the type PartyReference)

- Identifies that party that has ownership of this information.

### Used by:

### Schema Fragment:

    <xsd:complexType name="PartyMessageInformation">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining additional information that may be recorded
          against a message.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="partyReference" type="PartyReference">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Identifies that party that has ownership of this information.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## ProblemLocation

### Description:

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type xsd:normalizedString)

Attribute: problemLocationScheme (xsd:anyURI)

### Used by:

- Reason/location

### Schema Fragment:

    <xsd:complexType name="ProblemLocation">
      <xsd:simpleContent>
        <xsd:extension base="xsd:normalizedString">
          <xsd:attribute name="problemLocationScheme" type="xsd:anyURI"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>

## Reason

### Description:

A type defining a content model for describing the nature and possible location of a error within a previous message.

### Figure:

### Contents:

reasonCode (exactly one occurrence; of the type ReasonCode)

- A machine interpretable error code.

location (zero or one occurrence; of the type ProblemLocation)

- A value indicating the location of the problem within the subject message.

description (zero or one occurrence; of the type xsd:string)

- Plain English text describing the associated error condition

validationRuleId (zero or one occurrence; of the type Validation)

- A reference identifying a rule within a validation scheme

additionalData (zero or more occurrences; of the type AdditionalData)

- Any string of additional data that may help the message processor, for example in a rejection message this might contain a code value or the text of any one of the messages (within a CDATA section).

### Used by:

- NovationConsentRefused/reason

### Schema Fragment:

    <xsd:complexType name="Reason">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining a content model for describing the nature and
          possible location of a error within a previous message.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="reasonCode" type="ReasonCode">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A machine interpretable error code.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="location" type="ProblemLocation" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A value indicating the location of the problem within the
              subject message.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="description" type="xsd:string" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Plain English text describing the associated error condition
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="validationRuleId" type="Validation" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A reference identifying a rule within a validation scheme
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="additionalData" type="AdditionalData" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Any string of additional data that may help the message
              processor, for example in a rejection message this might
              contain a code value or the text of any one of the messages
              (within a CDATA section).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## ReasonCode

### Description:

Defines a list of machine interpretable error codes.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type xsd:normalizedString)

Attribute: reasonCodeScheme (xsd:anyURI)

### Used by:

- Reason/reasonCode

### Schema Fragment:

    <xsd:complexType name="ReasonCode">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Defines a list of machine interpretable error codes.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:simpleContent>
        <xsd:extension base="xsd:normalizedString">
          <xsd:attribute name="reasonCodeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/reason-code-1-0"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>

## RequestMessage

### Description:

A type defining the basic content of a message that requests the receiver to perform some business operation determined by the message type and its content.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Message)

- A type defining the basic structure of all FpML messages which is refined by its derived types.

header (exactly one occurrence; of the type RequestMessageHeader)

validation (zero or more occurrences; of the type Validation)

### Used by:

### Extension of:

- Message

### Derived Types:

- CancelTradeConfirmation
- CancelTradeMatch
- ConfirmTrade
- ModifyTradeConfirmation
- ModifyTradeMatch
- NovationRequestMessage
- RequestAllocation
- RequestAmendmentConfirmation
- RequestIncreaseConfirmation
- RequestQuote
- RequestTerminationConfirmation
- RequestTradeConfirmation
- RequestTradeMatch
- RequestTradeStatus
- RequestValuationReport
- TradeAmendmentRequest
- TradeIncreaseRequest
- TradeTerminationRequest

### Schema Fragment:

    <xsd:complexType name="RequestMessage" abstract="true">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the basic content of a message that requests the
          receiver to perform some business operation determined by the
          message type and its content.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Message">
          <xsd:sequence>
            <xsd:element name="header" type="RequestMessageHeader"/>
            <xsd:group ref="Validation.model"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## RequestMessageHeader

### Description:

A type refining the generic message header content to make it specific to request messages.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type MessageHeader)

- A type defining the content model for a generic message header that is refined by its derived classes.

sentBy (exactly one occurrence; of the type MessageAddress)

- The unique identifier (within its coding scheme) for the originator of a message instance.

sendTo (zero or more occurrences; of the type MessageAddress)

- A unique identifier (within its coding scheme) indicating an intended recipent of a message.

copyTo (zero or more occurrences; of the type MessageAddress)

- A unique identifier (within the specified coding scheme) giving the details of some party to whom a copy of this message will be sent for reference.

creationTimestamp (exactly one occurrence; of the type xsd:dateTime)

- The date and time (on the source system) when this message instance was created.

expiryTimestamp (zero or one occurrence; of the type xsd:dateTime)

- The date and time (on the source system) when this message instance will be considered expired.

partyMessageInformation (zero or more occurrences; of the type PartyMessageInformation)

- Additional message information that may be provided by each involved party.

dsig:Signature (zero or more occurrences; defined in an imported schema)

### Used by:

- RequestMessage/header

### Extension of:

- MessageHeader

### Schema Fragment:

    <xsd:complexType name="RequestMessageHeader">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type refining the generic message header content to make it
          specific to request messages.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="MessageHeader">
          <xsd:sequence>
            <xsd:group ref="MessageHeader.model"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## RequestTradeStatus

### Description:

A type defining the content model for a message allowing one party to query the status of one or many trades previously sent to another party.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type RequestMessage)

- A type defining the basic content of a message that requests the receiver to perform some business operation determined by the message type and its content.

tradeIdentifier (one or more occurrences; of the type TradeIdentifier)

- An instance of a unique trade identifier.

party (one or more occurrences; of the type Party)

- An entity having a role in a trade lifecycle. For example, the principal parties obligated to make payments from time to time during the term of the trade, but may include other parties involved in, or incidental to, the trade, such as parties acting in the role of novation transferor/transferee, broker, calculation agent, etc.

### Used by:

### Extension of:

- RequestMessage

### Schema Fragment:

    <xsd:complexType name="RequestTradeStatus">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the content model for a message allowing one
          party to query the status of one or many trades previously sent
          to another party.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="RequestMessage">
          <xsd:sequence>
            <xsd:element name="tradeIdentifier" type="TradeIdentifier" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  An instance of a unique trade identifier.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="party" type="Party" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  An entity having a role in a trade lifecycle. For
                  example, the principal parties obligated to make payments
                  from time to time during the term of the trade, but may
                  include other parties involved in, or incidental to, the
                  trade, such as parties acting in the role of novation
                  transferor/transferee, broker, calculation agent, etc.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## ResponseMessage

### Description:

A type refining the generic message content model to make it specific to response messages.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type Message)

- A type defining the basic structure of all FpML messages which is refined by its derived types.

header (exactly one occurrence; of the type ResponseMessageHeader)

validation (zero or more occurrences; of the type Validation)

### Used by:

### Extension of:

- Message

### Derived Types:

- AcceptQuote
- ConfirmationCancelled
- NovationResponseMessage
- QuoteAcceptanceConfirmed
- QuoteAlreadyExpired
- QuoteUpdated
- RequestQuoteResponse
- TradeAffirmed
- TradeAlreadyMatched
- TradeAlreadySubmitted
- TradeAmendmentResponse
- TradeCashflowsMatchResult
- TradeErrorResponse
- TradeIncreaseResponse
- TradeNotFound
- TradeStatus
- TradeTerminationResponse

### Schema Fragment:

    <xsd:complexType name="ResponseMessage" abstract="true">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type refining the generic message content model to make it
          specific to response messages.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="Message">
          <xsd:sequence>
            <xsd:element name="header" type="ResponseMessageHeader"/>
            <xsd:group ref="Validation.model"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## ResponseMessageHeader

### Description:

A type refining the generic message header to make it specific to response messages.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type MessageHeader)

- A type defining the content model for a generic message header that is refined by its derived classes.

inReplyTo (exactly one occurrence; of the type MessageId)

- A copy of the unique message identifier (within it own coding scheme) to which this message is responding.

sentBy (exactly one occurrence; of the type MessageAddress)

- The unique identifier (within its coding scheme) for the originator of a message instance.

sendTo (zero or more occurrences; of the type MessageAddress)

- A unique identifier (within its coding scheme) indicating an intended recipent of a message.

copyTo (zero or more occurrences; of the type MessageAddress)

- A unique identifier (within the specified coding scheme) giving the details of some party to whom a copy of this message will be sent for reference.

creationTimestamp (exactly one occurrence; of the type xsd:dateTime)

- The date and time (on the source system) when this message instance was created.

expiryTimestamp (zero or one occurrence; of the type xsd:dateTime)

- The date and time (on the source system) when this message instance will be considered expired.

partyMessageInformation (zero or more occurrences; of the type PartyMessageInformation)

- Additional message information that may be provided by each involved party.

dsig:Signature (zero or more occurrences; defined in an imported schema)

### Used by:

- ResponseMessage/header

### Extension of:

- MessageHeader

### Schema Fragment:

    <xsd:complexType name="ResponseMessageHeader">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type refining the generic message header to make it specific to
          response messages.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="MessageHeader">
          <xsd:sequence>
            <xsd:element name="inReplyTo" type="MessageId">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A copy of the unique message identifier (within it own
                  coding scheme) to which this message is responding.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:group ref="MessageHeader.model"/>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## TradeNotFound

### Description:

A type defining the content model of a response message generated when an operation as requested on a trade unknown to the service.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type ResponseMessage)

- A type refining the generic message content model to make it specific to response messages.

There can be one occurance of the following structure; Choice of either

tradeIdentifier (exactly one occurrence; of the type fpml:TradeIdentifier)

- An instance of a unique trade identifier.

party (exactly one occurrence; of the type fpml:Party)

- An entity having a role in a trade lifecycle. For example, the principal parties obligated to make payments from time to time during the term of the trade, but may include other parties involved in, or incidental to, the trade, such as parties acting in the role of novation transferor/transferee, broker, calculation agent, etc.

### Used by:

### Extension of:

- ResponseMessage

### Schema Fragment:

    <xsd:complexType name="TradeNotFound">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the content model of a response message generated
          when an operation as requested on a trade unknown to the service.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="ResponseMessage">
          <xsd:sequence>
            <xsd:choice>
              <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    An instance of a unique trade identifier.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:group ref="fpml:TradeOrTradeReference.model"/>
            </xsd:choice>
            <xsd:element name="party" type="fpml:Party">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  An entity having a role in a trade lifecycle. For
                  example, the principal parties obligated to make payments
                  from time to time during the term of the trade, but may
                  include other parties involved in, or incidental to, the
                  trade, such as parties acting in the role of novation
                  transferor/transferee, broker, calculation agent, etc.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## TradeStatus

### Description:

A type defining the content model for a message normally generated in response to a RequestTradeStatus request.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type ResponseMessage)

- A type refining the generic message content model to make it specific to response messages.

tradeStatusItem (one or more occurrences; of the type TradeStatusItem)

- A collection of data values describing the state of the given trade.

party (one or more occurrences; of the type Party)

- An entity having a role in a trade lifecycle. For example, the principal parties obligated to make payments from time to time during the term of the trade, but may include other parties involved in, or incidental to, the trade, such as parties acting in the role of novation transferor/transferee, broker, calculation agent, etc.

### Used by:

### Extension of:

- ResponseMessage

### Schema Fragment:

    <xsd:complexType name="TradeStatus">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type defining the content model for a message normally
          generated in response to a RequestTradeStatus request.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="ResponseMessage">
          <xsd:sequence>
            <xsd:element name="tradeStatusItem" type="TradeStatusItem" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  A collection of data values describing the state of the
                  given trade.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="party" type="Party" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  An entity having a role in a trade lifecycle. For
                  example, the principal parties obligated to make payments
                  from time to time during the term of the trade, but may
                  include other parties involved in, or incidental to, the
                  trade, such as parties acting in the role of novation
                  transferor/transferee, broker, calculation agent, etc.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>

## TradeStatusItem

### Description:

A type used in trade status enquiry messages which relates a trade identifier to its current status value.

### Figure:

### Contents:

tradeIdentifier (exactly one occurrence; of the type TradeIdentifier)

- An instance of a unique trade identifier.

tradeStatusValue (exactly one occurrence; of the type TradeStatusValue)

- The trade status value.

### Used by:

- TradeStatus/tradeStatusItem

### Schema Fragment:

    <xsd:complexType name="TradeStatusItem">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A type used in trade status enquiry messages which relates a
          trade identifier to its current status value.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="tradeIdentifier" type="TradeIdentifier">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An instance of a unique trade identifier.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="tradeStatusValue" type="TradeStatusValue">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The trade status value.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>

## TradeStatusValue

### Description:

The type used to hold TradeStatusScheme values.

### Figure:

### Contents:

Inherited element(s): (This definition inherits the content defined by the type xsd:normalizedString)

Attribute: tradeStatusScheme (xsd:anyURI)

### Used by:

- TradeStatusItem/tradeStatusValue

### Schema Fragment:

    <xsd:complexType name="TradeStatusValue">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          The type used to hold TradeStatusScheme values.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:simpleContent>
        <xsd:extension base="xsd:normalizedString">
          <xsd:attribute name="tradeStatusScheme" type="xsd:anyURI"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>

# Global Elements

The schema does not contain any global elements.

# Groups

## Exception.model

### Description:

A model group which has exception elements.

### Figure:

### Contents:

reason (one or more occurrences; of the type Reason)

- An instance of the Reason type used to record the nature of any errors associated with a message.

additionalData (zero or one occurrence; of the type AdditionalData)

- Any string of additional data that may help the message processor, for example in a rejection message this might contain a code value or the text of the original request (within a CDATA section).

### Used by:

- MessageRejected

### Schema Fragment:

    <xsd:group name="Exception.model">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          A model group which has exception elements.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element name="reason" type="Reason" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              An instance of the Reason type used to record the nature of
              any errors associated with a message.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="additionalData" type="AdditionalData" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Any string of additional data that may help the message
              processor, for example in a rejection message this might
              contain a code value or the text of the original request
              (within a CDATA section).
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:group>

## MessageHeader.model

### Description:

### Figure:

### Contents:

sentBy (exactly one occurrence; of the type MessageAddress)

- The unique identifier (within its coding scheme) for the originator of a message instance.

sendTo (zero or more occurrences; of the type MessageAddress)

- A unique identifier (within its coding scheme) indicating an intended recipent of a message.

copyTo (zero or more occurrences; of the type MessageAddress)

- A unique identifier (within the specified coding scheme) giving the details of some party to whom a copy of this message will be sent for reference.

creationTimestamp (exactly one occurrence; of the type xsd:dateTime)

- The date and time (on the source system) when this message instance was created.

expiryTimestamp (zero or one occurrence; of the type xsd:dateTime)

- The date and time (on the source system) when this message instance will be considered expired.

partyMessageInformation (zero or more occurrences; of the type PartyMessageInformation)

- Additional message information that may be provided by each involved party.

dsig:Signature (zero or more occurrences; defined in an imported schema)

### Used by:

- NotificationMessageHeader
- RequestMessageHeader
- ResponseMessageHeader

### Schema Fragment:

    <xsd:group name="MessageHeader.model">
      <xsd:sequence>
        <xsd:element name="sentBy" type="MessageAddress">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The unique identifier (within its coding scheme) for the
              originator of a message instance.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="sendTo" type="MessageAddress" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A unique identifier (within its coding scheme) indicating an
              intended recipent of a message.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="copyTo" type="MessageAddress" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              A unique identifier (within the specified coding scheme)
              giving the details of some party to whom a copy of this
              message will be sent for reference.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="creationTimestamp" type="xsd:dateTime">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date and time (on the source system) when this message
              instance was created.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="expiryTimestamp" type="xsd:dateTime" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              The date and time (on the source system) when this message
              instance will be considered expired.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="partyMessageInformation" type="PartyMessageInformation" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              Additional message information that may be provided by each
              involved party.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:group>

# Full XML Schema

    <xsd:schema targetNamespace="http://www.fpml.org/2005/FpML-4-2" elementFormDefault="qualified" attributeFormDefault="unqualified" version="$Revision: 1091 $">
      <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
      <xsd:include schemaLocation="fpml-doc-4-2.xsd"/>
      <xsd:complexType name="AdditionalData">
        <xsd:simpleContent>
          <xsd:extension base="xsd:string">
            <xsd:attribute name="additionalDataScheme" type="xsd:anyURI" use="optional"/>
          </xsd:extension>
        </xsd:simpleContent>
      </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:element name="party" type="Party" minOccurs="2" maxOccurs="unbounded"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ConversationId">
        <xsd:simpleContent>
          <xsd:extension base="xsd:normalizedString">
            <xsd:attribute name="conversationIdScheme" type="xsd:anyURI" use="required"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
      <xsd:complexType name="Message" abstract="true">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the basic structure of all FpML messages which
            is refined by its derived types.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Document"/>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="MessageAddress">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            The data type used for identifying a message address. It
            includes a partyIdScheme for keeping the type backward
            compatible with the PartyId complex type. In the next major
            version, partyIdScheme attribute will be replaced by a
            messageAddressScheme attribute.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
          <xsd:extension base="xsd:normalizedString">
            <xsd:attribute name="partyIdScheme" type="xsd:anyURI" default="http://www.fpml.org/ext/iso9362"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
      <xsd:complexType name="MessageHeader" abstract="true">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the content model for a generic message header
            that is refined by its derived classes.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="conversationId" type="ConversationId" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A unique identifier created by the initiator of a
                conversation allowing a group of message exchanges to be
                recognized as related.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="messageId" type="MessageId">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A unique identifier (within its coding scheme) assigned to
                the message by its creating party.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="MessageId">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            The data type use for message identifiers.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
          <xsd:extension base="xsd:normalizedString">
            <xsd:attribute name="messageIdScheme" type="xsd:anyURI" use="required"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
      <xsd:complexType name="MessageRejected">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the content for a standard message sent when a
            recipient cannot interpret or process an earlier message.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="NotificationMessage">
            <xsd:sequence>
              <xsd:group ref="Exception.model"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="NotificationMessage" abstract="true">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the basic content for a message sent to inform
            another system that some 'business event' has occured.
            Notifications are not expected to be replied to.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Message">
            <xsd:sequence>
              <xsd:element name="header" type="NotificationMessageHeader"/>
              <xsd:group ref="Validation.model"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="NotificationMessageHeader">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type that refines the generic message header to match the
            requirements of a NotificationMessage.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="MessageHeader">
            <xsd:sequence>
              <xsd:element name="inReplyTo" type="MessageId" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    A copy of the unique message identifier (within it own
                    coding scheme) to which this message is responding.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:group ref="MessageHeader.model"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="PartyMessageInformation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining additional information that may be recorded
            against a message.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="partyReference" type="PartyReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Identifies that party that has ownership of this
                information.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ProblemLocation">
        <xsd:simpleContent>
          <xsd:extension base="xsd:normalizedString">
            <xsd:attribute name="problemLocationScheme" type="xsd:anyURI"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
      <xsd:complexType name="Reason">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining a content model for describing the nature and
            possible location of a error within a previous message.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="reasonCode" type="ReasonCode">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A machine interpretable error code.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="location" type="ProblemLocation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A value indicating the location of the problem within the
                subject message.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="description" type="xsd:string" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Plain English text describing the associated error
                condition
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="validationRuleId" type="Validation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A reference identifying a rule within a validation scheme
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="additionalData" type="AdditionalData" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Any string of additional data that may help the message
                processor, for example in a rejection message this might
                contain a code value or the text of any one of the messages
                (within a CDATA section).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ReasonCode">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            Defines a list of machine interpretable error codes.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
          <xsd:extension base="xsd:normalizedString">
            <xsd:attribute name="reasonCodeScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/reason-code-1-0"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
      <xsd:complexType name="RequestMessage" abstract="true">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the basic content of a message that requests
            the receiver to perform some business operation determined by
            the message type and its content.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Message">
            <xsd:sequence>
              <xsd:element name="header" type="RequestMessageHeader"/>
              <xsd:group ref="Validation.model"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="RequestMessageHeader">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type refining the generic message header content to make it
            specific to request messages.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="MessageHeader">
            <xsd:sequence>
              <xsd:group ref="MessageHeader.model"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="RequestTradeStatus">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the content model for a message allowing one
            party to query the status of one or many trades previously sent
            to another party.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="RequestMessage">
            <xsd:sequence>
              <xsd:element name="tradeIdentifier" type="TradeIdentifier" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    An instance of a unique trade identifier.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="party" type="Party" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    An entity having a role in a trade lifecycle. For
                    example, the principal parties obligated to make
                    payments from time to time during the term of the
                    trade, but may include other parties involved in, or
                    incidental to, the trade, such as parties acting in the
                    role of novation transferor/transferee, broker,
                    calculation agent, etc.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ResponseMessage" abstract="true">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type refining the generic message content model to make it
            specific to response messages.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="Message">
            <xsd:sequence>
              <xsd:element name="header" type="ResponseMessageHeader"/>
              <xsd:group ref="Validation.model"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ResponseMessageHeader">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type refining the generic message header to make it specific
            to response messages.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="MessageHeader">
            <xsd:sequence>
              <xsd:element name="inReplyTo" type="MessageId">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    A copy of the unique message identifier (within it own
                    coding scheme) to which this message is responding.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:group ref="MessageHeader.model"/>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="TradeNotFound">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the content model of a response message
            generated when an operation as requested on a trade unknown to
            the service.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="ResponseMessage">
            <xsd:sequence>
              <xsd:choice>
                <xsd:element name="tradeIdentifier" type="fpml:TradeIdentifier">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">
                      An instance of a unique trade identifier.
                    </xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
                <xsd:group ref="fpml:TradeOrTradeReference.model"/>
              </xsd:choice>
              <xsd:element name="party" type="fpml:Party">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    An entity having a role in a trade lifecycle. For
                    example, the principal parties obligated to make
                    payments from time to time during the term of the
                    trade, but may include other parties involved in, or
                    incidental to, the trade, such as parties acting in the
                    role of novation transferor/transferee, broker,
                    calculation agent, etc.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="TradeStatus">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type defining the content model for a message normally
            generated in response to a RequestTradeStatus request.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="ResponseMessage">
            <xsd:sequence>
              <xsd:element name="tradeStatusItem" type="TradeStatusItem" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    A collection of data values describing the state of the
                    given trade.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="party" type="Party" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">
                    An entity having a role in a trade lifecycle. For
                    example, the principal parties obligated to make
                    payments from time to time during the term of the
                    trade, but may include other parties involved in, or
                    incidental to, the trade, such as parties acting in the
                    role of novation transferor/transferee, broker,
                    calculation agent, etc.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="TradeStatusItem">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A type used in trade status enquiry messages which relates a
            trade identifier to its current status value.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="tradeIdentifier" type="TradeIdentifier">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An instance of a unique trade identifier.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="tradeStatusValue" type="TradeStatusValue">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The trade status value.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="TradeStatusValue">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            The type used to hold TradeStatusScheme values.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
          <xsd:extension base="xsd:normalizedString">
            <xsd:attribute name="tradeStatusScheme" type="xsd:anyURI"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
      <xsd:group name="Exception.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            A model group which has exception elements.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="reason" type="Reason" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                An instance of the Reason type used to record the nature of
                any errors associated with a message.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="additionalData" type="AdditionalData" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Any string of additional data that may help the message
                processor, for example in a rejection message this might
                contain a code value or the text of the original request
                (within a CDATA section).
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:group>
      <xsd:group name="MessageHeader.model">
        <xsd:sequence>
          <xsd:element name="sentBy" type="MessageAddress">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The unique identifier (within its coding scheme) for the
                originator of a message instance.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="sendTo" type="MessageAddress" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A unique identifier (within its coding scheme) indicating
                an intended recipent of a message.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="copyTo" type="MessageAddress" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                A unique identifier (within the specified coding scheme)
                giving the details of some party to whom a copy of this
                message will be sent for reference.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="creationTimestamp" type="xsd:dateTime">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date and time (on the source system) when this message
                instance was created.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expiryTimestamp" type="xsd:dateTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                The date and time (on the source system) when this message
                instance will be considered expired.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="partyMessageInformation" type="PartyMessageInformation" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">
                Additional message information that may be provided by each
                involved party.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:group>
    </xsd:schema>