<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns="http://www.ngm.se/ns/InstrumentSchema/2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" targetNamespace="http://www.ngm.se/ns/InstrumentSchema/2" vc:minVersion="1.0">
  <!-- NOTE: XML Schema version 1.1 -->
  
  <xs:annotation><xs:documentation>
    <title>Instrument schema - default variant</title>
    <description>Instrument information specification and classification schema.</description>
    <version>2.3.0</version>
  </xs:documentation></xs:annotation>
  <!-- === ROOT ELEMENT == -->
  <xs:element name="instrument" type="instrument"/>

  <!-- === EXTENSIBILITY === -->
  <xs:attributeGroup name="anyAttribute">
    <xs:anyAttribute processContents="lax"/>
  </xs:attributeGroup>

  <xs:complexType name="anyComplex">
    <xs:all>
      <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
    </xs:all>
    <xs:attributeGroup ref="anyAttribute"/>
  </xs:complexType>

  <xs:simpleType name="anyEnum">
    <xs:restriction base="xs:token"/>
  </xs:simpleType>
  
  <!-- === INSTRUMENT === -->
  <xs:complexType name="instrument">
    <xs:annotation><xs:documentation>Common base class for all instruments.</xs:documentation></xs:annotation>
    <xs:complexContent>
      <xs:extension base="anyComplex">
        <xs:all>
          <!-- BASIC -->
          <xs:element name="identification" type="instrumentIdentification"/>
          <xs:element name="lastUpdated" type="lastUpdated"/>
          <xs:element name="cfi" type="cfi"/>
          <xs:element name="productName" type="productName" minOccurs="0"/>
          <xs:element name="link" type="link" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="firstTradedDate" type="firstTradedDate"/>
          <xs:element name="lastTradedDate" type="lastTradedDate" minOccurs="0"/>
          <xs:element name="issuer" type="issuer" minOccurs="0"/>
          <xs:element name="liquidityProvider" type="liquidityProvider" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="arranger" type="arranger" minOccurs="0"/>
          <xs:element name="distributor" type="distributor" minOccurs="0"/>
          <xs:element name="issuedQuantity" type="issuedQuantity" minOccurs="0"/>
          <xs:element name="aif" type="aif" minOccurs="0"/>
          <xs:element name="privatePlacement" type="privatePlacement" minOccurs="0"/>
          <xs:element name="reg871m" type="reg871m" minOccurs="0" default="unaffected"/>
          <xs:element name="marketMakerRequirements" type="marketMakerRequirements" minOccurs="0"/>
          

          <!-- EQUITY -->
          <xs:element name="votingStrength" type="votingStrength" minOccurs="0"/>
          <xs:element name="shareClass" type="shareClass" minOccurs="0"/>
          

          <!-- DERIVATIVE -->
          <xs:element name="eusipa" type="eusipa" minOccurs="0"/>
          <xs:element name="underlying" type="underlying" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="direction" type="direction" minOccurs="0"/>
          <xs:element name="maturityDate" type="maturityDate" minOccurs="0"/>
          <xs:element name="settlementMethod" type="settlementMethod" minOccurs="0"/>
          <xs:element name="asianTail" type="asianTail" minOccurs="0"/>
          <xs:element name="parity" type="parity" minOccurs="0"/>
          <xs:element name="optionType" type="optionType" minOccurs="0"/>
          <xs:element name="strikePrice" type="strikePrice" minOccurs="0"/>
          <xs:element name="issuePrice" type="issuePrice" minOccurs="0"/>
          <xs:element name="issueDate" type="issueDate" minOccurs="0"/>
          <xs:element name="nominalValue" type="nominalValue" minOccurs="0"/>
          <xs:element name="participationRate" type="participationRate" minOccurs="0"/>
          <xs:element name="capitalProtection" type="capitalProtection" minOccurs="0"/>
          <xs:element name="safetyBarrier" type="safetyBarrier" minOccurs="0"/>
          <xs:element name="cap" type="cap" minOccurs="0"/>
          <xs:element name="knockOutBuyback" type="knockOutBuyback" minOccurs="0"/>
          
          
          <!-- FIXED INCOME -->
          <xs:element name="bondPriceType" type="bondPriceType" minOccurs="0"/>
          <xs:element name="dayCount" type="dayCount" minOccurs="0"/>
          <xs:element name="interestRate" type="interestRate" minOccurs="0"/>
          <xs:element name="referenceRate" type="referenceRate" minOccurs="0"/>
          <xs:element name="rateObservationDays" type="rateObservationDays" minOccurs="0"/>
          <xs:element name="businessDayConvention" type="businessDayConvention" minOccurs="0"/>
          <xs:element name="settlementDays" type="settlementDays" minOccurs="0"/>
          <xs:element name="recordDays" type="recordDays" minOccurs="0"/>
          <xs:element name="referenceIndex" type="referenceIndex" minOccurs="0"/>
          <xs:element name="firstInterestDate" type="firstInterestDate" minOccurs="0"/>
          <xs:element name="firstCouponDate" type="firstCouponDate" minOccurs="0"/>
          <xs:element name="lastCouponDate" type="lastCouponDate" minOccurs="0"/>
          <xs:element name="couponEndOfMonth" type="couponEndOfMonth" minOccurs="0"/>
          <xs:element name="couponPeriod" type="couponPeriod" minOccurs="0"/>
          <xs:element name="firstCouponPeriod" type="firstCouponPeriod" minOccurs="0"/>
          <xs:element name="lastCouponPeriod" type="lastCouponPeriod" minOccurs="0"/>
          
         
        </xs:all>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  
  <!-- === FIELDS and TYPES === -->
  <xs:simpleType name="lastUpdated">
    <xs:annotation><xs:documentation>Timestamp when the instrument was last updated.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:dateTime"/>
  </xs:simpleType>

  <xs:simpleType name="productName">
    <xs:annotation><xs:documentation>Instrument type name given by the issuer (e.g. Knock-Out Warrants might also be called Turbo Warrants).</xs:documentation></xs:annotation>
    <xs:restriction base="xs:string"/>
  </xs:simpleType>

  <xs:simpleType name="firstTradedDate">
    <xs:annotation><xs:documentation>The first day the instrument is active for trading on this venue.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:date"/>
  </xs:simpleType>
  
  <xs:simpleType name="lastTradedDate">
    <xs:annotation><xs:documentation>Day when trading in the instrument ends.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:date"/>
  </xs:simpleType>

  <xs:complexType name="issuer">
    <xs:annotation><xs:documentation>Issuers are legally responsible for the obligations of the issue and for reporting financial conditions, material developments and any other operational activities as required by the regulations of their jurisdictions.</xs:documentation></xs:annotation>
    <xs:complexContent><xs:extension base="companyIdentification"/></xs:complexContent>
  </xs:complexType>

  <xs:complexType name="liquidityProvider">
    <xs:annotation><xs:documentation>A broker-dealer firm that accepts the risk of holding a certain number of shares of a particular security in order to facilitate trading in that security. Also known as market maker.</xs:documentation></xs:annotation>
    <xs:complexContent><xs:extension base="companyIdentification"/></xs:complexContent>
  </xs:complexType>

  <xs:complexType name="arranger">
    <xs:annotation><xs:documentation>An arranger is a provider of funds in the syndication of a debt. They are entitled to syndicate the loan or bond issue.</xs:documentation></xs:annotation>
    <xs:complexContent><xs:extension base="companyIdentification"/></xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="distributor">
    <xs:annotation><xs:documentation>A distributor sells and markets the product on behalf of the arranger, who syndicates the loan or bond.</xs:documentation></xs:annotation>
    <xs:complexContent><xs:extension base="companyIdentification"/></xs:complexContent>
  </xs:complexType>

  <xs:complexType name="marketMakerRequirements">
    <xs:annotation><xs:documentation>Requirements imposed on market makers.</xs:documentation></xs:annotation>
    <xs:complexContent>
      <xs:extension base="anyComplex">
        <xs:all>
          <xs:element name="maxSpread" type="maxSpread" minOccurs="0"/>
          <xs:element name="minVolume" type="minVolume" minOccurs="0"/>
          <xs:element name="minValue" type="minValue" minOccurs="0"/>
        </xs:all>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="maxSpread">
    <xs:annotation><xs:documentation>The maximum allowed spread.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="minVolume">
    <xs:annotation><xs:documentation>The minimum allowed volume.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="minValue">
    <xs:annotation><xs:documentation>The minimum allowed value.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="votingStrength">
    <xs:annotation><xs:documentation>The number of votes one equity gives the holder to vote with.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:integer"/>
  </xs:simpleType>

  <xs:simpleType name="shareClass">
    <xs:annotation><xs:documentation>Companies that have more than one class of common stock usually identify a given class with alphabetic markers, such as class "A" shares and class "B" shares. Different share classes within the same entity typically confer different rights on their owners.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:string"/>
  </xs:simpleType>

  <xs:simpleType name="issuedQuantity">
    <xs:annotation><xs:documentation>The number of units issued for this instrument. For instruments that are traded in percentage, where quantities are expressed in nominal value, the issued quantity is the issued nominal value.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:integer"/>
  </xs:simpleType>

  <xs:simpleType name="issueDate">
    <xs:annotation><xs:documentation>Date when the instrument was issued.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:date"/>
  </xs:simpleType>

  <xs:simpleType name="maturityDate">
    <xs:annotation><xs:documentation>Day where the final value of the instrument is set.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:date"/>
  </xs:simpleType>

  <xs:simpleType name="firstInterestDate">
    <xs:annotation><xs:documentation>Specifies the first date (exclusive) from which the interest is calculated.
    Also known as the dated date.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:date"/>
  </xs:simpleType>

  <xs:simpleType name="firstCouponDate">
    <xs:annotation><xs:documentation>The first coupon payment date.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:date"/>
  </xs:simpleType>

  <xs:simpleType name="lastCouponDate">
    <xs:annotation><xs:documentation>The last coupon payment date.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:date"/>
  </xs:simpleType>

  <xs:complexType name="couponEndOfMonth">
    <xs:annotation><xs:documentation>Indicates that coupon payment date is end of month.</xs:documentation></xs:annotation>
    <xs:complexContent>
      <xs:extension base="anyComplex"/>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="interestRate">
    <xs:annotation><xs:documentation>Fixed interest rate or margin rate for floating rates. 100 means 100\%.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:decimal"/>
  </xs:simpleType>

  <xs:simpleType name="referenceRate">
    <xs:annotation><xs:documentation>Refers to a reference rate, if applicable. E.g. "STIBOR 3M".</xs:documentation></xs:annotation>
    <xs:restriction base="xs:string"/>
  </xs:simpleType>

  <xs:complexType name="rateObservationDays">
    <xs:annotation><xs:documentation>Specifies how many days before the coupon period that the coupon rate is determined.
    Zero means on the coupon payment date of the previous period.
    Applicable to floating rates.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="day" type="dayUnit" use="required"/>
        <xs:attributeGroup ref="anyAttribute"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="recordDays">
    <xs:annotation><xs:documentation>Specifies how many days before the coupon payment date the holder must be registered owner to obtain the coupon.
    Zero means on the coupon payment date.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="day" type="dayUnit" use="required"/>
        <xs:attributeGroup ref="anyAttribute"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="settlementDays">
    <xs:annotation><xs:documentation>Number of settlement days.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="day" type="dayUnit" use="required"/>
        <xs:attributeGroup ref="anyAttribute"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="couponPeriod">
    <xs:annotation><xs:documentation>Period between coupon payments.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="unit" type="couponPeriodUnit" use="required">
          <xs:annotation><xs:documentation>Coupon period unit.</xs:documentation></xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="anyAttribute"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="firstCouponPeriod">
    <xs:annotation><xs:documentation>The type of the first coupon period.</xs:documentation></xs:annotation>
    <xs:restriction base="couponPeriodType"/>
  </xs:simpleType>

    <xs:simpleType name="lastCouponPeriod">
    <xs:annotation><xs:documentation>The type of the last coupon period.</xs:documentation></xs:annotation>
    <xs:restriction base="couponPeriodType"/>
  </xs:simpleType>

  <xs:complexType name="referenceIndex">
    <xs:annotation><xs:documentation>Refers to an index, if applicable.</xs:documentation></xs:annotation>
    <xs:attribute name="baseValue" type="xs:decimal" use="required">
      <xs:annotation><xs:documentation>Index base value.</xs:documentation></xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="anyAttribute"/>
  </xs:complexType>

  <xs:complexType name="link">
    <xs:annotation><xs:documentation>Defines a link between a document and an external resource, such as the final terms.</xs:documentation></xs:annotation>
    <xs:complexContent>
      <xs:extension base="anyComplex">
        <xs:attribute name="rel" type="linkRel" use="required"/>
        <xs:attribute name="href" type="xs:string" use="required">
          <xs:annotation><xs:documentation>Specifies the location (URL) of the linked document.</xs:documentation></xs:annotation>
        </xs:attribute>
        <xs:attribute name="lang" type="xs:string">
          <xs:annotation><xs:documentation>Specifies the language(s) of the text in the linked document, separated by comma. IETF BCP 47 language tags.</xs:documentation></xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="instrumentIdentification">
    <xs:annotation><xs:documentation>Identification of the instrument.</xs:documentation></xs:annotation>
    <xs:complexContent>
      <xs:extension base="anyComplex">
        <xs:all>
          <xs:element name="instrumentID" type="xs:string" minOccurs="0">
            <xs:annotation><xs:documentation>The marketplace assigned identifier.</xs:documentation></xs:annotation>
          </xs:element>
          <xs:element name="symbol" type="xs:string" minOccurs="0">
            <xs:annotation><xs:documentation>The short name of the instrument.</xs:documentation></xs:annotation>
          </xs:element>
          <xs:element name="name" type="xs:string" minOccurs="0">
            <xs:annotation><xs:documentation>The full (long) name of the instrument.</xs:documentation></xs:annotation>
          </xs:element>
          <xs:element name="isin" type="isin" minOccurs="0"/>
          <xs:element name="fisn" type="fisn" minOccurs="0"/>
          <xs:element name="smartContractAddress" type="smartContractAddress" minOccurs="0"/>
        </xs:all>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="marketIdentification">
    <xs:complexContent>
      <xs:extension base="anyComplex">
        <xs:all>
          <xs:element name="mic" type="mic" minOccurs="0"/>
          <xs:element name="name" type="xs:string" minOccurs="0">
            <xs:annotation><xs:documentation>The name of the market place.</xs:documentation></xs:annotation>
          </xs:element>
        </xs:all>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="companyIdentification">
    <xs:complexContent>
      <xs:extension base="anyComplex">
        <xs:all>
          <xs:element name="name" type="xs:string">
            <xs:annotation><xs:documentation>Company name.</xs:documentation></xs:annotation>
          </xs:element>
          <xs:element name="country" type="country" minOccurs="0"/>
          <xs:element name="symbol" type="xs:string" minOccurs="0">
            <xs:annotation><xs:documentation>Trading system participant identifier or similar.</xs:documentation></xs:annotation>
          </xs:element>
          <xs:element name="lei" type="lei" minOccurs="0"/>
          <xs:element name="bic" type="bic" minOccurs="0"/>
          <xs:element name="vatNumber" type="xs:string" minOccurs="0">
            <xs:annotation><xs:documentation>VAT number for identification purposes.</xs:documentation></xs:annotation>
          </xs:element>
        </xs:all>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="underlying">
    <xs:annotation><xs:documentation>The underlying instrument of the derivative instrument.</xs:documentation></xs:annotation>
    <xs:complexContent>
      <xs:extension base="anyComplex">
        <xs:all>
          <xs:element name="identification" type="instrumentIdentification">
            <xs:annotation><xs:documentation>Identification of the underlying instrument.</xs:documentation></xs:annotation>
          </xs:element>
          <xs:element name="category" type="underlyingCategory" minOccurs="0"/>
          <xs:element name="subCategory" type="xs:string" minOccurs="0">
            <xs:annotation><xs:documentation>Sub category, e.g. BRENT OIL or GOLD.</xs:documentation></xs:annotation>
          </xs:element>
          <xs:element name="referenceMarket" type="marketIdentification" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="weight" type="xs:decimal" minOccurs="0">
            <xs:annotation><xs:documentation>The relative weight of this underlying compared to the other underlyings in the event of a basket.</xs:documentation></xs:annotation>
          </xs:element>
          <xs:element name="intermediateIdentification" type="instrumentIdentification" minOccurs="0">
            <xs:annotation><xs:documentation>Identification of any intermediate underlying instrument.</xs:documentation></xs:annotation>
          </xs:element>
        </xs:all>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="participationRate">
    <xs:annotation><xs:documentation>The amount of leverage, how much the product participate in the underlying. 1 means 100\%.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:decimal"/>
  </xs:simpleType>
  
  <xs:simpleType name="capitalProtection">
    <xs:annotation><xs:documentation>The capital protection as a percentage of the nominal value. 100 means 100\%.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:decimal"/>
  </xs:simpleType>
  
  <xs:simpleType name="bic">
    <xs:annotation><xs:documentation>The SWIFT/Bank Identifier Code (BIC) identifies a financial institution as described in ISO 9362.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="([A-Z|0-9]{8}|[A-Z|0-9]{11})"/>
    </xs:restriction>
  </xs:simpleType>

    <xs:simpleType name="mic">
    <xs:annotation><xs:documentation>The Market Identifier Code (MIC) uniquely identifies a market place as described in ISO 10383.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="[A-Z]{4}"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="isin">
    <xs:annotation><xs:documentation>The International Securities Identification Number (ISIN) identifies a security as described in ISO 6166.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="[A-Z|0-9]{12}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="lei">
    <xs:annotation><xs:documentation>
        The Legal Entity Identifier (LEI) is a reference code to uniquely identify legally distinct entities that engage in financial transactions and associated reference data as described in ISO 17442.
      </xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="[A-Z|0-9]{20}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="fisn">
    <xs:annotation><xs:documentation>
        The Financial Instrument Short Name (FISN) standard for financial instrument short names as described in ISO 18774.
      </xs:documentation></xs:annotation>
    <xs:restriction base="xs:string">
      <xs:maxLength value="35"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="smartContractAddress">
    <xs:annotation><xs:documentation>
        A unique identifier of a smart contract on a distributed ledger. The format of the address is specific to the DLT network on which the contract resides (e.g., Ethereum, Solana).
      </xs:documentation></xs:annotation>
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="country">
    <xs:annotation><xs:documentation>The 2 letter country code as defined in ISO 31662.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="[A-Z]{2}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="currency">
    <xs:annotation><xs:documentation>The 3 letter currency code as defined in ISO 4217 or INDEX for Indexpoints.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="INDEX|[A-Z]{3}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="currencyAmount">
    <xs:annotation><xs:documentation>Price with currency.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="currency" type="currency"/>
        <xs:attributeGroup ref="anyAttribute"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="nominalValue">
    <xs:annotation><xs:documentation>The value, to which, a financial instrument is issued. The nominal value is fixed during the duration of the instrument's lifetime and may therefore differ from the market value of the instrument. The nominal value of a bond is the value which is paid to the bond holder at maturity.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:restriction base="currencyAmount"/>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="cfi">
    <xs:annotation><xs:documentation>The Classification of Financial Instruments (CFI) classifies the instrument in accordance with ISO 10962:2015.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="[A-Z]{6}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="eusipa">
    <xs:annotation><xs:documentation>The EUSIPA derivative instrument classification.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="[0-9]{4}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="issuePrice">
    <xs:annotation><xs:documentation>The price at which investors buy the instruments when they are first issued.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:pattern value="[0-9]*([.][0-9]+)?[ ]?[%]?"/> <!-- Integer or Decimal with optional '%' -->
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="asianTail">
    <xs:annotation><xs:documentation>This method of averaging the level of the underlying protects the investor from sudden and adverse price movements.</xs:documentation></xs:annotation>
    <xs:attribute name="start" type="xs:date" use="required"/>
    <xs:attribute name="end" type="xs:date" use="required"/>
  </xs:complexType>

  <xs:simpleType name="parity">
    <xs:annotation><xs:documentation>The number of instruments required to control one unit of the underlying asset.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:decimal"/>
  </xs:simpleType>
  
  <xs:complexType name="strikePrice">
    <xs:annotation><xs:documentation>The strike price is generally the fixed price at which the owner of e.g. the option or warrant can buy (for call), or sell (for put), the underlying instrument.
    Also known as financing level when applied to Mini Future.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:restriction base="currencyAmount"/>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="safetyBarrier">
    <xs:annotation><xs:documentation>Knock out or safety barrier.
    Also known as stop-loss level when applied to Mini Future.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:restriction base="currencyAmount"/>
    </xs:simpleContent> 
  </xs:complexType>

  <xs:complexType name="cap">
    <xs:annotation><xs:documentation>The investor participates in price increases up to this price level of the underlying asset.</xs:documentation></xs:annotation>
    <xs:simpleContent>
      <xs:restriction base="currencyAmount"/>
    </xs:simpleContent>
  </xs:complexType>

  <!-- === ENUM FIELDS and TYPES == -->
  <xs:simpleType name="couponPeriodUnitEnum">
    <xs:restriction base="xs:token">
      <xs:enumeration value="day"/>
      <xs:enumeration value="month"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="couponPeriodUnit">
    <xs:union memberTypes="couponPeriodUnitEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="directionEnum">
    <xs:annotation><xs:documentation>Direction of the product, i.e. increasing value when the underlying is rising or falling.
    Different nomenclature is used for different products.
    Call is equivalent to bull and long.
    Put is equivalent to bear and short.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="call"><xs:annotation><xs:documentation>Call (rising).</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="put"><xs:annotation><xs:documentation>Put (falling).</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="both"><xs:annotation><xs:documentation>Both</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="other"><xs:annotation><xs:documentation>Other</xs:documentation></xs:annotation></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="direction">
    <xs:union memberTypes="directionEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="bondPriceTypeEnum">
    <xs:annotation><xs:documentation>Determines whether the bond price includes any accrued interest or not.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="dirty"><xs:annotation><xs:documentation>The price of a bond is including any accrued interest.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="clean"><xs:annotation><xs:documentation>The price of a bond is excluding any accrued interest.</xs:documentation></xs:annotation></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="bondPriceType">
    <xs:union memberTypes="bondPriceTypeEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="dayCountEnum">
    <xs:annotation><xs:documentation>The day count convention determines how interest accrues over time.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="30/360_US"><xs:annotation><xs:documentation>30/360 US</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="30E/360"><xs:annotation><xs:documentation>30E/360, also known as 30/360 ICMA, 30S/360, Eurobond basis (ISDA 2006) and Special German.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="30E/360_ISDA"><xs:annotation><xs:documentation>30E/360 ISDA, also known as Eurobond basis (ISDA 2000) and German.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="Act/360"><xs:annotation><xs:documentation>Actual/360, also known as Act/360, A/360 and French.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="Act/364"><xs:annotation><xs:documentation>Actual/364.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="Act/365_Fixed"><xs:annotation><xs:documentation>Actual/365 Fixed, also known as  Act/365 Fixed, A/365 Fixed, A/365F and English.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="Act/365.25"><xs:annotation><xs:documentation>Actual/365.25.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="Act/365L"><xs:annotation><xs:documentation>Actual/365L, also known as ISMA-Year, Actual/365 Leap year.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="Act/Act_ICMA"><xs:annotation><xs:documentation>Actual/Actual ICMA, also known as Actual/Actual, Act/Act ICMA, ISMA-99 and Act/Act ISMA.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="Act/Act_ISDA"><xs:annotation><xs:documentation>Actual/Actual ISDA, also known as Actual/Actual, Act/Act, Actual/365 and Act/365.</xs:documentation></xs:annotation></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="dayCount">
    <xs:union memberTypes="dayCountEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="businessDayConventionEnum">
    <xs:annotation><xs:documentation>The business day convention determines how adjustments to business days are done.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="preceding"><xs:annotation><xs:documentation>Adjust the date to the preceding day if needed.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="modifiedPreceding"><xs:annotation><xs:documentation>Adjust the date to the preceding day if needed, without rolling to the previous month.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="following"><xs:annotation><xs:documentation>Adjusts the date to the following day if needed.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="modifiedFollowing"><xs:annotation><xs:documentation>Adjusts the date to the following day if needed, without rolling to next month.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="actual"><xs:annotation><xs:documentation>Actual date is used, even if not a business day. Also known as "none".</xs:documentation></xs:annotation></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="businessDayConvention">
    <xs:union memberTypes="businessDayConventionEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="settlementMethodEnum">
    <xs:annotation><xs:documentation>Type of settlement.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="cash"/>
      <xs:enumeration value="physical"/>
      <xs:enumeration value="optional"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="settlementMethod">
    <xs:union memberTypes="settlementMethodEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="knockOutBuybackEnum">
    <xs:annotation><xs:documentation>Tells wether the market maker will offer to buy back the outstanding volume to redemption price when the instrument has been knocked or reached the stop-loss level.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="true"/>
      <xs:enumeration value="false"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="knockOutBuyback">
    <xs:union memberTypes="knockOutBuybackEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="aifEnum">
    <xs:annotation><xs:documentation>Indicates that the instrument is issued by an Alternative Investment Fund (AIF).</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="true"/>
      <xs:enumeration value="false"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="aif">
    <xs:union memberTypes="aifEnum anyEnum"/>
  </xs:simpleType>
  
  <xs:simpleType name="privatePlacementEnum">
    <xs:annotation><xs:documentation>Indicates that the instrument is a private placement (or non-public offering).</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="true"/>
      <xs:enumeration value="false"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="privatePlacement">
    <xs:union memberTypes="privatePlacementEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="reg871mEnum">
     <xs:annotation><xs:documentation>Defines if instrument is affected by US 871m regulation.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="affected"/>
      <xs:enumeration value="unaffected"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="reg871m">
    <xs:union memberTypes="reg871mEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="linkRelEnum">
    <xs:annotation><xs:documentation>Specifies the relationship between the current document and the linked document.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="finalterms"><xs:annotation><xs:documentation>Final terms.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="prospectus"><xs:annotation><xs:documentation>Prospectus.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="kid"><xs:annotation><xs:documentation>Key (Investor) Information Document.</xs:documentation></xs:annotation></xs:enumeration> 
      <xs:enumeration value="other"><xs:annotation><xs:documentation>Other.</xs:documentation></xs:annotation></xs:enumeration>
   </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="linkRel">
    <xs:union memberTypes="linkRelEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="underlyingCategoryEnum">
    <xs:annotation><xs:documentation/></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="equity"/>
      <xs:enumeration value="index"/>
      <xs:enumeration value="commodity"/>
      <xs:enumeration value="currency"/>
      <xs:enumeration value="interestrate"/>
      <xs:enumeration value="crypto"/>
      <xs:enumeration value="other"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="underlyingCategory">
    <xs:union memberTypes="underlyingCategoryEnum anyEnum"/>
  </xs:simpleType>
  
  <xs:simpleType name="optionTypeEnum">
    <xs:annotation><xs:documentation>Option exercise type.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="EU"><xs:annotation><xs:documentation>An European option may be exercised only at the expiration date.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="AM"><xs:annotation><xs:documentation>An American option may be exercised at any time before the expiration date.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="BE"><xs:annotation><xs:documentation>A Bermudan option may be exercised at a set number of times.</xs:documentation></xs:annotation></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="optionType">
    <xs:union memberTypes="optionTypeEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="dayUnitEnum">
    <xs:annotation><xs:documentation>Unit of day.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="calendar"><xs:annotation><xs:documentation>Calendar day.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="business"><xs:annotation><xs:documentation>Business day.</xs:documentation></xs:annotation></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="dayUnit">
    <xs:union memberTypes="dayUnitEnum anyEnum"/>
  </xs:simpleType>

  <xs:simpleType name="couponPeriodTypeEnum">
    <xs:annotation><xs:documentation>Type of coupon period.</xs:documentation></xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="normal"><xs:annotation><xs:documentation>Normal period.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="short"><xs:annotation><xs:documentation>Short period.</xs:documentation></xs:annotation></xs:enumeration>
      <xs:enumeration value="long"><xs:annotation><xs:documentation>Long period.</xs:documentation></xs:annotation></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="couponPeriodType">
    <xs:union memberTypes="couponPeriodTypeEnum anyEnum"/>
  </xs:simpleType>
</xs:schema>