<?xml version="1.0" encoding="UTF-8"?>
<!-- Product version : 6.20.205 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://deutsche-boerse.de/m7-re"
        xmlns="http://deutsche-boerse.de/m7-re" elementFormDefault="qualified">

    <xs:include schemaLocation="x90_reports_common_structs.xsd"/>

    <xs:element name="tc840">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>TC840 Weekly Member Maintenance</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="rptHdr" type="rptHdrType" />
                <xs:element name="member_list" type="memberListType" minOccurs="1" maxOccurs="1" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="memberListType">
        <xs:sequence>
            <xs:element name="member" type="memberType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="memberType">
        <xs:sequence>
            <xs:element name="idCode" type="mbrIdType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member ID code

User ID coded
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="name" type="nameType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="status" type="statusType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="type" type="mbrTypeType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="department" type="addressType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member address - department

Conditions: Present if the information was provided
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="street" type="addressType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member address: street

Conditions: Present if the information was provided
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="city" type="addressType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member address: city

Conditions: Present if the information was provided
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="postCode" type="postCodeType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="country" type="addressType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member address: country
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="trdCntcName1" type="trdCntcType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member trading contact: Name 1
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="trdCntcPhone1" type="trdCntcType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member trading contact: Phone 1
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="trdCntcName2" type="trdCntcType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member trading contact: Name 2
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="trdCntcPhone2" type="trdCntcType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member trading contact: Phone 2
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="clrCntcName1" type="mbrIdType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member clearing contact: Name 1

Conditions: Present if the information was provided
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="clrCntcPhone1" type="mbrIdType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member clearing contact: Phone 1

Conditions: Present if the information was provided
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="clrCntcName2" type="mbrIdType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member clearing contact: Name 2

Conditions: Present if the information was provided
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="clrCntcPhone2" type="mbrIdType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member clearing contact: Phone 2

Conditions: Present if the information was provided
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="cashLimit_list" type="cashLimitListType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="balGrp_list" type="balGrpListType" minOccurs="1" maxOccurs="1" />
            <xs:element name="user_list" type="userListType" minOccurs="1" maxOccurs="1" />
            <xs:element name="deliveryRiskApplied" type="boolType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Indicates if delivery risk applies to the member. Its application affects cash limit calculation. For more details, please refer to _Delivery Risk_ in _DFS170_. 

Conditions: Provided if the delivery risk feature is enabled for the exchange, and, at the same time, if the delivery risk is applied to the member (= value = `true`). </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="cashLimitListType">
        <xs:sequence>
            <xs:element name="iniLimit" type="iniLimitType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
Conditions: Present if a cash limit for the member was defined
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="iniLimitType">
        <xs:sequence>
            <xs:element name="value" type="iniLmtValueType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Member initial cash limit
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="decShft" type="iniLmtDecShftType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
The decimal shift of the limit

Valid values: Always 2.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="currTypCod" type="currTypCodType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Currency of the limit.

Valid values: A valid ISO code
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="validFrom" type="dateType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
The first date from which the initial cash limit is applicable.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="validTo" type="dateType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
The last date from which the initial cash limit is applicable.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="limitId" type="lmtIdType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="revisionNo" type="revisionNoType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        The internal revision value of a limit.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>

            <xs:element name="externalLimitId" type="extLmtIdType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="externalVersion" type="versionType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
The external version of a limit.

Conditions: present if the limit was entered via upload.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="cashLimitType" type="cashLmtTypeType" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="balGrpListType">
        <xs:sequence>
            <xs:element name="balGrp" type="bgType" minOccurs="1" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Conditions: Present if a balancing group has been assigned to the member
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="userListType">
        <xs:sequence>
            <xs:element name="user" type="userType" minOccurs="1" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Conditions: Present if the member has at least one user
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="bgType">
        <xs:sequence>
            <xs:element name="balGrp" type="balGrpType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        Balancing Group for which an assignment Member-BG or User-BG exists.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="status" type="statusType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="name" type="nameType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="otcTrading" type="otcTradingType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="assignedTso" type="assignedTsoType" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element name="assignedProduct" type="assignedProductType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="assignedTsoType">
        <xs:sequence>
            <xs:element name="tso" type="tsoType" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="assignedProductType">
        <xs:sequence>
            <xs:element name="product" type="product" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="userType">
        <xs:sequence>
            <xs:element name="idCode" type="userIdCodType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        Member ID code /  User ID code
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="loginId" type="loginInType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="name" type="nameType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="status" type="statusType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="email" type="emailType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="defaultBalGrp" type="balGrpType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        Default Balancing Group of the user.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="lastLogin" type="lastLoginType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="applicationId" type="applicationIdType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
Application ID which is available for the user at the time of the report generation.

Conditions: Present if the user has logged in
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="applicationVer" type="applicationVerType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
The version of the application which is available for the user at the time of the report generation.

Conditions: Present if the the last login contained this information
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="assignedBalGrp" type="assignedBalGrpType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Conditions: Present if a balancing group has been assigned to the user
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="role" type="roleType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="additionalRight" type="additionalRightType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Conditions: Present if the user has at least one additional right
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="assignedBalGrpType">
        <xs:sequence>
            <xs:element name="balGrp" type="balGrpType" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        Balancing Group for which an assignment Member-BG or User-BG exists.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="additionalRightType">
        <xs:sequence>
            <xs:element name="right" type="rightType" minOccurs="1" maxOccurs="1" />
        </xs:sequence>
    </xs:complexType>
</xs:schema>
