Story: Hotfix: xsdcpp domain drift on compositeTradeComponents SubTrade

Table of Contents

This page documents a story in Sprint 24. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Restore the ORE XML domain model to match instruments.xsd. Upstream commented out the old Trade element inside compositeTradeComponents and replaced it with a reference to subTradeGroup / SubTrade, but domain.hpp=/=domain.cpp were never regenerated against the updated schema, so composite-trade XML containing SubTrade elements fails to parse/round-trip correctly.

Status

Field Value
State DONE
Parent sprint Sprint 24
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-08-01

Acceptance

  • domain.hpp/domain.cpp regenerated from the current instruments.xsd (subTradeGroup/SubTrade, not the commented-out Trade element).
  • Build is green.
  • A composite trade XML sample with SubTrade elements parses and round-trips correctly.

Tasks

Task State Start End Description
Scaffold story: Hotfix: xsdcpp domain drift on compositeTradeComponents SubTrade DONE 2026-07-31 2026-08-01 Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR.
Implement Hotfix: xsdcpp domain drift on compositeTradeComponents SubTrade DONE   2026-08-01 Initial task for: Hotfix: xsdcpp domain drift on compositeTradeComponents SubTrade

Decisions

  • Also removed the MultiLegOption ORE trade type from ORE Studio's mappers, since upstream ORE deleted it outright (commit 1f9361860, "QPR-13903 support xccy swaptions") once Swaption gained native cross-currency-leg support, making the MultiLegOption workaround redundant. Chosen over stubbing it out or leaving it broken behind a TODO, to keep ORE Studio's trade-type surface matching upstream ORE.

Out of scope

Result

domain.hpp/domain.cpp regenerated to match instruments.xsd's subTradeGroup/SubTrade schema. Fixed the xsdcpp bugs and stale generate-script paths blocking regeneration, reapplied the ORES_ORE_CORE_EXPORT hand-patch (now automated for future regens), updated the mapper call sites for the new schema shapes, removed the upstream-deleted MultiLegOption trade type, and regenerated the stale Hybrid_* golden fixtures. Full repo build and ores.ore.core.tests (478/478) green.

Emacs 29.3 (Org mode 9.6.15)