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
MultiLegOptionORE 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.