Schema Name: fpml-repo-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: 11232 $" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:include schemaLocation="fpml-business-events-5-9.xsd" />
  <xsd:complexType name="AdjustableOffset">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">An adjustable offset can be used to specify a number of days, business or calendar, for example in a notice period.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Offset">
        <xsd:sequence>
          <xsd:group ref="BusinessCentersOrReference.model" minOccurs="0" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="CollateralProfile">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="collateralProfileScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CollateralType">
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="collateralTypeScheme" type="NonEmptyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="CollateralValuation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">This type is used in Repo trades, to specify the valuation of a specific piece of collateral in the transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:group ref="BondCollateral.model">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">When the instrument being used in a transaction is a bond, the group above should be used to properly value the instrument, in terms of price, accruals and notional.</xsd:documentation>
          </xsd:annotation>
        </xsd:group>
        <xsd:group ref="UnitContract.model">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">When the instrument being used in a transaction is an equity, or any contract traded in units, this group should be used to define the quantity, price and valuation of the instrument.</xsd:documentation>
          </xsd:annotation>
        </xsd:group>
      </xsd:choice>
      <xsd:element name="assetReference" type="AssetReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to explicitly identify which asset is being valued.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DeliveryMethod">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Specifies delivery methods for securities transactions. This coding-scheme defines the possible delivery methods for securities.</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="Scheme">
        <xsd:attribute name="deliveryMethodScheme" type="NonEmptyURI" default="http://www.fpml.org/coding-scheme/delivery-method" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="InitialMargin">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines initial margin applied to a repo transaction. Initial margin is an agreed premium to the Purchase Price of a repo to determine the required Market Value of the collateral to be delivered on the Purchase Date. It reflects quality of the collateral. Its aim is to calculate the risk-adjusted or liquidation value of collateral.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="marginType" type="MarginTypeEnum" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An element defining the type of assets (cash or securities) specified to apply as margin to the repo transaction. See GMRA 2011 paragraph 2(h) for "Cash Margin" and GMRA 2011 paragraph 2(cc) for "Margin Securities".</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="margin" type="InitialMarginCalculation" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Initial margin calculation for a collateral asset. Initial margin requirements may be specified for multiple pieces of collateral.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="marginThreshold" type="NonNegativeMoney" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An element defining a margin threshold which is the Net Exposure of a trade below which parties agree they will not call a margin from each other.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="minimumTransferAmount" type="NonNegativeMoney" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An element defining a minimum transfer amount which is the minimum margin call parties will make once the margin threshold (or margin ratio threshold / haircut threshold) has been exceeded.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InitialMarginCalculation">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Defines the initial margin calculation applicable to a single piece of collateral.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A choice between initial margin ratio and haircut.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="marginRatio" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An element defining an initial margin expressed as a ratio of the Market Value of the collateral to the Purchase Price. A default value of initial margin ratio of 1.00 means there is no margin and thus no risk related with the collateral. See GMRA 2000 paragraph 2(z) and GMRA 2011 paragraph 2(bb).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="marginRatioThreshold" type="xsd:decimal" minOccurs="0" maxOccurs="2">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An element defining a margin ratio threshold which is the value above (when it's lower than initial margin ratio) or below (when it's higher than initial margin ratio) which parties agree they will not call a margin from each other.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element name="haircut" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An element defining a haircut expressed as the percentage difference between the Market Value of the collateral and the Purchase Price of the repo and calculated as 100 multiplied by a ratio of the difference between the Market Value of the collateral and the Purchase Price of the repo to the Market Value of the collateral. Haircut is alternative way to adjust the value of collateral sold in a repurchase agreement to initial margin ratio. Because an initial margin is a percentage of the Purchase Price, while a haircut is a percentage of the Market Value of collateral, the arithmetic of initial margins and haircuts is slightly different. For example, an initial margin of 102% is not equivalent to a haircut of 2%, but to 1.961% (ie 100/102%). See GMRA 2011 paragraph 2(aa).</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="haircutThreshold" type="xsd:decimal" minOccurs="0" maxOccurs="2">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">An element defining a haircut percentage threshold which is the value above (when it's lower than initial haircut) or below (when it's higher than initial haircut) which parties agree they will not call a margin from each other.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:choice>
      <xsd:element name="assetReference" type="AssetReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to the collateral asset to which the margin requirement applies. This element should be produced in the case where margin requirements are specified for multiple pieces of collateral, and may be omitted otherwise.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PartyNoticePeriod">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type to represent agreed period of notice to be given in advance before exercise of the open repo trade by a party requesting such exercise and reference to that party.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="partyReference" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A reference to a party who has the right to request exercise of the open repo trade and for whom noticePeriod is defined.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="noticePeriod" type="AdjustableOffset" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Notice period for open repo transactions in number of days. This element represents agreed period of notice to be given in advance before exercise of the repo trade by a party requesting such exercise.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RelativePrice">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A type which represents Pricing relative to a Benchmark.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="spread" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Basis Point spread over a Benchmark.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="BondEquity.model" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The benchmark being referred to; either a bond or equity product.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Repo">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A Repo, modeled as an FpML:Product. Note: this Repo model is a candidate model for further industry input.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Product">
        <xsd:sequence>
          <xsd:choice minOccurs="0">
            <xsd:element name="fixedRateSchedule" type="Schedule">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The fixed repo rate. It is usually fixed for the duration of the agreement but can be changed with mid-life events (rate changes) except for sell/buy-back trades.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="floatingRateCalculation" type="FloatingRateCalculation">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">The floating rate index and tenor, with additional definitions relating to the calculation of floating rate amounts, including spread and multiplier. It is used for floating rate repos. For example, floating rate repos on European markets are made against EONIA.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="dayCountFraction" type="DayCountFraction" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The day count fraction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice minOccurs="0">
            <xsd:element name="duration" type="RepoDurationEnum">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A duration code for the repo transaction. This defines a type of a repo transaction with fixed duration.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:sequence>
              <xsd:element name="callingParty" type="CallingPartyEnum" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">A party to the open repo transaction that has a right to demand for exercise of far leg of the open repo transaction. This element represents an enumerated list that includes InitialBuyer, InitialSeller, Either, AsDefinedInMasterAgreement. In the default case either party can call for closing open repo transaction, unless otherwise specified. If electing parties are not defined in open repo confirmation, when they are defined by default in the Master Agreement, AsDefinedInMasterAgreement value should be used. Exact buyer/seller related parties, including any third parties who can demand exercise of open repo transactions on behalf of the parties to the trade (calculation agent, executing broker, etc.), can be defined in the relatedParty element (tradeHeader/partyTradeInformation).</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:element name="callDate" type="AdjustableOrRelativeDate" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation xml:lang="en">Defines the latest date when the open repo transaction can be exercised (and no later than which it must be exercised) on demand by a party to the trade indicated in the electingParty element (or in the Master Agreement, if the electingParty element has AsDefinedInMasterAgreement value). For instance, in the open repo transaction with callDate agreed as business day one year after the trade date far leg can be settled on any day after the near leg settlement date and before and including the callDate. If the call date is not defined in trade terms and / or not included into trade confirmation this element can be omitted.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
              <xsd:choice minOccurs="0">
                <xsd:element name="noticePeriod" type="AdjustableOffset">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">Notice period for open repo transactions in number of days. This element represents agreed period of notice to be given in advance before exercise of the repo trade by a party requesting such exercise.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
                <xsd:element name="partyNoticePeriod" type="PartyNoticePeriod" maxOccurs="2">
                  <xsd:annotation>
                    <xsd:documentation xml:lang="en">Notice period for open repo transactions referenced to a party to the trade, in number of days. This element represents agreed period of notice to be given in advance before exercise of the repo trade by a party requesting such exercise and reference to that party.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:choice>
            </xsd:sequence>
          </xsd:choice>
          <xsd:element name="initialMargin" type="InitialMargin" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Defines initial margin applied to a repo transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="nearLeg" type="RepoNearLeg" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">A repo contract is modeled as two purchase/repurchase transactions which are called legs. This is the near leg, i.e. the transaction that will be executed on the near settlement date of the contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="farLeg" type="RepoFarLeg" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The far leg of the repo contract, i.e. the repurchase transaction. The BuyerSeller model in the far leg must be the exact opposite of the one found in the near leg.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:choice minOccurs="0">
            <xsd:group ref="BondEquity.model" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">A list of the financial instruments that the repo contract may reference.</xsd:documentation>
              </xsd:annotation>
            </xsd:group>
            <xsd:element name="triParty" type="TriParty" />
          </xsd:choice>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RepoFarLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A transaction leg for a repo is equivalent to a single cash transaction. It is augmented here to carry some values that are of interest for the repo. Also note that the BuyerSeller model in this transaction must be the exact opposite of the one found in the near leg.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="RepoLegBase">
        <xsd:sequence>
          <xsd:group ref="SettlementAmountOrCurrency.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Settlement amount of the securities transaction. When the exact financial amount to the transaction is not known (for instance in far leg of a floating rate repo), this structure allows participants to state the currency of the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="fxRate" type="FxRate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Indicates the rate of a currency conversion that is used to compute settlement amount for cross-currency transactions.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence minOccurs="0">
            <xsd:element name="deliveryMethod" type="DeliveryMethod" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Specifies a delivery method for the security transaction.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="deliveryDate" type="AdjustableOrRelativeDate" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Delivery Date for the transaction. Delivery Date can be populated when it is not equal to the Settlement Date.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="collateral" type="CollateralValuation" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Collateral element is used to carry the quantity and price details that are required to ensure that a repo contract is executed at fair value, with the value of the collateral matching the cash amount of the repo. Collateral is declared as optional here, with multiple cardinalities, since there can be a repo "Multi", with multiple instruments specified, or a "Cash Borrow/Loan" and “TriPartyRepo” with no collateral. In general cases, however it should be specified. This element can be omitted in farLeg.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
          <xsd:element name="repoInterest" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">The repo interest is basically the difference between the settlement amounts at spot and forward date. It is a fully figured amount, but it does not have to be specified in the message. It is not a 'Money' amount as it is implicitly expressed in the settlement currency.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RepoLegBase">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A transaction leg for a repo is equivalent to a single cash transaction. It is augmented here to carry some values that are of interest for the repo. Also note that the BuyerSeller model in this transaction must be the exact opposite of the one found in the near leg.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="Leg">
        <xsd:sequence>
          <xsd:group ref="BuyerSeller.model">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">References to the buyer and the seller of this leg of the repo contract.</xsd:documentation>
            </xsd:annotation>
          </xsd:group>
          <xsd:element name="settlementDate" type="AdjustableOrRelativeDate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Settlement or Payment Date for the transaction.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="RepoNearLeg">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A transaction leg for a repo is equivalent to a single cash transaction.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="RepoLegBase">
        <xsd:sequence>
          <xsd:element name="settlementAmount" type="Money" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Settlement Amount</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="fxRate" type="FxRate" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Indicates the rate of a currency conversion that is used to compute settlement amount for cross-currency transactions.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:sequence minOccurs="0">
            <xsd:element name="deliveryMethod" type="DeliveryMethod" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Specifies a delivery method for the security transaction.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="deliveryDate" type="AdjustableOrRelativeDate" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Delivery Date for the transaction. Delivery Date can be populated when it is not equal to the Settlement Date.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="collateral" type="CollateralValuation" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">Collateral element is used to carry the quantity and price details that are required to ensure that a repo contract is executed at fair value, with the value of the collateral matching the cash amount of the repo. Collateral is declared as optional here, with multiple cardinalities, since there can be a repo "Multi", with multiple instruments specified, or a "Cash Borrow/Loan" and “TriPartyRepo” with no collateral. In general cases, however it should be specified. This element can be omitted in farLeg.</xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="TriParty">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">The tri-party terms.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="triPartyAgent" type="PartyReference" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The reference to the tri-party agent.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="collateralProfile" type="CollateralProfile" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The collateral profile specified at the tri-party agent.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="collateralType" type="CollateralType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The collateral type, which is a restriction of the collateral deemed acceptable for the purpose of the transaction.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="repo" type="Repo" substitutionGroup="product">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">Global element representing a Repo.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:group name="BondCollateral.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A group which has Collateral elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="nominalAmount" type="Money" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Total nominal amount of the given bonds used as collateral.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:group ref="BondPriceAndYield.model" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A model describing price of the given bonds used as collateral.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:element name="accrualsAmount" type="Money" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Accruals expressed as amount.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
  <xsd:group name="BondEquity.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A model group that allows us to specify that a repo contract can reference bond or equity instruments.</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:annotation>
        <xsd:documentation xml:lang="en">Most repos are done using Bonds and Bond subclasses as collateral. However in some jurisdictions repos on equities are widely used. It is technically possible to execute a repo on an equity, as long as the mark to market is correctly done during the lifetime of the repo.</xsd:documentation>
      </xsd:annotation>
      <xsd:group ref="BondChoice.model">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">A bond, or bond subtype referenced by a repo contract.</xsd:documentation>
        </xsd:annotation>
      </xsd:group>
      <xsd:element ref="equity">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">An equity referenced by a repo contract.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>
  <xsd:group name="BondPriceAndYield.model">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">A group which has either Bond Price or Yield elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:annotation>
        <xsd:documentation xml:lang="en">These elements express a price in terms of percentage of nominal amount.</xsd:documentation>
      </xsd:annotation>
      <xsd:choice>
        <xsd:annotation>
          <xsd:documentation xml:lang="en">One of cleanPrice or dirtyPrice must exist.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
          <xsd:element name="cleanPrice" type="xsd:decimal">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Bond clean price, expressed in percentage points, 100 is the initial value of the bond.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="accruals" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Accruals, relationship is clean price and accruals equals dirty price, all prices are expressed in percentage points, 100 is the initial value of the bond.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="dirtyPrice" type="xsd:decimal" minOccurs="0">
            <xsd:annotation>
              <xsd:documentation xml:lang="en">Bond dirty price, expressed in percentage points, 100 is the initial value of the bond.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:element name="dirtyPrice" type="xsd:decimal">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">Bond dirty price, expressed in percentage points, 100 is the initial value of the bond.</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="relativePrice" type="RelativePrice" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Bond price relative to a Benchmark.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="yieldToMaturity" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Yield to Maturity.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="inflationFactor" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">The inflation factor is specified for inflation-linked products which require some additional elements to calculate prices correctly.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="allInPrice" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">Bond all-in-price which is a price that includes all relevant price adjustments (i.e. accrued interest, haircut or margin ratio, inflation factor,etc.). It expresses a price in terms of percentage of nominal amount.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:group>
</xsd:schema>

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