Transition from FIX 5.0 SP2 to FIX Latest completed

The FIX Global Technical Committee (GTC) announces the successful transition of the FIX application layer from FIX 5.0 SP2 to FIX Latest. Extension Pack EP260 introduced an  application version identifier for FIX Latest by adding a new value 10="FIXLatest" (note that there is no space in the value) to ApplVerID(1128). FIX Latest is the term used to describe the latest version of the FIX application layer. FIX Latest is updated with each approved Extension Pack. FIX Latest is cumulative, containing all Extension Packs that have been approved prior. Please also see this video on FIX Latest – A Complete Service Package.

FIX Versions

FIX versions were used in the past to bundle a large number of incremental changes and triggered an update and publication of the FIX specification documents (aka Volume 1-7), now available as an online specification.

Extension Packs were introduced after the release of FIX 4.4 and have made changes to the latest version as follows:

  • FIX 4.4 was enhanced with Extension Packs EP1 – EP40
  • FIX 5.0 was enhanced with Extension Packs EP41 – EP75
  • FIX 5.0 SP1 was enhanced with Extension Packs EP76 – EP97
  • FIX 5.0 SP2 was enhanced with Extension Packs EP98 – EP259
  • FIX Latest is being enhanced with Extension Packs as of EP260

A FIX version covers the previous version together with the Extension Packs enhancing it, e.g. FIX 5.0 represents FIX 4.4 together with EP1-EP40. Hence, FIX Latest represents FIX 5.0 SP2 together with EP98 – EP259 and will be continuously enhanced with Extension Packs. There are no plans to issue another version of FIX beyond FIX Latest.

The concept of FIX versions has more or less lost its relevance since the publication of Extension Packs started with EP98 after the release of FIX 5.0 SP2. Further to that, the refactoring of the FIX Session Layer introduced so-called session profiles, especially for the legacy versions FIX 4.2 (session profile “FIX.4.2”) and FIX 4.4 (session profile “FIX4”). The session profiles mandate specific values of BeginString(8), i.e. “FIX.4.2” and “FIX.4.4”, to maintain full backward compatibility of the FIX Session Layer.

A FIX version can be enhanced with any messages, fields, and values from FIX Latest and this is common practice in the industry, e.g. to fulfill regulatory requirements that are only covered with fields from a higher version. Only FIX 4.2 has a few deviations on the semantic level, e.g. the use of ExecTransType(20) in the ExecutionReport(35=8) message. Apart from having less messages, fields, and values, FIX 4.4 only has very few minor application layer differences compared to FIX Latest, e.g. Currency(15) was moved from the side level to the main level of the TradeCaptureReport(35=AE) message with FIX 5.0 SP1. As of FIX 5.0 SP2, the GTC is ensuring full backward compatibility of the application layer changes.

In summary, the refactoring of the FIX Session Layer made no changes on the technical level but allowed characterizing a FIX interface as running a FIX application layer version over a specific session profile, for example:

  • FIX 4.2 with extensions over the FIX.4.2 session profile (BeginString(8)=”FIX.4.2”) or
  • FIX Latest over the FIX4 session profile (BeginString(8)=”FIX.4.4”) or
  • FIX Latest over the FIXT session profile (BeginString(8)=”FIXT.1.1”).

The transition to FIX Latest has now also been applied to the different representations of the FIX Repository (Orchestra, Unified, Basic). The following sections shows the changes that have been made to each of them as well as the changes made to the FIXML Schema files.

FIX Orchestra

FIX Orchestra is the main repository format based on the FIX Orchestra Technical Standard. It consists of a single file Orchestra.xml and attributes of its root element “fixr:repository” were changed as follows as of EP260.

  • name=”FIX.5.0SP2″ was changed to name=”FIX.Latest”
  • version=”FIX.5.0SP2_EPxxx” was changed to version=”FIX.Latest_EPxxx” (“xxx” stands for the EP number)

This file further contains the pedigree of its elements, i.e. the FIX version (and possibly EP number) when an element was added (attributes added and addedEP), last updated (attributes updated and updatedEP) or deprecated (attributes deprecated and deprecatedEP). There is no change to the values of the attributes identifying the number of an EP. However, whenever these attributes have a value of 260 or higher, the version information was changed to FIX Latest as of EP260.

  • added=”FIX.5.0SP2″ was changed to added=”FIX.Latest” if addedEP=”260″ or higher
  • updated=”FIX.5.0SP2″ was changed to updated=”FIX.Latest” if updatedEP=”260″ or higher
  • deprecated=”FIX.5.0SP2″ was changed to deprecated=”FIX.Latest” if deprecatedEP=”260″ or higher

FIXimate provides the pedigree information from the Orchestra.xml file.

FIX Unified Repository

The FIX Unified Repository is the legacy repository format (aka Repository 2010 edition). It basically consists of two XML files, one of which contains all language specific text (aka “phrases file”). The objective at the time was to support different languages by means of separate phrases files. The root element “phrases” has a version attribute that was changed from version=”FIX.5.0SP2_EPxxx” to version=”FIX.Latest_EPxxx” as of EP260 (“xxx” stands for the EP number). The other file (FixRepository.xml) contains all elements in a single file. Its root element “fixRepository” has an element “fix” that has a version attribute that was changed from version=”FIX.5.0SP2″ to version=”FIX.Latest” as of EP260. Only FixRepository.xml contains pedigree information for the elements. The names of the pedigree attributes are the same as for FIX Orchestra and their values change as described above.

FIX Basic Repository

The FIX Basic Repository is the oldest repository format and is currently still provided for backward compatibility. It consists of separate XML files for each of the various elements of FIX, e.g. Messages.xml, Fields.xml, Enums.xml. The root element is different for every file but always has a version attribute that was changed from version=”FIX.5.0SP2″ to version=”FIX.Latest” as of EP260. Note that the attribute latestEP of the root element reflects the last EP that changed any of the elements contained in the given file. It does not reflect the last overall EP and may hence continue to have an EP number lower than EP260 even if version=”FIX.Latest”. Each file contains pedigree information for its elements. The names of the pedigree attributes are the same as for FIX Orchestra and their values change as described above.

FIXML Schema Files

FIXML is the XML encoding for the FIX application layer and its meta-data is provided with every EP in the form of XSD files. These FIXML schema files contain information about the FIX version they are based on, and the FIX version is also part of the filename.

As of EP260, the suffix of every FIXML schema filename changes from “fixml-<content>-5-0-SP2.xsd” to “fixml-[content]-latest.xsd”. The FIXML schema files use an <xs:include> element to reference the name of one or more other FIXML schema files. Accordingly, as of EP260, the FIX version in the filename being referenced changes from “5-0-SP2” to “Latest”.

Each file contains <xs:schema> as root level element with a number of attributes. Some of the attribute values contain the FIX version and change as follows:

<xs:schema> attribute value until EP259<xs:schema> attribute value as of EP260
xmlns=”http://www.fixprotocol.org/FIXML-5-0-SP2″xmlns=”http://www.fixprotocol.org/FIXML-Latest”
xmlns:fm=”http://www.fixprotocol.org/FIXML-5-0-SP2/METADATA”xmlns:fm=”http://www.fixprotocol.org/FIXML-Latest /METADATA”
xsi:schemaLocation=”http://www.fixprotocol.org/FIXML-5-0-SP2/METADATA fixml-metadata-5-0-SP2.xsd”xsi:schemaLocation=”http://www.fixprotocol.org/FIXML-Latest /METADATA fixml-metadata-Latest.xsd”
targetNamespace=”http://www.fixprotocol.org/FIXML-5-0-SP2″targetNamespace=”http://www.fixprotocol.org/FIXML-Latest”