<?xml version="1.0" encoding="UTF-8"?>
<!--

    Public API
    Usable fields within Public API Messages
    Version 6.20.5.1 (Product version: 6.20.205)

--><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
              xmlns="http://www.deutsche-boerse.com/m7/v6"
              targetNamespace="http://www.deutsche-boerse.com/m7/v6"
              elementFormDefault="qualified">

    <!-- Simple Type Definition -->

    <xs:simpleType name="clearingAccountType">
        <xs:annotation>
            <xs:documentation>
                Defines if the order is entered on its own account, or as an agent. For valid values please refer to values from attribute allowedClearingAcctTypes in the SystemInfoResp message (i.e. **A**, **P** for spot markets).
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="2"/>
            <xs:minLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="msgType">
        <xs:annotation>
            <xs:documentation>Defines the message type.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ALL"/>
            <xs:enumeration value="PUBLIC"/>
            <xs:enumeration value="PRIVATE"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="msgUnionType">
        <xs:union memberTypes="msgType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="acctIdType">
        <xs:annotation>
            <xs:documentation>Unique identifier of an account</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="32"/>
            <xs:minLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="currencyType">
        <xs:annotation>
            <xs:documentation>The type for currency</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="3"/>
            <xs:minLength value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="intType">
        <xs:restriction base="xs:int"/>
    </xs:simpleType>

    <xs:simpleType name="doubleType">
        <xs:restriction base="xs:double"/>
    </xs:simpleType>

    <xs:simpleType name="longType">
        <xs:restriction base="xs:long"/>
    </xs:simpleType>

    <xs:simpleType name="preArrAccRejType">
        <xs:annotation>
            <xs:documentation>
Defines if the pre-arranged order is accepted or rejected by the reacting party.

Valid values:

**"ACC"**: The pre-arranged trade is accepted

**"REJ"**: The pre-arranged trade is rejected
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ACC"/>
            <xs:enumeration value="REJ"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="preArrAccRejUnionType">
         <xs:union memberTypes="preArrAccRejType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="directionType">
        <xs:annotation>
            <xs:documentation>Defines on which side of the market the order is entered or displayed. Valid values:

* **BUY**: Buy order.
* **SELL**: Sell order.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="BUY"/>
            <xs:enumeration value="SELL"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="directionUnionType">
        <xs:union memberTypes="directionType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="prodStateType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="HIBE"/>
            <xs:enumeration value="IACT"/>
            <xs:enumeration value="ACTI"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="prodStateUnionType">
        <xs:union memberTypes="prodStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="marketStateType">
        <xs:annotation>
            <xs:documentation>
Contains the current market state. Valid values:

* **HIBE**: Hibernated; no trading is possible and order books are empty.
* **ACTI**: Market is active and trading is possible.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="HIBE"/>
            <xs:enumeration value="ACTI"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="marketStateUnionType">
        <xs:union memberTypes="marketStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="contractStateType">
        <xs:annotation>
            <xs:documentation>The current state of the contract / contract-delivery area combination. Valid values:

* **ACTI**: Active: the contract is active and available for trading.
* **STBY**: Stand by: The contract is waiting on external event to become available for trading. For a contract-delivery area combination, the triggering events are:
  * The end of a trading phase of a global product (i.e. ContractInfoRprt has been received from XBID), in case there are no remote orders and its linked product has a longer trading phase than the remote product. No automatic order transfer is performed.
  * An automatic order transfer for a delivery area has been performed, or skipped/reverted due to the valid reasons (e.g. a disconnection from XBID). For more details on the AOT process please refer to _DFS160a_.
* **HIBE**: Hibernate: The contract was manually deactivated by market operations.
* **IACT**: Inactive: The contract is inactive and not available for trading.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="IACT"/>
            <xs:enumeration value="HIBE"/>
            <xs:enumeration value="STBY"/>
            <xs:enumeration value="ACTI"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="contractStateUnionType">
        <xs:union memberTypes="contractStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="refDataStateType">
        <xs:annotation>
            <xs:documentation>State of a reference data entity</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ACTI"/>
            <xs:enumeration value="IACT"/>
            <xs:enumeration value="DELE"/>
            <xs:enumeration value="SUSP"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="refDataStateUnionType">
        <xs:annotation>
            <xs:documentation>
Due to backwards compatibility this data type consists of refDataStateType and string data types. This enables to introduce new values into refDataStateUnionType in the future.
            </xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="refDataStateType xs:string"/>
    </xs:simpleType>


    <xs:simpleType name="refDataDeliveryAreaStateType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ACTI"/>
            <xs:enumeration value="SUSP"/>
            <xs:enumeration value="DELE"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="refDataDeliveryAreaStateUnionType">
        <xs:union memberTypes="refDataDeliveryAreaStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="tradeStateType">
        <xs:annotation>
            <xs:documentation>
The current state of the trade. Valid values:

* **CNCL**: The trade was cancelled by market operations.
* **RREJ**:  The requested Recall was rejected by market operations.
* **RGRA**:  The requested Recall was granted by market operations.
* **RREQ**: The recall of this trade was requested.
* **ACTI**: The trade is active (this is the default value).
* **CREQ**: The cancellation was requested from local market operations.
* **CREJ**: The cancellation was rejected by global market operations.
* **RSFA**: The request has been sent for approval to SOB (XBID).
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="CNCL"/>
            <xs:enumeration value="CREQ"/>
            <xs:enumeration value="CREJ"/>
            <xs:enumeration value="RREJ"/>
            <xs:enumeration value="RGRA"/>
            <xs:enumeration value="RREQ"/>
            <xs:enumeration value="RSFA"/>
            <xs:enumeration value="ACTI"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="tradeStateUnionType">
        <xs:union memberTypes="tradeStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="ListExecInstType">
        <xs:annotation>
            <xs:documentation>
 Defines the execution instruction for a whole list of orders.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="LNKD"/>
            <xs:enumeration value="NONE"/>
            <xs:enumeration value="VALID"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ListExecInstUnionType">
        <xs:union memberTypes="ListExecInstType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="ordrExeRestrictionType">
        <xs:annotation>
            <xs:documentation>
Execution restriction of the order. Valid values:

* **NON**: No restriction. This is the default.
* **FOK** (Fill or Kill): The order is immediately fully executed or deleted.
* **IOC** (Immediate and cancel): The order is executed immediately to its maximum extend. In case of a partial execution, the remaining volume is removed from the order book.
* **AON** (All or None): The order must be filled completely or not at all. The order stays in the order book until it is executed or removed by the system or user.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="FOK"/>
            <xs:enumeration value="IOC"/>
            <xs:enumeration value="NON"/>
            <xs:enumeration value="AON"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ordrExeRestrictionUnionType">
        <xs:union memberTypes="ordrExeRestrictionType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="validityRestrictionType">
        <xs:annotation>
            <xs:documentation>
 Validity restriction of the order. If this field is omitted, the order will be treated as a _Good for Session_ order. Valid values:

 * **GFS** (Good for trading session): The order rests in the order book until it is either executed, removed by the user or until start of next non-trading (closed) phase of the underlying contract.
 * **GTD** (Good till date): The order rests in the order book until the date specified in the vldtyDate field.
 * **NON** (No validity restriction): Mandatory for orders with execution restriction codes FOK or IOC.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="GFS"/>
            <xs:enumeration value="GTD"/>
            <xs:enumeration value="NON"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="validityRestrictionUnionType">
        <xs:union memberTypes="validityRestrictionType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="orderEntryStateType">
        <xs:annotation>
            <xs:documentation>
                "ACTI": The order is entered and immediately exposed to the market for execution. This is the default value.
                "HIBE": The order is entered into the backend system but not exposed to the market.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="HIBE"/>
            <xs:enumeration value="ACTI"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="orderEntryStateUnionType">
        <xs:union memberTypes="orderEntryStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="orderStateType">
        <xs:annotation>
            <xs:documentation>
The current state of the order in the system. Valid values:

- **HIBE**: The order is entered into the backend system but is not exposed to the market.
- **ACTI**: The order is entered and is immediately exposed to the market for execution.
- **IACT**: The order is deleted.
- **UKNW**: The order state is unknown (eg. LTS is disconnected from XBID).
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="HIBE"/>
            <xs:enumeration value="IACT"/>
            <xs:enumeration value="ACTI"/>
            <xs:enumeration value="UKNW"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="orderStateUnionType">
        <xs:annotation>
            <xs:documentation>
The current state of the order in the system. Valid values:

* **HIBE**: The order is entered into the backend system but is not exposed to the market.
* **ACTI**: The order is entered and is immediately exposed to the market for execution.
* **IACT**: The order is deleted.
* **UKNW**: The order state is unknown (eg. LTS is disconnected from XBID).

Note due to forward compatibility this field supports any string, so new state may be introduced in future.
            </xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="orderStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="originatorAggressorType">
        <xs:annotation>
            <xs:documentation>
Indicates whether the executed order was a trade aggressor or trade originator. Valid values:

* **Y**: Trade aggressor
* **N**: Trade originator
* **U**: Unknown, for executed orders of remote products and data before migration. Default value.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Y"/>
            <xs:enumeration value="N"/>
            <xs:enumeration value="U"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="originatorAggressorUnionType">
        <xs:union memberTypes="originatorAggressorType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="messageSeverityType">
        <xs:annotation>
            <xs:documentation>
Severity of the message:

* **URG**: Urgent message.
* **ERR**: Error.
* **HIG**: High priority message.
* **MED**: Medium priority message.
* **LOW**: Low priority message.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="URG"/>
            <xs:enumeration value="ERR"/>
            <xs:enumeration value="HIG"/>
            <xs:enumeration value="MED"/>
            <xs:enumeration value="LOW"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="messageSeverityUnionType">
        <xs:union memberTypes="messageSeverityType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="contractPhaseType">
        <xs:annotation>
            <xs:documentation>
Specifies the contract phase. Valid values:

* **CONT**: Continuous Trading.
* **BALA**: Balancing Phase.
* **AUCT**: Auction Phase.
* **CLSD**: Closed Phase, Trading is not possible during this phase.
* **SDAT**: Same Delivery Area Trading Phase.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="CONT"/>
            <xs:enumeration value="BALA"/>
            <xs:enumeration value="AUCT"/>
            <xs:enumeration value="CLSD"/>
            <xs:enumeration value="SDAT"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="contractPhaseUnionType">
        <xs:union memberTypes="contractPhaseType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="cashLmtModType">
        <xs:annotation>
            <xs:documentation>Type of modification</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ADD"/>
            <xs:enumeration value="MOD"/>
            <xs:enumeration value="DEL"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="cashLmtModUnionType">
        <xs:union memberTypes="cashLmtModType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="cashLmtActivationType">
        <xs:annotation>
            <xs:documentation>
Indicates if the cash limit change should be activated immediately or at the next standard trading limit reset. Possible values:

* **IMDT**: change will be executed immediately
* **DLYD**: change will be executed during the next standard trading limit reset</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="IMDT"/>
            <xs:enumeration value="DLYD"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="cashLmtActivationUnionType">
        <xs:union memberTypes="cashLmtActivationType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="cashLmtStateType">
        <xs:annotation>
            <xs:documentation>
The state of the limit. Valid values:

* **ACTI**: Active limit in the system current or future.
* **IACT**: Inactive limit in the system.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="IACT"/>
            <xs:enumeration value="ACTI"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="cashLmtStateUnionType">
        <xs:union memberTypes="cashLmtStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="ordrModType">
        <xs:annotation>
            <xs:documentation>
Types of order modification.
Offers the possibility to activate, deactivate, modify or delete all orders contained in the basket.

* **ACTI**: Activate all orders contained in this basket. Orders that are already active are ignored.
* **DEAC**: Deactivates (hibernates) all orders contained in the basket. Hibernated orders are removed from the order book but are still available for modification or activation in the own orders list.
* **MODI**: Modifies all orders in the basket.
* **DELE**: Deletes all orders in the basket.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ACTI"/>
            <xs:enumeration value="DEAC"/>
            <xs:enumeration value="MODI"/>
            <xs:enumeration value="DELE"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ordrModUnionType">
        <xs:union memberTypes="ordrModType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="ordrModAllType">
        <xs:annotation>
            <xs:documentation>
Types for modification of multiple orders, in comparison with single modification the type MODI is not
allowed here.

The following values are allowed:

* **ACTI**: Activate all orders. Already active orders are ignored. Not available for modifications on member level (mbrId provided).
* **DEAC**: Deactivates (hibernates) all orders. Hibernated orders are removed from the order book but are still available for modification or activation in the own orders list.
* **DELE**: Deletes all orders. Not available for modifications on member level (mbrId provided).
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="ordrModType">
            <xs:enumeration value="ACTI"/>
            <xs:enumeration value="DEAC"/>
            <xs:enumeration value="DELE"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ordrModAllUnionType">
        <xs:union memberTypes="ordrModAllType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="disconnectActType">
        <xs:annotation>
            <xs:documentation>
An action that will be executed when M7 detects an unexpected connection loss of the client. Valid values:

* **NO**: No action is executed.
* **DEACT_USER_ORDRS**: All orders of this user will be deactivated.
* **DEACT_ACCT_ORDRS**: All orders entered into the backend system of the assigned trader accounts will be deactivated.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="NO"/>
            <xs:enumeration value="DEACT_USER_ORDRS"/>
            <xs:enumeration value="DEACT_ACCT_ORDRS"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="disconnectActUnionType">
        <xs:union memberTypes="disconnectActType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="throttlingMemberActionType">
        <xs:annotation>
            <xs:documentation>
An action that will be executed in case of order throttling is applied. Valid values:

* **NONE_MBR_ORDERS**: No action is executed.
* **HIBE_MBR_ORDERS**: All orders of this member will be hibernated.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="NONE_MBR_ORDERS"/>
            <xs:enumeration value="HIBE_MBR_ORDERS"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="throttlingMemberActionUnionType">
        <xs:union memberTypes="throttlingMemberActionType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="throttlingUserActionType">
        <xs:annotation>
            <xs:documentation>
An action that will be executed in case of order throttling is applied. Valid values:

* **NONE_USER_ORDERS**: No action is executed.
* **HIBE_USER_ORDERS**: All orders of this user will be hibernated.
* **HIBE_BG_ORDERS**: All orders of balancing group of this user will be hibernated.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="NONE_USER_ORDERS"/>
            <xs:enumeration value="HIBE_USER_ORDERS"/>
            <xs:enumeration value="HIBE_BG_ORDERS"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="throttlingUserActionUnionType">
        <xs:union memberTypes="throttlingUserActionType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="orderbookBatchingType">
        <xs:annotation>
            <xs:documentation>
The type of order book batching that will be executed for the user. For more details on the batching process, please refer to the *Order Book Batching* chapter in this document. Valid values:

* **SHORT**: Order book batching based on the SHORT time interval (default option).  
* **LONG**: Order book batching based on the LONG time interval. 
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="SHORT"/>
            <xs:enumeration value="LONG"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="orderbookBatchingUnionType">
        <xs:union memberTypes="orderbookBatchingType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="orderbookApiVersionType">
        <xs:annotation>
            <xs:documentation>
The version of Order Book API and Private Data API the user wishes to consume. Valid values:

* **V6**: V6 API based on XML payload and AMQP protocol. All Order Book messages will be sent to the user's AMQP broadcast queue. This value is used as a default in case the user does not provide any.
* **V7**: V7 API based on Protocol Buffers payload and WebSocket protocol. Token will be sent within UsrRprt and user can subscribe for Order Book messages in the WebSocket channel.
* **BOTH**: V6 and V7 at the same time. Note that this option might be rejected if M7's broadcast capacity gets saturated.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="V6"/>
            <xs:enumeration value="V7"/>
            <xs:enumeration value="BOTH"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="orderbookApiVersionUnionType">
        <xs:union memberTypes="orderbookApiVersionType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="riskSetModType">
        <xs:annotation>
            <xs:documentation>
The type of action which was taken on the risk set. Valid values:

* **ACTI**: The risk set is active
* **ADEL**: The risk set is deleted</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ACTI"/>
            <xs:enumeration value="ADEL"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="riskSetModUnionType">
        <xs:union memberTypes="riskSetModType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="priceType">
        <xs:annotation>
            <xs:documentation>Limit price of the order. Price complies with the usual price format.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:long"/>
    </xs:simpleType>

    <xs:simpleType name="boolType">
        <xs:restriction base="xs:boolean"/>
    </xs:simpleType>

    <xs:simpleType name="quantityType">
        <xs:annotation>
            <xs:documentation>Contains the total quantity of the order</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:int"/>
    </xs:simpleType>

    <xs:simpleType name="textType">
        <xs:annotation>
            <xs:documentation>
                Text entered by the client. This text will not be modified by the backend system.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="250"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="statusMsgTextType">
        <xs:annotation>
            <xs:documentation>Message text for status messages.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="300"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="deliveryAreaIdType">
        <xs:annotation>
            <xs:documentation>
  Delivery or Market Area Id. In the power market this corresponds to the EIC code. This value must be unique.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="16"/>
            <xs:minLength value="16"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ordrType">
        <xs:annotation>
            <xs:documentation>
Order type:

* **O**: Regular limit order.
* **B**: User defined block order.
* **I**: Iceberg order.
* **L**: Balance order.
* **S**: Stop limit order.
* **E**: On exchange prearranged trade
* **N**: Private and confidential trade</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="O"/>
            <xs:enumeration value="B"/>
            <xs:enumeration value="I"/>
            <xs:enumeration value="L"/>
            <xs:enumeration value="S"/>
            <xs:enumeration value="N"/>
            <xs:enumeration value="E"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ordrUnionType">
        <xs:union memberTypes="ordrType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="clOrdrIdType">
        <xs:annotation>
            <xs:documentation>
Client Order Id with a maximum length of 40 characters. This value is not modified by the backend
and may be used by client applications to identify orders.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="40"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stringType4">
        <xs:restriction base="xs:string">
            <xs:maxLength value="4"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stringType5">
        <xs:restriction base="xs:string">
            <xs:maxLength value="5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stringType16">
        <xs:restriction base="xs:string">
            <xs:maxLength value="16"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stringType32">
        <xs:restriction base="xs:string">
            <xs:maxLength value="32"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stringType64">
        <xs:restriction base="xs:string">
            <xs:maxLength value="64"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stringType128">
        <xs:restriction base="xs:string">
            <xs:maxLength value="128"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stringType255">
        <xs:restriction base="xs:string">
            <xs:maxLength value="255"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stringType4096">
        <xs:restriction base="xs:string">
            <xs:maxLength value="4096"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="usrCodeType">
        <xs:annotation>
            <xs:documentation>User's user code</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="6"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="exchangeMarketShortNameType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="6"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="exchangeMarketLongNameType">
        <xs:restriction base="xs:string">
            <xs:maxLength value="32"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="dateType">
        <xs:restriction base="xs:date"/>
    </xs:simpleType>

    <xs:simpleType name="dateTimeType">
        <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>

    <xs:simpleType name="contractType">
        <xs:annotation>
            <xs:documentation>
 Defines which kind of contracts should be retrieved:

 Possible values are:

 **“ALL”** – All kind of contracts (pre-defined and user-defined)

 **“PDC”** – Only pre-defined contracts

 **“UDC”** – Only user-defined contracts

 This attribute is ignored when contractId is specified.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ALL"/>
            <xs:enumeration value="PDC"/>
            <xs:enumeration value="UDC"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="contractUnionType">
        <xs:union memberTypes="contractType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="prdType">
        <xs:annotation>
            <xs:documentation>
Indicates the type of the product. Valid values are:

**"COM"**: Commodities

**"ENG"**: Energy products

**"FUT"**: Futures

**"CRO"**: Cross-product spreads

**"UDD"**: User-defined delivery period</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="COM"/>
            <xs:enumeration value="ENG"/>
            <xs:enumeration value="FUT"/>
            <xs:enumeration value="CRO"/>
            <xs:enumeration value="UDD"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="prdUnionType">
        <xs:union memberTypes="prdType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="prdExecType">
        <xs:annotation>
            <xs:documentation>
Defines if orders referencing the contracts of this product can be matched partially or
only with the full quantity.

**NON**: no restriction (partial matching allowed)

**AON**: all or nothing
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="NON"/>
            <xs:enumeration value="AON"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="prdExecUnionType">
        <xs:union memberTypes="prdExecType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="dType">
        <xs:annotation>
            <xs:documentation>type for weekday</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="MON"/>
            <xs:enumeration value="TUE"/>
            <xs:enumeration value="WED"/>
            <xs:enumeration value="THU"/>
            <xs:enumeration value="FRI"/>
            <xs:enumeration value="SAT"/>
            <xs:enumeration value="SUN"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="dUnionType">
        <xs:union memberTypes="dType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="stlmntStateType">
        <xs:annotation>
            <xs:documentation>
Settlement system status for the trade. Valid values:

* **INIT**: The initial status of a trade before being processed.The sole state if settlement capability is not turned on.
* **SNDG**: Trade information was accepted by transfer system.
* **SENT**: Trade information was sent to the settlement system.
* **ACKN**: Trade information was received by settlement system.
* **INFO**: Received additional information from the settlement system.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="INIT"/>
            <xs:enumeration value="SNDG"/>
            <xs:enumeration value="SENT"/>
            <xs:enumeration value="ACKN"/>
            <xs:enumeration value="INFO"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="stlmntStateUnionType">
        <xs:union memberTypes="stlmntStateType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="openCloseIndType">
        <xs:annotation>
            <xs:documentation>
This is mandatory for Futures and Cross product spreads. For other Commodities it is not used. Valid values:

* **O**: Open position indicator
* **C**: Close position indicator
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="O"/>
            <xs:enumeration value="C"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="openCloseIndUnionType">
        <xs:union memberTypes="openCloseIndType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="dateMeaningType">
        <xs:annotation>
            <xs:documentation>
Defines meaning of the startDate and endDate parameters

Valid values:

* **MATCH** (default): trades with match event occurring between the startDate and endDate are inquired
* **LAST_UPDATE**: trades with last update occurring between the startDate and endDate are inquired
* **DELIVERY**: trades with delivery occurring between the startDate and endDate are inquired
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="MATCH"/>
            <xs:enumeration value="LAST_UPDATE"/>
            <xs:enumeration value="DELIVERY"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="dateMeaningUnionType">
        <xs:union memberTypes="dateMeaningType xs:string"/>
    </xs:simpleType>

    <xs:attributeGroup name="OrdBkAttrGrp">
        <xs:attribute name="contractId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The contract Id of the underlying contract.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="required">
            <xs:annotation>
                <xs:documentation>Delivery Area to which the attached order books refer to.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lastPx" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>Last traded price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lastQty" type="quantityType" use="optional">
            <xs:annotation>
                <xs:documentation>Last traded quantity.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="totalQty" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>Total quantity of individual orders that were matched in a trade on selected contract and delivery area. If the trade is created from 2 orders on the same delivery area, then TQty includes quantity of both orders. For remote trades TQty is provided by XBID.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lastTradeTime" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>Timestamp of the last execution.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="pxDir" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
  Defines the direction of the price movement. Valid values:

  * **-1**: Price has decreased
  * **0**: Price is unchanged
  * **1**: Price has increased</xs:documentation>
             </xs:annotation>
        </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>
  This value is increased in case of any change in the order book. Starts from 1 (first empty order book after contract generation).

  **Please note**: the revision numbers of the order books are stored in memory only (not persisted) on backend side. After a restart of the backend system, the revision numbers of the order books will start again from beginning. At the same time, the first *revisionNo* received can be higher than 1, and *revisionNo* can also rise by more than 1 due to internal batching in the core. 
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="highPx" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>The highest traded price since the start of the trading period.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lowPx" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>The lowest traded price since the start of the trading period.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="surplusBid" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>The surplus determined during the auction phase on the Bid Side.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="surplusAsk" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>The surplus determined during the auction phase on the Ask Side.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="indicativePx" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>The price determined during the auction phase of the contract.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:complexType name="OrdrBookType">
        <xs:sequence>
            <xs:element name="SellOrdrList" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence minOccurs="1" maxOccurs="1">
                        <xs:element name="OrdrBookEntry" type="OrdrBookEntryType" minOccurs="0"
                                    maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:anyAttribute processContents="lax"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="BuyOrdrList" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence minOccurs="1" maxOccurs="1">
                        <xs:element name="OrdrBookEntry" type="OrdrBookEntryType" minOccurs="0"
                                    maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:anyAttribute processContents="lax"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="OrdBkAttrGrp"/>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="OrdrBookEntryType">
        <xs:complexContent>
            <xs:extension base="ClgHseCodeListType">
                <xs:attribute name="ordrId" type="longType" use="required">
                    <xs:annotation>
                        <xs:documentation>
The Order Id as determined by the backend system. If the order was entered for a remote product, the field contains:

* the local Order ID (not the one from the XBID system) for the orders of own PX, or
* the remote Order ID (the one from the XBID system) for the orders of other PXs.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="qty" type="quantityType" use="required">
                    <xs:annotation>
                        <xs:documentation>
                            The quantity of the order which is exposed in that delivery area. This value may be different for one order depending on the observed delivery area and the available cross border capacity.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="px" type="priceType" use="required">
                    <xs:annotation>
                        <xs:documentation>The limit price of the order.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="ordrEntryTime" type="dateTimeType" use="required">
                    <xs:annotation>
                        <xs:documentation>The timestamp of the order.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="ordrExeRestriction" type="ordrExeRestrictionUnionType" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Execution restriction of the order. This attribute is set only in the case of AON orders (value = AON). For more information and possible values see the Order Entry message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="ordrType" type="ordrUnionType" use="optional">
                    <xs:annotation>
                        <xs:documentation>
The following values can be used:

* **O**: Regular limit order(default value)
* **B**: User defined block order.
* **L**: Balance order.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="openCloseInd" type="openCloseIndUnionType" use="optional">
                    <xs:annotation>
                        <xs:documentation>
Mandatory for Futures and Cross product spreads. For other Commodities this value is not used. Valid values:

* **O**: Open position indicator
* **C**: Close position indicator
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ClientDataType">
        <xs:annotation>
            <xs:documentation>
For order management transactions the client data fields in this section can be used by the client to store information or meta-data about a request. None of this information is used by the backend and it is returned to the client with the response.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="clientDataInt" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Integer for client's usage.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clientDataString" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>
                    String for client's usage.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clientCorrelationId" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Correlation Id for client's usage.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="StandardHeaderType">
        <xs:annotation>
            <xs:documentation>
Every message will contain a header at the beginning of the message.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="clientData" type="ClientDataType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="marketId" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>
Market Identification Code (MIC) of the market to which the request is sent or from which the request originates.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onBehalfUserId" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
UserID of the target user in case of On-behalf trading (see On-behalf Trading chapter in _DFS180_).
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="PblcAccountBaseType">
        <xs:sequence>
            <xs:element name="dlvryAreaId" type="deliveryAreaIdType" minOccurs="0"
                        maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Assigned delivery areas</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Assigned products</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="acctId" type="acctIdType" use="required">
            <xs:annotation>
                <xs:documentation>The unique identifier of the account</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="stringType64" use="required">
            <xs:annotation>
                <xs:documentation>The name of the account</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mbrId" type="stringType5" use="required">
            <xs:annotation>
                <xs:documentation>The unique identifier of the associated member</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preArrangedAvlbl" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>A flag which determines if this account can be used for entering pre-arranged (OTC) orders.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="refDataStateUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
The current state of the account. The following values are allowed:

* **ACTI**: The account is active. It is possible to trade using this account.
* **IACT**: The account is inactive. It is not possible to trade using this account. This state is not available for CreateAcctsReq and ModifyAcctsReq.
* **DELE**: The account is deleted. Trading using this account is not possible.
* **SUSP**: The account is suspended. Trading using this account is not possible.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="AccountBaseType">
        <xs:complexContent>
            <xs:extension base="PblcAccountBaseType">
                <xs:sequence>
                    <xs:element name="assignedAcctIds" type="acctIdType" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>List of assigned accounts for broker</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="clgAcctId" type="intType" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>Assigned clearing accounts. Deprecated.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="AccountType">
        <xs:annotation>
            <xs:documentation>Account element</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="AccountBaseType">
                <xs:attribute name="revisionNo" type="longType" use="required">
                    <xs:annotation>
                        <xs:documentation>
Revision number of this Account. Always increasing upon a change.

In a request, it is the revision before a change. Backend will verify this value against the
current revision number of the account and return ErrResp if incorrect.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="PblcAccountType">
        <xs:complexContent>
            <xs:extension base="PblcAccountBaseType">
                <xs:attribute name="revisionNo" type="longType" use="required">
                    <xs:annotation>
                      <xs:documentation>Revision number of this Account. Always increasing upon a change.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:simpleType name="clgHseStateType">
        <xs:annotation>
            <xs:documentation>
The state of the clearing account / clearing house. Valid values:

* **ACTI**: Active (default)
* **IACT**: Inactive

If not present, the status will not be modified.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="IACT"/>
            <xs:enumeration value="ACTI"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="clgHseStateUnionType">
        <xs:union memberTypes="clgHseStateType xs:string"/>
    </xs:simpleType>

    <xs:complexType name="ClgHseCodeAcctType">
        <xs:complexContent>
            <xs:extension base="ClgHseCodeType">
                <xs:attribute name="clgAcctId" type="intType" use="required">
                    <xs:annotation>
                        <xs:documentation>Clearing Account Id.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ClgHseCodeAcctListType">
        <xs:sequence>
            <xs:element name="ClgHse" type="ClgHseCodeAcctType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
List of the Clearing House elements.

The priority order will be the same as the order of the Clearing House in the xml message. The Clearing House specified first will have the top priority, and the Clearing House specified at the end of the file will have the least priority.

This is mandatory if the clearing house functionality is set-up on the exchange. See SystemInfoResp.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="ClgHseCodeType">
        <xs:attribute name="clgHseCode" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>Clearing House Code. Deprecated.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="ClgHseCodeListType">
        <xs:sequence>
            <xs:element name="ClgHse" type="ClgHseCodeType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <!-- Global Ack Response Schema Configuration -->

    <xs:element name="AckResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <!-- Global Err Response Schema Configuration -->
    <xs:element name="ErrResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Error" type="ErrorType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="ErrorType">
        <xs:annotation>
            <xs:documentation>The single error element</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="VarList" type="VarListType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="err" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The error message for this error. Always in the English language with variables already replaced by their values.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="errCode" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>
                    The error code of the error. In case an error message does not have a specific error code, the value of 0 will be used.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clOrdrId" type="clOrdrIdType" use="optional">
            <xs:annotation>
                <xs:documentation>The client order id</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="VarListType">
        <xs:annotation>
            <xs:documentation>A list of variables used in the err text field</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Var" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Structure containing information on variables</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="id" type="intType" use="required">
                        <xs:annotation>
                            <xs:documentation>
In Error Response it is the identifier of a variable within the err resource text (eg. 0).

In MsgRprt, it is the identifier of a variable within the message resource text (e.g. 6).</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="value" type="stringType255" use="required">
                        <xs:annotation>
                            <xs:documentation>Value of the variable (e.g. Acct1)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:anyAttribute processContents="lax"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>


    <!-- Order Management Schema Configuration -->

    <xs:attributeGroup name="OrdrEntryReqAttrGrp">
        <xs:attribute name="clearingAcctType" type="clearingAccountType" use="required">
            <xs:annotation>
                <xs:documentation>
                    Defines if the order is entered on a trader's own account, or as an agent. For valid values please refer to the values from the attribute allowedClearingAcctTypes in the SystemInfoResp message (i.e. **A**, **P** for spot markets).
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="acctId" type="acctIdType" use="required">
            <xs:annotation>
                <xs:documentation>Account for which the order is entered. The order is rejected if the trader tries to
                    enter an account to which he is not assigned.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contractId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Defines the underlying contract of the order. This value must be set for all pre-defined contracts. It may be omitted only in the case of an order in a user-defined contract.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prod" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>Product identifier. This is mandatory in case that the contract Id is omitted.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="side" type="directionUnionType" use="required">
            <xs:annotation>
                <xs:documentation>Defines on which side of the market the order is entered (**BUY**, **SELL**).
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="px" type="priceType" use="required">
            <xs:annotation>
                <xs:documentation>Limit price of the order.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="stopPx" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>Stop price for stop limit orders.
                    Mandatory if the type=**S**.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ppd" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>Peak price delta for Iceberg orders.

* The ppd of buy orders must be smaller than or equal to zero.
* The ppd of sell orders must be greater than  or equal to zero.

If it is omitted the system will assume a value of _0,00_.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <xs:attribute name="qty" type="quantityType" use="required">
            <xs:annotation>
                <xs:documentation>Contains the total quantity of the order. In case of an Iceberg order this field
                    corresponds to the hidden quantity + display quantity.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="displayQty" type="quantityType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Used to define the display quantity of an Iceberg Order. This field is only required when the type=**I**.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ordrExeRestriction" type="ordrExeRestrictionUnionType" use="optional"
                      default="NON">
            <xs:annotation>
                <xs:documentation>
Execution restriction of the order. Valid values:

* **NON**: No restriction. This is the default setting.
* **FOK** (Fill or Kill): The order is immediately fully executed or deleted.
* **IOC** (Immediate and cancel): The order is executed immediately to its maximum extent. In the event  of a partial execution, the remaining volume is removed from the order book.
* **AON** (All or None): The order must be filled completely or not at all. The order stays in the order book until it is executed or removed by the system or user.

If the product has an execution restriction of NON, then NON, FOK, IOC are allowed. Only NON is allowed for order type = **I**. AON is allowed for type = **B**.

If the product has an execution restriction of AON, then FOK or AON are allowed. IOC is allowed for market sweep for order type = **B**.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="txt" type="textType" use="optional">
            <xs:annotation>
                <xs:documentation>Text entered by the client. The content of this text will not be modified by the backend system.
                    The maximum possible length is 250 characters.<br/><br/>Restricted characters: Do not use the special character Unicode U+FFEE in the `Text` field.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="optional">
            <xs:annotation>
                <xs:documentation>
Defines the delivery area of the order.

This is mandatory for exchanges with a multiple delivery area setup.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clOrdrId" type="clOrdrIdType" use="optional">
            <xs:annotation>
                <xs:documentation>
Client Order Id with a maximum length of 40 characters. This value is not modified by the backend and may be used by client applications to identify orders.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preArranged" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>
This flag indicates if the entered order is a pre-arranged order or not.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preArrangedAcct" type="acctIdType" use="optional">
            <xs:annotation>
                <xs:documentation>
This is required in case of a pre-arranged order. It contains the account of the counterpart.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="ordrUnionType" use="required">
        </xs:attribute>
        <xs:attribute name="dlvryStart" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The start of delivery for the underlying contract. Mandatory if contractId is omitted.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryEnd" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The end of delivery for the underlying contract. Mandatory if contractId is omitted.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="validityDate" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    This field is mandatory in the event that validityRes equals GTD. It is used to define the date until which the order is valid. The remaining part of the order will be removed from the order book after this point in time. For GFS orders, the field is populated with date and time of the end of trading phase, or with the date and time of the contract expiry point, depending on which of the two dates comes earlier.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="validityRes" type="validityRestrictionUnionType" use="optional">
        </xs:attribute>
        <xs:attribute name="state" type="orderEntryStateUnionType" use="optional" default="ACTI">
            <xs:annotation>
                <xs:documentation>The desired state of the order.
* **ACTI**: The order is entered and immediately exposed to the market for execution. This is the default value.
* **HIBE**: The order is entered into the backend system but is not exposed to the market.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="openCloseInd" type="openCloseIndUnionType" use="optional">
            <xs:annotation>
                <xs:documentation>
Mandatory for Futures product and Cross product spreads. For other Commodities is not present. Valid values:

* **O**: Open position indicator
* **C**: Close position indicator
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aot" type="boolType" use="optional" default="false">
            <xs:annotation>
                <xs:documentation>
The indicator whether the order shall be automatically transferred to the corresponding linked contract after the trading in the specific delivery area ends in XBID.

Default value: false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="location" type="stringType64" use="optional">
            <xs:annotation>
                <xs:documentation>Location within the delivery area. Set only for relevant products.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="marketBased" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Type of the congestion order to indicate whether it is a market based order (Yes) or a non-market based order (No).
                    Available and mandatory only for products with Locations enabled.
                    Default value: true. If an order for a product with Locations enabled is sent without Market Based attribute, the default value is added by M7 backend.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contractReference" type="stringType64">
            <xs:annotation>
                <xs:documentation>
                    Reference to a contract between supplier and network operator (e.g. bidding obligation).
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="facilityType" type="stringType64">
            <xs:annotation>
                <xs:documentation>
                    Type of the network connected facility that converts primary energy into electrical energy.
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="usageFraction" type="intType">
            <xs:annotation>
                <xs:documentation>
                    Indicates the mix/max percentage value of usage of the order.
                    Example: For BUY orders it represents the maximum the provider can down regulate their production unit without fully shutting it down.
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:attributeGroup name="OrdrModifyReqAttrGrp">
        <xs:attribute name="ordrId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>
                    Order Id is created by the backend system. This value is used to identify the order to be modified.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clOrdrId" type="clOrdrIdType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The Client Order Id has a maximum length of 40 characters. This value is not modified by the backend and may be used by client applications to identify orders.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="px" type="priceType" use="required">
            <xs:annotation>
                <xs:documentation>Limit price of the order.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="stopPx" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>Stop price for stop limit orders. Mandatory if the type=**S**.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ppd" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>
Peak price delta for Iceberg orders.

* The ppd of buy orders must be smaller than or equal to zero.
* The ppd of sell orders must be greater than or equal to zero.

If it is omitted the system will assume a value of _0,00_.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="qty" type="quantityType" use="required">
            <xs:annotation>
                <xs:documentation>Contains the total quantity of the order. In the case of an Iceberg order, this field corresponds to the hidden quantity + the display quantity.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="displayQty" type="quantityType" use="optional">
            <xs:annotation>
                <xs:documentation>Used to define the display quantity of an Iceberg Order.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ordrExeRestriction" type="ordrExeRestrictionUnionType" use="optional">
            <xs:annotation>
                <xs:documentation>
Execution restriction of the order.
Valid values:

* **FOK** (Fill or Kill): The order is immediately fully executed or deleted.
* **IOC** (Immediate and cancel): The order is executed immediately to its maximum extent. In the case of a partial execution, the remaining volume is removed from the order book.
* **AON** (All or None): The order must be filled completely or not at all. The order stays in the order book until it is executed or removed by the system or user. This execution restriction can be used only in combination with User Defined Block Orders.
* **NON**: Any restriction.

If the product has an execution restriction code of NON, then NON, FOK,IOC are allowed.
If the product has an execution restriction code of AON, then FOK or AON are allowed.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <xs:attribute name="txt" type="textType" use="optional">
            <xs:annotation>
                <xs:documentation>Text entered by the client. This text will not be modified by the backend.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="ordrUnionType" use="required"/>
        <xs:attribute name="validityDate" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    This field is mandatory in the event that validityRes equals GTD. It is used to define the date until which the order is valid. The remaining part of the order will be removed from the order book after this point in time. For GFS orders, the field is populated with date and time of the end of trading phase, or with the date and time of the contract expiry point, depending on which of the two dates comes earlier.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="validityRes" type="validityRestrictionUnionType" use="optional"/>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The latest revision number of the order must be provided by the client. In case the
                    backend has another revision number, it will reject the request with an ErrResp.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="openCloseInd" type="openCloseIndUnionType" use="optional"/>
        <xs:attribute name="aot" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>Indicates whether the order has been automatically transferred to the corresponding linked contract after the trading in the specific delivery area ended in XBID.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="location" type="stringType64" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Location within the delivery area. Should be only set for products with locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="marketBased" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Type of the congestion order to indicate whether it is a market based order (Yes) or a non-market based order (No).
                    Available and mandatory only for products with Locations enabled.
                    Default value: true. If an order for a product with Locations enabled is sent without Market Based attribute, the default value is added by M7 backend.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contractReference" type="stringType64">
            <xs:annotation>
                <xs:documentation>
                    Reference to a contract between supplier and network operator (e.g. bidding obligation).
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="facilityType" type="stringType64">
            <xs:annotation>
                <xs:documentation>
                    Type of the network connected facility that converts primary energy into electrical energy.
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="usageFraction" type="intType">
            <xs:annotation>
                <xs:documentation>
                    Indicates the mix/max percentage value of usage of the order.
                    Example: For BUY orders it represents the maximum the provider can down regulate their production unit without fully shutting it down.
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:complexType name="OrdrEntryType">
        <xs:complexContent>
            <xs:extension base="ClgHseCodeAcctListType">
                <xs:attributeGroup ref="OrdrEntryReqAttrGrp"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="OrdrModificationType">
        <xs:complexContent>
            <xs:extension base="ClgHseCodeAcctListType">
                <xs:attributeGroup ref="OrdrModifyReqAttrGrp"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="OrdrEntry" final="#all">

        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="OrdrList" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>List of all orders contained in the basket.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="Ordr" type="OrdrEntryType" minOccurs="1" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="listExecInst" type="ListExecInstUnionType" use="optional">
                <xs:annotation>
                    <xs:documentation>Defines the execution instruction for the whole list of orders:

* **NONE**: All orders are treated independently during validation. Only valid orders are processed further, and the processing result is sent in a single OrdrExeRprt, containing a generated LinkId. This value is also to be used if the OrdrEntry message contains only **one order**.

* **VALID**: All orders must be valid, meaning they must pass the order validation of the backend system (e.g. the price of the order must be in the price range of the product). If one order does not pass the validation, the full list of submitted orders is rejected.

* **LNKD**: Linked orders - the orders in the basket are linked and must be executed either all at once, or the whole list is rejected. A basket with the basket order restriction LNKD can only contain orders with the order restriction FOK. All orders in such a basket must be entered either for local products, or all for remote products (a combination of remote and local orders is not allowed). It is possible to submit orders for different products in a basket. Please check its availability with the System Info Request and the Product Information Request.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="PrearrangedTradeEntry" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Buy" type="PrearrangedOrdrEntryType" minOccurs="1" maxOccurs="1"/>
                <xs:element name="Sell" type="PrearrangedOrdrEntryType" minOccurs="1" maxOccurs="1"/>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="contractId" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>Contract Id.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="px" type="priceType" use="required">
                <xs:annotation>
                    <xs:documentation>Price of the trade.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="qty" type="quantityType" use="required">
                <xs:annotation>
                    <xs:documentation>Quantity of the trade.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="type" type="ordrUnionType" use="required">
                <xs:annotation>
                    <xs:documentation>The type of trade. Valid values:

* **E**: On exchange prearranged trade
* **N**: Private and confidential trade

Note: other order types are not allowed in this message.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="txt" type="textType" use="optional">
                <xs:annotation>
                    <xs:documentation>Optional text.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="clgHseCode" type="stringType255" use="optional">
                <xs:annotation>
                    <xs:documentation>
Clearing House code of the trade. Deprecated.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="PrearrangedOrdrEntryType">
        <xs:attributeGroup ref="PreArrangedAttrGrp"/>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:attributeGroup name="PreArrangedAttrGrp">
        <xs:attribute name="traderUserId" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Trader identification.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="acctId" type="acctIdType" use="required">
            <xs:annotation>
                <xs:documentation>Account identification.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clearingAcctType" type="clearingAccountType" use="optional">
            <xs:annotation>
                <xs:documentation>Defines if the order is entered on its own account, or as an agent. For valid values please refer to values from attribute allowedClearingAcctTypes in the SystemInfoResp message (i.e. **A**, **P** for spot markets). </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="optional">
            <xs:annotation>
                <xs:documentation>Delivery area identification.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="openCloseInd" type="openCloseIndUnionType" use="optional">
            <xs:annotation>
                <xs:documentation>Open/Close indicator. Mandatory for Futures and Cross product spreads. For other Commodities the value is not used. Valid values:

* **O**: Open position indicator
* **C**: Close position indicator</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="brokerUserId" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>Broker user identification.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clgAcctId" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Clearing account Id. Deprecated.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:attributeGroup name="OrdrAttrGrp">
        <xs:attribute name="ordrId" type="longType" use="required">
                  <xs:annotation>
                      <xs:documentation>Order Id as returned by the backend system.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="initialOrdrId" type="longType" use="required">
                  <xs:annotation>
                      <xs:documentation>In the event of an order modification, this value contains the Id of the first order in the modification chain.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="parentOrdrId" type="longType" use="optional">
                  <xs:annotation>
                      <xs:documentation>In the event of an order modification, this field contains the Id of the modified order. </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="clearingAcctType" type="clearingAccountType" use="optional">
                  <xs:annotation>
                      <xs:documentation>
                          Defines if the order is entered on its own account, or as an agent. For valid values please refer to values from attribute allowedClearingAcctTypes in the SystemInfoResp message (i.e. A, P for spot markets).
                      </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="acctId" type="acctIdType" use="required">
                  <xs:annotation>
                      <xs:documentation>Account for which the order was entered.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="contractId" type="longType" use="required">
                  <xs:annotation>
                      <xs:documentation>Defines the underlying contract of the order. This value must be set for all pre-defined contracts. It may be omitted only in the event of an order in a user-defined contract. </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="side" type="directionUnionType" use="required">
                  <xs:annotation>
                      <xs:documentation>
Defines on which side of the market the order is entered. Valid values:

* **BUY**: Buy order.
* **SELL**: Sell order.
                      </xs:documentation>
                    </xs:annotation>
        </xs:attribute>
        <xs:attribute name="px" type="priceType" use="required">
                  <xs:annotation>
                      <xs:documentation>Limit price of the order. </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="stopPx" type="priceType" use="optional">
                  <xs:annotation>
                      <xs:documentation>Stop price for stop limit orders.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="ppd" type="priceType" use="optional">
                  <xs:annotation>
                      <xs:documentation>The peak price delta for Iceberg orders.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="qty" type="quantityType" use="required">
                  <xs:annotation>
                      <xs:documentation>Contains the quantity exposed to the market. In the event of an Iceberg Order this is the rest of the display quantity.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="hiddenQty" type="quantityType" use="optional">
                  <xs:annotation>
                      <xs:documentation>Contains the hidden quantity of the Iceberg order. The total executable quantity may be calculated by adding the hiddenQty to the qty.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="displayQty" type="quantityType" use="optional">
                  <xs:annotation>
                      <xs:documentation>Used to define display the quantity of an Iceberg Order.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="initialQty" type="quantityType" use="required">
                  <xs:annotation>
                      <xs:documentation>The initial quantity entered with this order. If the order is partially matched, the initialQty still contains the original quantity value. The initialQty value is related to the current order and not to the value of the initial order in the order modification chain (identified by the initialOrdId).</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="ordrExeRestriction" type="ordrExeRestrictionUnionType" use="optional"/>
        <xs:attribute name="txt" type="textType" use="optional">
                  <xs:annotation>
                      <xs:documentation>Text entered by the client. This text will not be modified by the backend.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="required">
                  <xs:annotation>
                      <xs:documentation>Defines the delivery area of the order.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="clOrdrId" type="clOrdrIdType" use="optional">
                  <xs:annotation>
                      <xs:documentation>The Client Order Id has a maximum length of 40 characters. This value is not modified by the backend and may be used by client applications to identify orders.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="preArranged" type="boolType" use="required">
                  <xs:annotation>
                      <xs:documentation>A flag that indicates, if the order is a pre-arranged order or not.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="preArrangedAcct" type="acctIdType" use="optional">
                  <xs:annotation>
                      <xs:documentation>The account of the counterparty in case of a pre-arranged order.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="type" type="ordrUnionType" use="required"/>
        <xs:attribute name="state" type="orderStateUnionType" use="required"/>
        <xs:attribute name="aggressorIndicator" type="originatorAggressorUnionType" use="optional">
                  <xs:annotation>
                      <xs:documentation>Indicates whether the executed order was a trade aggressor or trade originator. The field will only be present in case the Order Execution Report was triggered by a partial or full execution.

* **Y** - Trade aggressor
* **N** - Trade originator
* **U** - Unknown, for executed orders of remote products and data before migration

                      </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="usrCode" type="usrCodeType" use="required">
                  <xs:annotation>
                      <xs:documentation>The user code of the user performing the last successful action on the order.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
                     <xs:annotation>
                         <xs:documentation>
                             When an order is entered, the revision is set to 1. The revision is increased by 1 in case of a partial execution, hibernation or a modification without an execution priority change. In case of a modification with an execution priority change, the revision number for the deleted order (UDEL action) is increased by 1 and the revision number for the newly entered order is reset to 1 (UADD action).
                             The behaviour is the same for local and remote orders.
                         </xs:documentation>
                     </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timestmp" type="dateTimeType" use="required">
                  <xs:annotation>
                      <xs:documentation>The timestamp of the order entry as determined by the backend. This timestamp determines the execution priority in case of identical limit prices. </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="validityDate" type="dateTimeType" use="optional">
                  <xs:annotation>
                      <xs:documentation>This field is mandatory in the event that validityRes equals GTD. It is used to define the date until which the order is valid. The remaining part of the order will be removed from the order book after this point in time. For GFS orders, the field is populated with date and time of the end of trading phase, or with the date and time of the contract expiry point, depending on which of the two dates comes earlier.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="validityRes" type="validityRestrictionUnionType" use="optional">
                  <xs:annotation>
                      <xs:documentation>Validity restriction of the order. If this field is omitted, the order will be treated as a _Good for Session_ order. Valid values:

* **GFS** (Good for trading session): The order rests in the order book until it is either executed, removed by the user or until start of next non-trading (closed) phase of the underlying contract.
* **GTD** (Good till date): The order rests in the order book until the date specified in the vldtyDate field.
* **NON** (No validity restriction): Mandatory for orders with the execution restriction _FOK_ or _IOC_.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="action" type="stringType255" use="required">
                  <xs:annotation>
                      <xs:documentation>
Lists the action code. Valid values:

* **UADD**: Order added by the user.
* **UHIB**: Order deactivated by the user.
* **UMOD**: Order modified by the user.
* **UDEL**: Order deleted by the user.
* **UREJ**: Pre-arranged order rejected by the user.
* **AADD**: Order added by market operations on behalf.
* **AHIB**: Order deactivated by market operations on behalf.
* **AMOD**: Order modified by market operations on behalf.
* **ADEL**: Order deleted by market operations on behalf.
* **AREJ**: Pre-arranged order rejected by market operations on behalf.
* **SADD**: Order added by the system.
* **SHIB**: Order deactivated by the system.
* **SMOD**: Order modified by the system.
* **SDEL**: Order deleted by the system.
* **SREJ**: Pre-arranged order rejected by system.
* **FEXE**: Order is fully executed.
* **PEXE**: Partial execution of order.
* **IADD**: A new slice of an Iceberg order was added to the service.
* **SERR**: The order validation failed on SOB side, or the request sent to SOB timed out. This is only valid for remote orders.
* **SNAV**: Order state is unknown due to SOB unavailability. This is only valid for remote orders.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="lastUpdateUsrInfo" type="stringType255" use="required">
                  <xs:annotation>
                      <xs:documentation>
Information (concatenation of accountId and usrCode) about the user who last updated the order, either on their own or on behalf.

If the _action_ is any of the system actions (FEXE, SADD etc.), then the update has been created by the system and the lastUpdateUsrInfo contains the system user (_7777777777777777SYSTEM_).</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="openCloseInd" type="openCloseIndUnionType" use="optional">
                  <xs:annotation>
                      <xs:documentation>
Mandatory for Futures and Cross product spreads. For other Commodities the value is not used. Valid values:

* **O**: Open position indicator
* **C**: Close position indicator</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="brokerUsrId" type="intType" use="optional">
                  <xs:annotation>
                      <xs:documentation>UsrId of the broker user.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="counterOrder" type="boolType" use="optional" default="false">
                  <xs:annotation>
                      <xs:documentation>Denotes if the order is an artificial counterOrder generated by the cross product matching process. The default value is false.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="remoteOrdrId" type="longType" use="optional">
                  <xs:annotation>
                      <xs:documentation>The Order Id as returned by the remote backend system (i.e. XBID SOB)</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="lastUpdateTm" type="dateTimeType" use="required">
                  <xs:annotation>
                      <xs:documentation>
                          The timestamp of the last modification of the order object in the back-end. Is also updated for modifications which do not affect the execution priority (like the _text_ field).
                      </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="remoteLastUpdateTm" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The timestamp of the last modification of the order object in the remote backend system.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preAotId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>Local order ID of the remote order that this order originated from during AOT. The field is populated if and only if this is a local order transferred from a remote order during AOT.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aot" type="boolType" use="optional" default="false">
            <xs:annotation>
                <xs:documentation>
                    Indicates whether the order has been automatically transferred to the corresponding linked contract after the trading in the specific delivery area ended in XBID
                    Default value: false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="location" type="stringType64" use="optional">
            <xs:annotation>
                <xs:documentation>Location within the delivery area. Set only for relevant products.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="marketBased" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Type of the congestion order to indicate whether it is a market based order (Yes) or a non-market based order (No).
                    Available and mandatory only for products with Locations enabled.
                    Default value: true. If an order for a product with Locations enabled is sent without Market Based attribute, the default value is added by M7 backend.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contractReference" type="stringType64">
            <xs:annotation>
                <xs:documentation>
                    Reference to a contract between supplier and network operator (e.g. bidding obligation).
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="facilityType" type="stringType64">
            <xs:annotation>
                <xs:documentation>
                    Type of the network connected facility that converts primary energy into electrical energy.
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="usageFraction" type="intType">
            <xs:annotation>
                <xs:documentation>
                    Indicates the mix/max percentage value of usage of the order.
                    Example: For BUY orders it represents the maximum the provider can down regulate their production unit without fully shutting it down.
                    Available only for products with Locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:complexType name="OrdrListEntryType">
        <xs:complexContent>
            <xs:extension base="ClgHseCodeAcctListType">
                <xs:attributeGroup ref="OrdrAttrGrp"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="OrdrExeRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
             <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                         <xs:documentation>Standard header of each message.
                         </xs:documentation>
                         </xs:annotation>
                        </xs:element>
                <xs:element name="OrdrList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="Ordr" type="OrdrListEntryType" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="listExecInst" type="ListExecInstUnionType"/>
            <xs:attribute name="listId" type="longType">
                      <xs:annotation>
                          <xs:documentation>ID for the basket determined by the backend.</xs:documentation>
                        </xs:annotation>
                      </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="OrdrReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
   Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>
                            List of product names of which own orders should be returned. If no product name is given, the own orders for all products assigned to the requesting user are returned.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="acctId" type="acctIdType" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Account Id of which own orders should be returned. This account should match an account assigned to the user sending the request.
                        This element is optional for Market Operation users. If it is not supplied, it will return the orders for all accounts.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <xs:attribute name="inclPreArranged" type="boolType" use="optional">
                <xs:annotation>
                    <xs:documentation>
     Include pre-arranged orders in the response or not.
     Default value: false
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="OrdrSyncReq" final="#all">
        <xs:annotation>
            <xs:documentation>
 This message is deprecated and should not be used in 6.5+ M7 API. It will be deleted in the next API version.
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>
                    The Order Synchronization Request is used by a local exchange user to request all orders from SOB.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1"/>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="startDate" type="dateTimeType" use="required">
                <xs:annotation>
                    <xs:documentation>
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="endDate" type="dateTimeType" use="required">
                <xs:annotation>
                    <xs:documentation>
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="OrdrSyncResp" final="#all">
        <xs:annotation>
            <xs:documentation>
 This message is deprecated and should not be used in 6.5+ M7 API. It will be deleted in the next API version.
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>
                    Response to the OrdrSyncReq
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1"/>
                <xs:element name="OrdrList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="Ordr" type="OrdrListEntryType" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="OrdrModify" final="#all">
            <xs:annotation>
               <xs:documentation>
               </xs:documentation>
            </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="OrdrList" nillable="false" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>List of all orders contained in the basket.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="Ordr" type="OrdrModificationType" minOccurs="1" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>Definition of a single order.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="ordrModType" type="ordrModUnionType" use="required"/>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:attributeGroup name="preArOrdrAttrGrp">
        <xs:attribute name="clearingAcctType" type="clearingAccountType" use="required"/>
        <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="optional">
            <xs:annotation>
                <xs:documentation>Defines the delivery area of the order.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="txt" type="textType" use="optional">
            <xs:annotation>
                <xs:documentation>Text entered by the client. This text will not be modified by the backend.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clOrdrId" type="clOrdrIdType" use="optional">
            <xs:annotation>
                <xs:documentation>Client Order Id. This value is not modified by the backend and may be used by client
                    applications to identify orders.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ordrId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>Order Id as returned by the backend system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="action" type="preArrAccRejUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
Defines if the pre-arranged order is accepted or rejected by the reacting party. Valid values:

* **ACC**: The pre-arranged trade is accepted.
* **REJ**: The pre-arranged trade is rejected.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The latest revision number of the order must be provided by the client. In case the
                    backend system has another revision number, it will reject the request with an ErrResp.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clgAcctId" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
Clearing account Id. Deprecated.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:element name="PreArrangedOrdrProcess" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
 Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attributeGroup ref="preArOrdrAttrGrp"/>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <!-- Trade Management Schema Configuration -->

    <xs:complexType name="TradeListEntryType">
        <xs:sequence>
            <xs:element name="Buy" type="HalfTradeType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Sell" type="HalfTradeType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attributeGroup ref="trdAttrGrp"/>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:attributeGroup name="trdAttrGrp">
        <xs:attribute name="tradeId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>
The trade ID of the trade.

In XBID-connected environments remote trades and LTS trades share the same trade ID sequence. Therefore a gap in LTS trade IDs may occur in the course of messages.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="tradeStateUnionType" use="required">
                <xs:annotation>
                   <xs:documentation>
The current state of the trade. Valid values:

* **CNCL**: The trade was cancelled by market operations.
* **RGRA**: The requested recall was granted by market operations.
* **ACTI**: Thr trade is active (this is the default value).
* **RREQ**: The recall of this trade was requested. Not applicable to TradeStlmntRprt.
* **RREJ**: The requested Recall was rejected by market operations. Not applicable to TradeStlmntRprt.
* **CREQ**: A cancellation was requested from the local market operations. Not applicable to TradeStlmntRprt.
* **CREJ**: A cancellation was rejected by the global market operations. Not applicable to TradeStlmntRprt.
* **RSFA**: The request was sent for approval to SOB (XBID). Not applicable to TradeStlmntRprt.</xs:documentation>
                 </xs:annotation>
                </xs:attribute>
        <xs:attribute name="contractId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>
The Id of the underlying contract.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="qty" type="quantityType" use="required">
            <xs:annotation>
                <xs:documentation>
The executed quantity.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="px" type="priceType" use="required">
            <xs:annotation>
                <xs:documentation>
The execution price in Eurocents (1 Euro = 100).
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="execTime" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>
The execution date as assigned by the backend.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>
The revision number of the trade. With every change of the trade the revision number is increased by
one.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preArranged" type="boolType" use="required">
            <xs:annotation>
                <xs:documentation>
This defines if the trade was pre-arranged. Valid values:

* **false**: Not pre-arranged trade
* **true**: Pre-arranged trade</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prearrangeType" type="prearrangeUnionType" use="optional"/>
        <xs:attribute name="recallReqTime" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>
The date and time of a recall request.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="recallGrantedTime" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The date and time when market operations granted the recall.
                    This is also used when a trade has been cancelled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="recallRejectedTime" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>
The date and time when market operations rejected the recall.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="latestRecallProcessTime" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>
Informs until when a recall request can be processed by market operations.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="recallRequestor" type="stringType5" use="optional">
            <xs:annotation>
                <xs:documentation>
The Member Id of the party who initiated the trade recall. The information is provided to the balancing group of the recall requesting party in case the recall was requested by a member known to M7.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contractPhase" type="contractPhaseUnionType" use="required"/>
        <xs:attribute name="clgHseCode" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>
The clearing House code of the Trade. Deprecated.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parentTradeId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>
This is filled in the event of cross-contract trades it points to the parent trade id.
Note: this parent trade is not sent to the client.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="decomposed" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>
This indicates whether the trade was decomposed to trades in underlying or parent products.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="remoteTradeId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>
The remote Trade Id as defined by remote backend system (ie. XBID SOB)
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="selfTrade" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Indicates whether the trade was done as a self trade (inside one balancing group or between two different balancing groups within one member) or not. A cross-NEMO trade is not marked as a self-trade.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="location" type="stringType64" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Location within the delivery area. Should be only set for products with locations enabled.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:simpleType name="prearrangeType">
        <xs:annotation>
            <xs:documentation>The type of pre-arranged trade.

* **OTC**: over the counter trade
* **OPT**: the value is deprecated
* **PNC**: the value is deprecated
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="OTC"/>
            <xs:enumeration value="OPT"/>
            <xs:enumeration value="PNC"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="prearrangeUnionType">
        <xs:union memberTypes="prearrangeType xs:string"/>
    </xs:simpleType>


    <xs:attributeGroup name="tradeSideAttrGrp">
        <xs:attribute name="clearingAcctType" type="clearingAccountType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Defines if the order is entered on its own account, or as an agent. For valid values please refer to values from attribute allowedClearingAcctTypes in the SystemInfoResp message (i.e. **A**, **P** for spot markets).
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The delivery Area to which the attached order books refer to.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="acctId" type="acctIdType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The account for which the order is entered.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ordrId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The Order Id of the order.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="txt" type="textType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The text of the order.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggressorIndicator" type="originatorAggressorUnionType" use="optional" default="U"/>
        <xs:attribute name="usrCode" type="usrCodeType" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The User Code of the user who entered the order.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clOrdrId" type="clOrdrIdType" use="optional"/>
        <xs:attribute name="mbrId" type="stringType5" use="optional">
            <xs:annotation>
                <xs:documentation>
                    The MemberID of the member who entered the order. </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="openCloseInd" type="openCloseIndUnionType" use="optional"/>
        <xs:attribute name="brokerUserId" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
UserID of the broker user
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clgAcctId" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
Clearing account Id. Deprecated.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="remoteOrdrId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>
Order Id as returned by remote backend system (ie. XBID SOB)
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:complexType name="HalfTradeType">
        <xs:attributeGroup ref="tradeSideAttrGrp"/>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="TradeCaptureRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="TradeList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="Trade" type="TradeListEntryType" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="TradeCaptureReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="acctId" type="acctIdType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>
The selected account.
For Market Operation and Sales users this attribute is optional and ignored by the backend.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="startDate" type="dateTimeType" use="required">
                <xs:annotation>
                    <xs:documentation>
The start of the period for which the trades are retrieved. This value must fulfil the following
conditions:

**endDate**-**startDate** &lt;= the number of hours configured for the client. The default configuration is 7 hours.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="endDate" type="dateTimeType" use="optional">
                <xs:annotation>
                    <xs:documentation>
The end of the period for which the trades are retrieved. The following condition must be fulfilled:

**endDate**-**startDate** &lt;= the number of hours configured for the client. The default configuration is 7 hours.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="dateMeaning" type="dateMeaningUnionType" use="optional" default="MATCH">
                <xs:annotation>
                    <xs:documentation>
This defines the meaning of the startDate and endDate parameters.

Valid values:

- **MATCH (default)**: trades with a match event occurring between the startDate and endDate are inquired
- **LAST_UPDATE**: trades with a last update that has occurred between the startDate and endDate are inquired
- **DELIVERY**: trades with delivery occurring between the startDate and endDate are inquired
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="includeCancelledAndRecalled" type="boolType" use="optional"
                          default="false">
                    <xs:annotation>
                       <xs:documentation>
                           If set to **true**, cancelled and recalled trades are also returned.
                           The default value if the attribute is not present is **false**
                       </xs:documentation>
                     </xs:annotation>
                    </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="TradeRecallReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                        </xs:annotation>
                        </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="tradeId" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>
Trade Id of the trade to be recalled.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="revisionNo" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>
The latest revision number of the trade must be provided by the client. In case the backend
system has another revision number, it will reject the request with an ErrResp.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <!-- Login/Logout/RefData Schema Configuration -->

    <xs:element name="LoginReq">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="user" type="stringType255" use="required">
                <xs:annotation>
                    <xs:documentation>The Login ID of the user that wants to login to the backend system.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="force" type="boolType" use="required">
                <xs:annotation>
                    <xs:documentation>
Flag that indicates if this user wants to force a login even if a user with the same credentials is already logged in into the backend system.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="disconnectAction" type="disconnectActUnionType" use="required"/>
            <xs:attribute name="throttlingUserAction" type="throttlingUserActionUnionType" use="optional" />
            <xs:attribute name="throttlingMemberAction" type="throttlingMemberActionUnionType" use="optional" />
            <xs:attribute name="authVerificationCode" type="stringType255" use="optional">
                <xs:annotation>
                    <xs:documentation>Verification code for 2FA</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="orderbookBatching" type="orderbookBatchingUnionType" use="optional" />
            <xs:attribute name="receivePblcOrdrBooksDeltaRprt" type="boolType" use="optional" default="true" >
                <xs:annotation>
                    <xs:documentation>
                        Flag that indicates if this user should receive PblcOrdrBooksDeltaRprt broadcasts.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="receivePblcTradeConfRprt" type="boolType" use="optional" default="true">
                <xs:annotation>
                    <xs:documentation>
                        Flag that indicates if this user should receive PblcTradeConfRprt broadcasts.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="orderbookApiVersion" type="orderbookApiVersionUnionType" use="optional" />
            <xs:attribute name="privateDataApiVersion" type="orderbookApiVersionUnionType" use="optional" />
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:attributeGroup name="basicUserAttrGrp">
        <xs:attribute name="name" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The name of the user.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="usrCode" type="usrCodeType" use="required">
            <xs:annotation>
                <xs:documentation>The user's user code. The maximum length is 6 characters.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mbrId" type="stringType5" use="required">
            <xs:annotation>
                <xs:documentation>The member Id that the user belongs to.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="defaultAcctId" type="acctIdType" use="required">
            <xs:annotation>
                <xs:documentation>The specified default account of the user.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="refDataStateUnionType" use="required">
            <xs:annotation>
                <xs:documentation>The current state of the User. Valid values:

* **ACTI**: The user is active. It is possible to trade using this User.
* **DELE**: The user is deleted. Trading using this User is not possible.
* **SUSP**: The user is suspended. Trading using this User is not possible.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:attributeGroup name="existingUserAttrGrp">
        <xs:attribute name="usrId" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>The unique identifier of a user.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>
Revision number of this User. Always increasing upon a change.

In a request, this is the revision number before the change. The back-end will verify if this
revision number matches the current revision number. If not, ErrResp will be returned.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:element name="UserRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Usr" minOccurs="1" maxOccurs="1">
                    <xs:complexType>
                        <xs:complexContent>
                            <xs:extension base="ExistingUserType">
                                <xs:attribute name="sessionId" type="longType" use="required">
                                        <xs:annotation>
                                           <xs:documentation>The current session id of the user given after the login to the system.</xs:documentation>
                                         </xs:annotation>
                                        </xs:attribute>
                                <xs:attribute name="connectionLossMsg" type="statusMsgTextType" use="optional">
                                        <xs:annotation>
                                           <xs:documentation>
                                               In the event of a connection loss for the previous user session, this field is filled in with a connection loss message which details the connection loss event with the date and time, and the logout action executed by the backend system
                                           </xs:documentation>
                                         </xs:annotation>
                                        </xs:attribute>
                                <xs:attribute name="mbrName" type="stringType255" use="required">
                                        <xs:annotation>
                                           <xs:documentation>The name of member that the user belongs to</xs:documentation>
                                         </xs:annotation>
                                        </xs:attribute>
                                <xs:attribute name="token" type="stringType255" use="optional">
                                        <xs:annotation>
                                          <xs:documentation>Unique token for connecting to additional services (e.g. V7 API).</xs:documentation>
                                        </xs:annotation>
                                       </xs:attribute>
                            </xs:extension>
                        </xs:complexContent>
                    </xs:complexType>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="LogoutReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="sessionId" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>Session id of the trader’s session which is passed to the client upon login.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="LogoutRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="usrId" type="intType" use="required">
                <xs:annotation>
                    <xs:documentation>The internal trader id used in the backend system.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="sessionId" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>The session id of the trader’s session passed to the client upon login.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="forced" type="boolType" use="optional" default="false">
                <xs:annotation>
                    <xs:documentation>
Indicates whether a user has been forced to log out.

It is ‘true’ as a consequence of either a concurrent login with the same user credentials or a user password change where subsequently
the user is forced to log out.

It is ‘false’ as a response to a regular Logout Request.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="txt" type="stringType255" use="optional">
                <xs:annotation>
                    <xs:documentation>A text field containing information about the reason of the logout. When M7 identifies that the AMQP connection for any reason is closed while the client has not sent a LogoutReq, it will broadcast a LogoutRprt with txt=INACTIVITY.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <!-- Orderbook Schema Configuration -->

    <xs:element name="PblcOrdrBooksReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
 Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="prodName" type="stringType255" maxOccurs="1000" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
 List of product names. All order books for these products are returned.
 The delivery area and/or contract type may be specified to filter the result.
 If no contract ID is given, at least one product name must be provided.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="contractId" type="longType" maxOccurs="1" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
 The contract ID, which defines the order book to be retrieved. If specified, a
 delivery area must be specified and the contractType attribute is ignored.
 If no product name is given, at least one contract ID must be provided.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="dlvryAreaId" type="deliveryAreaIdType" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>
The delivery areas for which the order book(s) should be retrieved.
Mandatory when a contractId is specified.
If it is not specified, all applicable orderbooks will be returned.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="contractType" type="contractUnionType" use="optional">
                <xs:annotation>
                    <xs:documentation>
Defines which kind of contracts should be retrieved. Possible values are:

- **ALL** – All kind of contracts (pre-defined and user-defined)
- **PDC** – Only pre-defined contracts
- **UDC** – Only user-defined contracts

This attribute is ignored when a contractId is specified.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="openCloseInd" type="openCloseIndUnionType" use="optional">
                <xs:annotation>
                    <xs:documentation>
Open/Close indicator value. Valid values:

* **O**: Open position indicator
* **C**: Close position indicator
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="PblcOrdrBooksResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
 Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="OrdrbookList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="OrdrBook" type="OrdrBookType" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="PblcOrdrBooksDeltaRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="OrdrbookList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="OrdrBook" type="OrdrBookType" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <!-- Messages Schema Configuration -->

    <xs:element name="MsgReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="acctId" type="acctIdType" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        The account Id (balancingGroupEIC) to which the messages are sent. The response will also include messages which are sent to the product and the delivery area routing keys that have been assigned to this account.
                        For Market Operation users, this attribute is optional, in which case the messages sent to all accounts will be returned.
                        For other users, this attribute is mandatory.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="startDate" type="dateTimeType" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The timestamp defining from which point in time the messages should be retrieved.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="endDate" type="dateTimeType" use="required">
                <xs:annotation>
                    <xs:documentation>The timestamp defining the point in time that the messages should be retrieved.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="type" type="msgUnionType" use="required">
                <xs:annotation>
                    <xs:documentation>
This defines what kind of messages are returned, allowing the messages to be filtered on a request level. Valid values:

* **ALL**: Return all messages.
* **PUBLIC**: Return only public messages.
* **PRIVATE**: Return only private messages.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:attributeGroup name="MsgAttrGrp">
        <xs:attribute name="msgId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The message Id assigned by the back-end system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="msgUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
Defines the message type. Valid values:

* **PUBLIC**: The message is a public message.
* **PRIVATE**: The message is a private message.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="messageCode" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Message code of the message.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prod" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>Underlying product</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="acctId" type="acctIdType" use="optional"/>
        <xs:attribute name="timestmp" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>The timestamp of the message as assigned by the back-end system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="svrty" type="messageSeverityUnionType" use="required"/>
        <xs:attribute name="txt" type="statusMsgTextType" use="required"/>
        <xs:attribute name="sellDlvryAreaId" type="deliveryAreaIdType" use="optional">
            <xs:annotation>
                <xs:documentation>In case of an order execution, this field contains the delivery area of the sell side.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="buyDlvryAreaId" type="deliveryAreaIdType" use="optional">
            <xs:annotation>
                <xs:documentation>In case of an order execution, this field contains the delivery area of the buy side.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mktSupervisionMsg" type="boolType" use="required">
            <xs:annotation>
                <xs:documentation>This determines if the message has been sent by Market Supervision.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="nonPersistent" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>If set to true, the message is not persisted.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:complexType name="MsgListEntryType">
        <xs:sequence>
            <xs:element name="VarList" type="VarListType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>List of variables used in message txt attribute.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="MsgAttrGrp"/>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="MsgRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="MsgList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="Msg" type="MsgListEntryType" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="truncated" type="boolType" use="optional">
                <xs:annotation>
                    <xs:documentation>If set to true, the MsgList has been truncated to the maximum number of messages (specified in the configuration).</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <!-- RefData Schema Configuration -->

    <xs:element name="ProdInfoReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>Product name.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:attributeGroup name="PrdAttrGrp">
        <xs:attribute name="prodType" type="prdUnionType" use="required">
            <xs:annotation>
                <xs:documentation>Indicates the type of the product. Valid values:

* **ENG**: Energy products
* **COM**: Commodities
* **FUT**: Futures
* **CRO**: Cross Product Spreads
* **UDD**: User defined delivery</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prodName" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The unique identifier name of the product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dsplName" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The string used to display the product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>
The revision number of the product. This value is increased by one every time the product
is modified by the system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="base" type="boolType" use="required">
            <xs:annotation>
                <xs:documentation>Defines if the product is a base product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="baseReference" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>
If the product is not a base product, this attribute may contain the reference to the base
product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="groupName" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>A group name of the product as set up in the system</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cashLmtEnabled" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>Indicates whether the cash limits are enabled for the product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationsEnabled" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>Indicates whether the location matching is enabled for the product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="riskSetId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>
The ID of the default set of risk parameters for a cash limit calculation for this product. The attribute is mandatory when cashLmtEnabled is true; otherwise it is not set.

Valid values: An existing set of parameters.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="currency" type="currencyType" use="required">
            <xs:annotation>
                <xs:documentation>The currency of the product (e.g. EUR).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="minQty" type="quantityType" use="required">
            <xs:annotation>
                <xs:documentation>Defines the minimum tradable quantity of the product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxQty" type="quantityType" use="required">
            <xs:annotation>
                <xs:documentation>Maximum allowed quantity for orders entered in contracts belonging to this product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxAmount" type="longType" use="optional" default="0">
            <xs:annotation>
                <xs:documentation>Maximum value of an order permitted on this product (price * quantity * delivery unit)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lotSize" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>
Defines the minimum increment of the quantity in this product. The value is entered as
an integer, but the decimal quantity shift is applied.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="decShftQty" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>The decimal shift of the quantity information. A value of 2 results in a display of 100 Kw.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="qtyUnit" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>Defines the quantity unit.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="delUnits" type="doubleType" use="optional">
            <xs:annotation>
                <xs:documentation>
Defines delivery units of a product in relation to the basic period (e.g. If the basic period is 1 month, for 3 month products is set to 3.)

The attribute is not set for type User-Defined Delivery Period

It is mandatory for other types.

For XBID style user defined blocks, this attribute contains the delivery length expressed in number of the original product canonical contracts (e.g. 20-23 has delUnits = 3).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="minPx" type="priceType" use="required">
            <xs:annotation>
                <xs:documentation>
The minimum price allowed for orders entered in contracts belonging to this product.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxPx" type="priceType" use="required">
            <xs:annotation>
                <xs:documentation>
The maximum price allowed for orders entered in contracts belonging to this product.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tickSize" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>
Defines the minimum increment for limit prices for this product. The value is entered
as an integer, but the decimal price shift is applied (please refer to the example in minimum peak
size in _DFS120_).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="decShftPx" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>
The decimal shift of the price information. A value of 2 results in a display in 1/100 of
specified currency.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="exchangeId" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The exchange Id of the exchange where the orders for this product are matched.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="assetName" type="stringType64" use="optional">
            <xs:annotation>
                <xs:documentation>A Text input field used to define the asset name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="assetExchangeId" type="stringType4" use="optional">
            <xs:annotation>
                <xs:documentation>A text input field used to define the exchange on which the underlying asset is traded.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executionRestriction" type="prdExecUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
Defines whether orders referencing the contracts of this product can be partially matched or if only with the full quantity.

- **NON**: No restriction (partial matching allowed)
- **AON**: All or nothing</xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <!-- Contract Generation -->
        <xs:attribute name="contractsGenerationNumber" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Determines how many contracts are generated in advance.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contActBusinessDay" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>
Defines if the contract activation day should be on a business day or on any calendar day.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contActDay" type="dUnionType" use="optional">
            <xs:annotation>
                <xs:documentation>
The week day at which the contract is activated. Valid values:

* **MON**
* **TUE**
* **WED**
* **THU**
* **FRI**
* **SAT**
* **SUN**
* **[none]**</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contActTime" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The time at which the contract is activated.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contExpiryBusinessDay" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>
Defines if the contract expiry day should be on a business day or on any calendar
day.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contExpiryDay" type="dUnionType" use="optional">
            <xs:annotation>
                <xs:documentation>
The week day at which the contract expires. Valid values:

* **MON**
* **TUE**
* **WED**
* **THU**
* **FRI**
* **SAT**
* **SUN**
* **[none]**</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contExpiryTime" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The time at which the contract expires.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="prodStateUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
The current state of the product. Valid values:

* **HIBE**: Hibernate: The product is hibernated and is not available for trading.
* **IACT**: The product is inactive and not available for trading.
* **ACTI**: The product is active and available for trading.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeZone" type="stringType32" use="optional" default="CET">
            <xs:annotation>
                <xs:documentation>
The time zone identifier of the time zone that the product is operated in.

Note that only the following valid values are available for the TimeZone:

* **CET**
* **Europe/London**</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="masterProd" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>Reference to the corresponding master product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="linkedProd" type="stringType255" use="optional">
            <xs:annotation>
                <xs:documentation>Reference to the corresponding linked product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:complexType name="ProdCfg">
        <xs:annotation>
            <xs:documentation>
Used to list exchange specific attributes of the product. The product attributes are given as key-value pairs.

| Key                                 | Value          | Prod Type                  | Description                                                                                     |
|-------------------------------------|----------------|----------------------------|-------------------------------------------------------------------------------------------------|
| isin                                | true           | FUT                        | The product has an ISIN.                                                                        |
| isinValue                           |                | FUT                        | The value of the ISIN.                                                                          |
| blockOrderProduct                   | true           | COM                        | User defined block orders are allowed for this product.                                         |
| blockMaximumHours                   |                | COM                        | Defines how many base contracts may be grouped together for user defined blocks.                |
| dstBlockProduct                     | true           | COM                        | Defines the treatment of contracts during the 25 hour DST switch.                               |
| crossBorderProduct                  | true           | all                        | The product is traded on the Consolidated Order Book.                                           |
| icebergOrderProduct                 | true           | all                        | Iceberg orders are supported for this product.                                                  |
| icebergMinPeakSize                  | true           | all                        | The minimum peak size of an iceberg order                                                       |
| icebergPriceDeltaRange              | true           | all                        | The maximum value for the peak price delta of an iceberg order.                                 |
| stopOrderProduct                    | true           | FUT,  	CRO                 | The product supports stop orders.                                                               |
| linkedOrderProduct                  | true           | all                        | Orders can be linked together for this product.                                                 |
| otcAllowed                          | true           | all                        | OTC trade registration is allowed for this product.                                             |
| otcOnly                             | true           | all                        | The product is for OTC trading only.                                                            |
| onExchangePrearrangedTrade          | true           | FUT, 	CRO                 | The product supports on-exchange prearrange trades.                                             |
| privateAndConfidential              | true           | FUT, 	CRO                 | Private and confidential trades are allowed for the product.                                    |
| commodityLimitEnabled               | true           | COM                        | The commodity limit is enabled for the product.                                                 |
| intraProductSpreads                 | true           | FUT, 	CRO                 | The product supports intra-product spreads.                                                     |
| intraProductSpreadContractCount     |                | FUT, 	CRO                 | Defines how many contracts are used for intra-product spreads.                                  |
| productIsWithinDelivery             | true           | COM                        | Trading of the product is allowed when delivery has started.                                    |
| leadTime                            |                | COM                        | Defines the lead time in minutes for products within delivery.                                  |
| autoOrderMatcher                    | true           | all                        | The product uses the automatcher (regular price-time priority matcher)                          |
| continuousAONProduct                | true           | COM                        | AON orders are supported in continuous trading for this product.                                |
| productCommodityId                  |                | COM                        |                                                                                                 |
| referencePrice                      |                | all                        | The initial reference price of the product.                                                     |
| clgHouses                           | true/false     | all                        | The product matcher has clearing house restrictions                                             |
| crossProductMatchingEnabled         | true           | all                        | Defines if orders referencing contracts of different product can be matched against each other. |
| tradeDecomposition                  | true           | all                        | Defines if trade decomposition based on referenced base product shall be executed.              |
| groupName                           |                | all                        | The product group name                                                                          |
| aotEnabled                          | true           | COM - Linked products only | An automated order transfer for the linked product is enabled.                                  |
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="cfgKey" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>Exchange specific product attribute name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cfgVal" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>Exchange specific product attribute value.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:simpleType name="referencePointType">
        <xs:annotation>
            <xs:documentation>Reference Point Type. Valid values:

* **ABSOLUTE_START**
* **ABSOLUTE_END**
* **ABSOLUTE_YEAR_START**
* **ABSOLUTE_YEAR_END**
* **ABSOLUTE_QUARTER_START**
* **ABSOLUTE_QUARTER_END**
* **RELATIVE_START**
* **RELATIVE_END**
* **FULL_HOUR_RELATIVE_START**
* **FULL_HOUR_RELATIVE_END**
* **FIXED**</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ABSOLUTE_START"/>
            <xs:enumeration value="ABSOLUTE_END"/>
            <xs:enumeration value="ABSOLUTE_YEAR_START"/>
            <xs:enumeration value="ABSOLUTE_YEAR_END"/>
            <xs:enumeration value="ABSOLUTE_QUARTER_START"/>
            <xs:enumeration value="ABSOLUTE_QUARTER_END"/>
            <xs:enumeration value="RELATIVE_START"/>
            <xs:enumeration value="RELATIVE_END"/>
            <xs:enumeration value="FULL_HOUR_RELATIVE_START"/>
            <xs:enumeration value="FULL_HOUR_RELATIVE_END"/>
            <xs:enumeration value="FIXED"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="contractPointType">
        <xs:attribute name="reference" type="referencePointType" use="required"/>
        <xs:attribute name="offset" type="xs:duration" use="required">
            <xs:annotation>
                <xs:documentation>Defines the offset for the contract activation or expiry point.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:simpleType name="listOfDays">
        <xs:annotation>
            <xs:documentation>
Week day. The possible values:

* **monday**
* **tuesday**
* **wednesday**
* **thursday**
* **friday**
* **saturday**
* **sunday**</xs:documentation>
        </xs:annotation>
        <xs:list itemType="weekday"/>
    </xs:simpleType>
    <xs:simpleType name="weekday">
        <xs:restriction base="xs:string">
            <xs:enumeration value="monday"/>
            <xs:enumeration value="tuesday"/>
            <xs:enumeration value="wednesday"/>
            <xs:enumeration value="thursday"/>
            <xs:enumeration value="friday"/>
            <xs:enumeration value="saturday"/>
            <xs:enumeration value="sunday"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="tradingScheduleType">
        <xs:sequence>
            <xs:element name="tradingPhases" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="phaseName" type="stringType255">
                        <xs:annotation>
                            <xs:documentation>Display name for the phase.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="phaseType" type="contractPhaseType" use="required">
                        <xs:annotation>
                            <xs:documentation>Phase of the contract. Valid values:

* **CONT**: Continuous Trading
* **BALA**: Balancing Phase
* **AUCT**: Auction Phase
* **CLSD**: Closed Phase. Trading is not possible during this phase.
* **SDAT**: Same Delivery Area Trading Phase
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="referencePoint" type="referencePointType" use="required">
                        <xs:annotation>
                            <xs:documentation>Reference point. Valid values:

* **ABSOLUTE_START**
* **ABSOLUTE_END**
* **ABSOLUTE_YEAR_START**
* **ABSOLUTE_YEAR_END**
* **ABSOLUTE_QUARTER_START**
* **ABSOLUTE_QUARTER_END**
* **RELATIVE_START**
* **RELATIVE_END**
* **FULL_HOUR_RELATIVE_START**
* **FULL_HOUR_RELATIVE_END**
* **FIXED**</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="offset" type="xs:duration">
                        <xs:annotation>
                            <xs:documentation>Defines the offset for the phase (if referencePoint != FIXED).
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="fixedTime" type="dateTimeType">
                        <xs:annotation>
                            <xs:documentation>Allows to specify a fixed type (if referencePoint == FIXED).</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="scheduleId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>Unique identifier for the schedule.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="scheduleName" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>Display name for the schedule.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tradingDays" type="listOfDays" use="required">
            <xs:annotation>
                <xs:documentation>List of trading days. Valid values:

* **monday**
* **tuesday**
* **wednesday**
* **thursday**
* **friday**
* **saturday**
* **sunday**</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tradeOnHolidays" type="boolType" use="required">
            <xs:annotation>
                <xs:documentation>Indicates whether the contracts are tradeable on holidays.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="ProdType">
        <xs:sequence>
            <xs:element name="ProdCfgs" type="ProdCfg" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
Used to list exchange specific attributes of the product. The product attributes
are given as key-value pairs.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="DlvryAreaAssignment" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>List of delivery areas assigned to the product.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="schedule" type="tradingScheduleType" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Trading schedule used for the product or delivery area.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="required">
                        <xs:annotation>
                            <xs:documentation>Delivery Area Id.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="riskSetId" type="longType" use="optional">
                        <xs:annotation>
                            <xs:documentation>
Id of the risk set used for cash limit calculation for this product or for this delivery
area. The attribute is mandatory when cashLmtEnabled is true; otherwise it is not
present. The default selection is the product default risk set from Attributes panel.

Valid value: An existing set of parameters.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <xs:element name="ContractNamePattern" type="stringType255" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Regular expression for the contract name.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="PrdAttrGrp"/>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="ProdInfoRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
             <xs:sequence>
                 <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                     <xs:annotation>
                         <xs:documentation>
Standard header of each message.
                         </xs:documentation>
                     </xs:annotation>
                 </xs:element>
                 <xs:element name="ProdList" minOccurs="0" maxOccurs="1">
                     <xs:complexType>
                         <xs:sequence minOccurs="1" maxOccurs="1">
                             <xs:element name="Prod" type="ProdType" maxOccurs="unbounded" minOccurs="0">
                                 <xs:annotation>
                                     <xs:documentation>
                                     </xs:documentation>
                                 </xs:annotation>
                             </xs:element>
                         </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="ContractInfoReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>
The contract information for all contracts belonging to the given products is
requested. If specified, the contractId element cannot be specified and the startDate and
endDate attributes are mandatory.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="contractId" type="longType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
The contract information for the given contractID is requested. If specified,
the prodName element cannot be specified and the startDate and endDate attributes are
ignored.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="startDate" type="dateTimeType" use="optional">
                <xs:annotation>
                    <xs:documentation>Start date for requested contract mandatory if contractId is not specified.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="endDate" type="dateTimeType" use="optional">
                <xs:annotation>
                    <xs:documentation>End date for requested contract mandatory if contractId is not specified.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="ContractListEntryType">
        <xs:sequence>
            <xs:element name="DlvryAreaState" type="DlvryAreaStateListEntryType" minOccurs="0"
                        maxOccurs="unbounded"/>
            <xs:element name="UndrlngContracts" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>In case of bespoke contracts, this structure is used to define the underlying contracts of the bespoke product.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="contractId" type="longType" minOccurs="1" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation>The contract Id of the underlying contract leg as defined by the backend system.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:anyAttribute processContents="lax"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="SpreadContracts" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="leg1ContractId" type="longType">
                            <xs:annotation>
                                <xs:documentation>The contract Id of the first underlying contract for Auto Combination contracts</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="leg2ContractId" type="longType">
                            <xs:annotation>
                                <xs:documentation>The contract Id of the second underlying contract for Auto Combination contracts</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
                    </xs:sequence>
                    <xs:anyAttribute processContents="lax"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="CtrAttrGrp"/>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="DlvryAreaStateListEntryType">
        <xs:annotation>
            <xs:documentation>The type defines the state of a contract for a specific delivery area.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="required"/>
        <xs:attribute name="state" type="contractStateUnionType" use="optional"/>
        <xs:attribute name="tradingPhase" type="contractPhaseUnionType" use="optional"/>
        <xs:attribute name="tradingPhaseStart" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>The start date and time of the current/next trading phase in the delivery area.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tradingPhaseEnd" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The end date and time of the current/next trading phase in the delivery area.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:attributeGroup name="CtrAttrGrp">
        <xs:attribute name="contractId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The contract Id as defined by the backend system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prod" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The underlying product.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The contract name. This is used for display purposes.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="longName" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The contract long name, containing additional information (delivery period).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryStart" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>The start of the delivery period.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryEnd" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>The end of the delivery period.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="predefined" type="boolType" use="required">
            <xs:annotation>
                <xs:documentation>A flag that indicates if a contract has been automatically created by the backend system, or if the contract was generated via the entry of a user-defined block order.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The revision number of the contract. This value is increased by one every time the contract is modified.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="contractStateUnionType" use="required"/>
        <xs:attribute name="tradingPhase" type="contractPhaseUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
Specifies the contract phase. Valid values:

* **CONT**: Continuous Trading. Used for Contracts in state ACTI.
* **CLSD**: Closed Phase, Trading is not possible during this phase. Used for Contracts in states other than ACTI.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="duration" type="doubleType" use="optional">
            <xs:annotation>
                <xs:documentation>The duration of the contract in full hours. For quarterly contracts the value would be 0.25. An hourly contract would have 1.0.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="actPoint" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The parameter gives the contract activation point (e.g. delivery start).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="expPoint" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The parameter gives the contract expiry point (e.g. delivery end).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="strikePx" type="priceType" use="optional">
            <xs:annotation>
                <xs:documentation>In case that the  bespoke contract is an option, this field contains the strike price of the contract.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="CallPut" type="callPutContractUnionType" use="optional"/>
        <xs:attribute name="optionExpPoint" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>In case that the bespoke contract is option, this parameter gives an option expiration point.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bespoke" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>This defines if the contract is a bespoke contract.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="delUnits" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>This is the delivery unit of the respective product. In case of a product with the type User-Defined Delivery Period, this attribute is stored only on a contract level.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="remoteContractId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>The contract Id as defined by the external backend system (i.e. XBID SOB)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:element name="ContractInfoRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ContractList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="Contract" type="ContractListEntryType" minOccurs="0"
                                        maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="CashLmtReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="mbrId" type="stringType5" use="required">
                <xs:annotation>
                    <xs:documentation>Member Id for which the trading limit is requested.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="CashLmtRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="CurrentCashLmtList" minOccurs="1" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="CurrentCashLmt" type="CurrentCashLmtRprtType" minOccurs="0"
                                        maxOccurs="50"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:element name="CashLmtList" minOccurs="1" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="CashLmt" type="CashLmtRprtType" minOccurs="0" maxOccurs="50"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="mbrId" type="stringType5" use="required">
                <xs:annotation>
                    <xs:documentation>Member Id</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="CashLmtDeltaRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attributeGroup ref="CashLmtRprtAttrGrp"/>
            <xs:attribute name="mbrId" type="stringType5" use="required">
                <xs:annotation>
                    <xs:documentation>Member ID for whom the limit is set.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:attributeGroup name="CashLmtRprtAttrGrp">
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>This value is increased every time the current cash limit is changed.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cashLmt" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The cash limit that is available for the member.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="decShft" type="intType" use="optional" default="2">
            <xs:annotation>
                <xs:documentation>
The decimal shift used to determine the cash limit in the currency of the limit.
However, the value will always be 2. It means that the value in the cash limit corresponds to the sub unit of the limit currency (currency/100).

The attribute is deprecated and might be removed in one of the future versions.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="currency" type="currencyType" use="optional" default="EUR">
            <xs:annotation>
                <xs:documentation>Currency of the cash limit (EUR/GBP). Default value is EUR.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:complexType name="CashLmtRprtType">
        <xs:attributeGroup ref="CashLmtRprtAttrGrp"/>
        <xs:attribute name="lmtId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The (internal) limit ID, the primary key.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="cashLmtStateUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
The status of the limit entry. Valid values:

* **ACTI** : The limit is active</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="startDate" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The first date when the limit is active.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="endDate" type="dateTimeType" use="optional">
            <xs:annotation>
                <xs:documentation>The last date when the limit is active.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="externalLmtId" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>The external identifier of a limit.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="externalVersion" type="longType" use="optional">
            <xs:annotation>
                <xs:documentation>The external version of a limit.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="CurrentCashLmtRprtType">
        <xs:attribute name="currentCashLmtRevision" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The revision of the current cash limit.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="currentCashLmt" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The value of the current cash limit.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="currency" type="currencyType" use="required">
            <xs:annotation>
                <xs:documentation>The currency of the cash limit (EUR/GBP). The default value is EUR.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="decShft" type="intType" use="optional" default="2">
            <xs:annotation>
                <xs:documentation>
The decimal shift used to determine the cash limit in the currency of the limit.
However, the value will always be 2. It means that the value in the cash limit corresponds to the sub unit of the limit currency (currency/100).

The attribute is deprecated and might be removed in one of the future versions.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="CommodityLmtReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="mbrId" type="stringType5" use="required">
                <xs:annotation>
                    <xs:documentation>Member Id for which the commodity limit is requested.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="CommodityLmtRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>

                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="CommodityLmtList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="CommodityLmt" type="CommodityLmtType" minOccurs="0"
                                        maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="CommodityLmtType">
        <xs:attribute name="commodityLmt" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>
The commodity limit available for the member in the specified contract after the change is
applied.

This value will be used as the default commodity limit for the member as from the application of the
change.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mbrId" type="stringType5" use="required">
            <xs:annotation>
                <xs:documentation>The member Id. Unique identifier of the member.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contractId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The contract Id of the contract to which the commodity limit applies.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>This value is increased every time the commodity limit is changed and a new Commodity Limit Response is issued.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="DlvryAreaInfoReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>List of products</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="acctId" type="acctIdType" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        ID of the account. If not specified, all Delivery Areas assigned to requesting user are returned.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="DlvryAreaBaseType">
        <xs:sequence>
            <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
List of assigned products.

In case of a state change for a delivery area, this list is not provided.

In ModifyDlvryAreaReq, this list will replace the list of assigned products.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="name" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The name of the delivery area usually used for display purposes.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="longName" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The long name of the delivery area.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mktAreaId" type="deliveryAreaIdType" use="required">
            <xs:annotation>
                <xs:documentation>The EIC id of the market area to which the delivery area belongs to.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="required">
            <xs:annotation>
                <xs:documentation>The Delivery Area Id. In the power market this corresponds to the EIC code. Either way, this value must be unique.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="refDataDeliveryAreaStateUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
The current Local Status of the delivery area. Valid values:

* **ACTI**: The delivery area is active. It is possible to trade in that area.
* **SUSP**: The delivery area is deactivated (hibernated). Trading in that delivery area is not possible.
* **DELE**: The delivery area was deleted. Trading is not possible.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="DlvryAreaListEntryType">
        <xs:complexContent>
            <xs:extension base="DlvryAreaBaseType">
                <xs:attribute name="revisionNo" type="longType" use="required">
                    <xs:annotation>
                        <xs:documentation>
Revision number. With every change of the delivery area this value is
increased by one.

For a request, it should be the revision number before the change. The back-end will verify
if this revision number matches the current revision number. If not, ErrResp will be
returned.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="remoteState" type="refDataDeliveryAreaStateUnionType" use="optional">
                    <xs:annotation>
                        <xs:documentation>
The current Remote Status of the delivery area. The following values  are allowed:

* **ACTI**:   The delivery area is active and tradable.
* **SUSP**:  The delivery area is inactive. Trading is not possible.
* **DELE**:  The delivery area was deleted. Trading is not possible.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="DlvryAreaListType">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="DlvryArea" type="DlvryAreaListEntryType" minOccurs="0"
                        maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="DlvryAreaInfoRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DlvryAreaList" type="DlvryAreaListType" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="MktAreaBaseType">
        <xs:attribute name="mktAreaId" type="deliveryAreaIdType" use="required">
            <xs:annotation>
                <xs:documentation>The market Area Id. In the power market, this corresponds to the EIC code of the market area.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>The name of the market area, that is usually used for display purposes.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="longName" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>Usually the long name of the market area.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="refDataStateUnionType" use="required">
            <xs:annotation>
                <xs:documentation>
In a CreateMktAreaReq, it is the desired state of the market area.

In a ModifyMktAreaReq, it is the current state of the market area.

Valid values:

* **IACT**: The market area is inactive and thus not tradable.
* **ACTI**: The market area is active. It is possible to trade in that area.
* **SUSP**: The market area is deactivated (hibernated). Trading in this market area is not possible. This state is not available for Create Market Area message.
* **DELE**: The market area was deleted. Trading in this market area is not possible. This state is not available for Create Market Area Request and Modify Market Area Request messages.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="MktAreaListEntryType">
        <xs:complexContent>
            <xs:extension base="MktAreaBaseType">
                <xs:attribute name="revisionNo" type="longType" use="required">
                    <xs:annotation>
                        <xs:documentation>
In a request, the revision number of the information on the Market Area before the change. The backend will verify if this revision number matches the current revision number. If it does not, an ErrResp will be returned.

In a report, the revision number of the information on the Market Area after the change. With every Market Area change this value is increased by one.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="MktAreaListType">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="MktArea" type="MktAreaListEntryType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="MktAreaInfoRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="MktAreaList" type="MktAreaListType" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="MktAreaInfoReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>List of products</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="acctId" type="acctIdType" use="optional">
                <xs:annotation>
                    <xs:documentation>ID of the account. If not specified, all Market areas of all delivery areas assigned to requesting user are returned.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="MktStateReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="MktStateRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="revisionNo" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>The revision number of the market. With every change of the market state this value is increased by one.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="state" type="marketStateUnionType" use="required"/>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="AcctInfoReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="acctId" type="stringType255" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>
                            The list of account IDs requested.
                            If no acctId is provided, all of the accounts that the requesting user has the rights to see are returned.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="AcctInfoRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="AcctList" type="AcctListType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>List of accounts</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="AcctListType">
        <xs:sequence>
            <xs:element name="Acct" type="AccountType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="AcctChangeRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="AcctList" type="PblcAcctListType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>List of accounts</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="PblcAcctListType">
        <xs:sequence>
            <xs:element name="Acct" type="PblcAccountType" minOccurs="1" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Account element</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="MbrChangeRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="mbrId" type="stringType5" use="required">
                <xs:annotation>
                    <xs:documentation>The ID of the Member.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="name" type="stringType255" use="required">
                <xs:annotation>
                    <xs:documentation>The member’s name</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="revisionNo" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>The revision number of this member. This always increases upon a change</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="state" type="refDataStateUnionType" use="required">
                <xs:annotation>
                    <xs:documentation>
The current state of the member. Valid values:

* **ACTI**: The member is active. It is possible to trade using this member.
* **IACT**: The member is inactive. It is not possible to trade using this member.
* **DELE**: The member is deleted. Trading using this member is not possible.
* **SUSP**: The member is suspended. Trading using this member is not possible.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="deliveryRiskApplied" type="boolType">
                <xs:annotation>
                    <xs:documentation>
Provided for exchanges with the delivery risk feature enabled. If enabled, it indicates if the delivery risk applies to the member. Its application affects cash limit calculation. For more details, please refer to _Delivery Risk_ in _DFS170_. 

Default value: false. </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>


    <!-- Interface Specification only for Admin Users -->


    <xs:element name="PblcTradeConfReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
 Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>
                            Products for which the public trade confirmations are requested. If this is not entered, all products for which the user has access rights are returned. If a non-existent prodName is entered, an error response is returned.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="startDate" type="dateTimeType" use="required">
                <xs:annotation>
                    <xs:documentation>
 The start of the period for which the trades are retrieved. This value must fulfil the
 following conditions:

 (endDate – startDate) &lt;= the number of hours configured for the client. The default configuration is 7 hours.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="endDate" type="dateTimeType" use="required">
                <xs:annotation>
                    <xs:documentation>
 The end of the period for which the trades are retrieved. The following condition must
 be fulfilled:

 (endDate – startDate) &lt;= the number of hours configured for the client. The default configuration is 7 hours.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="PblcTradeConfType">
        <xs:attribute name="tradeId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>Trade Id of the underlying trade.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="state" type="tradeStateUnionType" use="required"/>
        <xs:attribute name="contractId" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The contract Id of the traded contract.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="qty" type="quantityType" use="required">
            <xs:annotation>
                <xs:documentation>The traded quantity.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="px" type="priceType" use="required">
            <xs:annotation>
                <xs:documentation>The execution price in Eurocents (1 Euro = 100).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tradeExecTime" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>The trade execution time.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The revision number of the trade. This is increased by one every time the trade is
                    changed.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="buyDlvryAreaId" type="deliveryAreaIdType" use="optional">
            <xs:annotation>
                <xs:documentation>The delivery area of the buy side.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="sellDlvryAreaId" type="deliveryAreaIdType" use="optional">
            <xs:annotation>
                <xs:documentation>The delivery area of the sell side.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="selfTrade" type="boolType" use="optional">
            <xs:annotation>
                <xs:documentation>Indicates whether the trade was done as a self trade (inside one balancing group or between two different balancing groups within one member) or not. A cross-NEMO trade is not marked as a self-trade.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="PblcTradeConfRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
             <xs:sequence>
                 <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                     <xs:annotation>
                         <xs:documentation>
 Standard header of each message.
                         </xs:documentation>
                     </xs:annotation>
                 </xs:element>
                <xs:element name="TradeList" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                            <xs:element name="PblcTradeConf" type="PblcTradeConfType" minOccurs="0"
                                        maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="AllUsersReq" final="#all">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>
                    Request to retrieve all users of the system. Traders are only allowed to retrieve the users of their own member.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="mbrId" type="stringType5" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>
                            The unique identifier for a member. This is mandatory for a trader.
                            Market Operation users can use this attribute to filter all users of one member.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="BasicUserType" abstract="true">
        <xs:sequence>
            <xs:element name="AssgAcctId" type="acctIdType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                       <xs:documentation>Contains the accounts assigned to the user</xs:documentation>
                     </xs:annotation>
                    </xs:element>
            <xs:element name="UsrRole" type="stringType255" minOccurs="1" maxOccurs="unbounded">
                    <xs:annotation>
                       <xs:documentation>Contains the user roles assigned to the user</xs:documentation>
                     </xs:annotation>
                    </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="basicUserAttrGrp"/>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="ExistingUserType" abstract="true">
        <xs:complexContent>
            <xs:extension base="BasicUserType">
                <xs:attributeGroup ref="existingUserAttrGrp"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="UserType">
        <xs:complexContent>
            <xs:extension base="ExistingUserType"/>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="FullUserType">
        <xs:complexContent>
            <xs:extension base="ExistingUserType">
                <xs:attribute name="mailAddress" type="stringType255" use="optional">
                    <xs:annotation>
                        <xs:documentation>Receiving mail address</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="loginId" type="stringType255" use="optional">
                    <xs:annotation>
                        <xs:documentation>Login ID for the user</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="AllUsersResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="UsrList" minOccurs="1" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Usr" type="FullUserType" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <!-- H2H Matrix -->

    <xs:element name="HubToHubReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="area" type="AreaIdType" use="required">
                <xs:annotation>
                    <xs:documentation>The attribute represents a Delivery Area. The application requires the value to be provided in the request.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="dlvryDay" type="dateType" use="required">
                <xs:annotation>
                    <xs:documentation>Delivery date. ATC values are valid for this date.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="HubToHubNtf" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="HubToHubAtcList" type="HubToHubAtcData" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="revisionNo" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>
The H2H matrix version. The version number is generated internally and increases upon any updates of the matrix. For consistency check purposes it verifies that:

* The revisionNo of the last broadcast is higher than the revisionNo of the previous one
* Possible gaps between the broadcasts should be detected using a standard broadcast sequence.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="HubToHubResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="HubToHubAtcList" type="HubToHubAtcData" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="revisionNo" type="longType" use="required">
                <xs:annotation>
                    <xs:documentation>The H2H matrix version. The version number is generated internally and increases upon any updates of the matrix for requested deliver day and area.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="HubToHubHeartbeat" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="sobConnectionState" type="stringType128">
                <xs:annotation>
                    <xs:documentation>Information about the state of the connection to XBID. Possible values are CONNECTED/DISCONNECTED.
When M7 is configured to check the connection to XBID and it does not receive a heartbeat from XBID within the given period (default configuration is 30 seconds), M7 will send a HubtoHubHeartbeat with the sobConnectionState =DISCONNECTED.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="AreaIdType">
        <xs:annotation>
            <xs:documentation>Area identification.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="stringType16">
            <xs:maxLength value="16"/>
            <xs:minLength value="16"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="HubToHubAtcData">
        <xs:sequence>
            <xs:element name="HubFrom" type="HubFromType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="dlvryStart" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>The delivery start date</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dlvryEnd" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>The delivery end date</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timestmp" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>The timestamp when the ATC data was received from the Capacity system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>


    <xs:complexType name="HubFromType">
        <xs:sequence>
            <xs:element name="Atc" type="HubToHubAtcType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <!--area FROM-->
        <xs:attribute name="frm" type="AreaIdType" use="required">
            <xs:annotation>
                <xs:documentation>The outgoing Area. With relation to the attributes _IN_ and _OUT_ this area is perceived as the main one. That is, the value _IN_ represents the capacity available for flow to the _area from_; and the value _OUT_ represents the capacity available for flow from the _area from_.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="HubToHubAtcType">
        <!-- area TO -->
        <xs:attribute name="to" type="AreaIdType" use="required">
            <xs:annotation>
                <xs:documentation>The target Area.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <!-- inbound available transmission capacity -->
        <xs:attribute name="in" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The ATC value _IN_ for target Area. That is, capacity from _target area_ to _area from_.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <!-- outbound available transmission capacity -->
        <xs:attribute name="out" type="longType" use="required">
            <xs:annotation>
                <xs:documentation>The ATC value _OUT_ for target Area. That is, capacity from _area from_ to _target area_. </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <!-- Order Request Messages -->

    <xs:element name="ModifyAllOrdrs" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="prodName" type="stringType255" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>
Only orders for the given products will be modified. This element can only be supplied when
an account is provided.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="mbrId" type="stringType5" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Unique identifier of a member.
                        *Only one of attributes mbrId, usrId or accId must be provided.*
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="usrId" type="intType" use="optional">
                <xs:annotation>
                    <xs:documentation>
Unique identifier of a user

*Only one of attributes mbrId, usrId or accId must be provided.*
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="acctId" type="acctIdType" use="optional">
                <xs:annotation>
                    <xs:documentation>
Unique identifier of an account.

*Only one of attributes mbrId, usrId or accId must be provided.*
                    </xs:documentation>
                 </xs:annotation>
            </xs:attribute>
            <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="optional">
                <xs:annotation>
                    <xs:documentation>
Orders for the given usrId and list of delivery areas in dlvryAreaId will be Deactivated or
Deleted.

This element can only be supplied when usrId is provided in the message. If left out, all
delivery areas assigned to usrId are affected.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="ordrModType" type="ordrModAllUnionType" use="required"/>
            <xs:attribute name="inclPreArranged" type="boolType" use="required">
                <xs:annotation>
                    <xs:documentation>Specifies if pre-arranged orders should be modified or not.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="SystemInfoReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="SystemInfoResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="RequestLimitList" type="RequestLimitListType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
List of request limits
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attributeGroup ref="SystemInfoRespAttributeGroup"/>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:attributeGroup name="SystemInfoRespAttributeGroup">
        <xs:attribute name="backendVersion" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>
The version number of the backend system.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="backendTimeZone" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>
The time zone identifier of the time zone the backend system runs in.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="backendMarketTimeZone" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>
The time zone identifier of the time zone the market is operated in. This time zone is used on
backend side to generate time zone related information like contract short names.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contractStoreTimeInDays" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>
The number of days that contracts are available in the system (today included). If the parameter equals 7 for example, the users are able to display their contracts and respective trades from the last 7 days, including today.
The contracts, and the related trades are marked for removal from the system at the date and time calculated as (current date and time – contractStoreTimeInDays). Afterwards they are removed in bulk during the next few hours. Therefore some contracts/trades may be visible for several hours longer than e.g. 7 days exactly.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tradePoolStoreTimeInHours" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
The number of hours that trades are available in the system after contract expiration. This value limits the time window when settlement state of the trade can be changed.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="appVersionActual" type="stringType32" use="optional">
            <xs:annotation>
                <xs:documentation>
Contains the actual version for the application identified by the app-id message property in the requesting message (SysInfoReq). This may be used on the client side to check if an up-to-date application is used.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxOrders" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>
The maximum number of orders that are allowed to be sent within one order entry/modify message.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="capabilities">
            <xs:annotation>
                <xs:documentation>
A list of the backend features available. If the feature is not in the list, it is disabled on backend side. Valid values:

* **SETTLEMENT**:The Update Settlement Information message is supported by the system and trade settlement status functionality is available.
* **LOCAL-EXCHANGE**: The exchange is acting as a local exchange.
* **PNC-ORDERS**: The value is deprecated.
* **OPEN-CLOSE-INDICATOR**: The Open-close indicator is supported in the Order entry and the following messages.
* **TRADING-LIMIT**: Cash limit requests are supported by the system.
* **LOCATIONS**: Locations are supported by the system.
                </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:list itemType="stringType255"/>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="allowedClearingAcctTypes" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>
Comma separated valid values for the _clearingAcctType_ attribute in e.g. OrdrEntry message.
Example (spot markets): **A**, **P**
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:complexType name="RequestLimitListType">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="RequestLimit" type="RequestLimitType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
Request limit
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="RequestLimitType">
        <xs:attribute name="message" type="stringType255" use="required">
            <xs:annotation>
                <xs:documentation>
Message name (e.g. AllUsersReq)
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="duration" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
Limit duration in seconds (e.g. 60 for short term limits)
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rate" type="intType" use="optional">
            <xs:annotation>
                <xs:documentation>
The value of the limit (e.g. 1)
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="StlmntProcessInfoReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="startDate" type="dateTimeType" use="required">
                    <xs:annotation>
                       <xs:documentation>
The start of the period for which the settlement process information is retrieved. This value must fulfil the following conditions: \
**endDate**-**startDate** &lt;= the number of hours configured for the client. The default configuration is 7 hours.
                       </xs:documentation>
                     </xs:annotation>
                    </xs:attribute>
            <xs:attribute name="endDate" type="dateTimeType" use="required">
                    <xs:annotation>
                       <xs:documentation>
The timestamp of the end of the period for which the settlement process information is retrieved. This value must fulfil the following conditions: \
**endDate**-**startDate** &lt;= the number of hours configured for the client. The default configuration is 7 hours.
                       </xs:documentation>
                     </xs:annotation>
                    </xs:attribute>
            <xs:attribute name="unAcknOnly" type="boolType" use="optional" default="false">
                <xs:annotation>
                    <xs:documentation>
If set to **true**, only settlement process information with stlmntState = **SENT** will be
returned. Otherwise all settlement process information for the requested period will be
returned. \
Default =**false**</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="lastOnly" type="boolType" use="optional" default="true">
                <xs:annotation>
                    <xs:documentation>
If set to **true**, only the last revision of the settlement process information is returned. \
Default = **true**</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="clientAcctId" type="acctIdType" use="optional">
                <xs:annotation>
                    <xs:documentation>
This specifies the clientAccountId to which the request is applicable.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="StlmntProcessInfoRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Trade" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:attribute name="tradeId" type="longType" use="required">
                            <xs:annotation>
                                <xs:documentation>
The trade ID of the trade.
                                </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="revisionNo" type="longType" use="required">
                            <xs:annotation>
                                <xs:documentation>
                                    The revision number of this trade. With every trade change, the revision number is increased by one.
                                </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="stlmntState" type="stlmntStateUnionType" use="required">
                            <xs:annotation>
                                <xs:documentation>
The settlement system status for the trade. Valid values:

* **INIT**: The initial status of a trade before being processed.
* **SNDG**: The trade information was accepted by the transfer system
* **SENT**: The trade information was sent to the settlement system
* **ACKN**: The trade information was received by the settlement system
* **INFO**: Additional information has been received from the settlement system</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="stlmntRevisionNo" type="longType" use="required">
                            <xs:annotation>
                                <xs:documentation>
The revision number of the settlement supplied by the settlement system.
                                </xs:documentation>
                            </xs:annotation>
                                </xs:attribute>
                        <xs:attribute name="stlmntInfo" type="stringType255" use="optional">
                            <xs:annotation>
                                <xs:documentation>
Additional information supplied by the settlement system.
                                </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="remoteTradeId" type="longType" use="optional">
                            <xs:annotation>
                                <xs:documentation>
The remote Trade Id as defined by the remote backend system (i.e. XBID SOB)
                                </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="BespokeContractReq">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="UndrlngContracts" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>List of underlying contracts</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="contractId" type="longType" minOccurs="1" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>The underlying Contract identification</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                        <xs:anyAttribute processContents="lax"/>
                    </xs:complexType>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="name" type="stringType128" use="required">
                <xs:annotation>
                    <xs:documentation>The contract name. This is used for display purposes.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="strikePx" type="priceType" use="optional">
                <xs:annotation>
                    <xs:documentation>In the event that the bespoke contract is an option, this field contains the strike price of
                        the contract.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="CallPut" type="callPutContractUnionType" use="optional"/>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="callPutContractType">
        <xs:annotation>
            <xs:documentation>
In the event that the bespoke contract is an option, this field contains a contract type. Valid values:

* **C:** Call
* **P:** Put
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="C"/>
            <xs:enumeration value="P"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="callPutContractUnionType">
        <xs:union memberTypes="callPutContractType xs:string"/>
    </xs:simpleType>

    <xs:simpleType name="refPxType">
        <xs:annotation>
            <xs:documentation>
Type of reference price updated. Valid values are: \

* **C**: Closing price (default value if refPxType attribute is omitted). \
* **O**: Opening price.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="C"/>
            <xs:enumeration value="O"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="refPxUnionType">
        <xs:union memberTypes="refPxType xs:string"/>
    </xs:simpleType>

    <xs:complexType name="RefPxListType">
        <xs:sequence>
            <xs:element name="RefPx" minOccurs="1" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
Reference price element
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="required">
                        <xs:annotation>
                            <xs:documentation>
The delivery area identification
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="contractId" type="longType" use="required">
                        <xs:annotation>
                            <xs:documentation>
The Id of the contract in M7 application.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="refPxType" type="refPxUnionType" use="optional" default="C">
                        <xs:annotation>
                            <xs:documentation>
The type of the reference price updated. Valid values:

* **C**: Closing price (the default value)
* **O**: Opening price</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="refPx" type="priceType" use="required">
                        <xs:annotation>
                            <xs:documentation>
The reference price of the contract
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="date" type="dateTimeType" use="required">
                        <xs:annotation>
                            <xs:documentation>
The date to which the reference price refers.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:anyAttribute processContents="lax"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="RefPxReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="dlvryAreaId" type="deliveryAreaIdType" use="optional">
                <xs:annotation>
                    <xs:documentation>
The delivery area identification. If the field is omitted, the reference prices are returned for each Delivery area assigned to the  user.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="contractId" type="longType" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        The contract id for which the information is required. If the field is left empty then all of the closing prices for all of the products assigned to the user are returned irrespective of if a date is specified or not.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="refPxType" type="refPxUnionType" use="optional" default="C">
                <xs:annotation>
                    <xs:documentation>
The type of reference price updated. Valid values:

- **C**: Closing price (the default value)
- **O**: Opening price

If the field is left empty, then all types are returned.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="date" type="dateTimeType" use="optional">
                <xs:annotation>
                    <xs:documentation>
The date for which the information is required. If the field is left empty, then all of the available
closing prices are returned.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="RefPxRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="RefPxList" type="RefPxListType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
List of price elements
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="ChgPwdReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="currentPwd" type="stringType64" use="required">
                <xs:annotation>
                    <xs:documentation>The current password</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="newPwd" type="stringType64" use="required">
                <xs:annotation>
                    <xs:documentation>A new password</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="OrdrLmtReq" final="#all">
                <xs:annotation>
                    <xs:documentation>
                    </xs:documentation>
                </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                         <xs:documentation>Standard header of each message.</xs:documentation>
                         </xs:annotation>
                        </xs:element>
                <xs:element name="ProdName" type="stringType255" minOccurs="0" maxOccurs="50">
                    <xs:annotation>
                        <xs:documentation>ProductName</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="mbrId" type="stringType5" use="optional">
                      <xs:annotation>
                          <xs:documentation>
  Member Id. In case of no member ID is passed, the appropriate  member will be  user will be returned:

  - for trader user his current member (= member the user belongs to)

  - for broker user his current member and his assigned members

  - for admin member all active members
                          </xs:documentation>
                        </xs:annotation>
                      </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="OrdrLmtRprt" final="#all">
                <xs:annotation>
                            <xs:documentation>
                            </xs:documentation>
                </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="MbrList" type="MemberVolumeMbrListType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>List of the members</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="MemberVolumeMbrListType">
        <xs:sequence>
            <xs:element name="Mbr" type="MbrVolumeType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Member element</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="MbrVolumeType">
        <xs:sequence>
            <xs:element name="OrdrLmtList" type="OrdrLmtListType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>List of order limits</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
        </xs:sequence>
        <xs:attribute name="mbrId" type="stringType5" use="required">
                  <xs:annotation>
                      <xs:documentation>Member Id.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="OrdrLmtListType">
        <xs:sequence>
            <xs:element name="OrdrLmt" type="OrdrLmtType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Order limit element.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="OrdrLmtType">
        <xs:attribute name="lmtId" type="longType" use="required">
                  <xs:annotation>
                      <xs:documentation>The (internal) limit ID, the primary key.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="revisionNo" type="longType" use="required">
                  <xs:annotation>
                      <xs:documentation>This value is increased every time the order limit is changed. </xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="prodName" type="stringType255" use="required">
                  <xs:annotation>
                      <xs:documentation>Product name</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="maxAmount" type="longType" use="required">
                  <xs:annotation>
                      <xs:documentation>
Maximum amount allowed for order entry. The price decimal shift of the product applies.

The value 0 is returned if amount validation has to be skipped during order entry.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:attribute name="maxQty" type="longType" use="required">
                  <xs:annotation>
                      <xs:documentation>Maximum quantity allowed for orders submitted in contracts belonging to the product.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:element name="H2HAreaInfoReq" final="#all">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="H2HAreaInfoResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
                            Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="H2HAreaList" type="H2HAreaListType" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="H2HAreaListType">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="H2HArea" type="H2HAreaListEntryType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="H2HAreaListEntryType">
        <xs:annotation>
            <xs:documentation>Market/Delivery Area information.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="areaId" type="deliveryAreaIdType" use="required">
            <xs:annotation>
                <xs:documentation>Market/Delivery Area Id. In the power market, this corresponds to the EIC code of the market/delivery area.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="stringType255">
            <xs:annotation>
                <xs:documentation>Name of the market/delivery area, usually used for display purposes.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="longName" type="stringType255">
            <xs:annotation>
                <xs:documentation>Long name of the market/delivery area.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="BorderConfigType">
        <xs:attribute name="marketArea1Eic" type="stringType32" use="required"/>
        <xs:attribute name="marketArea2Eic" type="stringType32" use="required"/>
        <xs:attribute name="enabled" type="boolType" use="required"/>
        <xs:attribute name="tradingOffset" type="intType" use="optional"/>
    </xs:complexType>

    <xs:element name="ThrottlingStatusReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>
                    This message is used to retrieve throttling status (current short, long rules setup and its actual order message transaction counts).
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="ThrottlingStatusResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
                            Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ThrottlingMemberStatus" type="ThrottlingMemberStatusType" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="ThrottlingMemberStatusType">
        <xs:annotation>
            <xs:documentation>List of throttling member statuses.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="ShortRule" type="ThrottlingRuleType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="LongRule" type="ThrottlingRuleType" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="mbrId" type="stringType5" use="required">
            <xs:annotation>
                <xs:documentation>The unique identifier of the member.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timestamp" type="dateTimeType" use="required">
            <xs:annotation>
                <xs:documentation>Date and time of the OMT count calculation.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="status" type="ThrottlingStatusType" use="required">
            <xs:annotation>
                <xs:documentation>Current throttling status of the given Member (NO_RESTRICTION, WARNING, RESTRICTED).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:simpleType name="ThrottlingStatusType">
        <xs:annotation>
            <xs:documentation>
Throttling status of a member

Valid values:

**"NO_RESTRICTION"**: No restriction is in place

**"WARNING"**: Number of OMT exceeded limit L1. Tolerance period timeout started. Once tolerance period times out, status will change to RESTRICTED.

**"RESTRICTED"**: Member is throttled. Order management transactions are being rejected by PMI gateway.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="NO_RESTRICTION"/>
            <xs:enumeration value="WARNING"/>
            <xs:enumeration value="RESTRICTED"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="ThrottlingRuleType">
        <xs:annotation>
            <xs:documentation>Definition of throttling rule.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Status" type="ThrottlingRuleStatus" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="observationPeriodLength" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Duration in seconds of floating window.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tolerancePeriodLength" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Duration in seconds after which post warning throttling is activated in case number of OMTs not decreased bellow soft limit.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="reconnectionCoolDown" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Duration in seconds of member suspension (throttling activated).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="omtLimitL1" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Number of OMTs (Order management transactions) in observation period which triggers warning.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="omtLimitL2" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Maximal number of OMTs (Order management transactions) allowed in observation period.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="ThrottlingRuleStatus">
        <xs:annotation>
            <xs:documentation>Current status of throttling rule evaluated based its configuration.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="status" type="ThrottlingStatusType" use="required">
            <xs:annotation>
                <xs:documentation>Current throttling status of the given Member on the given Order Throttling Rule (NO_RESTRICTION, WARNING, RESTRICTED).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="releaseTimestamp" type="dateTimeType">
            <xs:annotation>
                <xs:documentation>Date and time when member restriction will be released if the Rule Status is Restricted. Date and time when the Tolerance ends if the Rule Status is Warning.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="currentOmtCount" type="intType" use="required">
            <xs:annotation>
                <xs:documentation>Current number of OMTs within actual period.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="CashLmtAParameters">
        <xs:annotation>
            <xs:documentation>Contains "a" (price-dependent) cash limit parameters</xs:documentation>
        </xs:annotation>
        <xs:attribute name="posBuyOrdr" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a buy order submitted with a positive price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="posSellOrdr" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a sell order submitted with a positive price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="posBuyTrade" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a buy side of the trade executed with a positive price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="posSellTrade" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a sell side of the trade executed with a positive price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="negBuyOrdr" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a buy order submitted with a negative price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="negSellOrdr" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a sell order submitted with a negative price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="negBuyTrade" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a buy side of the trade executed with a negative price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="negSellTrade" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a sell side of the trade executed with a negative price</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="CashLmtAlphaParameters">
        <xs:annotation>
            <xs:documentation>Contains alpha (price-independent) cash limit parameters</xs:documentation>
        </xs:annotation>
        <xs:attribute name="buyOrdr" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a buy order</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="sellOrdr" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a sell order</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="buyTrade" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a buy side of the trade</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="sellTrade" type="doubleType" use="required">
            <xs:annotation>
                <xs:documentation>The value of a risk parameter for a sell side of the trade</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="CreateRiskSetListEntryType">
        <xs:annotation>
            <xs:documentation>Risk set entity</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="CashLmtAParameters" type="CashLmtAParameters" minOccurs="1" maxOccurs="1" />
            <xs:element name="CashLmtAlphaParameters" type="CashLmtAlphaParameters" minOccurs="1" maxOccurs="1" />
        </xs:sequence>
        <xs:attribute name="riskSetName" type="stringType64" use="required">
            <xs:annotation>
                <xs:documentation>The name of the risk set. This value must be unique.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="ModifyRiskSetListEntryType">
        <xs:annotation>
            <xs:documentation>Risk set entity</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="CreateRiskSetListEntryType">
                <xs:attribute name="riskSetId" type="longType" use="required">
                    <xs:annotation>
                        <xs:documentation>The ID of the risk set</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="revisionNo" type="longType" use="required">
                    <xs:annotation>
                        <xs:documentation>
                            In a report returning as a response, the current revision number of the Risk Set entity. \
                            In a report broadcasted due to a change, the revision number of the affected entity.\
                            In a modification request, it is the revision number before the change. The back-end will verify if this
                            revision number matches the current revision number of the entity. If not, ErrResp will
                            be returned.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ReportRiskSetListEntryType">
        <xs:complexContent>
            <xs:extension base="ModifyRiskSetListEntryType">
                <xs:attribute name="status" type="riskSetModType" use="required" />
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ReportRiskSetListType">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="RiskSet" type="ReportRiskSetListEntryType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:element name="RiskSetInfoReq">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="riskSetId" type="longType" minOccurs="0" maxOccurs="1000">
                    <xs:annotation>
                        <xs:documentation>
                            The ID of the risk set to be returned. When provided, this risk set is returned; otherwise all
                            risk sets are returned.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="RiskSetInfoRprt" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="RiskSetList" type="ReportRiskSetListType" minOccurs="1" maxOccurs="1" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="TotpPwdReq" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="currentPwd" type="stringType64" use="required">
                <xs:annotation>
                    <xs:documentation>The current password</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="TotpPwdResp" final="#all">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="StandardHeader" type="StandardHeaderType" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Standard header of each message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="secret" type="stringType64" use="optional">
                <xs:annotation>
                    <xs:documentation>Generated secret if enabled. Empty if disabled.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:anyAttribute processContents="lax"/>
        </xs:complexType>
    </xs:element>
    
</xs:schema>
