Rosetta
INGEST
Convert your structured documents such as XML into CDM objects
Alternatively you can contact us to learn more
Rosetta Ingest converts FpML 5.x and Rosetta Workbench Event XML messages into ISDA CDM 1.x Java objects.
FpML® (Financial products Markup Language, from fpml.org) is the open source XML standard for electronic dealing and processing of OTC derivatives.
Once converted into a CDM (Java) object, Rosetta Ingest can then further serialise it into a JSON representation, as per the following 2-step process:
Please note that you must be an ISDA member to have access to the ISDA CDM.
Example
In this example we ingest an XLM file called “ird-ex01-vanilla-swap.xml”. This file comes as part of a set of example documents within the ISDA CDM distribution package. The original input document is shown below:
ird-ex01-vanilla-swap.xml
<?xml version="1.0" encoding="utf-8"?> <dataDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fpml.org/FpML-5/confirmation ../../schemas/fpml-5-10/confirmation/fpml-main-5-10.xsd" xmlns="http://www.fpml.org/FpML-5/confirmation" fpmlVersion="5-10"> <trade> <tradeHeader> <partyTradeIdentifier> <partyReference href="party1" /> <tradeId tradeIdScheme="http://www.partyA.com/swaps/trade-id">TW9235</tradeId> </partyTradeIdentifier> <partyTradeIdentifier> <partyReference href="party2" /> <tradeId tradeIdScheme="http://www.barclays.com/swaps/trade-id">SW2000</tradeId> </partyTradeIdentifier> <tradeDate>1994-12-12</tradeDate> </tradeHeader> <swap> <swapStream> <payerPartyReference href="party1" /> <receiverPartyReference href="party2" /> <calculationPeriodDates id="floatingCalcPeriodDates"> <effectiveDate> <unadjustedDate>1994-12-14</unadjustedDate> <dateAdjustments> <businessDayConvention>NONE</businessDayConvention> </dateAdjustments> </effectiveDate> <terminationDate> <unadjustedDate>1999-12-14</unadjustedDate> <dateAdjustments> <businessDayConvention>MODFOLLOWING</businessDayConvention> <businessCenters id="primaryBusinessCenters"> <businessCenter>DEFR</businessCenter> </businessCenters> </dateAdjustments> </terminationDate> <calculationPeriodDatesAdjustments> <businessDayConvention>MODFOLLOWING</businessDayConvention> <businessCentersReference href="primaryBusinessCenters" /> </calculationPeriodDatesAdjustments> <calculationPeriodFrequency> <periodMultiplier>6</periodMultiplier> <period>M</period> <rollConvention>14</rollConvention> </calculationPeriodFrequency> </calculationPeriodDates> <paymentDates> <calculationPeriodDatesReference href="floatingCalcPeriodDates" /> <paymentFrequency> <periodMultiplier>6</periodMultiplier> <period>M</period> </paymentFrequency> <payRelativeTo>CalculationPeriodEndDate</payRelativeTo> <paymentDatesAdjustments> <businessDayConvention>MODFOLLOWING</businessDayConvention> <businessCentersReference href="primaryBusinessCenters" /> </paymentDatesAdjustments> </paymentDates> <resetDates id="resetDates"> <calculationPeriodDatesReference href="floatingCalcPeriodDates" /> <resetRelativeTo>CalculationPeriodStartDate</resetRelativeTo> <fixingDates> <periodMultiplier>-2</periodMultiplier> <period>D</period> <dayType>Business</dayType> <businessDayConvention>NONE</businessDayConvention> <businessCenters> <businessCenter>GBLO</businessCenter> </businessCenters> <dateRelativeTo href="resetDates" /> </fixingDates> <resetFrequency> <periodMultiplier>6</periodMultiplier> <period>M</period> </resetFrequency> <resetDatesAdjustments> <businessDayConvention>MODFOLLOWING</businessDayConvention> <businessCentersReference href="primaryBusinessCenters" /> </resetDatesAdjustments> </resetDates> <calculationPeriodAmount> <calculation> <notionalSchedule> <notionalStepSchedule> <initialValue>50000000.00</initialValue> <currency currencyScheme="http://www.fpml.org/coding-scheme/external/iso4217">EUR</currency> </notionalStepSchedule> </notionalSchedule> <floatingRateCalculation> <floatingRateIndex>EUR-LIBOR-BBA</floatingRateIndex> <indexTenor> <periodMultiplier>6</periodMultiplier> <period>M</period> </indexTenor> </floatingRateCalculation> <dayCountFraction>ACT/360</dayCountFraction> </calculation> </calculationPeriodAmount> </swapStream> <swapStream> <payerPartyReference href="party2" /> <receiverPartyReference href="party1" /> <calculationPeriodDates id="fixedCalcPeriodDates"> <effectiveDate> <unadjustedDate>1994-12-14</unadjustedDate> <dateAdjustments> <businessDayConvention>NONE</businessDayConvention> </dateAdjustments> </effectiveDate> <terminationDate> <unadjustedDate>1999-12-14</unadjustedDate> <dateAdjustments> <businessDayConvention>MODFOLLOWING</businessDayConvention> <businessCentersReference href="primaryBusinessCenters" /> </dateAdjustments> </terminationDate> <calculationPeriodDatesAdjustments> <businessDayConvention>MODFOLLOWING</businessDayConvention> <businessCentersReference href="primaryBusinessCenters" /> </calculationPeriodDatesAdjustments> <calculationPeriodFrequency> <periodMultiplier>1</periodMultiplier> <period>Y</period> <rollConvention>14</rollConvention> </calculationPeriodFrequency> </calculationPeriodDates> <paymentDates> <calculationPeriodDatesReference href="fixedCalcPeriodDates" /> <paymentFrequency> <periodMultiplier>1</periodMultiplier> <period>Y</period> </paymentFrequency> <payRelativeTo>CalculationPeriodEndDate</payRelativeTo> <paymentDatesAdjustments> <businessDayConvention>MODFOLLOWING</businessDayConvention> <businessCentersReference href="primaryBusinessCenters" /> </paymentDatesAdjustments> </paymentDates> <calculationPeriodAmount> <calculation> <notionalSchedule> <notionalStepSchedule> <initialValue>50000000.00</initialValue> <currency currencyScheme="http://www.fpml.org/coding-scheme/external/iso4217">EUR</currency> </notionalStepSchedule> </notionalSchedule> <fixedRateSchedule> <initialValue>0.06</initialValue> </fixedRateSchedule> <dayCountFraction>30E/360</dayCountFraction> </calculation> </calculationPeriodAmount> </swapStream> </swap> </trade> <party id="party1"> <partyId partyIdScheme="http://www.fpml.org/coding-scheme/external/iso9362">PARTYAUS33</partyId> <partyName>Party A</partyName> </party> <party id="party2"> <partyId partyIdScheme="http://www.fpml.org/coding-scheme/external/iso9362">BARCGB2L</partyId> </party> </dataDocument>
ird-ex01-vanilla-swap.json
{ "contractIdentifier" : [ { "identifierValue" : { "identifier" : "TW9235", "identifierScheme" : "http://www.partyA.com/swaps/trade-id" }, "partyReference" : "party1" }, { "identifierValue" : { "identifier" : "SW2000", "identifierScheme" : "http://www.barclays.com/swaps/trade-id" }, "partyReference" : "party2" } ], "contractualProduct" : { "economicTerms" : { "payout" : { "interestRatePayout" : [ { "calculationPeriodDates" : { "calculationPeriodDatesAdjustments" : { "businessCenters" : { "businessCentersReference" : "primaryBusinessCenters" }, "businessDayConvention" : "MODFOLLOWING" }, "calculationPeriodFrequency" : { "period" : "M", "periodMultiplier" : 6, "rollConvention" : "_14" }, "effectiveDate" : { "adjustableDate" : { "dateAdjustments" : { "businessDayConvention" : "NONE" }, "unadjustedDate" : "1994-12-14" } }, "id" : "floatingCalcPeriodDates", "terminationDate" : { "dateAdjustments" : { "businessCenters" : { "businessCenter" : [ "DEFR" ], "id" : "primaryBusinessCenters" }, "businessDayConvention" : "MODFOLLOWING" }, "unadjustedDate" : "1999-12-14" } }, "dayCountFraction" : "ACT_360", "interestRate" : { "floatingRate" : { "floatingRateIndex" : "EUR_LIBOR_BBA", "indexTenor" : { "period" : "M", "periodMultiplier" : 6 } } }, "payerReceiver" : { "payerPartyReference" : "party1", "receiverPartyReference" : "party2" }, "paymentDates" : { "calculationPeriodDatesReference" : "floatingCalcPeriodDates", "payRelativeTo" : "CALCULATION_PERIOD_END_DATE", "paymentDatesAdjustments" : { "businessCenters" : { "businessCentersReference" : "primaryBusinessCenters" }, "businessDayConvention" : "MODFOLLOWING" }, "paymentFrequency" : { "period" : "M", "periodMultiplier" : 6 } }, "quantity" : { "notionalSchedule" : { "notionalStepSchedule" : { "initialValue" : 50000000.00, "currency" : "EUR", "currencyScheme" : "http://www.fpml.org/coding-scheme/external/iso4217" } } }, "resetDates" : { "calculationPeriodDatesReference" : "floatingCalcPeriodDates", "fixingDates" : { "period" : "D", "periodMultiplier" : -2, "dayType" : "BUSINESS", "businessCenters" : { "businessCenter" : [ "GBLO" ] }, "businessDayConvention" : "NONE", "dateRelativeTo" : "resetDates" }, "id" : "resetDates", "resetDatesAdjustments" : { "businessCenters" : { "businessCentersReference" : "primaryBusinessCenters" }, "businessDayConvention" : "MODFOLLOWING" }, "resetFrequency" : { "period" : "M", "periodMultiplier" : 6 }, "resetRelativeTo" : "CALCULATION_PERIOD_START_DATE" } }, { "calculationPeriodDates" : { "calculationPeriodDatesAdjustments" : { "businessCenters" : { "businessCentersReference" : "primaryBusinessCenters" }, "businessDayConvention" : "MODFOLLOWING" }, "calculationPeriodFrequency" : { "period" : "Y", "periodMultiplier" : 1, "rollConvention" : "_14" }, "effectiveDate" : { "adjustableDate" : { "dateAdjustments" : { "businessDayConvention" : "NONE" }, "unadjustedDate" : "1994-12-14" } }, "id" : "fixedCalcPeriodDates", "terminationDate" : { "dateAdjustments" : { "businessCenters" : { "businessCentersReference" : "primaryBusinessCenters" }, "businessDayConvention" : "MODFOLLOWING" }, "unadjustedDate" : "1999-12-14" } }, "dayCountFraction" : "_30E_360", "interestRate" : { "fixedRate" : { "initialValue" : 0.06 } }, "payerReceiver" : { "payerPartyReference" : "party2", "receiverPartyReference" : "party1" }, "paymentDates" : { "calculationPeriodDatesReference" : "fixedCalcPeriodDates", "payRelativeTo" : "CALCULATION_PERIOD_END_DATE", "paymentDatesAdjustments" : { "businessCenters" : { "businessCentersReference" : "primaryBusinessCenters" }, "businessDayConvention" : "MODFOLLOWING" }, "paymentFrequency" : { "period" : "Y", "periodMultiplier" : 1 } }, "quantity" : { "notionalSchedule" : { "notionalStepSchedule" : { "initialValue" : 50000000.00, "currency" : "EUR", "currencyScheme" : "http://www.fpml.org/coding-scheme/external/iso4217" } } } } ] }, "rosettaKeyValue" : "c4057420" }, "productIdentification" : { "productQualifier" : "InterestRate_IRSwap_FixedFloat_PlainVanilla" } }, "party" : [ { "id" : "party1", "legalEntity" : { "name" : "Party A" }, "partyId" : [ "PARTYAUS33" ], "partyIdScheme" : "http://www.fpml.org/coding-scheme/external/iso9362" }, { "id" : "party2", "partyId" : [ "BARCGB2L" ], "partyIdScheme" : "http://www.fpml.org/coding-scheme/external/iso9362" } ], "tradeDate" : { "date" : "1994-12-12" } }
Diagnostics
{ "mappingIssues": [], "preValidationIssues": [], "validationIssues": [ "Validation SUCCESS on [Contract] for [DATA_RULE] [DeliverableObligations_physicalSettlementMatrix] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [Obligations_physicalSettlementMatrix] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [CreditEvents_physicalSettlementMatrix] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [Restructuring_physicalSettlementMatrix] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [AdditionalFixedPayments_mortgages] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FloatingAmountEvents_mortgages] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [CreditEvents_mortgages] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [Contract_hedgingParty] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [Contract_determiningParty] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [Contract_barrierDerterminationAgent] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [Contract_clearedDate] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_1] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_7] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_8] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_11] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_19] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_20] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_23] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_24] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_25] ", "Validation SUCCESS on [Contract] for [DATA_RULE] [FpML_cd_32] ", "Validation SUCCESS on [Contract] for [MODEL_INSTANCE] [Contract] ", "Validation SUCCESS on [ContractualProduct] for [MODEL_INSTANCE] [ContractualProduct] ", "Validation SUCCESS on [ProductIdentification] for [MODEL_INSTANCE] [ProductIdentification] ", "Validation SUCCESS on [EconomicTerms] for [DATA_RULE] [Vanilla_AnnualPaymentDifferentResetFrequency] ", "Validation SUCCESS on [EconomicTerms] for [DATA_RULE] [Vanilla_SemiAnnualPayment_QuarterlyReset] ", "Validation SUCCESS on [EconomicTerms] for [DATA_RULE] [Vanilla_QuarterlyPayment_MonthlyReset] ", "Validation SUCCESS on [EconomicTerms] for [MODEL_INSTANCE] [EconomicTerms] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [InterestRatePayout_quantity] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [InterestRatePayout_dayCountFraction] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [InterestRatePayout_paymentDates] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [PaymentDates_payRelativeTo] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [PaymentDates_paymentDatesAdjustments] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [PaymentDates_paymentFrequency] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [FpML_cd_26_28] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [FpML_cd_27] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [FpML_cd_30] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [CalculationPeriodDates_calculationPeriodDatesAdjustments] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [CalculationPeriodDates_calculationPeriodFrequency] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [ResetDates_interestRateSwap] ", "Validation SUCCESS on [Payout] for [DATA_RULE] [TransactedPrice_marketPrice] ", "Validation SUCCESS on [Payout] for [MODEL_INSTANCE] [Payout] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [InterestRatePayout_futureValueNotional] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FutureValueNotional_terminationDate] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [InterestRatePayout_actualQuantity] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_1] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_6] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_8] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_23] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_24] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [InitialStub_FinalStub] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FinalStub_lastRegularPaymentDate] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [SettlementProvision_settlementCurrency] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_7_1] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_9] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_29] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [CalculationPeriodDates_firstCompoundingPeriodEndDate] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FirstRegularPeriodStartDate_initialStub] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [LastRegularPeriodEndDate_finalStub] ", "Validation SUCCESS on [InterestRatePayout] for [MODEL_INSTANCE] [InterestRatePayout] ", "Validation SUCCESS on [ContractualQuantity] for [CHOICE_RULE] [ContractualQuantity_choice] ", "Validation SUCCESS on [ContractualQuantity] for [MODEL_INSTANCE] [ContractualQuantity] ", "Validation SUCCESS on [NotionalSchedule] for [DATA_RULE] [FpML_ird_61] ", "Validation SUCCESS on [NotionalSchedule] for [MODEL_INSTANCE] [NotionalSchedule] ", "Validation SUCCESS on [NonNegativeAmountSchedule] for [MODEL_INSTANCE] [NonNegativeAmountSchedule] ", "Validation SUCCESS on [ResetDates] for [DATA_RULE] [ResetDates_rateCutOffDaysOffset] ", "Validation SUCCESS on [ResetDates] for [DATA_RULE] [ResetFrequency_weekly] ", "Validation SUCCESS on [ResetDates] for [DATA_RULE] [ResetFrequency_notWeekly] ", "Validation SUCCESS on [ResetDates] for [MODEL_INSTANCE] [ResetDates] ", "Validation SUCCESS on [ResetFrequency] for [DATA_RULE] [FpML_ird_49] ", "Validation SUCCESS on [ResetFrequency] for [MODEL_INSTANCE] [ResetFrequency] ", "Validation SUCCESS on [RelativeDateOffset] for [MODEL_INSTANCE] [RelativeDateOffset] ", "Validation SUCCESS on [BusinessCenters] for [CHOICE_RULE] [BusinessCenters_choice] ", "Validation SUCCESS on [BusinessCenters] for [MODEL_INSTANCE] [BusinessCenters] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [BusinessCenters] for [CHOICE_RULE] [BusinessCenters_choice] ", "Validation SUCCESS on [BusinessCenters] for [MODEL_INSTANCE] [BusinessCenters] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_14] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_16] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_17] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_18] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_20] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_21] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_22] ", "Validation SUCCESS on [CalculationPeriodDates] for [CHOICE_RULE] [CalculationPeriodDates_choice1] ", "Validation SUCCESS on [CalculationPeriodDates] for [CHOICE_RULE] [CalculationPeriodDates_choice2] ", "Validation SUCCESS on [CalculationPeriodDates] for [MODEL_INSTANCE] [CalculationPeriodDates] ", "Validation SUCCESS on [CalculationPeriodFrequency] for [DATA_RULE] [FpML_ird_57] ", "Validation SUCCESS on [CalculationPeriodFrequency] for [DATA_RULE] [FpML_ird_58] ", "Validation SUCCESS on [CalculationPeriodFrequency] for [DATA_RULE] [FpML_ird_60] ", "Validation SUCCESS on [CalculationPeriodFrequency] for [MODEL_INSTANCE] [CalculationPeriodFrequency] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [BusinessCenters] for [CHOICE_RULE] [BusinessCenters_choice] ", "Validation SUCCESS on [BusinessCenters] for [MODEL_INSTANCE] [BusinessCenters] ", "Validation SUCCESS on [DateInstances] for [CHOICE_RULE] [DateInstances_choice] ", "Validation SUCCESS on [DateInstances] for [MODEL_INSTANCE] [DateInstances] ", "Validation SUCCESS on [AdjustableDate] for [CHOICE_RULE] [AdjustableDate_choice] ", "Validation SUCCESS on [AdjustableDate] for [MODEL_INSTANCE] [AdjustableDate] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [AdjustableDate] for [CHOICE_RULE] [AdjustableDate_choice] ", "Validation SUCCESS on [AdjustableDate] for [MODEL_INSTANCE] [AdjustableDate] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [BusinessCenters] for [CHOICE_RULE] [BusinessCenters_choice] ", "Validation SUCCESS on [BusinessCenters] for [MODEL_INSTANCE] [BusinessCenters] ", "Validation SUCCESS on [PaymentDates] for [DATA_RULE] [FpML_ird_35_cd_31] ", "Validation SUCCESS on [PaymentDates] for [DATA_RULE] [PaymentDates_paymentDaysOffset] ", "Validation SUCCESS on [PaymentDates] for [CHOICE_RULE] [PaymentDates_choice] ", "Validation SUCCESS on [PaymentDates] for [MODEL_INSTANCE] [PaymentDates] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [BusinessCenters] for [CHOICE_RULE] [BusinessCenters_choice] ", "Validation SUCCESS on [BusinessCenters] for [MODEL_INSTANCE] [BusinessCenters] ", "Validation SUCCESS on [Frequency] for [DATA_RULE] [Frequency_period] ", "Validation SUCCESS on [Frequency] for [DATA_RULE] [Frequency_periodMultiplier] ", "Validation SUCCESS on [Frequency] for [MODEL_INSTANCE] [Frequency] ", "Validation SUCCESS on [PayerReceiver] for [MODEL_INSTANCE] [PayerReceiver] ", "Validation SUCCESS on [InterestRate] for [MODEL_INSTANCE] [InterestRate] ", "Validation SUCCESS on [FloatingRateCalculation] for [MODEL_INSTANCE] [FloatingRateCalculation] ", "Validation SUCCESS on [Period] for [DATA_RULE] [Period_period] ", "Validation SUCCESS on [Period] for [MODEL_INSTANCE] [Period] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [InterestRatePayout_futureValueNotional] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FutureValueNotional_terminationDate] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [InterestRatePayout_actualQuantity] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_1] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_6] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_8] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_23] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_24] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [InitialStub_FinalStub] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FinalStub_lastRegularPaymentDate] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [SettlementProvision_settlementCurrency] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_7_1] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_9] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FpML_ird_29] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [CalculationPeriodDates_firstCompoundingPeriodEndDate] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [FirstRegularPeriodStartDate_initialStub] ", "Validation SUCCESS on [InterestRatePayout] for [DATA_RULE] [LastRegularPeriodEndDate_finalStub] ", "Validation SUCCESS on [InterestRatePayout] for [MODEL_INSTANCE] [InterestRatePayout] ", "Validation SUCCESS on [ContractualQuantity] for [CHOICE_RULE] [ContractualQuantity_choice] ", "Validation SUCCESS on [ContractualQuantity] for [MODEL_INSTANCE] [ContractualQuantity] ", "Validation SUCCESS on [NotionalSchedule] for [DATA_RULE] [FpML_ird_61] ", "Validation SUCCESS on [NotionalSchedule] for [MODEL_INSTANCE] [NotionalSchedule] ", "Validation SUCCESS on [NonNegativeAmountSchedule] for [MODEL_INSTANCE] [NonNegativeAmountSchedule] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_14] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_16] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_17] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_18] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_20] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_21] ", "Validation SUCCESS on [CalculationPeriodDates] for [DATA_RULE] [FpML_ird_22] ", "Validation SUCCESS on [CalculationPeriodDates] for [CHOICE_RULE] [CalculationPeriodDates_choice1] ", "Validation SUCCESS on [CalculationPeriodDates] for [CHOICE_RULE] [CalculationPeriodDates_choice2] ", "Validation SUCCESS on [CalculationPeriodDates] for [MODEL_INSTANCE] [CalculationPeriodDates] ", "Validation SUCCESS on [CalculationPeriodFrequency] for [DATA_RULE] [FpML_ird_57] ", "Validation SUCCESS on [CalculationPeriodFrequency] for [DATA_RULE] [FpML_ird_58] ", "Validation SUCCESS on [CalculationPeriodFrequency] for [DATA_RULE] [FpML_ird_60] ", "Validation SUCCESS on [CalculationPeriodFrequency] for [MODEL_INSTANCE] [CalculationPeriodFrequency] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [BusinessCenters] for [CHOICE_RULE] [BusinessCenters_choice] ", "Validation SUCCESS on [BusinessCenters] for [MODEL_INSTANCE] [BusinessCenters] ", "Validation SUCCESS on [DateInstances] for [CHOICE_RULE] [DateInstances_choice] ", "Validation SUCCESS on [DateInstances] for [MODEL_INSTANCE] [DateInstances] ", "Validation SUCCESS on [AdjustableDate] for [CHOICE_RULE] [AdjustableDate_choice] ", "Validation SUCCESS on [AdjustableDate] for [MODEL_INSTANCE] [AdjustableDate] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [AdjustableDate] for [CHOICE_RULE] [AdjustableDate_choice] ", "Validation SUCCESS on [AdjustableDate] for [MODEL_INSTANCE] [AdjustableDate] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [BusinessCenters] for [CHOICE_RULE] [BusinessCenters_choice] ", "Validation SUCCESS on [BusinessCenters] for [MODEL_INSTANCE] [BusinessCenters] ", "Validation SUCCESS on [PaymentDates] for [DATA_RULE] [FpML_ird_35_cd_31] ", "Validation SUCCESS on [PaymentDates] for [DATA_RULE] [PaymentDates_paymentDaysOffset] ", "Validation SUCCESS on [PaymentDates] for [CHOICE_RULE] [PaymentDates_choice] ", "Validation SUCCESS on [PaymentDates] for [MODEL_INSTANCE] [PaymentDates] ", "Validation SUCCESS on [BusinessDayAdjustments] for [MODEL_INSTANCE] [BusinessDayAdjustments] ", "Validation SUCCESS on [BusinessCenters] for [CHOICE_RULE] [BusinessCenters_choice] ", "Validation SUCCESS on [BusinessCenters] for [MODEL_INSTANCE] [BusinessCenters] ", "Validation SUCCESS on [Frequency] for [DATA_RULE] [Frequency_period] ", "Validation SUCCESS on [Frequency] for [DATA_RULE] [Frequency_periodMultiplier] ", "Validation SUCCESS on [Frequency] for [MODEL_INSTANCE] [Frequency] ", "Validation SUCCESS on [PayerReceiver] for [MODEL_INSTANCE] [PayerReceiver] ", "Validation SUCCESS on [InterestRate] for [MODEL_INSTANCE] [InterestRate] ", "Validation SUCCESS on [Schedule] for [DATA_RULE] [FpML_ird_25] ", "Validation SUCCESS on [Schedule] for [MODEL_INSTANCE] [Schedule] ", "Validation SUCCESS on [DateInstances] for [CHOICE_RULE] [DateInstances_choice] ", "Validation SUCCESS on [DateInstances] for [MODEL_INSTANCE] [DateInstances] ", "Validation SUCCESS on [PartyContractIdentifier] for [CHOICE_RULE] [PartyContractIdentifier_choice] ", "Validation SUCCESS on [PartyContractIdentifier] for [MODEL_INSTANCE] [PartyContractIdentifier] ", "Validation SUCCESS on [IdentifierValue] for [MODEL_INSTANCE] [IdentifierValue] ", "Validation SUCCESS on [PartyContractIdentifier] for [CHOICE_RULE] [PartyContractIdentifier_choice] ", "Validation SUCCESS on [PartyContractIdentifier] for [MODEL_INSTANCE] [PartyContractIdentifier] ", "Validation SUCCESS on [IdentifierValue] for [MODEL_INSTANCE] [IdentifierValue] ", "Validation SUCCESS on [Party] for [MODEL_INSTANCE] [Party] ", "Validation SUCCESS on [LegalEntity] for [MODEL_INSTANCE] [LegalEntity] ", "Validation SUCCESS on [Party] for [MODEL_INSTANCE] [Party] " ], "qualifications": [ "QualificationResult { SUCCESS on [EconomicTerms:InterestRate_IRSwap_FixedFloat_PlainVanilla] }" ] }
"productIdentification" : {
"productQualifier" : "InterestRate_
IRSwap_FixedFloat
_PlainVanilla"
}
5 Minute Quick Start Guide
Rosetta Ingest is provided as two components: 1) a (Java) Client API, that can be pulled from REGnosys Maven repository 2) a Server side, as Docker images that can be pulled from REGnosys registry and run as a Docker container
1) Java Client API
Rosetta Ingest comes packaged with a Java Client API that provides easy access to the service.
You must add the REGnosys Maven repository to your settings.xml. You will be provided access credentials on purchase.
Sample settings.xml
<?xml version="1.0" encoding="UTF-8"?> <settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <servers> <server> <username>[USER NAME]</username> <password>[ENCRYTED PASSWORD]</password> <id>snapshots</id> </server> </servers> <profiles> <profile> <repositories> <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>central</id> <name>libs-release</name> <url>https://regnosys.jfrog.io/regnosys/libs-release</url> </repository> <repository> <snapshots /> <id>snapshots</id> <name>libs-snapshot</name> <url>https://regnosys.jfrog.io/regnosys/libs-snapshot</url> </repository> </repositories> <id>artifactory</id> </profile> </profiles> <activeProfiles> <activeProfile>artifactory</activeProfile> </activeProfiles> </settings>
RosettaIngestService
public interface RosettaIngestService { /** * Ingests a single request * @param document - A RosettaIngestRequest containing a document to be ingested * @return An object containing the RosettaObject along with an id from the request, issues encountered ingesting and qualifications. * If a fatal error was encountered ingesting then the rosettaInstance may be null and errors will be contained in the validation info. */ <T extends RosettaModelObject> RosettaIngestResponse<T> ingest(RosettaIngestRequest<T> document); /** * @see RosettaIngestService#ingest(RosettaIngestRequest) * @param documents - a list of requests to process * @return a list of the responses - see ingest for details */ <T extends RosettaModelObject> RosettaIngestResponses<T> ingestMultiple(List<RosettaIngestRequest<T>> documents);
To add a dependency on Rosetta Ingest Client using Maven
<dependency> <groupId>com.regnosys</groupId> <artifactId>rosetta-ingest-client</artifactId> <version>LATEST</version> </dependency>
To add a dependency using Gradle
compile(group: 'com.regnosys', name: 'rosetta-ingest-client', version: 'LATEST')
Create a RosettaIngestService
You must specify the host and port of the Ingest Service (see section Server Install With Docker).
RosettaIngestService service = new HttpIngestServiceImpl(serverHost, serverPost)
You’re now ready to ingest your first documents and create CDM (Java) objects. There are 3 types of XML documents that you can ingest: a) FpML Contract, b) CDN JSON Contract and c) Rosetta Workbench Event.
a) Ingest an FpML Contract
File contractXml = new File("contract-example.xml"); RosettaIngestRequest<Contract> req = new RosettaIngestRequest<>( contractXml, // Input document RosettaIngestSourceType.FpML, // Input type Contract.class); // CDM type RosettaIngestResponse<Contract> response = service.ingest(req); // ingest the input toContract
List<String> preValidationIssues = response.getPreValidationIssues(); // Validation issues for the FpML document List<String> validationIssues = response.getValidationIssues(); // Validation issues for the CDM Contract Contract contract = response.getRosettaInstance(); // validated Contract class
b) Ingest a CDM JSON Contract
File contractJson = new File("contract-example.json"); RosettaIngestRequest<Contract> req = new RosettaIngestRequest<>( contractJson, // Input document RosettaIngestSourceType.Json, // Input type Contract.class); // CDM type RosettaIngestResponse<Contract> response = service.ingest(req); // ingest the input to Contract Contract contract = response.getRosettaInstance(); // Contract class
c) Ingest a Rosetta Workbench Event
File eventXml = new File("event-example.xml"); RosettaIngestRequest<Event> req = new RosettaIngestRequest<>( eventXml, // Input document RosettaIngestSourceType.FpML, // Input type Event.class); // CDM type RosettaIngestResponse<Event> response = service.ingest(req); // ingest the input to Event
List<String> preValidationIssues = response.getPreValidationIssues(); // Validation issues for the FpML document List<String> validationIssues = response.getValidationIssues(); // Validation issues for the CDM Event Event event = response.getRosettaInstance(); // validated Event class
Java Client CLI
java -jar rosetta-ingest-client.jar -h usage: IngestFpML [-h] [-c CONTRACTS] [-e EVENTS] [-o OUTPUT] host:port ingest FpML files into Rosetta positional arguments: host:port host and port of ingest service to connect to named arguments: -h, --help show this help message and exit -c CONTRACTS, --contracts CONTRACTS Name of a direcory containing contract FpML files to convert -e EVENTS, --events EVENTS Name of a direcory containing event FpML files to convert -o OUTPUT, --output OUTPUT directory to write Json serialized output objects to
2) Server Install with Docker
Rosetta Ingest Docker images can be pulled from REGnosys registry and run as a Docker container. You need to have Docker client properly installed and configured on your machine. For details about installing and using Docker, please refer to the Docker documentation.
Pulling the Docker Image
You must log into the REGnosys Docker registry. You will be provided access credentials on purchase.
docker login -u [USER] -p [ENCRYPTED PASSWORD] regnosys-docker-registry.jfrog.io
$ docker pull regnosys-docker-registry.jfrog.io/rosetta-ingest-service:latest
latest: regnosys-docker-registry.jfrog.io/rosetta-ingest-service be8881be8156: Pull complete 4b23eec42f0e: Pull complete Digest: sha256:689d886d22fed2a280238365718c0d771cc9cf789ffdd6966561c80473737c6b Status: Downloaded newer image forregnosys-docker-registry.jfrog.io/rosetta-ingest-service:latest
Running the Docker Image
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE regnosys-docker-registry.jfrog.io/rosetta-ingest-service latest 9bf3d30bdbe734 minutes ago 292MB
To run the service, run the command:
$ docker run --name rosetta-ingest -d -p 9000:5846 regnosys-docker-registry.jfrog.io/rosetta-ingest-service:latest
This will run the service in the background and expose the port 9000.
Check the Docker Logs
$ docker logs rosetta-ingest
Check if the service is running
Rosetta Ingest contains a swagger UI in order to check the available REST apis. See https://swagger.io/tools/swagger-ui. To check the service is up and running go to http://localhost:9000/api/swagger
Versions
All of the below docker commands use the ‘latest’ version of the service. To use a specific version, you can specify the version after the container name (e.g. rosetta-ingest-service:1.0.45) The latest versions of the Rosetta Ingest client and server are synchronised, with new releases consisting of new Docker images for the server and new Maven jars for the client. Even though these releases need not be synchronised with ISDA CDM releases, the latest versions of Rosetta Ingest will only be compatible with older ISDA CDM versions up to a point.
SSL
Rosetta Ingest does not provide HTTPS mode. It is recommended that a proxy is placed in front of the service to secure it. Please see https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion.
[pdf-embedder url=”http://www.regnosys.com/wp-content/uploads/2018/09/Rosetta-Ingest-Software-Licence-Agreement.pdf” title=”Rosetta Ingest Software Licence Agreement”]
coming soon
Rosetta Ingest 14-Day Trial
Rosetta Ingest is delivered as an on-prem version.
Please fill-in the form to request your unique License Key and then refer to our User Guide to install and run Rosetta Ingest with your License Key.
You will be asked to sign our Licence Agreement before we provide you with your License Key.
Your License Key will expire after 14 days. You will need to buy a subscription to renew your License Key.
CONTACT DETAILS
Rosetta Ingest Subscription
Rosetta Ingest is delivered as an on-prem version.
Please fill-in the form to request your unique License Key and then refer to our User Guide to install and run Rosetta Ingest with your License Key.
You will be asked to sign our Licence Agreement before we provide you with your License Key. You will have already signed those terms if you previously used our Free Trial.
CONTACT DETAILS