Skip to content

Extend pedigree attributes to cover changes made in FIX legacy versions #280

Description

@kleihan

The current pedigree attributes are inside the entityAttributeGrp and covers the following:

	<xs:attributeGroup name="entityAttribGrp">
		<xs:attribute name="added" type="fixr:Version_t"/>
		<xs:attribute name="addedEP" type="fixr:EP_t"/>
		<xs:attribute name="changeType" type="fixr:changeType_t"/>
		<xs:attribute name="deprecated" type="fixr:Version_t"/>
		<xs:attribute name="deprecatedEP" type="fixr:EP_t"/>
		<xs:attribute name="issue" type="xs:string"/>
		<xs:attribute name="lastModified" type="fixr:Version_t"/>
		<xs:attribute name="replaced" type="fixr:Version_t"/>
		<xs:attribute name="replacedEP" type="fixr:EP_t"/>
		<xs:attribute name="replacedByField" type="fixr:id_t"/>
		<xs:attribute name="supported" type="fixr:supportType" default="supported"/>
		<xs:attribute name="updated" type="fixr:Version_t"/>
		<xs:attribute name="updatedEP" type="fixr:EP_t"/>
	</xs:attributeGroup>

It is proposed to add a few attributes to be able to capture changes made in FIX legacy versions:

  1. Removal of an element: removed, removedEP, replacedbyField, replacedByComponent, replacedByGroup.
    The element and/or its usage has been physically removed from an Orchestra XML file. For example, ExecBroker(76) was removed with FIX 4.3 and replaced by an instance of the Parties group.
<fixr:field type="String" id="76" name="ExecBroker" added="FIX.2.7" removed="FIX.4.3" replacedByGroup="1012"/>
  1. Moving an element from one element to another: moved, movedEP, movedToMessage, movedToGroup, movedToComponent
    The element is moved from one nesting level of a message to another, its definition does not change. For example, Currency(15) was moved from TrdCapRptSideGrp to the root level of the TCR with FIX 4.4. Another example is SettlCurrAmt(119) that was deprecated in FIX 4.4 and replaced by AllocSettlCurrAmt(737). Note that the added="FIX.4.4" seems wrong and should be added="FIX.4.0" as shown in the FIX 4.2 Orchestra XML file.
<fixr:fieldRef id="15" added="FIX.4.2" moved="FIX.4.4" movedToMessage="64"/>
<fixr:fieldRef id="119" added="FIX.4.0" deprecated="FIX.4.4" replacedByField="737"/>
  1. Inserting a removed element again: restored and restoredEP. The element is removed but later reinserted again. That can be limited to a specific usage or include the definition. For example PutOrCall(201) was removed with FIX 4.3 and restored with FIX 4.4.
<fixr:field type="PutOrCallCodeSet" id="201" name="PutOrCall" added="FIX.4.1" removed="FIX.4.3" restored="FIX.4.4"/>
<fixr:fieldRef id="201" added="FIX.4.1" removed="FIX.4.3" restored="FIX.4.4"/>

The concept of only capturing the latest changes is not proposed to be changed, i.e. multiple updates or moves are not captured. Having the additional pedigree attributes should make it possible to regenerate previous FIX versions (or EPs) from FIX Latest.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FEATURESmall enhancements

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions