Schema Name: fpml-com-5-9.xsd
Target Namespace: http://www.fpml.org/FpML-5/reporting
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/reporting" xmlns:fpml-annotation="http://www.fpml.org/annotation" targetNamespace="http://www.fpml.org/FpML-5/reporting" ecore:documentRoot="FpML" ecore:nsPrefix="rpt" ecore:package="org.fpml.reporting" version="$Revision: 12910 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:include schemaLocation="fpml-option-shared-5-9.xsd" />
  <xsd:complexType name="AbsoluteTolerance">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The acceptable tolerance in the delivered quantity of a physical commodity product in terms of a number of units of that product.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="positive" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The maxmium amount by which the quantity delivered can exceed the agreed quantity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="negative" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The maximum amount by which the quantity delivered can be less than the agreed quantity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="unit" type="QuantityUnit" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The unit in which the tolerance is specified.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="optionOwnerPartyReference" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates whether the tolerance is at the seller's or buyer's option.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <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:group ref="PayerReceiver.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A complex group containing references to the identity of the paying party, the receiving party and the accounts used by each.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:group ref="CommodityCalculationPeriods.model" />
          <xsd:element ref="commodity" minOccurs="0" />
          <xsd:element name="quantityReference" type="QuantityReference" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A pointer to a specification of quantity defined elsewhere.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <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:group ref="CommodityPaymentDates.model" />
        </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" minOccurs="0">
            <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="CalculationPeriodsDatesReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A pointer style reference to single-day-duration calculation periods defined elsewhere - note that this schedule consists of a parameterised schedule in a calculationPeriodsSchedule container.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="CommodityCalculationPeriodsSchedule" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodsReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A pointer style reference to a calculation periods schedule defined elsewhere - note that this schedule consists of a series of actual dates in a calculationPeriods container.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="AdjustableDates" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CalculationPeriodsScheduleReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A pointer style reference to a calculation periods schedule defined elsewhere - note that this schedule consists of a parameterised schedule in a calculationPeriodsSchedule container.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="CommodityCalculationPeriodsSchedule" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CoalAttributeDecimal">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the attributes of a coal quality measure as a decimal value.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="standardContent" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The actual content of the quality characteristics of the Coal Product Shipment expected by the Buyer.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="rejectionLimit" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The actual limits of the quality characteristics of the Coal Product above or below which the Buyer may reject a Shipment.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name="CoalAttributePercentage">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the attributes of a coal quality measure as a percentage of the measured value.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:sequence>
        <xsd:element name="standardContent" type="RestrictedPercentage" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The actual content of the quality characteristics of the Coal Product Shipment expected by the Buyer.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="rejectionLimit" type="RestrictedPercentage" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The actual limits of the quality characteristics of the Coal Product above or below which the Buyer may reject a Shipment.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:choice>
  </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 minOccurs="0">
        <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="deliveryPeriods" type="CommodityDeliveryPeriods" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The period during which delivery/deliveries of Coal Products may be scheduled. Equivalent to Nomination Period(s) for US Coal.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="coal" type="CoalProduct" minOccurs="0">
            <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" minOccurs="0">
            <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:choice minOccurs="0">
        <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="coalProductSpecifications" type="CoalProductSpecifications">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The type of coal product to be delivered specified in full.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="source" type="CoalProductSource" minOccurs="0" 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:element name="sCoTASpecifications" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates whether type and source refer to globalCOAL SCoTA specifications.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityUSCoalProduct.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Additional product details for U.S. Coal transactions.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </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="CoalProductSpecifications">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the quality attributes of the coal to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="standardQuality" type="CoalStandardQuality" />
      <xsd:element name="standardQualitySchedule" type="CoalStandardQualitySchedule" />
    </xsd:choice>
  </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="CoalQualityAdjustments">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the quality adjustment formulae for a physically settled coal trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityCoalQualityAdjustmentsScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-coal-quality-adjustments" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CoalStandardQuality">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The quality attributes of the coal to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="CommodityCoalComposition.model" />
      <xsd:group ref="CommodityCoalProperties.model" />
      <xsd:group ref="CommodityCoalReducingAtmosphere.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalStandardQualitySchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The quality attributes of the coal to be delivered, specified on a periodic basis.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="StandardQualityStep" type="CoalStandardQuality" minOccurs="0" maxOccurs="unbounded" />
      <xsd:group ref="CommodityDeliveryPeriodsPointer.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CoalTransportationEquipment">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the methods by which coal may be transported.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityCoalTransportationEquipmentScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-coal-transportation-equipment" />
      </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 minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Option Strip</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="exercisePeriod" type="CommodityExercisePeriods" minOccurs="0" 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:choice minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Choice between latest exercise time expressed as literal time, or using a determination method.</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="latestExerciseTime" type="BusinessCenterTime">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="latestExerciseTimeDetermination" type="DeterminationMethod">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Latest exercise time determination method.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="expirationTime" type="BusinessCenterTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specific time of day on which the option expires.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="multipleExercise" type="CommodityMultipleExercise" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The presence of this element indicates that the option may be partially exercised. It is not applicable to European or Asian options.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </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" minOccurs="0">
          <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" minOccurs="0" />
    </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" minOccurs="0" 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" minOccurs="0" 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" minOccurs="0" />
        </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" minOccurs="0">
            <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 minOccurs="0">
              <xsd:element name="strikePriceUnderlyingReference" type="StrikePriceUnderlyingReference" />
              <xsd:element name="strikePriceBasketReference" type="StrikePriceBasketReference" />
            </xsd:choice>
            <xsd:choice minOccurs="0">
              <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" minOccurs="0">
            <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" minOccurs="0" 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:group ref="CommodityContent.model" minOccurs="0"></xsd:group>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityBasketUnderlyingBase">
    <xsd:sequence>
      <xsd:element name="direction" type="PayerReceiverEnum" minOccurs="0">
        <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" minOccurs="0">
        <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:element name="fx" type="CommodityFx" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">FX observations to be used to convert the observed Commodity Reference Price to the Settlement Currency.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="conversionFactor" type="xsd:decimal" 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: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="CommodityDeliveryPeriods">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the Delivery Periods of a physical leg.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="periods" type="AdjustableDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Delivery Periods for this leg of the swap. This type is only intended to be used if the Delivery Periods differ from the Calculation Periods on the fixed or floating leg. If DeliveryPeriods mirror another leg, then the calculationPeriodsReference element should be used to point to the Calculation Periods on that leg - or the calculationPeriodsScheduleReference can be used to point to the Calculation Periods Schedule for that leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="periodsSchedule" type="CommodityCalculationPeriodsSchedule">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Delivery Periods for this leg of the swap. This type is only intended to be used if the Delivery Periods differ from the Calculation Periods on the fixed or floating leg. If DeliveryPeriods mirror another leg, then the calculationPeriodsReference element should be used to point to the Calculation Periods on that leg - or the calculationPeriodsScheduleReference can be used to point to the Calculation Periods Schedule for that leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Enables users to reference a Calculation Periods schedule in the form of a series of actual dates in a calculationPeriods container or in the form of a parameterised schedule in a calculationPeriodsSchedule container.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID" />
  </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" minOccurs="0" />
      <xsd:element name="featurePaymentAmount" type="PositiveMoney" minOccurs="0">
        <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 minOccurs="0">
        <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="automaticExercise" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether or not Automatic Exercise applies to a Commodity Option Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="writtenConfirmation" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether or not Written Confirmation applies to a Commodity Option Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityPaymentDates.model" />
    </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" minOccurs="0">
            <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 minOccurs="0">
            <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" minOccurs="0">
                <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" minOccurs="0" />
            </xsd:sequence>
          </xsd:choice>
          <xsd:element name="exercise" type="CommodityDigitalExercise" minOccurs="0">
            <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" minOccurs="0" 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:group ref="CommodityContent.model" minOccurs="0"></xsd:group>
        </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 minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Option Strip</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="expirationDate" type="AdjustableOrRelativeDate" minOccurs="0" 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:element name="expirationTime" type="BusinessCenterTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specific time of day on which the option expires.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </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 minOccurs="0">
        <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="automaticExercise" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether or not Automatic Exercise applies to a Commodity Option Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="writtenConfirmation" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether or not Written Confirmation applies to a Commodity Option Transaction.</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 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:element name="fx" type="CommodityFx" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">FX observations to be used to convert the observed Commodity Reference Price to the Settlement Currency.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="conversionFactor" type="xsd:decimal" 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:group ref="CommodityPaymentDates.model" />
    </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 minOccurs="0">
        <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="automaticExercise" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether or not Automatic Exercise applies to a Commodity Option Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="writtenConfirmation" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether or not Written Confirmation applies to a Commodity Option Transaction.</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 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:group ref="CommodityPaymentDates.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityExercisePeriods">
    <xsd:sequence>
      <xsd:element name="commencementDate" type="AdjustableOrRelativeDate" minOccurs="0">
        <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" minOccurs="0">
        <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="CommodityExpireRelativeToEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the physical event relative to which option expiration occurs.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityExpireRelativeToEventScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-expire-relative-to-event" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityFixedInterestCalculation">
    <xsd:sequence>
      <xsd:element name="fixedRate" type="IdentifiedRate" minOccurs="0">
        <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" minOccurs="0">
        <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="CommodityFixedPriceSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Fixed Price for a given Calculation Period during the life of the trade. There must be a Fixed Price step specified for each Calculation Period, regardless of whether the Fixed Price changes or remains the same between periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:element name="fixedPriceStep" type="FixedPrice" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The Fixed Price for a given Calculation Period during the life of the trade. There must be a Fixed Price step specified for each Calculation Period, regardless of whether the Fixed Price changes or remains the same between periods.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="worldscaleRateStep" type="xsd:decimal" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">For a Wet Voyager Charter Freight Swap, the number of Worldscale Points for purposes of the calculation of a Fixed Amount for a given Calculation Period during the life of the trade. There must be Worldscale Rate Step specified for each Calculation Period, regardless of whether the Worldscale Rate Step changes or remains the same between periods.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="contractRateStep" type="NonNegativeMoney" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">For a DRY Voyage Charter or Time Charter Freight Swap, the price per relevant unit for pruposes of the calculation of a Fixed Amount for a given Calculation Period during the life of the trade. There must be Worldscale Rate Step specified for each Calculation Period, regardless of whether the Worldscale Rate Step changes or remains the same between periods.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="settlementPeriodsPriceSchedule" type="CommoditySettlementPeriodsPriceSchedule" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">For an electricity transaction, the fixed price schedule for one or more groups of Settlement Periods on which fixed payments are based. if the schedule differs for different groups of Settlement Periods, this element should be repeated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Enables users to reference a Calculation Periods schedule in the form of a series of actual dates in a calculationPeriods container or in the form of a parameterised schedule in a calculationPeriodsSchedule container.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </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 minOccurs="0">
            <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" minOccurs="0" />
          <xsd:group ref="CommodityContent.model" minOccurs="0"></xsd:group>
        </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="CommodityFx">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the FX observations to be used to convert the observed Commodity Reference Price to the Settlement Currency. The rate source must be specified. Additionally, a time for the spot price to be observed on that source may be specified, or else an averaging schedule for trades priced using an average FX rate.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="primaryRateSource" type="InformationSource" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The primary source for where the rate observation will occur. Will typically be either a page or a reference bank published rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="secondaryRateSource" type="InformationSource" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An alternative, or secondary, source for where the rate observation will occur. Will typically be either a page or a reference bank published rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fxType" type="CommodityFxType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A type to identify how the FX rate will be applied. This is intended to differentiate between the various methods for applying FX to the floating price such as a daily calculation, or averaging the FX and applying the average at the end of each CalculationPeriod.</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 when averaging of the FX rate is applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence minOccurs="0">
        <xsd:choice minOccurs="0">
          <xsd:element name="fxObservationDates" type="AdjustableDates" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A list of the fx observation dates for a given Calculation Period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence>
            <xsd:sequence minOccurs="0">
              <xsd:group ref="Days.model">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">The parties may specify the rules for FX observation when averaging of the FX rate is applicable.</xsd:documentation>
                </xsd:annotation>
              </xsd:group>
              <xsd:group ref="LagOrReference.model" minOccurs="0" />
            </xsd:sequence>
            <xsd:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Enables users to reference a Calculation Periods schedule in the form of a series of actual dates in a calculationPeriods container or in the form of a parameterised schedule in a calculationPeriodsSchedule container.</xsd:documentation>
              </xsd:annotation>
            </xsd:group>
          </xsd:sequence>
        </xsd:choice>
        <xsd:element name="fixingTime" type="BusinessCenterTime" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The time at which the spot currency exchange rate will be observed. It is specified as a time in a specific business center, e.g. 11:00am London time.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityFxType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Identifes how the FX rate will be applied. This is intended to differentiate between the various methods for applying FX to the floating price such as a daily calculation, or averaging the FX and applying the average at the end of each CalculationPeriod.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityFxTypeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-fx-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:group ref="CommodityPaymentDates.model" />
          <xsd:choice minOccurs="0">
            <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="notionalAmountReference" type="CommodityNotionalAmountReference">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A reference to the Return swap notional amount defined in another leg of the return swap.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="commodityFixedInterestCalculation" type="CommodityFixedInterestCalculation" minOccurs="0">
            <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="CommodityMarketDisruption">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">ISDA 1993 or 2005 commodity market disruption elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:sequence>
          <xsd:element name="marketDisruptionEvents" type="MarketDisruptionEventsEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">If Market disruption Events are stated to be Applicable then the default Market Disruption Events of Section 7.4(d)(i) of the ISDA Commodity Definitions shall apply unless specific Market Disruption Events are stated hereunder, in which case these shall override the ISDA defaults. If Market Disruption Events are stated to be Not Applicable, Market Disruption Events are not applicable to the trade at all. It is also possible to reference the Market Disruption Events set out in the relevant Master Agreement governing the trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="additionalMarketDisruptionEvent" type="MarketDisruptionEvent" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">To be used when marketDisruptionEvents is set to "Applicable" and additional market disruption events(s) apply to the default market disruption events of Section 7.4(d)(i) of the ISDA Commodity Definitions.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:element name="marketDisruptionEvent" type="MarketDisruptionEvent" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Market disruption event(s) that apply. Note that these should only be specified if the default market disruption events of Section 7.4(d)(i) of the ISDA Commodity Definitions are to be overridden.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:choice minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If omitted then the standard disruption fallbacks of Section 7.5(d)(i) of the ISDA Commodity Definitions shall apply.</xsd:documentation>
        </xsd:annotation>
        <xsd:element name="disruptionFallbacks" type="DisruptionFallbacksEnum">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">To be used where disruption fallbacks are set out in the relevant Master Agreement governing the trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="disruptionFallback" type="SequencedDisruptionFallback" maxOccurs="unbounded" />
      </xsd:choice>
      <xsd:element name="fallbackReferencePrice" type="Underlyer" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A fallback commodity reference price for use when relying on Disruption Fallbacks in Section 7.5(d)(i) of the ISDA Commodity Definitions or have selected "Fallback Reference Price" as a disruptionFallback.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="maximumNumberOfDaysOfDisruption" type="xsd:nonNegativeInteger" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">2005 Commodity Definitions only. If omitted , the number of days specified in Section 7.6(a) of the Definitions will apply.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="priceMaterialityPercentage" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">2005 Commodity Definitions only. To be used where a price materiality percentage applies to the "Price Source Disruption" event and this event has been specified by setting marketDisruption to true or including it in additionalMarketDisruptionEvent</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="minimumFuturesContracts" type="xsd:positiveInteger" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">1993 Commodity Definitions only. Specifies the Mimum Futures Contracts level that dictates whether or not a "De Minimis Trading" event has occurred. Only relevant if 'De Minimis Trading' has been specified in marketDisruptionEvent or additionalMarketDisruptionEvent.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityMetalBrand">
    <xsd:sequence>
      <xsd:element name="name" type="CommodityMetalBrandName" minOccurs="0" />
      <xsd:element name="brandManager" type="CommodityMetalBrandManager" minOccurs="0" />
      <xsd:element name="country" type="CountryCode" minOccurs="0" />
      <xsd:element name="producer" type="CommodityMetalProducer" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommodityMetalBrandManager">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMetalBrandManagerScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-metal-brand-manager" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityMetalBrandName">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The name of the entity that issues the brand</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMetalBrandNameScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-metal-brand-name" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="CommodityMetalProducer">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMetalProducerScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityMetalShape">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMetalShapeScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-metal-shape" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityMultipleExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type for defining the multiple exercise provisions of an American style commodity option.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="integralMultipleQuantity" type="CommodityNotionalQuantity" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The integral multiple quantity defines a lower limit of the Notional Quantity that can be exercised and also defines a unit multiple of the Notional Quantity that can be exercised, i.e. only integer multiples of this Notional Quantity can be exercised.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="minimumNotionalQuantity" type="CommodityNotionalQuantity" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The minimum Notional Quantity that can be exercised on a given Exercise Date. See multipleExercise.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </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="CommodityNotionalAmountReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to the return swap notional amount.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="CommodityNotionalAmount" />
      </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" minOccurs="0">
        <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="quantityFrequency" type="CommodityQuantityFrequency" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The frequency at which the Notional Quantity is deemed to apply for purposes of calculating the Total Notional Quantity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="quantity" type="xsd:decimal" minOccurs="0">
        <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="CommodityNotionalQuantitySchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Notional Quantity per Calculation Period. 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:sequence>
      <xsd:choice minOccurs="0">
        <xsd:element name="notionalStep" type="CommodityNotionalQuantity" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The Notional Quantity per Calculation Period. There must be a Notional Quantity specified for each Calculation Period, regardless of whether the quantity changes or remains the same between periods.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="settlementPeriodsNotionalQuantitySchedule" type="CommoditySettlementPeriodsNotionalQuantitySchedule" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">For an electricity transaction, the Notional Quantity schedule for a one or more groups of Settlement Periods to which the Notional Quantity is based. If the schedule differs for different groups of Settlement Periods, this element should be repeated.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Enables users to reference a Calculation Periods schedule in the form of a series of actual dates in a calculationPeriods container or in the form of a parameterised schedule in a calculationPeriodsSchedule container.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </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:group ref="BuyerSeller.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">complex group containing information on the identities of the parties to the transaction and the account information of each party.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="optionType" type="PutCallEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The type of option transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice minOccurs="0">
            <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" minOccurs="0" 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:group ref="CommodityContent.model" minOccurs="0"></xsd:group>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommodityPayRelativeToEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A scheme identifying the physical event relative to which payment occurs.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityPayRelativeToEventScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-pay-relative-to-event" />
      </xsd:extension>
    </xsd:simpleContent>
  </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" minOccurs="0">
            <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" minOccurs="0" 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:group ref="CommodityContent.model" minOccurs="0"></xsd:group>
        </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:choice minOccurs="0">
            <xsd:sequence>
              <xsd:element name="commencementDates" type="AdjustableOrRelativeDates" minOccurs="0">
                <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" minOccurs="0">
                <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:element name="relativeCommencementDates" type="CommodityRelativeExpirationDates" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">The first day(s) of the exercise period(s) for an American-style option where it is relative to the occurrence of an external event.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="relativeExpirationDates" type="CommodityRelativeExpirationDates" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">The Expiration Date(s) of an American-style option where it is relative to the occurrence of an external event.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:choice>
          <xsd:element name="latestExerciseTime" type="PrevailingTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="expirationTime" type="PrevailingTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specific time of day at which the option expires.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </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:choice minOccurs="0">
            <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:element name="expirationDates" type="AdjustableRelativeOrPeriodicDates2">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The Expiration Date(s) of a European-style option.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="relativeExpirationDates" type="CommodityRelativeExpirationDates">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The Expiration Date(s) of a European-style option where it is relative to the occurrence of an external event.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="expirationTime" type="PrevailingTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specific time of day at which the option expires.</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 minOccurs="0">
        <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:element name="automaticExercise" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether or not Automatic Exercise applies to a Commodity Option Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="writtenConfirmation" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether or not Written Confirmation applies to a Commodity Option Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="clearingInstructions" type="SwaptionPhysicalSettlement" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies any instructions on how the physical settlement is to be effected when the option is exercised.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </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="CommodityPhysicalQuantitySchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Quantity per Delivery Period. There must be a Quantity step specified for each Delivery Period, regardless of whether the Quantity changes or remains the same between periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quantityStep" type="CommodityNotionalQuantity" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The quantity per Calculation Period. There must be a quantity specified for each Calculation Period, regardless of whether the quantity changes or remains the same between periods.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityDeliveryPeriodsPointer.model" />
    </xsd:sequence>
    <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="CommodityPipelineCycle">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The pipeline cycle during which the physical commodity will be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="pipelineCycleScheme" type="NonEmptyURI" use="required" />
      </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:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0"></xsd:group>
      <xsd:choice minOccurs="0">
        <xsd:sequence>
          <xsd:element name="lag" type="Lag" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The pricing period per calculation period if the pricing days do not wholly fall within the respective calculation period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice minOccurs="0">
            <xsd:sequence>
              <xsd:group ref="Days.model" />
              <xsd:element name="businessCalendar" type="CommodityBusinessCalendar" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">Identifies a commodity business day calendar from which the pricing dates will be determined.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <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:element name="settlementPeriods" type="SettlementPeriods" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Specifies a set of Settlement Periods associated with an Electricity Transaction for delivery on an Applicable Day or for a series of Applicable Days.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Allows a set of Settlement Periods to reference one already defined elsewhere in the trade structure.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:sequence>
        <xsd:element name="pricingDates" type="AdjustableDates" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A list of adjustable dates on which the trade will price. Each date will price for the Calculation Period within which it falls.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </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="CommodityRelativeExpirationDates">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Expiration Dates of the trade relative to the Calculation Periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="expireRelativeToEvent" type="CommodityExpireRelativeToEvent" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether the payment(s) occur relative to the date of a physical event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="expirationDateOffset" type="DateOffset" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies any offset from the adjusted Calculation Period start date or adjusted Calculation Period end date applicable to each Payment Date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityRelativePaymentDates">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Payment Dates of the trade relative to the Calculation Periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:element name="payRelativeTo" type="CommodityPayRelativeToEnum">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies whether the payment(s) occur relative to a date such as the end of each Calculation Period or the last Pricing Date in each Calculation Period.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="payRelativeToEvent" type="CommodityPayRelativeToEvent">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies whether the payment(s) occur relative to the date of a physical event such as issuance of a bill of lading.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0"></xsd:group>
      <xsd:element name="paymentDaysOffset" type="DateOffset" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies any offset from the adjusted Calculation Period start date, adjusted Calculation Period end date or Calculation Date applicable to each Payment Date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityReturnCalculation">
    <xsd:sequence>
      <xsd:element name="formula" type="CommodityReturnCalculationFormulaEnum" minOccurs="0">
        <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="CommodityPaymentDates.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:choice minOccurs="0">
            <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="notionalAmountReference" type="CommodityNotionalAmountReference">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A reference to the Return swap notional amount defined in another leg of the return swap.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="commodityReturnCalculation" type="CommodityReturnCalculation" minOccurs="0">
            <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="CommoditySettlementPeriodsNotionalQuantity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The notional quantity of electricity that applies to one or more groups of Settlement Periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityNotionalQuantity">
        <xsd:sequence>
          <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The range(s) of Settlement Periods to which the Notional Quantity applies.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CommoditySettlementPeriodsNotionalQuantitySchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The notional quantity schedule of electricity that applies to one or more groups of Settlement Periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="settlementPeriodsNotionalQuantityStep" type="CommodityNotionalQuantity" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">For an electricity transaction, the Notional Quantity for a given Calculation Period during the life of the trade which applies to the range(s) of Settlement Periods referenced by settlementPeriodsReference. There must be a settlementPeriodsNotionalQuantityStep specified for each Calculation Period, regardless of whether the NotionalQuantity changes or remains the same between periods.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The range(s) of Settlement Periods to which the Fixed Price steps apply.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommoditySettlementPeriodsPriceSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The fixed price schedule for electricity that applies to one or more groups of Settlement Periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="settlementPeriodsPriceStep" type="FixedPrice" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">For an electricity transaction, the Fixed Price for a given Calculation Period during the life of the trade which applies to the range(s) of Settlement Periods referenced by settlementPeriods Reference. There must be a Fixed Price step specified for each Calculation Period, regardless of whether the Fixed Price changes or remains the same between periods.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The range(s) of Settlement Periods to which the Fixed Price steps apply.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </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="CommoditySpreadSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Spread per Calculation Period. There must be a Spread specified for each Calculation Period, regardless of whether the Spread changes or remains the same between periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="spreadStep" type="CommoditySpread" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The spread per Calculation Period. There must be a spread step specified for each Calculation Period, regardless of whether the spread changes or remains the same between periods.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0"></xsd:group>
    </xsd:sequence>
  </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="CommodityStrikeSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The Strike Price per Unit per Calculation Period. There must be a Strike Price per Unit step specified for each Calculation Period, regardless of whether the Strike changes or remains the same between periods.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="strikePricePerUnitStep" type="NonNegativeMoney" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The strike price per unit per Calculation Period. There must be a strike price per unit specified for each Calculation Period, regardless of whether the price changes or remains the same between periods.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0"></xsd:group>
    </xsd:sequence>
  </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:group ref="BuyerSeller.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A complex group containing information on the identities of the parties to the transaction and the account information of each party.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="optionType" type="PutCallEnum" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The type of option transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="commoditySwap" type="CommoditySwaptionUnderlying" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The underlying commodity swap definiton.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="physicalExercise" type="CommodityPhysicalExercise" minOccurs="0">
            <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" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The option premium payable by the buyer to the seller.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityContent.model" minOccurs="0"></xsd:group>
        </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 minOccurs="0">
        <xsd:sequence>
          <xsd:element name="levelQuantity" type="xsd:decimal" minOccurs="0">
            <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" minOccurs="0">
            <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" minOccurs="0">
        <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:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0"></xsd:group>
      <xsd:choice minOccurs="0">
        <xsd:sequence>
          <xsd:element name="lag" type="Lag" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The pricing period per calculation period if the pricing days do not wholly fall within the respective calculation period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice minOccurs="0">
            <xsd:sequence>
              <xsd:group ref="Days.model" />
              <xsd:element name="businessCalendar" type="CommodityBusinessCalendar" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">Identifies a commodity business day calendar from which the pricing dates will be determined.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <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:element name="settlementPeriods" type="SettlementPeriods" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Specifies a set of Settlement Periods associated with an Electricity Transaction for delivery on an Applicable Day or for a series of Applicable Days.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Allows a set of Settlement Periods to reference one already defined elsewhere in the trade structure.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
        </xsd:sequence>
        <xsd:element name="valuationDates" type="AdjustableDates" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">A list of adjustable dates on which the trade will price. Each date will price for the Calculation Period within which it falls.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </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="CommodityPaymentDates.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:choice minOccurs="0">
            <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="notionalAmountReference" type="CommodityNotionalAmountReference">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A reference to the Return swap notional amount defined in another leg of the return swap.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:choice minOccurs="0">
            <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" minOccurs="0">
            <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" minOccurs="0">
        <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" minOccurs="0">
        <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="DataProvider">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specify as applicable. Parties may wish to refer to the state meteorological authority in a particular location or to an exchange or other third party data provider. Parties may find the definitions in the Commodity Definitions useful as a means of identifying potential Data Providers.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="weatherDataProviderScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/weather-data-provider" />
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="DisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A Disruption Fallback.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMarketDisruptionFallbackScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-market-disruption-fallback" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EEPParameters">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Excess Emission Penalty related parameters.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="eEPApplicable" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If Excess Emission Penalty is specified to be applicable in the Confirmation then the Excess Emission Penalty will be determined in the manner specified in the Confirmation (see other EEP parameters)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="riskPeriod" type="EEPRiskPeriod" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Used to determine how provisions in Part [7] Page 7 (B) Failure to Deliver Not Remedied are to be applied.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="equivalentApplicable" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">When "true" the EEP Equivalent is applicable. See Part [7] definition of EEP Equivalent.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="penaltyApplicable" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">When "true" the Excess Emissions Penalty is applicable. See Part [7] definition of Excess Emissions Penalty.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EEPRiskPeriod">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">TBD.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="startDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="endDate" type="xsd:date" minOccurs="0" />
    </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" minOccurs="0">
          <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" minOccurs="0">
          <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="transmissionContingency" type="ElectricityTransmissionContingency" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Indicates that the performance of the buyer or seller shall be excused (under the conditions specified) if transmission of the elctricity is unavailable or interrupted.</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" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The zone covering potential delivery points for the electricity.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="electingPartyReference" type="PartyReference" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Indicates the party able to decide which delivery point within the deliveryPoint is used for delivery. For EEI transactions, this should reference the seller of 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" minOccurs="0">
        <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" minOccurs="0">
        <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:element name="system" type="CommodityDeliveryPoint" minOccurs="0" />
    </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" minOccurs="0">
        <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:element name="generationAsset" type="CommodityDeliveryPoint" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityPhysicalDeliveryQuantity">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the physical quantity of the electricity to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityNotionalQuantity">
        <xsd:sequence>
          <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A pointer style reference to the range(s) of Settlement Periods to which this quantity applies.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ElectricityPhysicalDeliveryQuantitySchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Allows the documentation of a shaped quantity trade where the quantity changes over the life of the transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityPhysicalQuantitySchedule">
        <xsd:sequence>
          <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A pointer style reference to the range(s) of Settlement Periods to which this quantity applies.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </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="deliveryPeriods" type="CommodityDeliveryPeriods" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The different options for specifying the Delivery or Supply Periods. Unless the quantity or price is to vary periodically during the trade or physical delivery occurs on a periodic basis, periodsSchedule should be used and set to 1T.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementPeriods" type="SettlementPeriods" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the Settlement Periods in which the electricity will be delivered. The Settlement Periods will apply from and including the Effective Date up to and including the Termination Date. If more than one settlementPeriods element is present this indicates multiple ranges of Settlement Periods apply to the entire trade - for example off-peak weekdays and all day weekends. Settlement Period ranges should not overlap.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementPeriodsSchedule" type="SettlementPeriodsSchedule" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The specification of the Settlement Periods in which the electricity will be delivered for a "shaped" trade i.e. where different Settlement Period ranges will apply to different periods of the trade.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="loadType" type="LoadTypeEnum" minOccurs="0">
            <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" minOccurs="0">
            <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" 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="ElectricityPhysicalQuantity" minOccurs="0">
            <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:choice minOccurs="0">
            <xsd:element name="physicalQuantity" type="ElectricityPhysicalDeliveryQuantity" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The Quantity per Delivery Period.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="physicalQuantitySchedule" type="ElectricityPhysicalDeliveryQuantitySchedule" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Allows the documentation of a shaped quantity trade where the quantity changes over the life of the transaction. Note that if the range of Settlement Periods also varies over the life of the transaction this element should not be used. Instead, physicalQuantity should be repeated for each range of Settlement Periods that apply at any point during the trade.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="totalPhysicalQuantity" type="UnitQuantity" minOccurs="0">
            <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" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of electricity product to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="voltage" type="PositiveDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The voltage, expressed as a number of volts, of the electricity to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityTransmissionContingency">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A structure to specify the tranmission contingency and the party that bears the obligation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="contingency" type="ElectricityTransmissionContingencyType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The conditions under which the party specified in contingentParty will be excused from damages if transmission is interrupted or curtailed.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="contingentParty" type="PartyReference" minOccurs="0" maxOccurs="2">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The party to which the contingency applies.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ElectricityTransmissionContingencyType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The type of transmission contingency, i.e. what portion of the transmission the delivery obligations are applicable.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="electricityTransmissionContingencyScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/electricity-transmission-contingency" />
      </xsd:extension>
    </xsd:simpleContent>
  </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" minOccurs="0">
            <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" minOccurs="0">
            <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:element name="deliveryDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The date on which allowances are to be delivered as specified in the related Confirmation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence>
            <xsd:element name="paymentDate" type="DateOffset" minOccurs="0" />
            <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
          </xsd:sequence>
          <xsd:element name="failureToDeliverApplicable" type="xsd:boolean" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Applies to EU Emissions Allowance Transactions. Holds the Failure to Deliver (Alternative Method) election. Used to determine how provisions in Part [7] Page 7 (B) Failure to Deliver Not Remedied are to be applied.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="eEPParameters" type="EEPParameters" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Applies to EU Emissions Allowance Transactions. Contains a series of parameters controlling Excess Emissions Penalty payments.</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" minOccurs="0">
        <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="compliancePeriod" type="EnvironmentalProductComplaincePeriod" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Applies to E.U. Emissions Allowance Transactions. Describes Specified Compliance Period for which the Allowances are issued.</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="EnvironmentalProductComplaincePeriod">
    <xsd:sequence>
      <xsd:element name="startYear" type="xsd:gYear" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The first year of the Compliance Period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="endYear" type="xsd:gYear" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The last year of the Commpliance Period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </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:sequence>
          <xsd:group ref="PayerReceiver.model" />
        </xsd:sequence>
      </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" minOccurs="0">
        <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" minOccurs="0"></xsd:group>
          <xsd:group ref="CommodityNotionalQuantity.model" minOccurs="0"></xsd:group>
          <xsd:group ref="CommodityPaymentDates.model" minOccurs="0"></xsd:group>
          <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:element name="conversionFactor" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If the Notional Quantity is specified in units that do not match the units in which the Commodity Reference Price is quoted, the scaling or conversion factor used to convert the Commodity Reference Price units into the Notional Quantity units should be stated here. If there is no conversion, this element is not intended to be used.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rounding" type="Rounding" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Rounding direction and precision for price values.</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="spreadSchedule" type="CommoditySpreadSchedule" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The spread over or under the Commodity Reference Price for this leg of the trade for each Calculation Period.</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:element name="fx" type="CommodityFx" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines how observations of FX prices are to be used to calculate a factor with which to convert the observed Commodity Reference Price to the Settlement Currency.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </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" />
          <xsd:element name="commodity" type="Commodity" minOccurs="0">
            <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:group ref="CommodityPaymentDates.model" minOccurs="0"></xsd:group>
          <xsd:group ref="CommodityFreightFlatRate.model" minOccurs="0"></xsd:group>
        </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" minOccurs="0">
        <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="GasDeliveryPeriods">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the Delivery Periods for a physically settled gas trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CommodityDeliveryPeriods">
        <xsd:sequence minOccurs="0">
          <xsd:element name="supplyStartTime" type="PrevailingTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The time at which gas delivery should start on each day of the Delivery Period(s).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="supplyEndTime" type="PrevailingTime" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The time at which gas delivery should end on each day of the Delivery Period(s).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </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="deliveryPeriods" type="GasDeliveryPeriods" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The different options for specifying the Delivery or Supply Periods. Unless the quantity or price is to vary periodically during the trade or physical delivery occurs on a periodic basis, periodsSchedule should be used and set to 1T.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="gas" type="GasProduct" minOccurs="0">
            <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" minOccurs="0">
            <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:choice minOccurs="0">
          <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:sequence>
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A quantity that can vary within set limits at the instruction of the specified party.</xsd:documentation>
            </xsd:annotation>
            <xsd:element name="minPhysicalQuantity" type="CommodityNotionalQuantity" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The minimum quantity to be delivered. If separate minimums need to be specified for different periods (e.g. a minimum per day and a minimum per month) this element should be repeated.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="maxPhysicalQuantity" type="CommodityNotionalQuantity" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The maximum quantity to be delivered. If separate minimums need to be specified for different periods (e.g. a minimum per day and a minimum per month) this element should be repeated.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="electingParty" type="PartyReference" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Indicates the party able to choose whether the gas is delivered for a particular period e.g. a swing or interruptible contract.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:choice>
      </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" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of gas to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="calorificValue" type="NonNegativeDecimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The calorific value of the gas to be delivered, specified in megajoules per cubic meter (MJ/m3).</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="quality" type="GasQuality">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The quality of the gas to be delivered.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="GasQuality">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The quantity of gas to be delivered.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="gasQualityScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-gas-quality" />
      </xsd:extension>
    </xsd:simpleContent>
  </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="Lag">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An observation period that is offset from a Calculation Period.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="lagDuration" type="Period" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The period during which observations will be made. If a firstObservationDateOffset is specified, the observation period will start the specified interval prior to each Calculation Period - i.e. if the firstObservationDateOffset is 4 months and the lagDuration is 3 months, observations will be taken in months 4,3 and 2 (but not 1) prior to each Calculation Period. If no firstObservationDate is specified, the observation period will end immediately preceding each Calculation Period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="firstObservationDateOffset" type="Period" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The interval between the start of each lagDuration and the start of each respective calculation period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="LagReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Allows a lag to reference one already defined elsewhere in the trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="Lag" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MarketDisruptionEvent">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A Market Disruption Event.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="commodityMarketDisruptionScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/commodity-market-disruption" />
      </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" minOccurs="0">
        <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="shape" type="CommodityMetalShape" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The physical shape(s) which can be delivered in Seller's option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="brand" type="CommodityMetalBrand" minOccurs="0" maxOccurs="unbounded">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The brand(s) of material which can be delivered in Seller's option.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:sequence>
        <xsd:element name="grade" type="CommodityMetalGrade" minOccurs="0" 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" minOccurs="0">
        <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:element name="totalQuantityTolerance" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The +/- percent tolerance in seller's option which applies to the total quantity delivered over all shipment periods.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="periodQuantityTolerance" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The +/- percentage quantity tolerance in seller's option which applied to each shipment period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="title" type="MetalTitleEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes how and when title to the commodity transfers.</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" minOccurs="0">
            <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="deliveryPeriods" type="CommodityDeliveryPeriods" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The period during which delivery/deliveries of Metal may be scheduled.</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:element name="conversionFactor" type="xsd:decimal" 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="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:group ref="PayerReceiver.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A complex group containing references to the identity of the paying party, the receiving party and the accounts used by each.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="fixedPrice" type="FixedPrice" minOccurs="0">
            <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:element name="quantityReference" type="QuantityReference" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A pointer style reference to a quantity defined on another leg.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityPaymentDates.model" minOccurs="0"></xsd:group>
        </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 minOccurs="0">
        <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:element name="importerOfRecord" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies which party is the Importer of Record for the purposes of paying customs duties and applicable taxes or costs related to the import of the oil product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice minOccurs="0">
        <xsd:element name="absoluteTolerance" type="AbsoluteTolerance">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the allowable quantity tolerance as an absolute quantity.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="percentageTolerance" type="PercentageTolerance">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the allowable quantity tolerance as a percentage of the quantity.</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="deliveryPeriods" type="CommodityDeliveryPeriods" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The different options for specifying the Delivery or Supply Periods. Unless the quantity or price is to vary periodically during the trade or physical delivery occurs on a periodic basis, periodsSchedule should be used and set to 1T.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="oil" type="OilProduct" minOccurs="0">
            <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" minOccurs="0">
            <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" minOccurs="0">
        <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" minOccurs="0">
        <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:element name="cycle" type="CommodityPipelineCycle" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The cycle(s) during which the oil product will be transported in the pipeline.</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" minOccurs="0">
        <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" minOccurs="0">
        <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="applicable" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates that the oil product will be delivered by title transfer. Should always be set to "true".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="deliveryLocation" type="CommodityDeliveryPoint" minOccurs="0">
        <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="PercentageTolerance">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The acceptable tolerance in the delivered quantity of a physical commodity product in terms of a percentage of the agreed delivery quantity.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="postitive" type="RestrictedPercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The maximum percentage amount by which the quantity delivered can exceed the agreed quantity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="negative" type="RestrictedPercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The maximum percentage amount by which the quantity delivered can be less than the agreed quantity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="option" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Indicates whether the tolerance it at the seller's or buyer's option.</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:sequence>
          <xsd:group ref="PayerReceiver.model" />
        </xsd:sequence>
      </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:sequence>
          <xsd:group ref="PayerReceiver.model" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="QuantityReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A pointer tyle reference to a Quantity defined elsewhere.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="CommodityPhysicalQuantityBase" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReferenceLevel">
    <xsd:sequence>
      <xsd:element name="amount" type="xsd:decimal" minOccurs="0" />
      <xsd:element name="referenceLevelUnit" type="ReferenceLevelUnit" minOccurs="0" />
    </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="SequencedDisruptionFallback">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A Disruption Fallback with the sequence in which it should be applied relative to other Disruption Fallbacks.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="fallback" type="DisruptionFallback" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Disruption fallback that applies to the trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="sequence" type="xsd:positiveInteger" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Sequence in which the reference to the disruption fallback should be applied.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriods">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specifies a set of Settlement Periods associated with an Electricity Transaction for delivery on an Applicable Day or for a series of Applicable Days.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="duration" type="SettlementPeriodDurationEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The length of each Settlement Period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="applicableDay" type="DayOfWeekExtEnum" minOccurs="0" maxOccurs="7">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies the Applicable Day with respect to a range of Settlement Periods. This element can only be omitted if includesHolidays is present, in which case this range of Settlement Periods will apply to days that are holidays only.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:sequence>
        <xsd:element name="startTime" type="OffsetPrevailingTime" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the hour-ending Start Time with respect to a range of Settlement Periods.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="endTime" type="OffsetPrevailingTime" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the hour-ending End Time with respect to a range of Settlement Periods. If neither startTime nor endTime contain an offset element and endTime is earlier than startTime, this indicates that the time period "wraps around" midnight. For example, if startTime is 23:00 and endTime is 01:00 then Settlement Periods apply from 22:00 to 23:00 and 23:00 to 00:00 and 00:00 to 01:00 on each included day.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="timeDuration" type="xsd:time" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Specifies the duration of the time window during which settlement/delivery occurs.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:element name="excludeHolidays" type="CommodityBusinessCalendar">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Indicates that days that are holidays according to the referenced commodity business calendar should be excluded from this range of Settlement Periods, even if such day is an applicable day.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="includeHolidays" type="CommodityBusinessCalendar">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Indicates that days that are holidays according to the referenced commodity business calendar should be included in this range of Settlement Periods, even if such day is not an applicable day.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </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:sequence>
          <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriodsReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Allows a set of Settlement Periods to reference one already defined elsewhere in the trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="SettlementPeriods" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriodsSchedule">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The specification of the Settlement Periods in which the electricity will be delivered for a "shaped" trade i.e. where different Settlement Period ranges will apply to different periods of the trade.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="settlementPeriodsStep" type="SettlementPeriodsStep" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The range of Settlement Periods per Calculation Period. There must be a range of Settlement Periods specified for each Calculation Period, regardless of whether the range of Settlement Periods changes or stays the same between periods.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityDeliveryPeriodsPointer.model" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SettlementPeriodsStep">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A reference to the range of Settlement Periods that applies to a given period of a transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="settlementPeriodsReference" type="SettlementPeriodsReference" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The specification of the Settlement Periods in which the electricity will be delivered. The Settlement Periods will apply for the duration of the appliable period. If more than one settlementPeriods element is present this indicates multiple ranges of Settlement Periods apply for the duration of the applicable period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="StrikePriceBasketReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A pointer style reference to a basket in the document</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="CommodityBasketBase" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="StrikePriceUnderlyingReference">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A pointer style reference to a product leg in the document</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" use="required" ecore:reference="CommodityBasketUnderlyingBase" />
      </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" minOccurs="0">
        <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" minOccurs="0">
        <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" minOccurs="0" />
      <xsd:element name="calculationPeriodEndDay" type="IdentifiedDate" minOccurs="0" />
    </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" minOccurs="0" 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" minOccurs="0">
        <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" minOccurs="0">
        <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" minOccurs="0">
        <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:element name="dataProvider" type="DataProvider" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The provider of either temperature data or precipitation data specified by the parties in the related Confirmation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="finalEditedData" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If specified by the parties to apply in the related Confirmation, Final Edited Data means that the parties will have recourse to Primary Disruption Fallbacks even if relevant data is available from the Data Provider, so long as such data is not published in its final edited form. Otherwise the parties will have recourse to Primary Disruption Fallbacks only if relevant data is unavailable from the Data Provider on a relevant day.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="weatherStation" type="WeatherStation" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The source or sources of weather index data specified by the parties in the related Confirmation. Examples include: AU-CBM (the Commonwealth Bureau of Meteorology in Australia) and CM-SMI (the Swiss Meteorological Institute).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="weatherStationFallback" type="WeatherStation" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If weather index data is not available for the weather station specified by the parties in the related Confirmation, the first alternative Weather Index Station.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="weatherStationSecondFallback" type="WeatherStation" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If weather index data is neither available for the weather station specified by the parties in the related Confirmation nor the first alternative Weather Index Station, the second alternative Weather Index Station.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="alternativeDataProvider" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A provider of either temperature data or precipitation data specified by the parties in the related Confirmation. If the parties fail to specify an Alternative Data Provider, the "Fallback Data" Disruption Fallback will not apply.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="synopticDataFallback" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If the parties specify "Not Applicable", the "Synoptic Data" Disruption Fallback will not apply. Synoptic Data means that maximum and/or minimum temperature or daily precipitation at the location for the Missing Data Day will be the maxium and/or minimum temperature or daily precipitation for that day at the Location (Weather Index Station) which has not been subject to ultimate quality control, integrity or verification process.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="adjustmentToFallbackWeatherStation" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Weather Index Station from which data with which to apply the "Adjustement to Fallback Station Data" terms. See Section 11.20 of the 2005 ISDA Commodity Definitions.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="primaryDisruptionFallbacks" type="DisruptionFallback" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A list of actions available to the parties should a Primary Disruption Event occur. A Primary Disruption Event means if maximum or minimum temperature or precipitation data for a Missing Data Day is required to determine a Payment Amount then the maximum and/or minimum temperature or the daily precipitation for that day will be determined in accordance with the first applicable Primary Disruption Fallback.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="secondaryDisruptionFallbacks" type="DisruptionFallback" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A list of actions available to the parties should a Secondary Disruption Event occur. A Primary Disruption Event means if maximum or minimum temperature or precipitation data for a Missing Data Day is required to determine a Payment Amount then the maximum and/or minimum temperature or the daily precipitation for that day will be determined in accordance with the first applicable Secondary Disruption Fallback.</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" minOccurs="0">
            <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" />
          <xsd:element name="weatherNotionalAmount" type="NonNegativeMoney" minOccurs="0">
            <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" minOccurs="0">
            <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="paymentDates" type="CommodityRelativePaymentDates" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The Payment Dates of the trade relative to the Calculation Periods or Calculation Date</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" minOccurs="0">
        <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="businessDays" type="BusinessCenter" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A day on which commmercial banks settle payments and are open for general business in the place(s) specified in the Confirmation. See Section 1.3 of the ISDA 2005 Commodity Definitions.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dataCorrection" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The date payment often revised after its publication, this indicates if the payment date could be recalculated.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="correctionPeriod" type="Period" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If 'dataCorrection'=true, this indicates how long after the initial publication of the data corrections can be made.</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:element name="rounding" type="Rounding" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Rounding direction and precision for price values.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WeatherStation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Weather Station.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:element name="weatherStationCity" type="BusinessCenter" />
        <xsd:element name="weatherStationAirport" type="WeatherStationAirport" />
        <xsd:element name="weatherStationWBAN" type="WeatherStationWBAN" />
        <xsd:element name="weatherStationWMO" type="WeatherStationWMO" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WeatherStationAirport">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A code identifying a Weather Station Airport (based on the the IATA standard).</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="weatherStationAirportScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/weather-station-airport" />
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="WeatherStationWBAN">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A code identifying a Weather Station WBAN.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="weatherStationWBANScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/weather-station-wban" />
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="WeatherStationWMO">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A code identifying a Weather Index WMO.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="weatherStationWMOScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/external/weather-station-wmo" />
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:simpleContent>
  </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: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: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="calculationDates" type="AdjustableDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Calculation Period dates for this leg of the trade where the Calculation Periods are all one day long. Only dates explicitly included determine the Calculation Periods and there is a Calculation Period for each date specified. As such one-day Calculation Period are typical a physically-settled emissions or metals trades it is expected that this element will not be used in performance swaps.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationPeriods" type="AdjustableDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Calculation Period start dates 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 that leg - or the calculationPeriodsScheduleReference can be used to point to the Calculation Periods Schedule for that leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationPeriodsSchedule" type="CommodityCalculationPeriodsSchedule">
        <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:group ref="CommodityCalculationPeriodsPointer.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Enables users to reference a Calculation Periods schedule in the form of a series of actual dates in a calculationPeriods container or in the form of a parameterised schedule in a calculationPeriodsSchedule container.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityCalculationPeriodsPointer.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Model group enables users to reference a Calculation Periods schedule in the form of a series of actual dates in a calculationPeriods container or in the form of a parameterized schedule in a calculationPeriodsSchedule container.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="calculationPeriodsReference" type="CalculationPeriodsReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to the Calculation Periods defined on another leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationPeriodsScheduleReference" type="CalculationPeriodsScheduleReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to the Calculation Periods Schedule defined on another leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="calculationPeriodsDatesReference" type="CalculationPeriodsDatesReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to single-day-duration Calculation Periods defined on another leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommodityCoalComposition.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Items defining the chemical composition of the coal product.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="moisture" type="CoalAttributePercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The moisture content of the coal product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ash" type="CoalAttributePercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The ash content of the coal product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="sulfur" type="CoalAttributePercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The sulfur/sulphur content of the coal product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="SO2" type="CoalAttributePercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The sulfur/sulphur dioxide content of the coal product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="volatile" type="CoalAttributePercentage" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The volatile content of the coal product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityCoalProperties.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Items defining the physical attributes of the coal product.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="BTUperLB" type="CoalAttributeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The number of British Thermal Units per Pound of the coal product.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="topSize" type="CoalAttributeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The smallest sieve opening that will result in less than 5% of a sample of the coal product remaining.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="finesPassingScreen" type="CoalAttributeDecimal" minOccurs="0" />
      <xsd:element name="grindability" type="CoalAttributeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Hardgrove Grindability Index value of the coal to be delivered.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ashFusionTemperature" type="CoalAttributeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The temperature at which the ash form of the coal product fuses completely in accordance with the ASTM International D1857 Standard Test Methodology.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityCoalReducingAtmosphere.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Items defining the attributes of the coal product determined by ash fusion tests.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="initialDeformation" type="CoalAttributeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The temperature at which an ash cone shows evidence of deformation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="softeningHeightWidth" type="CoalAttributeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The temperature at which the height of an ash cone equals its width. (Softening temperature).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="softeningHeightHalfWidth" type="CoalAttributeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The temperature at which the height of an ash cone equals half its width. (Hemisphere temperature).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="fluid" type="CoalAttributeDecimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The temperature at which the ash cone flattens.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityContent.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Items common to all Commodity Transactions.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="commonPricing" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If Common Pricing is elected (“true”) for a Transaction with referencing more than one Commodity Reference Price then no date will be a Pricing Date unless such a date is a day on which all Commodity Reference Prices are scheduled to be published.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="marketDisruption" type="CommodityMarketDisruption" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Contains contract terms related to triggers and responses to market disruptions as defined in the 1993 or 2005 Commodity Definitions.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="settlementDisruption" type="CommodityBullionSettlementDisruptionEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Describes contract terms related to the consequences of Bullion Settlement Disruption Events.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rounding" type="Rounding" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Rounding direction and precision for amounts.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityDeliveryPeriodsPointer.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Model group to enable users to reference a Delivery Periods schedule in the form of a series of actual dates in a deliveryPeriods container or in the form of a parameterised schedule in a deliveryPeriodsSchedule container.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="deliveryPeriodsReference" type="CalculationPeriodsReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to the Delivery Periods defined elsewhere.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="deliveryPeriodsScheduleReference" type="CalculationPeriodsScheduleReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to the Calculation Periods Schedule defined elsewhere.</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:sequence>
        <xsd:element name="entryPoint" type="CommodityDeliveryPoint" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The physical or virtual point at which the commodity enters a transportation system.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="withdrawalPoint" type="CommodityDeliveryPoint" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The physical or virtual point at which the commodity is withdrawn from a transportation system.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
    </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" minOccurs="0">
          <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" minOccurs="0"></xsd:group>
      <xsd:element name="exercise" type="CommodityExercise" minOccurs="0">
        <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 minOccurs="0">
        <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:choice minOccurs="0">
        <xsd:element name="physicalQuantity" type="CommodityNotionalQuantity">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The Quantity per Delivery Period.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="physicalQuantitySchedule" type="CommodityPhysicalQuantitySchedule">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Allows the documentation of a shaped quantity trade where the quantity changes over the life of the transaction.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="totalPhysicalQuantity" type="UnitQuantity" minOccurs="0">
        <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 minOccurs="0">
        <xsd:element name="fixedPriceSchedule" type="CommodityFixedPriceSchedule">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Allows the specification of a Fixed Price that varies over the life of the trade.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:choice minOccurs="0">
          <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: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:element name="floatingStrikePricePerUnitSchedule" type="CommodityCalculationPeriodsSchedule" />
    </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" minOccurs="0">
        <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" minOccurs="0">
        <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="CommodityNonPeriodicPaymentDates.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the Payment Date.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="paymentDates" type="AdjustableDatesOrRelativeDateOffset">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Dates on which payments will be made.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="masterAgreementPaymentDates" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If present and true indicates that the Payment Date(s) are specified in the relevant master agreement.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </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:choice minOccurs="0">
          <xsd:element name="notionalQuantitySchedule" type="CommodityNotionalQuantitySchedule">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Allows the documentation of a shaped notional trade where the notional changes over the life of the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <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="settlementPeriodsNotionalQuantity" type="CommoditySettlementPeriodsNotionalQuantity" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">For an electricity transaction, the Notional Quantity for a one or more groups of Settlement Periods to which the Notional Quantity is based. If the schedule differs for different groups of Settlement Periods, this element should be repeated.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
        <xsd:element name="totalNotionalQuantity" type="xsd:decimal" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The Total Notional Quantity.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:sequence>
      <xsd:element name="quantityReference" type="QuantityReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A pointer style reference to a quantity defined on another leg.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </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" 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 minOccurs="0">
        <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="CommodityPaymentDates.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the Payment Date. This will consist of either a set of Payment Dates or else a Payment Date schedule.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="relativePaymentDates" type="CommodityRelativePaymentDates">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Payment Dates of the trade relative to the Calculation Periods.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityNonPeriodicPaymentDates.model" />
    </xsd:choice>
  </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:choice minOccurs="0">
        <xsd:element ref="commoditySwap" fpml-annotation:deprecated="true" fpml-annotation:deprecatedReason="The model could not provide support for a cash settled commodity. Only physically exercised option could be expressed. Instead, commoditySwaption product, should be used.">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">DEPRECATED. Defines a commodity swap product.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element ref="commodityForward" />
      </xsd:choice>
      <xsd:element name="physicalExercise" type="CommodityPhysicalExercise" minOccurs="0">
        <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:element name="strikePricePerUnitSchedule" type="CommodityStrikeSchedule" />
    </xsd:choice>
  </xsd:group>
  <xsd:group name="CommoditySwapDetails.model">
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate" minOccurs="0">
        <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" minOccurs="0">
        <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 minOccurs="0">
        <xsd:element ref="commoditySwapLeg" maxOccurs="unbounded" />
        <xsd:element name="weatherLeg" type="WeatherLeg" minOccurs="0" 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:group ref="CommodityContent.model" minOccurs="0"></xsd:group>
    </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="CommodityUSCoalProduct.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Items specific to the definition of a US Coal Product.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="btuQualityAdjustment" type="CoalQualityAdjustments" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Quality Adjustment formula to be used where the Actual Shipment BTU/Lb value differs from the Standard BTU/Lb value.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="so2QualityAdjustment" type="CoalQualityAdjustments" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Quality Adjustment formula to be used where the Actual Shipment SO2/MMBTU value differs from the Standard SO2/MMBTU value.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </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="quantityVariationAdjustment" type="xsd:boolean" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">If true, indicates that QVA is applicable. If false, indicates that QVA is inapplicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="transportationEquipment" type="CoalTransportationEquipment" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The transportation equipment with which the Coal Product will be delivered and received.</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.</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" minOccurs="0">
        <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" minOccurs="0" />
      <xsd:element name="exercise" type="CommodityExercise" minOccurs="0" />
      <xsd:element name="weatherIndexStrikeLevel" type="WeatherIndex" minOccurs="0">
        <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" minOccurs="0">
        <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" 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: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:choice minOccurs="0">
        <xsd:sequence>
          <xsd:element name="dayDistribution" type="CommodityFrequencyType" minOccurs="0">
            <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:sequence>
          <xsd:element name="dayOfWeek" type="DayOfWeekEnum" minOccurs="0" maxOccurs="7">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The day(s) of the week on which pricing will take place during the pricing period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="dayNumber" type="xsd:integer" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The occurrence of the dayOfWeek within the pricing period on which pricing will take place, e.g. the 3rd Friday within each Calculation Period. If omitted, every dayOfWeek will be a pricing day.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:choice>
      <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="LagOrReference.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Allows a Lag or a LagReference to be specified.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="lag" type="Lag">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The pricing period per calculation period if the pricing days do not wholly fall within the respective calculation period.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="lagReference" type="LagReference">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Allows a lag to reference one already defined elsewhere in the trade.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </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" minOccurs="0">
        <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" minOccurs="0">
        <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:element name="weatherCalculationPeriodsReference" type="CalculationPeriodsReference" />
    </xsd:choice>
  </xsd:group>
</xsd:schema>

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