Skip to content

Remove scenario IDs#281

Merged
patricklucas merged 2 commits intoFIXTradingCommunity:v1-1-RC3from
patricklucas:271_remove_scenario_ids
Mar 12, 2026
Merged

Remove scenario IDs#281
patricklucas merged 2 commits intoFIXTradingCommunity:v1-1-RC3from
patricklucas:271_remove_scenario_ids

Conversation

@patricklucas
Copy link
Copy Markdown
Collaborator

Also, clean up and fix invalid keyrefs.

Fixes #271

I found that several of the keyref declarations were not actually valid, because instead of using selector e.g. fixr:codeSets/fixr:codeSet they just used fix:codeSet, which would not match anything. I believe I have them working as intended now.

One thing, however, was that I've tentatively removed the check that a scenario attribute refers to a scenario defined at the top level.

  • if we had that requirement, then 100% of the time, users would have to include an arguably superfluous <fixr:scenarios><fixr:scenario name="base"/></fixr:secnarios>, even if they do not otherwise use scenarios
  • I would personally like to recommend that we don't require scenarios to be defined at the top level, allowing their implicit usage like we have today, while still enabling users to define them at the top level if they wish (to include documentation, for example)

Also, clean up and fix invalid keyrefs.

Fixes FIXTradingCommunity#271
@kleihan
Copy link
Copy Markdown
Member

kleihan commented Mar 11, 2026

Agree with the recommendation to make top level scenario definitions optional as that also increases backward compatibility with Orchestra v1.0 where they simply did not exist.

Comment on lines +66 to +69
<xs:key name="codeIdKey">
<xs:selector xpath="fixr:code"/>
<xs:field xpath="@id"/>
</xs:key>
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, also I added this to enforce that code IDs within a code set are unique. Let me know if you want me to open a separate issue for that.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, but should be a separate issue. Same for the optional scenario definitions on the top level. The Technical Proposal will have separate sections for those changes to explain the rationale.

Comment on lines -138 to -141
<xs:key name="typeKey">
<xs:selector xpath="."/>
<xs:field xpath="@type|@codeSet"/>
</xs:key>
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved this up a level to fieldTypeOrCodeSetKey to match the pattern of other keys.

@patricklucas patricklucas merged commit 3cc25d9 into FIXTradingCommunity:v1-1-RC3 Mar 12, 2026
2 checks passed
@patricklucas patricklucas deleted the 271_remove_scenario_ids branch March 12, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Removal of scenario IDs and scenario reference IDs in favour of scenario names only

2 participants