Schema Name: fpml-com-5-9.xsd
Target Namespace: http://www.fpml.org/FpML-5/transparency
Collapse XSD Schema Code:

<!-- 
  == Copyright (c) 2002-2017 All rights reserved. 
  == Financial Products Markup Language is subject to the FpML public license. 
  == A copy of this license is available at http://www.fpml.org/license/license.html
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns="http://www.fpml.org/FpML-5/transparency" xmlns:fpml-annotation="http://www.fpml.org/annotation" targetNamespace="http://www.fpml.org/FpML-5/transparency" ecore:documentRoot="FpML" ecore:nsPrefix="trnsp" ecore:package="org.fpml.transparency" version="$Revision: 12910 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:include schemaLocation="fpml-option-shared-5-9.xsd" />
  <xsd:complexType name="AveragePriceLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The average price leg of an average price commodity bullion or non-precious metal forward transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommoditySwapLeg">
        <xsd:sequence>
          <xsd:element ref="commodity" />
          <xsd:element name="pricingStartDate" type="AdjustableDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines the Start of the Pricing period. PricingStartDate is optional when discrete pricingDates are supplied and is not recommended to be included. Should they coexist, pricingStartDate is expected to be the same as the earliest pricing date or earlier for a Term deal as the discrete dates will take precedence.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculation" type="FloatingLegCalculation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Captures details relevant to the calculation of the floating price.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="BullionDeliveryLocation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme defining where bullion is to be delivered for a Bullion Transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="bullionDeliveryLocationScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/bullion-delivery-location" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="BullionPhysicalLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled leg of a physically settled Bullion Transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PhysicalForwardLeg">
        <xsd:sequence>
          <xsd:element name="bullionType" type="BullionTypeEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The type of Bullion underlying a Bullion Transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryLocation" type="BullionDeliveryLocation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The physical delivery location for the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityFixedPhysicalQuantity.model" />
          <xsd:element name="settlementDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Date on which the bullion will settle.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CoalDelivery">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery conditions for coal.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="deliveryPoint" type="CoalDeliveryPoint">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The point at which the Coal Product will be delivered and received.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="deliveryAtSource" type="xsd:boolean">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The point at which the Coal Product as a reference to the Source of the Coal Product. This should be a reference to the source element within product.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:group ref="CommodityUSCoalDelivery.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Additional delivery details for U.S. Coal transactions.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalDeliveryPoint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the types of the Delivery Point for a physically settled coal trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryPointScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CoalPhysicalLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled leg of a physically settled coal transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PhysicalSwapLeg">
        <xsd:sequence>
          <xsd:element name="coal" type="CoalProduct">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the Coal Product to be delivered.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryConditions" type="CoalDelivery" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The physical delivery conditions for the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryQuantity" type="CommodityPhysicalQuantity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The different options for specifying the quantity.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CoalProduct">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the characteristics of the coal being traded in a physically settled gas transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type" type="CoalProductType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of coal product to be delivered by reference to a pre-defined specification. For contracts under SCoTA terms this is the quality specification code (e.g. "DES ARA")</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="source" type="CoalProductSource" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The SCoTA cargo origin, mining region, mine(s), mining complex(es), loadout(s) or river dock(s) or other point(s) of origin that Seller and Buyer agree are acceptable origins for the Coal Product. For International Coal transactions, this is the Origin of the Coal Product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalProductSource">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the sources of coal for a physically settled coal trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityCoalProductSourceScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-coal-product-source" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CoalProductType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the types of coal for a physically settled coal trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityCoalProductTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-coal-product-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityAmericanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining exercise procedures associated with an American style exercise of a commodity option.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:sequence>
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Option Strip</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="exercisePeriod" type="CommodityExercisePeriods" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Describes the American exercise periods.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="exerciseFrequency" type="Frequency" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The exercise frequency for the strip.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityBarrier">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The specification of how a barrier option will trigger (that is, knock-in or knock-out) or expire based on the position of the spot rate relative to trigger level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence>
        <xsd:element name="knock" type="CommodityKnockEnum">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The knock feature of a commodity barrier option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="featurePaymentAmount" type="PositiveMoney" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">In the case of barrier options where the option automatically expires and the barrier is breached in such a way to to result in a "knock-out" vent, this amount is paid to the the option holder so as to refund or rebate a portion of any premium paid.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="trigger" type="CommodityTrigger" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityBasket">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the swap's underlyer when it has multiple asset components.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="BasketIdentifier.model" />
      <xsd:group ref="CommodityBasket.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityBasketBase" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base class for all underlying assets.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityBasketByNotional">
    <xsd:complexContent>
      <xsd:extension base="CommodityBasketBase">
        <xsd:sequence>
          <xsd:element name="underlying" type="CommodityBasketUnderlyingByNotional" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Indicates the role of the option buyer with regard to this underlyer.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityBasketByPercentage">
    <xsd:complexContent>
      <xsd:extension base="CommodityBasketBase">
        <xsd:sequence>
          <xsd:element name="underlying" type="CommodityBasketUnderlyingByPercentage" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Indicates the role of the option buyer with regard to this underlyer.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="notionalAmount" type="NotionalAmount" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityBasketOption">
    <xsd:complexContent>
      <xsd:extension base="Option">
        <xsd:sequence>
          <xsd:element name="optionType" type="PutCallEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The type of option transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityBasketOptionFeatures.model" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Describes additional features within the option.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:group ref="CommodityBasket.model" />
          <xsd:sequence>
            <xsd:choice>
              <xsd:group ref="CommodityStrikePrice.model">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">The different options for specifying the Strike price per unit. This will consists of a single strike price of a strike price schedule.</xsd:documentation>
                </xsd:annotation>
              </xsd:group>
              <xsd:group ref="CommodityFloatingStrikePrice.model" />
            </xsd:choice>
          </xsd:sequence>
          <xsd:element name="exercise" type="CommodityExerciseBasket">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised and how it is settled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="premium" type="CommodityPremium" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The option premium payable by the buyer to the seller.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityBasketUnderlyingBase">
    <xsd:sequence>
      <xsd:element name="direction" type="PayerReceiverEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates the role of the option buyer with regard to this underlyer.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="commodity" type="Commodity">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the underlying component. At the time of the initial schema design, only underlyers of type Commodity are supported; the choice group in the future could offer the possibility of adding other types later.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="pricingDates" type="CommodityPricingDates" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The dates on which the option will price.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="averagingMethod" type="AveragingMethodEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Method of Averaging if there is more than one Pricing Date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="optional" />
  </xsd:complexType>
  <xsd:complexType name="CommodityBasketUnderlyingByNotional">
    <xsd:complexContent>
      <xsd:extension base="CommodityBasketUnderlyingBase">
        <xsd:sequence>
          <xsd:group ref="CommodityNotionalQuantity.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityBasketUnderlyingByPercentage">
    <xsd:complexContent>
      <xsd:extension base="CommodityBasketUnderlyingBase">
        <xsd:sequence>
          <xsd:element name="constituentWeight" type="NonNegativeDecimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">If the Notional Quantity is specified in a unit that does not match the unit in which the Commodity Reference Price is quoted, the scaling or conversion factor used to convert the Commodity Reference Price unit into the Notional Quantity unit should be stated here. If there is no conversion, this element is not intended to be used.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityCalculationPeriodsSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A parametric representation of the Calculation Periods for on Asian option or a leg of a swap. In case the calculation frequency is of value T (term), the period is defined by the commoditySwap\effectiveDate and the commoditySwap\terminationDate.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Frequency">
        <xsd:sequence>
          <xsd:element name="balanceOfFirstPeriod" type="xsd:boolean" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">If true, indicates that that the first Calculation Period should run from the Effective Date to the end of the calendar period in which the Effective Date falls, e.g. Jan 15 - Jan 31 if the calculation periods are one month long and Effective Date is Jan 15. If false, the first Calculation Period should run from the Effective Date for one whole period, e.g. Jan 15 to Feb 14 if the calculation periods are one month long and Effective Date is Jan 15.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityDeliveryPoint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the types of the Delivery Point for a physically settled commodity trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryPointScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityDeliveryRisk">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying how the parties to the trade aportion responsibility for the delivery of the commodity product (for example Free On Board, Cost, Insurance, Freight)</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryRiskScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-delivery-risk" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityDigital">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defined the conditions under which the digital option can triggers and, if triggered, what payment results.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="trigger" type="CommodityTrigger" />
      <xsd:element name="featurePaymentAmount" type="PositiveMoney">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The cash payment that is made when the digital barrier is breached.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityDigitalExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining how the commodity digital option can be exercised. I differs from the CommodityExercise type in that it lacks a specification of Settlement Currency. The Settlement Currency is specified in the 'featurePayment' element.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="americanExercise" type="CommodityAmericanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the expiration date for an American option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="europeanExercise" type="CommodityEuropeanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the expiration date and time for a European or Asian style option. For an Asian style option the expiration date is equivalent to the termination date.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityDigitalOption">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines the digital commodity option product type. Digital options exercise when a barrier is breached and are financially settled. The 'commodityDigitalOption' type is an extension of the 'commodityOption' product.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Option">
        <xsd:sequence>
          <xsd:element name="optionType" type="PutCallEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The type of option transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="commodity" type="Commodity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the underlying instrument. Usual content is an ISDA Commodity Reference Price Name. The 'commodity' underlyer component is specified using a reference to the 'commodity' asset (see description above at the Commodity Underlyer section).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityDigitalOptionFeatures.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Describes additional features within the digital option.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:choice>
            <xsd:element name="notionalAmount" type="NotionalAmount">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Volume contracted when volume is specified as a currency-denominated amount.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:sequence>
              <xsd:element name="notionalQuantity" type="CommodityNotionalQuantity">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">The volume contracted when the volume is specified as a quantity of commodity.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="totalNotionalQuantity" type="xsd:decimal" />
            </xsd:sequence>
          </xsd:choice>
          <xsd:element name="exercise" type="CommodityDigitalExercise">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised and how it is settled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="premium" type="CommodityPremium" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The option premium payable by the buyer to the seller.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityEuropeanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining exercise procedures associated with a European style exercise of a commodity option.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:sequence>
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Option Strip</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="expirationDate" type="AdjustableOrRelativeDate" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period. For an averaging option this is equivalent to the Termination Date.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="exerciseFrequency" type="Frequency" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The exercise frequency for the strip.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised, how it is priced and how it is settled.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="americanExercise" type="CommodityAmericanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the expiration date for an American option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="europeanExercise" type="CommodityEuropeanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the expiration date and time for a European or Asian style option. For an Asian style option the expiration date is equivalent to the termination date.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="settlementCurrency" type="IdentifiedCurrency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency into which the Commodity Option Transaction will settle. If this is not the same as the currency in which the Commodity Reference Price is quoted, then an FX determination method should also be specified.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityExerciseBasket">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised, how it is priced and how it is settled.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="americanExercise" type="CommodityAmericanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the exercise period for an American style option together with the rules governing the quantity of the commodity that can be exercised on any given exercise date.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="europeanExercise" type="CommodityEuropeanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the expiration date and time for a European or Asian style option. For an Asian style option the expiration date is equivalent to the termination date.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="settlementCurrency" type="IdentifiedCurrency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency into which the Commodity Option Transaction will settle. If this is not the same as the currency in which the Commodity Reference Price is quoted, then an FX determination method should also be specified.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityExercisePeriods">
    <xsd:sequence>
      <xsd:element name="commencementDate" type="AdjustableOrRelativeDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The first day of the exercise period for an American style option.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="expirationDate" type="AdjustableOrRelativeDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityFixedInterestCalculation">
    <xsd:sequence>
      <xsd:element name="fixedRate" type="IdentifiedRate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The calculation period fixed rate or "fee" rate. A per annum rate, expressed as a decimal. A fixed rate of 5% would be represented as 0.05. When multiplied by the Notional Amount and the number of calendar days in the Calculation Period divided by the calendar days basis, is the fixed amount payed per Calculation Period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dayCountFraction" type="DayCountFraction">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the basis for the adjustment of a rate from an annual rate to a rate appropriate for the Calculation Period: e.g. the number of calendar days in the Calculation Period divided by the calendar days basis e.g. actual number of days in the Calculation Period divided by 365.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityForward">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Commodity Forward</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="valueDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the value date of the Commodity Forward Transaction. This is the day on which both the cash and the physical commodity settle.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice>
            <xsd:element name="fixedLeg" type="NonPeriodicFixedPriceLeg">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The fixed leg of a Commodity Forward Transaction.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="averagePriceLeg" type="AveragePriceLeg">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Specifies the calculated floating price leg of a Commodity Forward Transaction.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element ref="commodityForwardLeg" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityForwardLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base class for all commodity forward legs.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Leg" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityFrequencyType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Frequency Type for use in Pricing Date specifications.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityFrequencyTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-frequency-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityHub">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining a hub or other reference for a physically settled commodity trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="PartyAndAccountReferences.model" />
      <xsd:element name="hubCode" type="CommodityHubCode" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityHubCode">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the code for a hub or other reference for a physically settled commodity trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="hubCodeScheme" type="NonEmptyURI" use="required" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityInterestLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the interest rate leg (a.k.a fee leg) of the commodity performance swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityPerformanceSwapLeg">
        <xsd:sequence>
          <xsd:group ref="CommodityCalculationPeriods.model" />
          <xsd:element name="notionalAmount" type="CommodityNotionalAmount">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the notional amount of a commodity performance type swap. It is a currency-denominated value (i.e. price-times-quantity). In confirmations is also referred to as the Notional Quantity (sic, expressed in currency units), Notional Amount, Equity Notional Amount and, in the case of reinvesting swaps, Initial Notional Amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="commodityFixedInterestCalculation" type="CommodityFixedInterestCalculation">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the interest payment amount on a return swap. This amount may be referred to as the interest amount or the fee amount. Used when the interest (a.k.a. "Fee") is calculated very simply: notional amount * (rate * (number of days in Calculation Period / number of days assumed in the the year)).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityMetalGrade">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMetalGradeScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityNotionalAmount">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A complex type to specify the notional amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NonNegativeMoney">
        <xsd:sequence>
          <xsd:element name="reinvestmentFeature" type="xsd:boolean" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">This element indicates whether the notional amount (or equivalent) is constant across each Calculation Period or whether the notional amount in each Calculation Period ("false") is the notional amount in the previous period multiplied by 1 + commodity index return in the current period ("true"). In cases where reinstementFeature = true the 'amount' element is the Initial Notional Amount (or equivalent).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityNotionalQuantity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Commodity Notional.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quantityUnit" type="QuantityUnit">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Quantity Unit is the unit of measure applicable for the quantity on the Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityOption">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a commodity option product type. The product support for financially-settled exercises or exercise into physical forward contracts written on precious and non-precious metals. options in FpML is based on the creation of a 'commodityOption' product. The product references the 'commodity' underlyer in order to support the underlying asset of the option.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="optionType" type="PutCallEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The type of option transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice>
            <xsd:group ref="CommodityFinancialOption.model">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Items specific to financially-settled commodity options.</xsd:documentation>
              </xsd:annotation>
            </xsd:group>
            <xsd:group ref="CommodityPhysicalOption.model">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Items specific to physically-settled commodity options.</xsd:documentation>
              </xsd:annotation>
            </xsd:group>
            <xsd:group ref="CommodityWeatherOption.model">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Described Weather Index Option component. Weather Index Option transactions are OTC derivative transactions which settle financially based on an index calculated from observations of temperature and precipitation at weather stations throughout the world. Sub-Annex C of the 2005 ISDA Commodity Definitions provides definitions and terms for a number of types of weather indices. These indices include: HDD (heating degree days), CDD (cooling degree days), CPD (critical precipitation days). Weather Index Option Transactions results in a cash flow to the buyer depending on the relationship between the Settlement Level to the Weather Index Strike Level.</xsd:documentation>
              </xsd:annotation>
            </xsd:group>
          </xsd:choice>
          <xsd:element name="premium" type="CommodityPremium" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The option premium payable by the buyer to the seller.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPerformanceSwap">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing a commodity performance swap in which one leg pays out based on the return on a reference commodity index or commodity reference price.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityPerformanceSwapBase">
        <xsd:sequence>
          <xsd:element name="earlyTermination" type="CommodityPerformanceSwapEarlyTermination" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies, for one or for both the parties to the trade, the date prior to the Termination Date from which the contract can be terminated.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPerformanceSwapBase" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A product with which to represent return swaps, total return swaps and excess return swaps.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the Eeffective Date of the swap. It is an optional element because not all confirmations of total return swaps specify an Effective Date. In these cases the Term of the contract begins on the Trade Date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="terminationDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the Termination Date of the swap.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementCurrency" type="IdentifiedCurrency" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The currency in which the commodity performance swap transaction will settle. It is an optional element because not all confirmations of performance swaps specify a Settlement Currency.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element ref="commodityPerformanceSwapLeg" maxOccurs="2">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An placeholder for the actual performance swap leg definitions.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPerformanceSwapEarlyTermination">
    <xsd:sequence>
      <xsd:element name="partyReference" type="PartyReference" minOccurs="0" />
      <xsd:element name="startingDate" type="CommodityStartingDate" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityPerformanceSwapLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base class for all commodity performance swap legs.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the payer and receiver parties of the return leg.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPhysicalAmericanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining the expiration date(s) and time(s) for an American style option.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:sequence>
            <xsd:element name="commencementDates" type="AdjustableOrRelativeDates">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The first day(s) of the exercise period(s) for an American-style option.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="expirationDates" type="AdjustableOrRelativeDates">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The Expiration Date(s) of an American-style option.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPhysicalEuropeanExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining the expiration date(s) and time(s) for a European style option.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Exercise">
        <xsd:sequence>
          <xsd:element name="expirationDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The Expiration Date of a single expiry European-style option or the first Expiration Date of a multiple expiry or daily expiring option.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPhysicalExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining how the physically-settled commodity option can be exercised and how it is settled.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="americanExercise" type="CommodityPhysicalAmericanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the expiration date(s) and time(s) for an American style option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="europeanExercise" type="CommodityPhysicalEuropeanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the expiration date(s) and time(s) for a European style option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityPhysicalQuantity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the physical quantity of the commodity to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityPhysicalQuantityBase">
        <xsd:sequence>
          <xsd:group ref="CommodityFixedPhysicalQuantity.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPhysicalQuantityBase" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An abstract base class for physical quantity types.</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityPipeline">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The pipeline through which the physical commodity will be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="pipelineScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPremium">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The commodity option premium payable by the buyer to the seller.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="NonNegativePayment">
        <xsd:sequence>
          <xsd:element name="premiumPerUnit" type="NonNegativeMoney" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The currency amount of premium to be paid per Unit of the Total Notional Quantity.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPricingDates">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The dates on which prices are observed for the underlyer.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence>
        <xsd:sequence>
          <xsd:group ref="Days.model" />
          <xsd:element name="calendarSource" type="CalendarSourceEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Used in conjunction with an exchange-based pricing source. Identifies a date source calendar from which the pricing dates and thus roll to the next contract will be based off (e.g. pricing is based on the NYMEX WTI First Nearby Futures Contract, if “Future” is chosen, the pricing will roll to the next futures contract on expiration, if “ListedOption” is chosen, the pricing will roll to the next futures contract on the Option expiration date which is three business days before the expiration of the NYMEX WTI futures contract.) Omitting this element will result in the default behavior expected with the pricing source described within the commodity element.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:sequence>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityProductGrade">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the grade of physical commodity product to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="productGradeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-oil-product-grade" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityQuantityFrequency">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining the frequency at which the Notional Quantity is deemed to apply for purposes of calculating the Total Notional Quantity.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="quantityFrequencyScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-quantity-frequency" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityReturnCalculation">
    <xsd:sequence>
      <xsd:element name="formula" type="CommodityReturnCalculationFormulaEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the value of the commodity return calculation formula as simple or compound.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="pricingDates" type="CommodityPricingDates" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes which dates are valid dates on which to observe a price or index level</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="valuationDates" type="CommodityValuationDates" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines when a price or index level will be observed that will figure in the return calculation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element minOccurs="0" name="initialPrice" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If specified in the confirmation, the price or index level at the beginning of the initial Calculation Period. For example, if the return calculation is [(Index End / Index Begin) - 1] and Index Begin is defined as equal to Index End for the immediately preceeding Calculation Period, then the value of Index Begin in the very first Calculation Period is not defined and is usually specified in the confirmation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityReturnLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the return leg of a commodity return swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityPerformanceSwapLeg">
        <xsd:sequence>
          <xsd:group ref="CommodityCalculationPeriods.model" />
          <xsd:group ref="CommodityUnderlyerChoice.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the type of asset underlying the swap: a commodity reference price or a basket.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="notionalAmount" type="CommodityNotionalAmount">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the notional amount of a commodity performance type swap. It is a currency-denominated value (i.e. price-times-quantity). In confirmations is also referred to as the Notional Quantity (sic, expressed in currency units), Notional Amount, Equity Notional Amount and, in the case of reinvesting swaps, Initial Notional Amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="commodityReturnCalculation" type="CommodityReturnCalculation">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies, in relation to each Payment Date, the return percentage which, when multiplied times the notional amount is the amount to which the Payment Date relates.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommoditySpread">
    <xsd:complexContent>
      <xsd:extension base="Money">
        <xsd:sequence>
          <xsd:element name="spreadConversionFactor" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">spreadConversionFactor should be used when the unit of measure of the Commodity Reference Price and the unit of measure in which the spread is quoted are different. The value of spreadConversionFactor is the number of units of measure in which the spread is quoted per unit of measure of the Commodity Reference Price.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="spreadUnit" type="QuantityUnit" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">spreadUnit should be used when the unit of measure of the Commodity Reference Price and the unit of measure in which the spread is quoted are different. The value of spreadUnit is the unit of measure in which the spread is quoted.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityStartingDate">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type specifying the date from which the early termination clause can be exercised.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="dateRelativeTo" type="PartyReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Reference to a party defined elsewhere in this document which may be allowed to terminate the trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="adjustableDate" type="AdjustableDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Date from which early termination clause can be exercised.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="CommoditySwap">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The commodity swap product model is designed to support fixed-float swaps, float-float swaps, fixed vs. physical swaps, float vs. physical swaps as well as, weather specific swaps. Its design is fully compatible with other FpML products and the product reuses standard common types.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:group ref="CommoditySwapDetails.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommoditySwapLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Abstract base class for all commodity swap legs</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Leg" />
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommoditySwaption">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Commodity Swaption.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="optionType" type="PutCallEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The type of option transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="commoditySwap" type="CommoditySwaptionUnderlying">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The underlying commodity swap definiton.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="physicalExercise" type="CommodityPhysicalExercise">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised into a physical transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="premium" type="CommodityPremium">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The option premium payable by the buyer to the seller.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommoditySwaptionUnderlying">
    <xsd:sequence>
      <xsd:group ref="CommoditySwapDetails.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityTrigger">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The barrier which, when breached, triggers the knock-in or knock-out of the barrier option.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="levelQuantity" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The amount used the specify the barrier in terms of an quantity of commodity or a change in the quantity of commodity. In confirmations this is often described as the "Strike Volume" or "Strike Quantity".</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="levelUnit" type="QuantityUnit">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The units (e.g. BCF) used to specify the barrier in terms of an quantity of commodity or change in the quantity of commodity.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:element name="levelPercentage" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A barrier expressed as a percentage of notional quantity or commodity price level.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="levelPrice" type="FixedPrice">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A barrier expressed as a price level.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="triggerType" type="TriggerTypeEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">For barrier options: the specification of how an option will trigger or expire based on the position of the spot rate relative to the trigger level. For trades with selectable notionals: the specification of the conditions where one of the alternative notional values would apply.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityValuationDates">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The dates on which prices are observed for the underlyer.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence>
        <xsd:sequence>
          <xsd:group ref="Days.model" />
          <xsd:element name="calendarSource" type="CalendarSourceEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Used in conjunction with an exchange-based pricing source. Identifies a date source calendar from which the pricing dates and thus roll to the next contract will be based off (e.g. pricing is based on the NYMEX WTI First Nearby Futures Contract, if “Future” is chosen, the pricing will roll to the next futures contract on expiration, if “ListedOption” is chosen, the pricing will roll to the next futures contract on the Option expiration date which is three business days before the expiration of the NYMEX WTI futures contract.) Omitting this element will result in the default behavior expected with the pricing source described within the commodity element.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:sequence>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityVarianceLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the variance leg of a commodity variance swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityPerformanceSwapLeg">
        <xsd:sequence>
          <xsd:group ref="CommodityCalculationPeriods.model" />
          <xsd:group ref="CommodityUnderlyerChoice.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the type of asset underlying the swap: a commodity reference price or a basket.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="notionalAmount" type="CommodityNotionalAmount">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the notional amount of a commodity performance type swap. It is a currency-denominated value (i.e. price-times-quantity). In confirmations is also referred to as the Notional Quantity (sic, expressed in currency units), Notional Amount, Equity Notional Amount and, in the case of reinvesting swaps, Initial Notional Amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice>
            <xsd:element name="varianceStrikePrice" type="xsd:decimal">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Specifies the variance strike price when this strike is expressed in variance units. Payments on the variance leg are equal to the national amount multiplied by the realized variance minus this variance strike price: notional amount * (realized variance - variance strike price).</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="volatilityStrikePrice" type="xsd:decimal">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Specifies the volatility strike price when this strike is expressed in standard deviation units. Payments on the variance leg are equal to the national amount multiplied by the realized volatility squared minus the volatility strike price squared. Notional amount * (realized volatility^2 - volatility strike^2). Squaring the volatility strike price converts the volatility strike price into a variance strike price. Squaring the realized volatility converts realized volatility to realized variance.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="varianceCalculation" type="CommodityVarianceCalculation">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies, in relation to each Payment Date, the variance percentage which, when multiplied times the notional amount is the amount to which the Payment Date relates. For purposes of this representation the realized variance is: (annualizationFactor / N) * signma from i = 1 to N (ln (S sub (i+1)) / (S sub i)), where: ln is the natural logarithm, N is the number of pricing dates, S sub i is the relevant price on the observation date i. If nAdjustment is 'true' then the denominator of the annualization factor is (N - 1) rather than N. If realized volatility is the performance metric in a variance swap rather than realized variance then the square root of the formula above will appear in the confirmation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityVarianceCalculation">
    <xsd:sequence>
      <xsd:element name="pricingDates" type="CommodityPricingDates" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes which dates are valid dates on which to observe a price or index level.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="valuationDates" type="CommodityValuationDates" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines when a price or index level will be observed that will figure in the return calculation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="annualizationFactor" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This specifies the numerator of an annualization factor. Frequently this number is equal to the number of observations of prices in a year e.g. 252.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="nAdjustment" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether denominator of the annualization factor is N ("false") or N - 1 ("true").</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDelivery">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery conditions for electricity.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="deliveryPoint" type="ElectricityDeliveryPoint">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The point at which delivery of the electricity will occur.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="deliveryType" type="ElectricityDeliveryType">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Indicates the under what conditions the Parties' delivery obligations apply.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="interconnectionPoint" type="InterconnectionPoint" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Identification of the border(s) or border point(s) of a transportation contract.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:annotation>
          <xsd:documentation xml:lang="en">For EEI transactions, indicates that this transaction is for an "into" product.</xsd:documentation>
        </xsd:annotation>
        <xsd:element name="deliveryZone" type="CommodityDeliveryPoint">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The zone covering potential delivery points for the electricity.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliveryFirm">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery obligation options specific to a firm transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="forceMajeure" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If true, indicates that the buyer and seller should be excused of their delivery obligations when such performance is prevented by Force Majeure. For EEI transactions, this would indicate "Firm (LD)" If false, indicates that the buyer and seller should not be excused of their delivery obligations when such performance is prevented by Force Majeure. For EEI transactions, this would indicate "Firm (No Force Majeure)"</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliveryPoint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the types of the Delivery Point for a physically settled electricity trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryPointScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliverySystemFirm">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery obligation options specific to a system firm transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="applicable" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates that the trade is for a System Firm product. Should always be set to "true".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliveryType">
    <xsd:choice>
      <xsd:element name="firm" type="ElectricityDeliveryFirm">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates under what condtitions the Parties' delivery obligations apply.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="nonFirm" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If present and set to true, indicates that delivery or receipt of the electricity may be interrupted for any reason or for no reason, without liability on the part of either Party. This element should never have a value of false.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="systemFirm" type="ElectricityDeliverySystemFirm">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates that the electricity is intended to be supplied from the owned or controlled generation or pre-existing purchased power assets of the system specified.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="unitFirm" type="ElectricityDeliveryUnitFirm">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates that the electricity is intended to be supplied from a generation asset which can optionally be specified.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="ElectricityDeliveryUnitFirm">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery obligation options specific to a unit firm transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="applicable" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates that the trade is for a Unit Firm product. Should always be set to "true".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityPhysicalLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled leg of a physically settled electricity transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PhysicalSwapLeg">
        <xsd:sequence>
          <xsd:element name="loadType" type="LoadTypeEnum">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">LoadType is a summary of the full description of the settlement periods with respect to the region. Used for describing Electricity delivery schedules (e.g. Base, Peak, Off-Peak, Custom).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="electricity" type="ElectricityProduct">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the electricity to be delivered.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryConditions" type="ElectricityDelivery">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The physical delivery conditions for the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryQuantity" type="ElectricityPhysicalQuantity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The different options for specifying the quantity.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityPhysicalQuantity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The quantity of gas to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityPhysicalQuantityBase">
        <xsd:sequence>
          <xsd:element name="totalPhysicalQuantity" type="UnitQuantity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The Total Quantity of the commodity to be delivered.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityProduct">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The specification of the electricity to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type" type="ElectricityProductTypeEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of electricity product to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EnvironmentalPhysicalLeg">
    <xsd:complexContent>
      <xsd:extension base="PhysicalSwapLeg">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The environmental physical leg describes the nature of the physical underlying, quantities and delivery conditions relating to environmental allowances and certificates such as EU emissions allowances, water pollution credits and the like.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="numberOfAllowances" type="UnitQuantity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The number of allowances, certificates or credit to be transaction in the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="environmental" type="EnvironmentalProduct">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the type of allowance or credit.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="abandonmentOfScheme" type="EnvironmentalAbandonmentOfSchemeEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Applies to U.S. Emissions Allowance Transactions. Specifies terms which apply in the event of an Abandonment of Scheme event.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="EnvironmentalProduct">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the characteristics of the environmental allowance or credit being traded. Settlement of environmental transactions is classified as physical because settlement is accomplished through the exchange of one or more certificates (despite the fact that this exchange is almost always executed through electronic book entry transfer between the parties allowance accounts).</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="productType" type="EnvironmentalProductTypeEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the type of environmental allowance or credit. Examples include allowances or credit issued by the European Union (E.U.) or by the State of California in the Unites States.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="vintage" type="xsd:gYear" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Applies to U.S. Emissions Allowance Transactions. The year(s) of the applicable Emissions Product(s) as specified in an Emissions Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="applicableLaw" type="EnvironmentalProductApplicableLaw" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Applies to U.S. Emissions Allowance Transactions. Used to specify the Applicable Emissions Law when this is not defined in Emissions Product Definitions Exhibit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="trackingSystem" type="EnvironmentalTrackingSystem" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Applies to U.S. Emissions Allowance Transactions. Used to specify the Tracking System when this is not defined in Emissions Product Definitions Exhibit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EnvironmentalProductApplicableLaw">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">TBD.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="environmentalProductApplicableLawScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/governing-law" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EnvironmentalTrackingSystem">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">For US Emissions Allowance Transactions. A system where all electronic certificates are stored and emissions are tracked.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityEnvironmentalTrackingSystemScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-environmental-tracking-system" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="FinancialSwapLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The common components of a financially settled leg of a Commodity Swap. This is an abstract type and should be extended by commodity-specific types.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommoditySwapLeg"></xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FixedPrice">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the Fixed Price.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="price" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Fixed Price.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="Price.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="FixedPriceLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Fixed Price Leg of a Commodity Swap. It defines schedule of fixed payments associated with a commodity swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FinancialSwapLeg">
        <xsd:sequence>
          <xsd:group ref="CommodityCalculationPeriods.model" minOccurs="0"></xsd:group>
          <xsd:group ref="CommodityFixedPrice.model" />
          <xsd:group ref="CommodityNotionalQuantity.model" />
          <xsd:group ref="CommodityFreightFlatRate.model" minOccurs="0"></xsd:group>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingLegCalculation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type to capture details relevant to the calculation of the floating price.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="pricingDates" type="CommodityPricingDates" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Commodity Pricing Dates.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="averagingMethod" type="AveragingMethodEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The parties may specify a Method of Averaging where more than one pricing Dates is being specified as being applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="spread" type="CommoditySpread">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The spread over or under the Commodity Reference Price for this leg of the trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="spreadPercentage" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The spread percentage over or under the Commodity Reference Price for this leg of the trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FloatingPriceLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Floating Price Leg of a Commodity Swap. Each 'floatingLeg' defines a series of financial payments for a commodity the value of which is derived from a floating price such as an exchange or an index publication.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FinancialSwapLeg">
        <xsd:sequence>
          <xsd:group ref="CommodityCalculationPeriods.model" minOccurs="0"></xsd:group>
          <xsd:element name="commodity" type="Commodity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the underlying instrument. Only underlyers of type Commodity are supported.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityNotionalQuantity.model" />
          <xsd:element name="calculation" type="FloatingLegCalculation" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines details relevant to the calculation of the floating price.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FloatingStrikePrice">
    <xsd:complexContent>
      <xsd:extension base="FloatingLegCalculation">
        <xsd:sequence>
          <xsd:element ref="commodity" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="GasDelivery">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The specification of the gas to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="CommodityDeliveryPoints.model" />
      <xsd:element name="deliveryType" type="DeliveryTypeEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates whether the buyer and seller are contractually obliged to consume and supply the specified quantities of the commodity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="interconnectionPoint" type="InterconnectionPoint" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Identification of the border(s) or border point(s) of a transportation contract.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence minOccurs="0">
        <xsd:element name="buyerHub" type="CommodityHub" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The hub code of the gas buyer.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="sellerHub" type="CommodityHub" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The hub code of the has seller.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="GasDeliveryPoint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the types of the Delivery Point for a physically settled gas trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryPointScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="GasPhysicalLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled leg of a physically settled gas transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PhysicalSwapLeg">
        <xsd:sequence>
          <xsd:element name="gas" type="GasProduct">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the gas to be delivered.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryConditions" type="GasDelivery" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The physical delivery conditions for the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryQuantity" type="GasPhysicalQuantity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The different options for specifying the quantity. For Fixed trades where the quantity is known at the time of confirmation, a single quantity or a quantity per Delivery Period may be specified. For Variable trades minimum and maximum trades may be specified.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="GasPhysicalQuantity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The quantity of gas to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityPhysicalQuantityBase">
        <xsd:group ref="CommodityFixedPhysicalQuantity.model">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A quantity that is known at the time the transaction is executed.</xsd:documentation>
          </xsd:annotation>
        </xsd:group>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="GasProduct">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the characteristics of the gas being traded in a physically settled gas transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type" type="GasProductTypeEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of gas to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InterconnectionPoint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Identification of the border(s) or border point(s) of a transportation contract. Use the list of EIC codes for timelines for electricity (T Codes) or the list of EIC codes for measurement points for gas (Z Codes).</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="interconnectionPointScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/eic-codes" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Material">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the types of metal product for a physically settled metal trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMetalProductTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-metal-product-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Metal">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the characteristics of the metal product being traded in a physically settled metal transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="material" type="Material">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The types of metal product for a physically settled metal trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence>
        <xsd:element name="grade" type="CommodityMetalGrade" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The grade(s) of material which can be delivered in seller's option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MetalDelivery">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery conditions for the transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="deliveryLocation" type="CommodityDeliveryPoint">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Delivery Point for a physically settled non-precious metal transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="risk" type="CommodityDeliveryRisk" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">"Risk of loss" may also be used, equivalently, on confirmation documents.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MetalPhysicalLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled leg of a physically settled Metal transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PhysicalForwardLeg">
        <xsd:sequence>
          <xsd:element name="metal" type="Metal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the Metal Product to be delivered.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryConditions" type="MetalDelivery" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The physical delivery arrangements and requirements for a physically settled non-precious metal transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityFixedPhysicalQuantity.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="NonPeriodicFixedPriceLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The details of a fixed payment. Can be used for a forward transaction or as the base for a more complex fixed leg component such as the fixed leg of a swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommoditySwapLeg">
        <xsd:sequence>
          <xsd:element name="fixedPrice" type="FixedPrice">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Fixed price on which fixed payments are based.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="totalPrice" type="NonNegativeMoney" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The total amount of the fixed payment for all units of the underlying commodity.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OilDelivery">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery conditions for an oil product.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="pipeline" type="OilPipelineDelivery">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specified the delivery conditions where the oil product is to be delivered by pipeline.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="transfer" type="OilTransferDelivery">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specified the delivery conditions where the oil product is to be delivered by title transfer.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OilPhysicalLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled leg of a physically settled oil product transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PhysicalSwapLeg">
        <xsd:sequence>
          <xsd:element name="oil" type="OilProduct">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the oil product to be delivered.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryConditions" type="OilDelivery" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The physical delivery conditions for the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="deliveryQuantity" type="CommodityPhysicalQuantity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The different options for specifying the quantity.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="OilPipelineDelivery">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery conditions specific to an oil product delivered by pipeline.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="pipelineName" type="CommodityPipeline">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The name of pipeline by which the oil product will be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="withdrawalPoint" type="CommodityDeliveryPoint">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The location at which the transfer of the title to the commodity takes place.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="entryPoint" type="CommodityDeliveryPoint" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The point at which the oil product will enter the pipeline.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="deliverableByBarge" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Whether or not the delivery can go to barge. For trades documented under the ISDA Master Agreement and Oil Annex, this should always be set to 'false'.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="risk" type="CommodityDeliveryRisk" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies how the risk associated with the delivery is assigned. For trades documented under the ISDA Master Agreement and Oil Annex, this presence of this element indicates that the provisions of clause (b)(i) of the ISDA Oil Annex are being varied.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OilProduct">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The specification of the oil product to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type" type="OilProductType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of oil product to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="grade" type="CommodityProductGrade">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The grade of oil product to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OilProductType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The type of physical commodity product to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityOilProductTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-oil-product-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="OilTransferDelivery">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical delivery conditions specific to an oil product delivered by title transfer.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="deliveryLocation" type="CommodityDeliveryPoint">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The location at which the transfer of the title to the commodity takes place.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PhysicalForwardLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The common components of a physically settled leg of a Commodity Forward. This is an abstract type and should be extended by commodity-specific types.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityForwardLeg"></xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="PhysicalSwapLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The common components of a physically settled leg of a Commodity Swap. This is an abstract type and should be extended by commodity-specific types.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommoditySwapLeg"></xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReferenceLevel">
    <xsd:sequence>
      <xsd:element name="amount" type="xsd:decimal" />
      <xsd:element name="referenceLevelUnit" type="ReferenceLevelUnit" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferenceLevelUnit">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">CPD Reference Level: millimeters or inches of daily precipitation HDD Reference Level: degree-days CDD Reference Level: degree-days.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="weatherIndexReferenceLevelScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/weather-index-reference-level" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriodsFixedPrice">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the Fixed Price applicable to a range or ranges of Settlement Periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FixedPrice"></xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="UnitQuantity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A quantity and associated unit.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quantityUnit" type="QuantityUnit">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Quantity Unit is the unit of measure applicable for the quantity on the Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="quantity" type="NonNegativeDecimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Amount of commodity per quantity frequency.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="WeatherCalculationPeriod">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The schedule of Calculation Period First Days and Lasts Days. If there is only one First Day - Last Day pair then the First is equal to the Effective Date and the Last Day is equal to the Termination Date.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="calculationPeriodFirstDay" type="IdentifiedDate" />
      <xsd:element name="calculationPeriodEndDay" type="IdentifiedDate" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WeatherCalculationPeriods">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The schedule of Calculation Period First Days and Lasts Days. If there is only one First Day - Last Day pair then the First is equal to the Effective Date and the Last Day is equal to the Termination Date.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="calculationPeriod" type="WeatherCalculationPeriod" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="WeatherIndex">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the Weather Index Level or Weather Index Strike Level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quantity" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">This is the Reference Level. The CDD, HDD or HDD Reference Level is specified as the number of (amount of) Weather Index Units specified by the parties in the related Confirmation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="unit" type="QuantityUnit">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Weather Index Unit derived from one of the following variable methods of determination: Cooling Degree Day (CDD), Heating Degree Day (HDD), Critical Precipitation Day (CPD) as defined in Section 11.15 of the 2005 ISDA Commodity Definitions and User Guide.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="WeatherIndexData">
    <xsd:sequence>
      <xsd:element name="referenceLevel" type="ReferenceLevel">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Reference level is the number of degree-days (in the case of HDD and CDD) or inches/millimeters (in the case of CPD) on which the differential is calculated. In the case of HDD it is the number of degree-days below this reference level. In the case of CDD it is the number of degree days above this reference level. In the case of CPD it is number of inches/millimeters above this reference level.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WeatherLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A weather leg of a Commodity Swap defines Weather Index Swap transactions. Weather Index Swap transactions are OTC derivative transactions which settle financially based on an index calculated from observations of temperature, precipitation and other weather-related measurements at weather stations throughout the world. Sub-Annex C of the 2005 ISDA Commodity Definitions provides definitions and terms for a number of types of weather indices. These indices include: HDD (heating degree days), CDD (cooling degree days), CPD (critical precipitation days). Weather Index Swap transactions result in a cash flow to one of the two counterparties each Calculation Period depending on the relationship between the Settlement Level and the Weather Index Level. A Weather Index swap transaction always consists of a commodity swap element as a parent to two weatherLeg elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="FinancialSwapLeg">
        <xsd:sequence>
          <xsd:element name="weatherIndexLevel" type="WeatherIndex">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defining the Weather Index Level or Weather Index Strike Level.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="WeatherCalculationPeriod.model" minOccurs="0"></xsd:group>
          <xsd:element name="weatherNotionalAmount" type="NonNegativeMoney">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines the price per weather index unit.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="calculation" type="WeatherLegCalculation">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines details relevant to the calculation of the aggregate weather index amount.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="weatherIndexData" type="WeatherIndexData" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies where the data (e.g. CPD) have been collected, an actual physical reference point (weather station) and various fall back arrangements.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="WeatherLegCalculation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type to capture details of the calculation of the Payment Amount on a Weather Index Transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="settlementLevel" type="WeatherSettlementLevelEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Settlement Level means either the cumulative number of Weather Index Units for each day in the Calculation Period (Cumulative) or the cumulative number of Weather Index Units for each day in the Calculation Period divided by the number of days in the Calculation Period (Average) or the maximum number of Weather Index Units for any day in the Calculation Period (Maximum) or the minimum number of Weather Index Units for any day in the Calculation Period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="referenceLevelEqualsZero" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If Reference Level Equals Zero is specified to be applicable then CPD means, for any day during the Calculation Period, (A) 1 if the Daily Precipitation for that day is greater than or equal to the CPD Reference Level or (B) zero if the the Daily Precipitation for that day is less than the CPD Reference Level. If Reference Level Equals Zero is specified not to be applicable then CPD means, for any day during the Calculation Period, (A) 1 if the Daily Precipitation for that day is greater than the CPD Reference Level or 0 if the Daily Precipitation for that day is less than or equal to the CPD Reference Level.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationDate" type="Period" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The number of days following the final day of the Calculation Period specified in the Confirmation on which is is practicable to provide the notice that the Calculation Agent is required to give for that Settlement Date or Payment Date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="maximumPaymentAmount" type="NonNegativeMoney" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The maximum total payment amount that will be paid in any particular transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="maximumTransactionPaymentAmount" type="NonNegativeMoney" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The maximum payment amount that will be paid in any particular Calculation Period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="bullionPhysicalLeg" type="BullionPhysicalLeg" substitutionGroup="commodityForwardLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The physical leg of a Commodity Forward Transaction for which the underlyer is Bullion.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="coalPhysicalLeg" type="CoalPhysicalLeg" substitutionGroup="commoditySwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled coal leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityBasketOption" type="CommodityBasketOption" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a commodity basket option product.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityDigitalOption" type="CommodityDigitalOption" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a commodity digital option product.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityForward" type="CommodityForward" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a commodity forward product.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityForwardLeg" type="CommodityForwardLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines the substitutable commodity forward leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityInterestLeg" type="CommodityInterestLeg" substitutionGroup="commodityPerformanceSwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specifies the fixed payments of a commodity performance swap. Sometimes also referred to as the fee.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityOption" type="CommodityOption" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a commodity option product. The product support for financially-settled exercises or exercise into physical forward contracts written on precious and non-precious metals. options in FpML is based on the creation of a 'commodityOption' product. The product references the 'commodity' underlyer in order to support the underlying asset of the option.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityPerformanceSwap" type="CommodityPerformanceSwap" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A swap the payoff of which is linked to the performance of the underlying asset. Examples of potential performance features are return, correlation, covariance, variance and volatility.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityPerformanceSwapLeg" type="CommodityPerformanceSwapLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A placeholder within 'commodityPerformanceSwap' structure for the actual commodity swap legs (e.g. 'commodityReturnLeg' and 'commodityInterestLeg').</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityReturnLeg" type="CommodityReturnLeg" substitutionGroup="commodityPerformanceSwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specifies the return payments of a commodity return swap. There can be one or two return legs. In simple return swaps there is a return leg and an interest (a.k.a. 'fee') leg. In the case of a outperformance swap there are two return legs: the return performance of two commodity underlyers are swapped. In the case of a fully-funded return swap there is no financing component and, therefore, only a single return leg is specified.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commoditySwap" type="CommoditySwap" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a commodity swap product.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commoditySwapLeg" type="CommoditySwapLeg" abstract="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines the substitutable commodity swap leg</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commoditySwaption" type="CommoditySwaption" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a commodity swaption product</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="commodityVarianceLeg" type="CommodityVarianceLeg" substitutionGroup="commodityPerformanceSwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specifies the variance payments of a commodity variance swap.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="electricityPhysicalLeg" type="ElectricityPhysicalLeg" substitutionGroup="commoditySwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled electricity leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="environmentalPhysicalLeg" type="EnvironmentalPhysicalLeg" substitutionGroup="commoditySwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled environmental leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="fixedLeg" type="FixedPriceLeg" substitutionGroup="commoditySwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Fixed Price Leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="floatingLeg" type="FloatingPriceLeg" substitutionGroup="commoditySwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Floating Price leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="gasPhysicalLeg" type="GasPhysicalLeg" substitutionGroup="commoditySwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled natural gas leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="metalPhysicalLeg" type="MetalPhysicalLeg" substitutionGroup="commodityForwardLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled metal products leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="oilPhysicalLeg" type="OilPhysicalLeg" substitutionGroup="commoditySwapLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Physically settled oil or refined products leg.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:group name="CommodityAsian.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Model group containing features specific to Asian/averaging commodity options.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="calculationPeriodsSchedule" type="CommodityCalculationPeriodsSchedule" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A parametric representation of the Calculation Periods of the Commodity Option Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="pricingDates" type="CommodityPricingDates" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The dates on which the option will price.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="averagingMethod" type="AveragingMethodEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Method of Averaging if there is more than one Pricing Date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityBasket.model">
    <xsd:choice>
      <xsd:element name="notionalQuantityBasket" type="CommodityBasketByNotional" />
      <xsd:element name="notionalAmountBasket" type="CommodityBasketByPercentage" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityBasketOptionFeatures.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes the features a commodity basket option.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The effective date of the Commodity Option Transaction. Note that the Termination/Expiration Date should be specified in expirationDate within the CommodityAmericanExercise type or the CommodityEuropeanExercise type, as applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="terminationDate" type="AdjustableOrRelativeDate" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the termination date of the Commodity Option Transaction. In some confirmations this will be indicated as the second date in "Option Term" or "Term". Note: If provided, terminationDate should not be before specified expirationDate within the CommodityAmericanExercise type or the CommodityEuropeanExercise type.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="calculationPeriodsSchedule" type="CommodityCalculationPeriodsSchedule">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A parametric representation of the Calculation Periods of the Commodity Option Transaction.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="calculationPeriods" type="AdjustableDates">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">An absolute representation of the Calculation Period start dates of the Commodity Option Transaction.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityCalculationPeriods.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the Calculation Periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="calculationPeriodsSchedule" type="CommodityCalculationPeriodsSchedule" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Calculation Periods for this leg of the swap. This type is only intended to be used if the Calculation Periods differ on each leg. If Calculation Periods mirror another leg, then the calculationPeriodsReference element should be used to point to the Calculation Periods on the other leg - or the calculationPeriodsScheduleReference can be used to point to the Calculation Periods Schedule for that leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityDeliveryPoints.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A Delivery Point, applicable to physically settled commodity transactions.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="deliveryPoint" type="GasDeliveryPoint">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The physical or virtual point at which the commodity will be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityDigitalOptionFeatures.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes features of the digital option.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The effective date of the Commodity Option Transaction. Note that the Termination/Expiration Date should be specified in expirationDate within the CommodityAmericanExercise type or the CommodityEuropeanExercise type, as applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="terminationDate" type="AdjustableOrRelativeDate" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the termination date of the Commodity Option Transaction. In some confirmations this will be indicated as the second date in "Option Term" or "Term". Note: If provided, terminationDate should not be before specified expirationDate within the CommodityAmericanExercise type or the CommodityEuropeanExercise type.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence>
        <xsd:group ref="CommodityAsian.model" minOccurs="0" />
        <xsd:element name="digital" type="CommodityDigital">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The barrier and cash payout features of the digital option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityFinancialOption.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Items specific to financially-settled commodity options.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="commodity" type="Commodity">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the underlying instrument. Usual content is an ISDA Commodity Reference Price Name. The 'commodity' underlyer component is specified using a reference to the 'commodity' asset (see description above at the Commodity Underlyer section).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityOptionFeatures.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes additional features within the option.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:group ref="CommodityNotionalQuantity.model" />
      <xsd:element name="exercise" type="CommodityExercise">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised and how it is settled.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:group ref="CommodityStrikePrice.model">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The different options for specifying the Strike price per unit. This will consists of a single strike price of a strike price schedule.</xsd:documentation>
          </xsd:annotation>
        </xsd:group>
        <xsd:group ref="CommodityFloatingStrikePrice.model" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityFixedPhysicalQuantity.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying a fixed physical quantity of commodity to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="totalPhysicalQuantity" type="UnitQuantity">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Total Quantity of the commodity to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityFixedPrice.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the Fixed Price.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="fixedPrice" type="FixedPrice">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Fixed price on which fixed payments are based.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="worldscaleRate" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">For a WET Voyager Charter Commodity Swap, the number of Worldscale Points for purposes of the calculation of a Fixed Amount.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="contractRate" type="NonNegativeMoney">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">For a DRY Voyage Charter or Time Charter Commodity Swap, the price per relevant unit for pruposes of the calculation of a Fixed Amount.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="settlementPeriodsPrice" type="SettlementPeriodsFixedPrice" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">For an electricity transaction, the fixed price for one or more groups of Settlement Periods on which fixed payments are based. If the fixed price differs for different groups of Settlement Periods, this element should be repeated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="totalPrice" type="NonNegativeMoney" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The total amount of all fixed payments due during the term of the trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityFloatingStrikePrice.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the average strike price per unit. These options are to specify a single average strike price per unit or to specify a schedule of average strike prices.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="floatingStrikePricePerUnit" type="FloatingStrikePrice">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency amount of the strike price per unit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityFreightFlatRate.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Flat Rate, applicable to Wet Voyager Charter Freight Swaps.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="flatRate" type="FlatRateEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Whether the Flat Rate is the New Worldwide Tanker Nominal Freight Scale for the Freight Index Route taken at the Trade Date of the transaction or taken on each Pricing Date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="flatRateAmount" type="NonNegativeMoney">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If flatRate is set to "Fixed", the actual value of the Flat Rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityNotionalQuantity.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the Notional Quantity. A flat notional for the term of the contract may be specified, or else the Notional Quantity per Calculation Period. In the latter case, there must be a notional quantity step specified for each Calculation Period, regardless of whether the Notional Quantity changes or remains the same between periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="notionalQuantity" type="CommodityNotionalQuantity">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The Notional Quantity.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="totalNotionalQuantity" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The Total Notional Quantity.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityOptionFeatures.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Describes additional features within the option.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The effective date of the Commodity Option Transaction. Note that the Termination/Expiration Date should be specified in expirationDate within the CommodityAmericanExercise type or the CommodityEuropeanExercise type, as applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="terminationDate" type="AdjustableOrRelativeDate" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the termination date of the Commodity Option Transaction. In some confirmations this will be indicated as the second date in "Option Term" or "Term". Note: If provided, terminationDate should not be before specified expirationDate within the CommodityAmericanExercise type or the CommodityEuropeanExercise type.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence>
        <xsd:group ref="CommodityAsian.model" minOccurs="0"></xsd:group>
        <xsd:element name="barrier" type="CommodityBarrier" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Defines a commodity option barrier product feature.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityPhysicalOption.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Items specific to financially-settled commodity options.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="commodityForward" />
      <xsd:element name="physicalExercise" type="CommodityPhysicalExercise">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised into a physical transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityStrikePrice.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the Strike price per unit.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="strikePricePerUnit" type="NonNegativeMoney">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency amount of the strike price per unit.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommoditySwapDetails.model">
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the effective date of this leg of the swap. When defined in relation to a date specified somewhere else in the document (through the relativeDate component), this element will typically point to the effective date of the other leg of the swap.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="terminationDate" type="AdjustableOrRelativeDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the termination date of this leg of the swap. When defined in relation to a date specified somewhere else in the document (through the relativeDate component), this element will typically point to the termination date of the other leg of the swap.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="settlementCurrency" type="IdentifiedCurrency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency into which the Commodity Swap Transaction will settle. If this is not the same as the currency in which the Commodity Reference Price is quoted on a given floating leg of the Commodity Swap Transaction, then an FX rate should also be specified for that leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element ref="commoditySwapLeg" minOccurs="2" maxOccurs="2" />
        <xsd:element name="weatherLeg" type="WeatherLeg" minOccurs="2" maxOccurs="2">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A weather leg element of a Commodity Swap defines Weather Index Swap transactions. Weather Index Swap transactions are OTC derivative transactions which settle financially based on an index calculated from observations of temperature, precipitation and other weather-related measurements at weather stations throughout the world. Sub-Annex C of the 2005 ISDA Commodity Definitions provides definitions and terms for a number of types of weather indices. These indices include: HDD (heating degree days), CDD (cooling degree days), CPD (critical precipitation days). Weather Index Swap transactions result in a cash flow to one of the two counterparties each Calculation Period depending on the relationship between the Settlement Level and the Weather Index Level. A Weather Index swap transaction always consists of a commodity swap element as a parent to two weatherLeg elements.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityUnderlyerChoice.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type describing the type of underlyer: a single commodity or a basket of commodities.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="commodity" type="Commodity">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes the swap's underlyer when it has only one asset component.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="commodityBasket" type="CommodityBasket">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes the swap's underlyer when it has multiple asset components.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityUSCoalDelivery.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Items specific to the definition of the delivery of a US Coal Product.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="risk" type="CommodityDeliveryRisk" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies how the risk associated with the delivery is assigned.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityWeatherOption.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Described Weather Index Option component. Weather Index Option transactions are OTC derivative transactions which settle financially based on an index calculated from observations of temperature and precipitation at weather stations throughout the world. Sub-Annex C of the 2005 ISDA Commodity Definitions provides definitions and terms for a number of types of weather indices. These indices include: HDD (heating degree days), CDD (cooling degree days), CPD (critical precipitation days). Weather Index Option Transactions results in a cash flow to the buyer depending on the relationship between the Settlement Level to the Weather Index Strike Level.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Effective date of an option.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="WeatherCalculationPeriod.model" />
      <xsd:element name="weatherNotionalAmount" type="NonNegativeMoney" />
      <xsd:element name="exercise" type="CommodityExercise" />
      <xsd:element name="weatherIndexStrikeLevel" type="WeatherIndex">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Weather Index strike price level is specified in terms of weather index units (e.g. 1 Days, 3 Inches, etc.)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculation" type="WeatherLegCalculation">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Contains parameters which figure in the calculation of payments on a Weather Index Option.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="weatherIndexData" type="WeatherIndexData">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies where the data (e.g. CPD) have been collected, an actual physical reference point (weather station) and various fall back arrangements.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Days.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying which days are pricing days within a pricing period. Unless a lag element is present, the pricing period will be contained within the calculation period.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="dayType" type="CommodityDayTypeEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of day on which pricing occurs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence>
        <xsd:element name="dayDistribution" type="CommodityFrequencyType">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The method by which the pricing days are distributed across the pricing period.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="dayCount" type="xsd:positiveInteger" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The number of days over which pricing should take place.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="businessDayConvention" type="BusinessDayConventionEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The convention for adjusting a date if it would otherwise fall on a day that is not a business day.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="Price.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Price model group.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="priceCurrency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency used to specify the digital barrier in terms of a price per unit of commodity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="priceUnit" type="QuantityUnit">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The unit of measure used to specify the digital barrier in terms of a price per unit of commodity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="WeatherCalculationPeriod.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Descriptions of a calculation period.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="weatherCalculationPeriods" type="WeatherCalculationPeriods" />
    </xsd:choice>
  </xsd:group>
</xsd:schema>

Collapse ComplexTypes:
Collapse Elements:
Collapse Groups:
Collapse Comments:
blog comments powered by Disqus