<?xml version="1.0" encoding="utf-8"?>
<!-- 
== Copyright (c) 2002-2010. 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/2010/FpML-4-9" xmlns:fpml="http://www.fpml.org/2010/FpML-4-9" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" ecore:nsPrefix="fpml" ecore:package="org.fpml" ecore:documentRoot="FpML" targetNamespace="http://www.fpml.org/2010/FpML-4-9" version="$Revision: 7265 $" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xsd:include schemaLocation="fpml-riskdef-4-9.xsd" />
  <xsd:include schemaLocation="fpml-cd-4-9.xsd" />
  <xsd:complexType name="CompoundingFrequency">
    <xsd:annotation>
      <xsd:documentation source="http://www.FpML.org" xml:lang="en">The frequency at which a rate is compounded.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="compoundingFrequencyScheme" type="xsd:anyURI" default="http://www.fpml.org/coding-scheme/compounding-frequency" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CreditCurve">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A generic credit curve definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructure">
        <xsd:sequence>
          <xsd:group ref="CreditCurveCharacteristics.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CreditCurveValuation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A set of credit curve values, which can include pricing inputs (which are typically credit spreads), default probabilities, and recovery rates.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element name="inputs" type="QuotedAssetSet" minOccurs="0" />
          <xsd:element name="defaultProbabilityCurve" type="DefaultProbabilityCurve" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A curve of default probabilities.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:group ref="RecoveryRate.model" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A recovery rate value or curve.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="DefaultProbabilityCurve">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A set of default probabilities.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element name="baseYieldCurve" type="PricingStructureReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A reference to the yield curve values used as a basis for this credit curve valuation.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="defaultProbabilities" type="TermCurve" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A collection of default probabilities.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ForwardRateCurve">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A curve used to model a set of forward interest rates. Used for forecasting interest rates as part of a pricing calculation.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="assetReference" type="AssetReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to the rate index whose forwards are modeled.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rateCurve" type="TermCurve">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The curve of forward values.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FxCurve">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An fx curve object., which includes pricing inputs and term structures for fx forwards.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructure">
        <xsd:sequence>
          <xsd:group ref="FxCurveCharacteristics.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxCurveValuation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A valuation of an FX curve object., which includes pricing inputs and term structures for fx forwards.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element name="settlementCurrencyYieldCurve" type="PricingStructureReference" minOccurs="0" />
          <xsd:element name="forecastCurrencyYieldCurve" type="PricingStructureReference" minOccurs="0" />
          <xsd:element name="spotRate" type="FxRateSet" minOccurs="0" />
          <xsd:element name="fxForwardCurve" type="TermCurve" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A curve of fx forward rates.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fxForwardPointsCurve" type="TermCurve" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A curve of fx forward point spreads.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="FxRateSet">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A collection of spot FX rates used in pricing.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="QuotedAssetSet">
        <xsd:sequence />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="MultiDimensionalPricingData">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A pricing data set that contains a series of points with coordinates. It is a sparse matrix representation of a multi-dimensional matrix.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="QuotationCharacteristics.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Characteristics that apply to all quotations in the pricing structure.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:element name="point" type="PricingStructurePoint" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ParametricAdjustment">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An adjustment used to accommodate a parameter of the input trade, e.g. the strike.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name" type="xsd:normalizedString">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The name of the adjustment parameter (e.g. "Volatility Skew").</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="inputUnits" type="PriceQuoteUnits" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The units of the input parameter, e.g. Yield.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="datapoint" type="ParametricAdjustmentPoint" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The values of the adjustment parameter.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ParametricAdjustmentPoint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A value of the adjustment point, consisting of the x value and the corresponding y value.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="parameterValue" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The value of the independent variable (e.g. strike offset).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="adjustmentValue" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The value of the dependent variable, the actual adjustment amount.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PricingStructurePoint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A single valued point with a set of coordinates that define an arbitrary number of indentifying indexes (0 or more). Note that the collection of coordinates/coordinate references for a PricingStructurePoint must not define a given dimension (other than "generic") more than once. This is to avoid ambiguity.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="PricingCoordinateOrReference.model" minOccurs="0" maxOccurs="unbounded" />
      <xsd:group ref="UnderlyingAssetOrReference.model" minOccurs="0" />
      <xsd:group ref="Quotation.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A quotation for a specific point, including anny characteristics that may be unique to that point.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="TermCurve">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A curve consisting only of values over a term. This is a restricted form of One Dimensional Structure.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="interpolationMethod" type="InterpolationMethod" minOccurs="0" />
      <xsd:element name="extrapolationPermitted" type="xsd:boolean" minOccurs="0" />
      <xsd:element name="point" type="TermPoint" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TermPoint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A value point that can have a time dimension. Allows bid, mid, ask, and spread values to be represented.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="term" type="TimeDimension">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The time dimension of the point (tenor and/or date)</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="BidMidAsk.model" />
      <xsd:element name="spreadValue" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The spread value can be used in conjunction with the "mid" value to define the bid and the ask value.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="definition" type="AssetReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An optional reference to an underlying asset that defines the meaning of the value, i.e. the product that the value corresponds to. For example, this could be a discount instrument.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" />
  </xsd:complexType>
  <xsd:complexType name="VolatilityMatrix">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A matrix of volatilities with dimension 0-3.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element name="dataPoints" type="MultiDimensionalPricingData">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The raw volatility matrix data, expressed as a multi-dimensional array.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="adjustment" type="ParametricAdjustment" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An adjustment factor, such as for vol smile/skew.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="VolatilityRepresentation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A representation of volatilities of an asset. This is a generic structure whose values can be supplied in a specific volatility matrix.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructure">
        <xsd:sequence>
          <xsd:element name="asset" type="AnyAssetReference">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A reference to the asset whose volatility is modeled.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="YieldCurve">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A generic yield curve object, which can be valued in a variety of ways.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructure">
        <xsd:sequence>
          <xsd:group ref="YieldCurveCharacteristics.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="YieldCurveValuation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The values of a yield curve, including possibly inputs and outputs (dfs, forwards, zero rates).</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="PricingStructureValuation">
        <xsd:sequence>
          <xsd:element name="inputs" type="QuotedAssetSet" minOccurs="0" />
          <xsd:element name="zeroCurve" type="ZeroRateCurve" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A curve of zero rates.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="forwardCurve" type="ForwardRateCurve" minOccurs="0" maxOccurs="unbounded">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A curve of forward rates.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="discountFactorCurve" type="TermCurve" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A curve of discount factors.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ZeroRateCurve">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A curve used to model a set of zero-coupon interest rates.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="compoundingFrequency" type="CompoundingFrequency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The frequency at which the rates are compounded (e.g. continuously compounded).</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="rateCurve" type="TermCurve">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The curve of zero-coupon values.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="creditCurve" type="CreditCurve" substitutionGroup="pricingStructure" />
  <xsd:element name="creditCurveValuation" type="CreditCurveValuation" substitutionGroup="pricingStructureValuation" />
  <xsd:element name="fxCurve" type="FxCurve" substitutionGroup="pricingStructure" />
  <xsd:element name="fxCurveValuation" type="FxCurveValuation" substitutionGroup="pricingStructureValuation" />
  <xsd:element name="volatilityMatrixValuation" type="VolatilityMatrix" substitutionGroup="pricingStructureValuation" />
  <xsd:element name="volatilityRepresentation" type="VolatilityRepresentation" substitutionGroup="pricingStructure" />
  <xsd:element name="yieldCurve" type="YieldCurve" substitutionGroup="pricingStructure" />
  <xsd:element name="yieldCurveValuation" type="YieldCurveValuation" substitutionGroup="pricingStructureValuation" />
  <xsd:group name="BidMidAsk.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The bid, mid, or ask values relevant for a quote</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="bid" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A price "bid" by a buyer for an asset, i.e. the price a buyer is willing to pay.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="mid" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A price midway between the bid and the ask price.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ask" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A price "asked" by a seller for an asset, i.e. the price at which a seller is willing to sell.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="CreditCurveCharacteristics.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The set of characterstics that describe the outputs of a credit curve.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="CreditEntity.model" />
      <xsd:element name="creditEvents" type="CreditEvents" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The material credit event.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="seniority" type="CreditSeniority">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The level of seniority of the deliverable obligation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="secured" type="xsd:boolean">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Whether the deliverable obligation is secured or unsecured.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="currency" type="Currency">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The currency of denomination of the deliverable obligation.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="obligations" type="Obligations" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The underlying obligations of the reference entity on which you are buying or selling protection</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="deliverableObligations" type="DeliverableObligations" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">What sort of obligation may be delivered in the event of the credit event. ISDA 2003 Term: Obligation Category/Deliverable Obligation Category</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="FxCurveCharacteristics.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The set of characterstics that describe the outputs of a fx curve.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="quotedCurrencyPair" type="QuotedCurrencyPair">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Defines the two currencies for an FX trade and the quotation relationship between the two currencies.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="RecoveryRate.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The model of the recovery rate (single value or curve).</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="recoveryRate" type="xsd:decimal">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A single recovery rate, to be used for all terms.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="recoveryRateCurve" type="TermCurve">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A curve of recovery rates, allowing different terms to have different recovery rates.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="UnderlyingAssetOrReference.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Include or reference an underlying asset definition.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element ref="underlyingAsset">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An underlying asset that defines the meaning of the value, i.e. the product that the value corresponds to. For example, this could be a caplet or simple european swaption.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="underlyingAssetReference" type="AssetReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to an underlying asset that defines the meaning of the value, i.e. the product that the value corresponds to. For example, this could be a caplet or simple european swaption.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="YieldCurveCharacteristics.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The set of characteristics that describe the outputs of a yield curve.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="algorithm" type="xsd:string" minOccurs="0" />
      <xsd:element name="forecastRateIndex" type="ForecastRateIndex" minOccurs="0" />
    </xsd:sequence>
  </xsd:group>
</xsd:schema>

