<?xml version="1.0" encoding="UTF-8"?>
<!--
    XSD for MIFiD Commodity Position Reporting  (Venue/Participant Transfer)
    Issuer: LME
    Date: 30 September 2025
    Version: 3.0.0
    Status: Definitive 
-->
<xs:schema xmlns="urn:efet:org:xsd:composrpt.002.1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified" targetNamespace="urn:efet:org:xsd:composrpt.002.1.0">
    <xs:element name="Document" type="Document"/>
    <xs:simpleType name="ISODate">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">ISODate</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">A particular point in the progression of time in a calendar year expressed in the YYYY-MM-DD format. This representation is defined in "XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28 October 2004" which is aligned with ISO 8601.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:date"/>
    </xs:simpleType>
    <xs:simpleType name="ISODateTime">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">ISODateTime</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">A particular point in the progression of time defined by a mandatory date and a mandatory time component, expressed in either UTC time format (YYYY-MM-DDThh:mm:ss.sssZ), local time with UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), or local time format (YYYY-MM-DDThh:mm:ss.sss). These representations are defined in "XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28 October 2004" which is aligned with ISO 8601.
                Note on the time format:
                1) beginning / end of calendar day
                00:00:00 = the beginning of a calendar day
                24:00:00 = the end of a calendar day
                2) fractions of second in time format
                Decimal fractions of seconds may be included. In this case, the involved parties shall agree on the maximum number of digits that are allowed.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>
    
    <xs:simpleType name="ESMA_NindCcpt_Pattern">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">ESMA_NindCcpt_Pattern</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="(NIDN)|(CCPT)"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ESMA_Concat_Pattern">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">ESMA_Concat_Pattern</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="CONCAT"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:complexType name="PersonIdentificationSchemeName1Choice__1">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">PersonIdentificationSchemeName1Choice__1</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Sets of elements to identify a name of the identification scheme.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:choice>
                <xs:element name="Cd" type="ESMA_NindCcpt_Pattern">
                    <xs:annotation>
                        <xs:documentation source="Name" xml:lang="EN">Code</xs:documentation>
                        <xs:documentation source="Definition" xml:lang="EN">Name of the identification scheme, in a coded form as published in an external list.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Prtry" type="ESMA_Concat_Pattern">
                    <xs:annotation>
                        <xs:documentation source="Name" xml:lang="EN">Proprietary</xs:documentation>
                        <xs:documentation source="Definition" xml:lang="EN">Name of the identification scheme, in a free text form.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
    
    <xs:simpleType name="ESMA_PersonalIdentification_Pattern">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">ESMA_PersonalIdentification_Pattern</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="3"/>
            <xs:maxLength value="35"/>
            <xs:pattern value="(([A-Z]{2,2}[A-Z0-9]{1,33})|([A-Z]{2,2}[0-9]{8}[A-Z]{1}[A-Z#]{4}[A-Z]{1}[A-Z#]{4})|(FI[A-Z0-9\-\+]{1,33})|(LV[A-Z0-9\-]{1,33}))"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="ESMA_EeaEuropeanAlphabetMax140_Pattern">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">ESMA_EeaEuropeanAlphabetMax140_Pattern</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="([A-Z]|[А-Я]|[Α-Ω]|[ÄÀÁÂÃÅǍĄĂÆÇĆĈČĎĐÐÈÉÊËĚĘĜĢĞĤÌÍÎÏĴĶĹĻŁĽÑŃŇÖÒÓÔÕŐØŒŔŘẞŚŜŞŠȘŤŢÞȚÜÙÚÛŰŨŲŮŴÝŸŶŹŽŻ]|,| |'|-|–){1,140}"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:complexType name="GenericPersonIdentification1__1">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">GenericPersonIdentification1__1</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Information related to an identification of a person.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Id" type="ESMA_PersonalIdentification_Pattern">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">Identification</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Unique and unambiguous identification of a person.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="SchmeNm" type="PersonIdentificationSchemeName1Choice__1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">SchemeName</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Name of the identification scheme.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="PersonIdentification10__1">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">PersonIdentification10__1</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Unique and unambiguous way to identify a person.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Othr" type="GenericPersonIdentification1__1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">Other</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Unique identification of a person, as assigned by an institution, using an identification scheme.&#13;
                        &#13;
                        Usage: &#13;
                        In the scope of MIFIR, the scheme name is restricted to a passport number (use of code CCPT), any other national identifier (use of code NIDN) or CONCAT (use of proprietary with value CONCAT).&#13;
                        Issuer field will be ignored and should not be populated by reporting parties.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="LeiOrNationalID">
        <xs:choice>
            <xs:element name="LEI" type="LEIIdentifier"/>
            <xs:element name="NationalID" type="PersonIdentification10__1"/>
        </xs:choice>
    </xs:complexType>

    <xs:simpleType name="Max52Text">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Max52Text</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Specifies a character string with a maximum length of 52 characters.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="52"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="CancelledStatusReason15Code">
        <xs:restriction base="xs:string">
            <xs:enumeration value="CANI"/>
            <xs:enumeration value="CSUB"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="PstnQtyUoMCode">
        <xs:restriction base="xs:string">
            <xs:enumeration value="LOTS"/>
            <xs:enumeration value="UNIT"/>
            <xs:enumeration value="OTHER"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="ISIN">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">ISIN</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">ISIN An Alphanumeric 12 characters long</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Z]{2,2}[A-Z0-9]{9,9}[0-9]{1,1}"/>
        </xs:restriction>
    </xs:simpleType>
	
	<xs:simpleType name="RepRefNumPattern">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">RepRefNumPattern</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Report Reference Number validation to prevent special characters and restrict data to A-Z and 0-9 </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
		    <xs:minLength value="1"/>
            <xs:maxLength value="52"/>
            <xs:pattern value="([A-Z0-9]){1,52}"/>
        </xs:restriction>
    </xs:simpleType>
	
    <xs:simpleType name="VPC">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">VPC</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Venue Product Code</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="12"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="MICIdentifier">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">MICIdentifier</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Market Identifier Code. The identification of a financial market, as stipulated in the norm ISO 10383 'Codes for exchanges and market identifications'.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Z0-9]{4,4}"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="PositionMaturity">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">PositionMaturity</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Position Maturity Code</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="SPOT">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">Spot</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Spot Position Maturity</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OTHR">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">Other</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Spot Position Maturity</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="PositionType">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">PositionType</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Position Type Code</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="OPTN"> </xs:enumeration>
            <xs:enumeration value="FUTR"> </xs:enumeration>
            <xs:enumeration value="EMIS"> </xs:enumeration>
            <xs:enumeration value="SDRV"> </xs:enumeration>
            <xs:enumeration value="OTHR"> </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="Max13Int">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Maximum13Integer</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Number of objects represented as an integer.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:fractionDigits value="0"/>
            <xs:totalDigits value="13"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="Max15_2Real">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Maximum15-2Real</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Number of objects represented as an real with max 15 digits and precision 2.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="15"/>
            <xs:fractionDigits value="2"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="LEIIdentifier">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Z0-9]{18,18}[0-9]{2,2}"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="TrueFalseIndicator">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">TrueFalseIndicator</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">A flag indicating a True or False value.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="TRUE"> </xs:enumeration>
            <xs:enumeration value="FALSE"> </xs:enumeration>
        </xs:restriction>
    </xs:simpleType> 
        
    <xs:simpleType name="EmailAddress">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">EmailAddress</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Specifies a character string format of an email</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="3"/>
            <xs:maxLength value="256"/>
            <xs:pattern value="[A-Za-z0-9_]+([-+.'][A-Za-z0-9_]+)*@[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\.[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="Max25Text">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Max25Text</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Specifies a character string with a maximum length of 25 characters.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="25"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="Max35Text">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Max35Text</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Specifies a character string with a maximum length of 35 characters.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="35"/>
        </xs:restriction>
    </xs:simpleType>   
    
    <xs:simpleType name="Max50Text">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Max50Text</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Specifies a character string with a maximum length of 50 characters.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="50"/>
        </xs:restriction>
    </xs:simpleType>    
    
    <xs:simpleType name="Max200Text">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Max200Text</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Specifies a character string with a maximum length of 200 characters.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="200"/>
        </xs:restriction>
    </xs:simpleType>          
    
    <xs:complexType name="SchemaVersioning">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">SchemaVersioning</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Schema versioning information.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Version" type="Max25Text" minOccurs="1" maxOccurs="1"/>
            <xs:element name="Notes" type="Max50Text" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>    
    
    <xs:simpleType name="EnviromentInfo">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Environment</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Indicates whether the message is intended for use on a production environment (PRO) or a simulation/test environment (SIM).</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="PRO"> </xs:enumeration>
            <xs:enumeration value="SIM"> </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>    
    
    <xs:simpleType name="PositionHolderCategory">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">PstinHldrCategory</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Category of the position holder. This information is required in the "Commitment of Trader Report" (ITS4 - Article 1).</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Investment Firm or Credit Institution"></xs:enumeration>
            <xs:enumeration value="Investment Fund"></xs:enumeration>
            <xs:enumeration value="Other Financial Institution"></xs:enumeration>
            <xs:enumeration value="Commercial Undertaking"></xs:enumeration>
            <xs:enumeration value="Operators with compliance obligations under Directive 2003/87/EC"></xs:enumeration>
        </xs:restriction>
    </xs:simpleType>      

    <xs:complexType name="Document">
        <xs:sequence>
            <xs:element name="FinInstrmRptgTradgComPosRpt" type="FinancialInstrumentReportingTradingCommodityPosReportV01"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="FinancialInstrumentReportingTradingCommodityPosReportV01">
        <xs:sequence>
            <xs:element name="Header" type="CommodityPositionReportHeader" minOccurs="1" maxOccurs="1"/>
            <xs:element name="CPR" type="ReportType3Choice" minOccurs="1" maxOccurs="500000"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="RecordTechnicalData2">
        <xs:sequence>
            <xs:element name="RctDtTm" type="ISODateTime"/>
            <xs:element name="CxlRsn" type="CancelledStatusReason15Code"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="CommodityPositionReportHeader">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">Header</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">Element contains a number of control fields to be used to represent schema versioning or process control.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="VersionInfo" type="SchemaVersioning">  
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">VersionInfo</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">The schema version, i.e. the format of the overall message. In the future in theory multiple schema versions may be supported. For example, in the event of a new field being added this schema version would increment.</xs:documentation>
                </xs:annotation>
            </xs:element> 
            <xs:element name="Environment" type="EnviromentInfo" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">Environment</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">This field just indicates whether the message is intended for use on a production environment (PRO) or a simulation/test environment (SIM).</xs:documentation>
                </xs:annotation>
            </xs:element> 
            <xs:element name="SubmissionID" type="Max50Text" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">SubmissionID</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">A unique overall submission identifier for all the reports in the message. It maybe used to track the message through processing.</xs:documentation>
                </xs:annotation>
            </xs:element> 
            <xs:element name="SubmitterID" type="Max35Text" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">SubmitterID</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">An identifier for the submitting party. This could be #1 THE position holder if they are sending an ITS4 report to a trading venue or #2 the trading venue if they are submitting the report to the relavant NCA.</xs:documentation>
                </xs:annotation>
            </xs:element> 
            <xs:element name="ReceiverID" type="Max35Text" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">SubmitterID</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">An identifier for the receving party. This could be #1 the position holder if they are receiving an ITS4 report from a trading venue, #2 a trading venue if they are receiving the completed report from the trading member or #3 the relevant NCA, i.e. the final recipient.</xs:documentation>
                </xs:annotation>
            </xs:element> 
            <xs:element name="UltimateReceivingNCA" type="Max35Text" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">UltimateReceivingNCA</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">The national competant authority who will ultimately receive the final position report.</xs:documentation>
                </xs:annotation>
            </xs:element> 
        </xs:sequence>
    </xs:complexType>    
    
    <xs:complexType name="ReportType3Choice">
        <xs:choice>
            <xs:element name="NEWT" type="CommodityPositionReport1WrapV01"/>
            <xs:element name="AMND" type="CommodityPositionReport1WrapV01"/>
            <xs:element name="CANC" type="CommodityPositionReport1WrapV01"/>
        </xs:choice>
    </xs:complexType>
    
    <xs:complexType name="CommodityPositionReport1WrapV01">
        <xs:sequence>
            <xs:element name="ReportRefNo" type="RepRefNumPattern"/>
            <xs:element name="CPRBody" type="CommodityPositionReport1V01"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="ClientData">
        <xs:sequence>
            <xs:element name="IsNonInvestFirm" type="TrueFalseIndicator" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">IsNonInvestFirm</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Field to report on whether the positions holder is classed as a non investment firm.</xs:documentation>
                </xs:annotation>
            </xs:element> 
            <xs:element name="IsHedgingExempt" type="TrueFalseIndicator" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">IsHedgingExempt</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">An indicator per entity per commodity derivative must be provided, whether an exemption from a position limit has been granted by the competent Authorities acc. to Art. 8 (1) of RTS 21.</xs:documentation>
                </xs:annotation>
            </xs:element> 
        </xs:sequence>
    </xs:complexType>    
    
    <xs:complexType name="CommodityPositionReport1V01">
        <xs:annotation>
            <xs:documentation source="Name" xml:lang="EN">CommodityPositionReportV01</xs:documentation>
            <xs:documentation source="Definition" xml:lang="EN">The Commodity Position Report message is ...</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="RptDt" type="ISODateTime">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">ReportDate</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Field required as a matter of record.  Also enables supervision of late submissions, and repeated submissions in the case of rejections.  Monitoring to be determined according to supervisory risk appetite. YYYY-MM-DDThh:mm:ss.ddddddZ </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="BusDt" type="ISODate">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">BusinessDate</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">The report is required to be provided by trading venues and investment firms to competent authorities daily. It therefore is expected to be produced at the close of the business day and submitted  by 09:00 CET on the following business day.</xs:documentation>
                </xs:annotation>
            </xs:element>
            
            <xs:element name="RptEnt" type="LeiOrNationalID">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">ReportingEntityIdentifier</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Legal Entity Identifier (“LEI”). The identity of the legal entity that is making the report to the NCA.  It is assumed that this is a legal person rather than a natural person.  LEI (alphanumeric 20 characters) or national identification (alphanumeric 35 characters) </xs:documentation>
                </xs:annotation>
            </xs:element>
            
            <xs:element name="RptEntMemberID" type="Max35Text" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">RptEntMemberID</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">This optional field can hold the reporting entities member ID as recognised by the trading venue. Each venue will have it's own recognised identifier for each reporting entity so this optional field could be useful for the venue's internal processing.</xs:documentation>
                </xs:annotation>
            </xs:element> 
            
            <xs:element name="PstnAcct" type="Max200Text" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PostionAccountReference</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">This optional field can hold the postion account reference, i.e. the position holders account reference on record at the venue.</xs:documentation>
                </xs:annotation>
            </xs:element> 
            
            <xs:element name="PstnHldr" type="LeiOrNationalID">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PositionHolderIdentifier</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">LEI for legal entities or other identifiers for natural persons, as specified by ESMA.  Note: if the position is held as a proprietary position of the reporting firm, this field will be identical to field 2 above LEI (alphanumeric 20 characters) or national identification (alphanumeric 35 characters)</xs:documentation>
                </xs:annotation>
            </xs:element>
            
            <xs:element name="PstinHldrCategory" type="PositionHolderCategory" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PostionHolderCategory</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Category of the position holder</xs:documentation>
                </xs:annotation>
            </xs:element>            
            
            <xs:element name="PstinHldrCntctEml" type="EmailAddress">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PositionHolderContactEmail</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Email address for notifications of position-related matters</xs:documentation>
                </xs:annotation>
            </xs:element>
            
            <xs:element name="ParentPstinHldrCntctEml" type="EmailAddress">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">ParentPositionHolderContactEmail</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Email address of ultimate parent entity</xs:documentation>
                </xs:annotation>
            </xs:element>
            
            <xs:element name="PstinHldrIsIdpdtInd" type="TrueFalseIndicator">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PositionHolderIsIndependent</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">TRUE - the position holder is a collective investment undertaking that makes independent investment decisions. Field to report on whether the position holder is a collective investment undertaking that makes investment decisions independently from its parent as set out by Article 4(2) of RTS 21</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PrntEnt" type="LeiOrNationalID">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">ParentEntityIdentifier</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Collected to enable aggregation of positions at a Group level rather than at individual entity level.  LEI for legal entities or other identifiers for natural persons, as specified by ESMA.  Note: this field may be identical to field 2 and/or 3 above if the parent entity holds its own positions, or makes its own reports. LEI (alphanumeric 20 characters) or national identification (alphanumeric 35 characters)</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ISIN" type="ISIN">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">UniqueInstrumentIdentifier </xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Use of ISIN for the individual instrument has been agreed by MDRWG  See field 5 below for treatment of OTC contracts that are economically equivalent to contracts that are traded on trading venues</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="VenProdCde" type="VPC" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">VenueProductCode</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Used to group together different contracts in the same product for the “other months’” calculation where they have different ISINs</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="TrdngVenID" type="MICIdentifier" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">TradingVenueIdentifier</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Either the Market Identifier Code (“MIC”) or for off-exchange positions in economically equivalent OTC contracts, the code “XXXX”</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PstnTyp" type="PositionType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PositionType</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Specifies the type of Position E.g. OPTN, FUTR, EMIS, SDRV, OTHR</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PstnMtrty" type="PositionMaturity" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PositionMaturity</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Either “SPOT” for spot month or “ALL” for all other months.  Note: separate reports are required for spot months and all other months in order to facilitate the monitoring of compliance with Article 57(1).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PstnQty" type="Max15_2Real" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PositionQuantity</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Position expressed in the number of contracts</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PstnQtyUoM" type="PstnQtyUoMCode" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PositionQuantityUnitOfMeasure</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Units used to report the position quantity</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PstnQtyUoMDesc" type="Max25Text" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PositionQuantityUnitOfMeasure</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Specify if PstnQtyUoMCode is OTHER. A description of the units used if the position quantity is expressed in units of the underlying</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="DeltaPstnQty" type="Max15_2Real" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">DeltaPositionQuantity</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Position expressed in the number of contracts</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="RiskRdcInd" type="TrueFalseIndicator">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">RiskReducingIndicator</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Indicated by the use of "True" - yes (position is risk reducing)  or “FALSE” - no (position is not risk reducing).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ClientData" type="ClientData" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">ClientData</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Additional data potentially reported by the position holder.</xs:documentation>
                </xs:annotation>
            </xs:element>
			<xs:element name="ExemptionType" type="ExemptionType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">ExemptionType</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Indicator of the type of exemption, if any, associated with the position. If the position is not exempted, this field should remain empty.</xs:documentation>
                </xs:annotation>
            </xs:element>  
        </xs:sequence>
    </xs:complexType>    
    
	<xs:simpleType name="ExemptionType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="RISK">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">RiskReducing</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Indicator of whether the position is risk reducing in relation to commercial activity</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PASS">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">PassThrough</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Indicator of whether the position is a pass-through of a hedging exemption</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LIQD">
                <xs:annotation>
                    <xs:documentation source="Name" xml:lang="EN">Liquidity</xs:documentation>
                    <xs:documentation source="Definition" xml:lang="EN">Indicator of whether the position is entered into as part of an obligation to provide liquidity</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
