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

<!-- 
  == Copyright (c) 2002-2009. 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="http://www.fpml.org/2008/FpML-4-5" xmlns:fpml="http://www.fpml.org/2008/FpML-4-5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" ecore:nsPrefix="fpml" ecore:package="org.fpml" ecore:documentRoot="FpML" targetNamespace="http://www.fpml.org/2008/FpML-4-5" version="$Revision: 2406 $" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xsd:include schemaLocation="fpml-option-shared-4-5.xsd" />
  <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 could consist of a series of actual dates in a calculationPeriods container or could consist of a parameterised schedule in a calculationPeriodsSchedule container."&gt;A reference to 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. If both such constructs exist, this type should only be used within the CommodityCalculationPeriodsPointer.model so that it is clear which is being referenced.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Reference">
        <xsd:attribute name="href" type="xsd:IDREF" />
      </xsd:extension>
    </xsd:complexContent>
  </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. This entity inherits from the type SharedAmericanExercise.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="SharedAmericanExercise">
        <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: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="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:element name="expirationDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period. For an averaging option this is equivalent to the Termination Date.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <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="CommodityCalculationPeriodsSchedule">
    <xsd:annotation>
      <xsd:documentation>A parametric representation of the Calculation Periods for on Asian option or a leg of a swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="Interval.model" />
      <xsd:element name="balanceOfFirstPeriod" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation>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:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityExercise">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised, how it is priced and how it is settled.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice>
        <xsd:element name="americanExercise" type="CommodityAmericanExercise">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The parameters for defining the 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">
        <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="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>
        <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>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>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:choice>
      <xsd:group ref="CommodityCalculationPeriodsPointer.model" />
    </xsd:sequence>
  </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="xsd:anyURI" 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">
        <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:choice minOccurs="0">
        <xsd:element name="fixingTime" type="BusinessCenterTime">
          <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:choice>
            <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="PricingDays.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" />
            </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:choice>
    </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="xsd:anyURI" default="http://www.fpml.org/coding-scheme/commodity-fx-type" />
      </xsd:extension>
    </xsd:simpleContent>
  </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>
        <xsd:sequence>
          <xsd:element name="marketDisruptionEvents" type="MarketDisruptionEventsEnum">
            <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="SequencedDirsuptionFallback" 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="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="CommodityNotional" 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="CommodityNotional">
        <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="CommodityNotional">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Commodity Notional.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quantityUnit" type="QuantityUnit">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Quantity Unit is the unit of measure applicable for the quantity on the Transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="quantityFrequency" type="CommodityQuantityFrequency">
        <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">
        <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="CommodityNotionalSchedule">
    <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:element name="notionalStep" type="CommodityNotional" 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:group ref="CommodityCalculationPeriodsPointer.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="CommodityOption">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Commodity Option.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="OptionBase">
        <xsd:sequence>
          <xsd:element name="commodity" type="Commodity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the underlying component. At the time of the initial schema design, only underlyers of type Commodity are supported; the choice group in the future could offer the possibility of adding other types later.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityAsian.model" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A group containing properties specific to Asian options.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:group ref="CommodityNotionalQuantity.model" />
          <xsd:element name="exercise" type="CommodityExercise">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The parameters for defining how the commodity option can be exercised and how it is settled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd: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:element name="premium" type="CommodityPremium">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The option premium payable by the buyer to the seller.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="CommodityContent.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </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" />
      <xsd:choice>
        <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:group ref="PricingDays.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 generated.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </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 would 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="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="xsd:anyURI" default="http://www.fpml.org/coding-scheme/commodity-quantity-frequency" />
      </xsd:extension>
    </xsd:simpleContent>
  </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:element name="payRelativeTo" type="PayRelativeToEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Specifies whether the payments occur relative to each adjusted Calculation Period start date or each adjusted Calculation Period end date.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="CommodityCalculationPeriodsPointer.model" />
      <xsd:element name="paymentDaysOffset" type="DateOffset">
        <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="CommoditySpreadSchedule">
    <xsd:annotation>
      <xsd:documentation>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="Money" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>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" />
    </xsd:sequence>
  </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" 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" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CommoditySwap">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Commodity Swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the effective date of this leg of the swap. When defined in relation to a date specified somewhere else in the document (through the relativeDate component), this element will typically point to the effective date of the other leg of the swap.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="terminationDate" type="AdjustableOrRelativeDate">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the termination date of this leg of the swap. When defined in relation to a date specified somewhere else in the document (through the relativeDate component), this element will typically point to the termination date of the other leg of the swap.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="settlementCurrency" type="IdentifiedCurrency">
            <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 maxOccurs="unbounded">
            <xsd:element name="fixedLeg" type="FixedPriceLeg">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Fixed Price Leg.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="floatingLeg" type="FloatingPriceLeg">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Floating Price leg.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:group ref="CommodityContent.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </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="xsd:anyURI" default="http://www.fpml.org/coding-scheme/commodity-market-disruption-fallback" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="FixedPrice">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type defining the Fixed Price.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="price" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The Fixed Price.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="Price.model" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="FixedPriceLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Fixed Price Leg of a Commodity Swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model" />
          <xsd:group ref="CommodityCalculationPeriods.model" />
          <xsd:choice>
            <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>
              <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>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>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:choice>
          </xsd:choice>
          <xsd:group ref="CommodityNotionalQuantity.model" />
          <xsd:group ref="CommodityPaymentDates.model" />
          <xsd:group ref="CommodityFreightFlatRate.model" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID" />
      </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">
        <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 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: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="Money">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The spread over or under the Commodity Reference Price for this leg of the trade. This element is intended to be used for basis trades.</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. This element is intended to be used for basis trades.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <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:sequence>
  </xsd:complexType>
  <xsd:complexType name="FloatingPriceLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Floating Price Leg of a Commodity Swap.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="PayerReceiver.model" />
          <xsd:group ref="CommodityCalculationPeriods.model" />
          <xsd:element name="commodity" type="Commodity">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Specifies the underlying instrument. At this time, 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:group ref="CommodityNotionalQuantity.model" />
          <xsd:element name="calculation" type="FloatingLegCalculation">
            <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" />
          <xsd:group ref="CommodityFreightFlatRate.model" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="id" type="xsd:ID" />
      </xsd:extension>
    </xsd:complexContent>
  </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="Interval">
        <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="Interval" 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" />
      </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="xsd:anyURI" default="http://www.fpml.org/coding-scheme/commodity-market-disruption" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SequencedDirsuptionFallback">
    <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">
        <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">
        <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:element name="commodityOption" type="CommodityOption" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines a commodity option product.</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:group name="LagOrReference.model">
    <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="CommodityAsian.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Model group containing features specific to asian/averaging commodity options.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="effectiveDate" type="AdjustableOrRelativeDate">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The effective date of the Commodity Option Transaction. Note that the Termination/Expiration Date should be specified in expirationDate within the CommodityAmericanExercise type or the CommodityEuropeanExercise type, as applicable.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <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 Periods of the Commodity Option Transaction.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="pricingDates" type="CommodityPricingDates">
        <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="CommodityCalculationPeriodsPointer.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Model group to enable 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: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="CalculationPeriodsReference">
        <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:choice>
  </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">Common pricing may be relevant for a Transaction that references more than one Commodity Reference Price. If Common Pricing is not specified as applicable, it will be deemed not to apply.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="marketDisruption" type="CommodityMarketDisruption" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Market disruption events as defined in the ISDA 1993 Commodity Definitions or in ISDA 2005 Commodity Definitions, as applicable.</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="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="calculationPeriods" type="AdjustableDates">
        <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 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">
        <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="CommodityFreightFlatRate.model">
    <xsd:annotation>
      <xsd:documentation>The Flat Rate, applicable to Wet Voyager Charter Freight Swaps.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="flatRate" type="FlatRateEnum">
        <xsd:annotation>
          <xsd:documentation>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>If flatRate is set to "Fixed", the actual value of the Flat Rate.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CommodityNotionalQuantity.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The different options for specifying the NotionalQuantity. A flat notional for the term of the trade may be specified, or else the Notional Quantity per Calculation Period. In the latter case, there must be a notional quantity 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>
        <xsd:element name="notionalQuantity" type="CommodityNotional">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">The Notional Quantity.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="notionalQuantitySchedule" type="CommodityNotionalSchedule">
          <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: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: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="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="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:choice>
  </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="Price.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Price model group.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="priceCurrency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Currency of the fixed price.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="priceUnit" type="QuantityUnit">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The unit of measure used to calculate the Fixed Price.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="PricingDays.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 the calculation period.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="dayType" type="DayTypeEnum">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The type of day on which pricing occurs.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element name="dayDistribution" type="CommodityFrequencyType">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The method by which the pricing days are distributed across the pricing period.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="dayCount" type="xsd:positiveInteger" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The number of days over which pricing should take place.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element name="dayOfWeek" type="WeeklyRollConventionEnum" 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:sequence>
  </xsd:group>
</xsd:schema>

Collapse ComplexTypes:
Collapse Elements:
Collapse Groups: