Any documents listing each change done in FIX ATDL schema in past 10 years?

We have taken generic FIX ATDL schema v2.5.0 to use so our software follows standard FIX ATDL schema. After that, we have not further updated based on the changes after v2.5.0. We can now download the latest 2.7.2 from FIXTrading website. But is there any versioning control document listing all changes made in each version over the past 10 years so we can use as reference?


Not sure on versions past GTC v1.1?

No formal version control on v1.0 or v1.1 but there is an internal change log in core.xsd
Last change for official v1.1 was 15Dec2010 (see below)

Remember, three sources for documentation (suggest a key word search through all to plumb out the nuggets):

  • written docs pdf
  • annotations in the xsd files
  • annotations in sample .xml file

The FIXatdl work group is in the early phase of working on a v1.2 release. That will not be under strict source control (plan is to use github) until the design features are pretty much frozen, and there is at least preliminary, fully validating .xsd code ready to post.

Preliminary concepts for v1.2 now flow through iMeet in rough draft form (typically word docs w/ sketches or screen shots) before the WG is ready to do the first xsd commit. There are preliminary docs there now accessable to tall members. Tech work group for v1.2 meets every two weeks if interested.


<!-- Revision History -->
<!-- Date Version Author Comments
  Authors - Greg Malatestinic, Rick Labs, Zoltan Feledy, Jim Arlet, Gideon Kaplan, Martin Naughton, Mike McDermott and other 
  members of FPL Algo Trading WG. -if there is anyone else then please speak up :-)
12apr07 v1-8-1-S by Robert Golan for additional annotations, slimming, revision history, and version stamping.
			-moved in StrategyParameterType_enum_t
			-knocked out all the dependant includes.
			-ositiveInteger typo changed to positiveInteger
26apr07 v1-8-1-S-Neo2 by Henrik Johansson and Robert Golan renamed now to V2.0
			-added in numerous 5.0 types needed to perform min/max/init settings.
			-took out use=optional on all attributes since this is an xsd default.
			-added some additional documentation.
30apr07 V2.1 by Henrik Johansson and Robert Golan
			-added <xs:attribute name="initValue" type="FIXML50:NumInGroup"/> but will activate later
01May07 V2.2 by Greg Malatestinic
			-changed algoExtModel attribute to be of type MVS_t.
			-added enumPair element to Parameter_t type.
04May07 v2.2.1 by Jim Arlet and Greg Malatestinic
			-added strategyLayout element to enclose all other layout elements
			-strategyPanel has an orientation attribute
			-strategyPanel can have one or more parameterName elements and/or one or more strategyPanels
			-strategyPanel has the attributes the old verticalPanel had: title, collapsed, collapsable and color
			-added localMktTz attribute to UTCTimestamp types.
			-changes attribute types for initValue, minValue, maxValue to LocalMktTime for UTCTimestamp parameters.
			-added localMktTz attribute to UTCTimestamp_t and LocalMktTime_t parameters.
09may07 V2.2.2 by Henrik Johansson and Robert Golan
			-added Int_t type for parameter type as per Henrik's request.
			-sorted all complex/simple types throughout the xsd for wsdl visual purposes except for ref=s off the root element
16may07 V2.2.3 by Henrik Johansson
			-added attributes minValue, maxValue and initValue for parameter type Float_t
			-<xs:attribute name="initValue" type="FIXML50:NumInGroup"/> activated as< xs:attribute name="initValue" type="xs:nonNegativeInteger"/>
04Jun07 V2.2.4 by Greg Malatestinic
			-defined minOccur and maxOccur values for each element.
			-deprecated format attribute from Parameter_t element type.
			-set strategyLayout.maxOccurs = 1 and uiComponents.maxOccurs = 1 in strategy element.
12Jun07 V2.2.5 by Greg Malatestinic
			-deprecated BooleanTrue and Boolean false from strategy element. Vendors must use values in {true, 1, false, 0} for Booleans.
			-removed type attribute from edit element.
			-added operator_t and logicOperator_t types. edit elements now refer to these types.
			-added component_t type. Component element now uses this type.
13Jun07 V2.2.7 by Zoltan Feledy
			- fixed spelling errors in the comments
			- changed attribute name to "collapsible" from "collapsable" on the strategyPanel element
13Jun07 V2.2.7 by Graham Miller
			- split schema in to core, layout, and validation schema
			- prefixed references to non-core tags and attributes with appropriate namespace
			- rearranged schema to interleave layout and parameter definitions together, or allow lone parameter definitions
28Jun07 v2.2.8 by Greg Malatestinic
      		-cleaned up operator_t and logicOperator_t types.
      		-controlType attribute of is now restricted by component_t - this should habve been done on 12Jun07.
      		-moved component_t from core namespace to layout namespace.
      		-added description element for strategies and strategy elements.
16Jul07 v2.2.9 by Greg Malatestinic
			-deprecated embedFixTag attribute from strategy element.
			-added a new control, EditableComboBox is now a legal value of a component_t type.
01Oct07 v2.3.01 by Greg Malatestinic
			-changed type of initValue, minValue and maxValue to LocalMktTime for UTCTimeOnly_t type and added LocalMktTz.
			-added flow attributes to parameter and enumPair elements (withheld doing so for startegyPanel for now).
			-created new sub-schema: flow.
15Oct07 v2.4 by Greg Malatestinic
			-changed flow schema to incorporate edit elements as part of stateGroup.
			-added index attribute to enumPairs just to give a relative order inwhich they should be displayed. This
			 is useful if a comboBox item is ever disabled by a stateRule
			-added multiplyBy100 attribute to Percentage_t. Just for backward compatability reasons.
			-added incrementSource attribute to Price_t and Qty_t elements.
			-embedFixTag put back. It's removal may have been to hasty.
07Nov07 v2.4.1 by Robert Golan
			-added additional annotations for xmlspy doc generation.
30Jan08 v2.5 by Greg Malatestinic and Robert Golan
			-added strategyIdentifierTag attribute to strategies element.
			-added versionIdentifierTag attribute to strategies element.
			-added draftFlagIdentifierTag attribute to strategies element.
			-algoExtModel in the strategy element has been marked for deprication.
			-supportsCxlRpl in the strategy element has been marked for deprication.
			-fixTag in the strategy element has been marked for deprication.
			-simplfied URI namespace names for backwards compatability
05Mar08 v2.4.3 by Greg Malatestinic
			-added visible and enabled attributes to state rule element.
			-added definedByFIX attribute to parameter element.
			-behavior attribute of stateRule element changed to optional and marked for deprication.
			-constTag has been marked for deprication.
			-applicableMsgTypes has been marked for deprication. It is replaced by fixMsgType.
			-replaced many global element definitions with type definitions.
			-added RepeatingGroup_t type and included instance of it in strategy element.
19Mar08 v2.4.4 by Greg Malatestinic
			-added more attributes to repeatingGroup element that were not in orignial.
			-was forced to make StrategyLayout into a type due to parsing problems.
20May08 v2.4.5 by Greg Malatestinic
			-made changes to validation schema so that we have a tree structure. <edit> is now recursive.
27May08 v2.4.6 by Greg Malatestinic
			-added editRef type. stateRule, stateGroup and startegyEdit can now refer to named edit elements.
			-added edit at strategy level. Now a named edit can be declared and re-used within a strategy.
			- keyName removed from flow:stateGroup. It should have been removed several versions ago.
04Jun08 v2.4.7 by Greg Malatestinic
			-added edit element at strategies level. Now named edits can be re-used across strategies.
			-added editRef to edit element.
			-added executionProfileLink
27Jul08 v2.4.8 by Greg Malatestinic
			-added boolean attribute invertOnWire to MultipleCharValue_t and MultipleStringValue_t types
			-added type MultipleCharValue. It was overlooked.
			-added trueWireValue and falseWireValue to Boolean_t definition.
23Dec08 v2.5.0 by Greg Malatestinic
			-moved controlType out of Parameter_t. It is now an element that is declared in lay schema.
			-added initValueSource to Parameter_t.
13Jan09 v2.5.1 by Greg Malatestinic
			-removed uiRep, increment and incrementSource from Parameter_t
			-removed stateRule from Parameter_t
14Jan09 v2.5.2 by Mike McDermott
			- updated hierarchy diagram
      - added string restriction pattern to 'name' attribute on <Strategy_t> complex type
      - moved 'tooltip' attribute from <parameter> element to <Control_T> complex type in layout schema
      - converted 'description' attribute on <strategies> element to an element for consistency sake, and to
        make use of the whiteSpace restriction on the <description> simple type
      - removed <flow:stateRule> reference from <enumPair_t>
      - changed name of <enumPair_t> type to <EnumPair_t> for type naming consistency
      - removed 'type' attribute from <Parameter_t>
      - removed <StrategyParameterType_enum_t> - deprecated by the removal of the ‘type’ attribute from <Parameter_t>
      - removed 'type' attribute from <RepeatingGroup_t> - deprecated by the removal of <StrategyParameterType_enum_t>
      - matched date/time complex types to the correct underlying FIXML simple type
      - removed namespace references to FIXML 5.0 - if we’re not going to directly import the FIXML 5.0 
        data types schema, we don’t need a reference to the namespace.   
21Jan09 v2.5.3 by Greg Malatestinic
			- removed uiRep from EnumPair_t
			- added enumID to EnunmPair_t and updated documentation.
			- removed initValueSource from Parameter_t
			- removed initValue from all types derived from Parameter_t. initValue is now found in the individual controls in layout.
			- added dailyMinValue and dailyMaxValue to UTCTimeStamp_t.
			- added LocalMktTz to UTCTimeStamp_t.
			- removed initValiue mode from UTCTimeStamp_t. It is now found in the Clock_t control in layout.
22Jan09 v2.5.4 by Greg Malatestinic and Mike McDermott
      - moved helpText from Parameter_t to Control_t
      - moved helpText_t simple type from Core to Layout to correspond with above change
      - removed explicit parameter element definition - was not being used by anything
      - changed description element to a simple type for consistency
23Jan09 v2.5.5 by Martin Naughton and Mike McDermott
      - added a description element to Parameter_t
23Jan09 v2.5.6 by Martin Naughton and Mike McDermott
      - added a description element to RepeatingGroup_t and EnumPair_t
      - created a standalone description element to expose to the other subschemas 
28Jan09 v2.5.7 by Greg Malatestinic
		  - added constValue attribute to all parameters that extend Parameter_t as appropriate and with appropriate types
02Feb09 v2.5.8 by Mike McDermott
      - added constValue to the remaining complex types, and updated some constValues from xs: types to their underlying
        FIXML type
16Feb09 v2.5.9 by Mike McDermott
      - added key constraints to the 'name' attributes on the Parameter_t and Strategy_t objects so that the name values
        are unique and required within a given Strategy_t and Strategies_t object respectively
      - added a 'core' alias to the default namespace to allow the xs:key constraints to work correctly.
      - created a Strategies_t complex type to both conform with the existing pattern, and allow the xs:key constraints to
        work correctly
26Feb09 v2.6.1 by Mike McDermott
      - added abstract="true" to Parameter_t to enforce the use of xsi:type
      - added a keyRef for Control_t.parameterName to use the parameterKey key
      - added string restriction pattern to 'enumID' attribute on <EnumPair_t> complex type
03Mar09 v2.6.2 by Mike McDermott and Martin Naughton
      - fixed the selector xpath query on parameterKeyRef to allow for nested controls
      - updated locations attribute to conform to an enum of region options
      - updated the RegEx pattern on the MVS_t type to be more specific and only allow a single space to separate the string values.
      - updated constValue on Length_t to be typed to Length (from FIXML 5.0 Spec) per FIX spec
      - updated constValue on NumInGroup to be typed to xs:positiveInteger per FIX spec
      - updated constValue on SeqNum_t to be typed to SeqNum (from FIXML 5.0 Spec) per FIX spec
      - updated constValue on TagNum_t to be typed to xs:positiveInteger per FIX spec
27Mar09 v2.6.3 by Mike McDermott
      - updated namespaces to conform with FIX standard for xml namespaces
      - updated namespaces to conform with *product* version of 1.1
      - updated element and type names to conform with FIX standard of upper camel case
04Apr09 v2.6.4 by Mike McDermott
      - converted the Locations attribute to an element
      - converted the Markets attribute to an element
      - converted the SecurityTypes attribute to an element
      - removed the MVS_t type, since it was not being used by anything
      - removed the extraneous <sequence> tag around the Parameter, StrategyLayout, and RepeatingGroup elements in the Strategy element.
26May09 v2.6.5 by Mike McDermott
      - finalized structure for Regions, Countries, Markets, and Security Types
05Aug09 v2.6.6 by Mike McDermott
      - updated localMktTz attributes to use the enumeration defined in the timezones schema
10Jan10 v2.6.7 by John Shields
      - updated FIXml hardcode section to FIX5.0 SP2
      - added support for FIX datatypes Language_t, TZTimeOnly_t, TZTimestamp_t, and Tenor_t. Also added Country_t, but commented it out due to conflict within ATDL.
      - corrected LocalMktTime_t to be LocalMktDate_t per FIX Protocol data dictionary and changed its base type to xs:date
      - removed localMktTz attribute from UTCTimeStamp_t and LocalMktDate_t (UTCTimestamp_t is always UTC at the parameter level; LocalMktDate_t is a date-only value)
      - changed dailyMinValue, dailyMaxValue, and dailyConstValue for UTCTimestamp_t to be UTCTimeOnly  instead of LocalMktTime
      - removed trueWireValue and falseWireValue from Boolean_t definition; equivalent attributes to be added to appropriate Control_t types in the Layout schema
      - changed minValue, maxValue, and constValue for Float_t to use xs:decimal instead of xs:float as a base type (xs:float can cause floating-point error when doing financial calculations, and all float-derived types use xs:decimal)
      - changed naming of UTCTimestamp_t, MonthYear_t and UTCDateOnly_t to exactly match FIX Protocol spelling/casing convention
13Jan10 v2.6.8 by Greg Malatestinic
	  - in UTCTimestamp_t changed types of dailyMinValue, dailyMaxValue and dailyConstValue to xs:time (used to be core:LocalMktTime).
	  - added back trueWireValue and fasleWireValue to Boolean_t
	  - in UTCTimestamp_t intended to add back localMktTz but did not
	  - added tag957support to Strategies as a boolean attribute
	 - in Parameter_t use has been given a default value of "optional"
	 - added orderSequenceTag to Strategy_t
20Jan10 v2.6.9 by Greg Malatestinic
	| - in UTCTimestamp_t added back localMktTz
	| - in UTCTimeOnly_t added localMktTz
28Jan v2.7.1 by Greg Malatestinic
	 - changed SecurityType_t/@name to be equivalent to FIX tag 167
	 - added namespace declaration rg for Regions.xsd
19Feb v2.7.1 by Greg Malatestinic
	- Country_t definition moved to interior of Region_t. This allows Country_t (the extension of Parameter_t) to be re-instated wothout causing a conflict.
	- For UTCTimestamp_t and TZTimezone_t the attributes dailyMinValue, dailyMaxValue and dailyConstValue were removed.
	- For UTCTimestamp_t and TZTimezone_t the attributes minValue, maxValue and constValue had their types changed to xs:time
	- Parameter/@const was removed
	- added annotations to Boolean_t/@trueWireValue and falseWireValue. We plan on deprecating them.
22Feb v2.7.2 by Greg Malatestinic
	- All xsd files renamed to fixatdl-{sub-schema}-1-1.xsd. Import/@schemaLocation adjusted accordingly.
	- Namespaces changed to{sub-schema}
15Dec2010 v2.7.2e by Greg Malatestinic
	- Sync'd documentation with specification document.

Thanks Rick! This is helpful!
Do you know that if we can download some old versions of xsd file again from FIX Trading website so we can do a direct comparison easily and know what is changed?

1 Like


I finally figured out what you were talking about in the version number. Yes, the WG had an internal build number but it was VERY informal, only one of several guys working on the schema was using some type of source control that he incremented, or he may have even just been incrementing by hand. There was never a group oriented source code control.

  This value is the internal build number of the ATDL Schema
		<BuildInfo buildNumber="2.7.2e20101221"/>

internal build number above was very informal. Above was the final, official v1.1 that shipped.

Just as an aside, the FIX senior management back then (10 years ago) was absolutely loath to produce and license “software”. This goes all the way back to the legal formation of FIX.

“FIX Protocol is open and free, but is not software. Rather, FIX is a specification around which software developers can create commercial or open-source software, as they see fit.”
(2005 Trust Deed

Back in 2010 senior management made a determination that the FIXatdl xsds “were in fact NOT software”, and were therefore NOT to be licensed as software. So they concocted a one-off (highly unique “software like”) psudo intellectual property copyright / IP license that was (fundamentally somewhat similar to a standard open source software license) and that is included with FIXatdl v.1.1 on page 1 of the spec. O.K., even if it quacked like software they threw a towel over it and said it wasn’t a duck.

FPL management was not without reason for avoiding being in the software business. They were exceptionally risk adverse when it came to any potential software product liability issue. Plus they were adamant that they lacked sufficient resources to support any software into the future. The support issue was very true, once FIXatdl v1.1 shipped the volunteer work group largely disbanded and there is no central resource at FPL to continue to promote it, support it, expand documentation, generate more user friendly user guides, answer routine support questions, capture best practices, etc. That “long trail of resources” was never part of the FPL budget.

Since the FIXatdl work group was instructed back in 2010 “you are not to produce software” the group didn’t go the typical route for source code control.

Since 2010 FIX has significantly relaxed it’s “don’t produce software that we license and support” stance, and has broadly adopted github as its software repository. I have not checked through the legal side of this – updating the original Trust document language, changing course with downstream bi-laws, policies, etc. Changing that trust indenture’s fundamental most language would have been a very lengthy and difficult process indeed! Some might even say “impossible”! (especially with a trust vs. a regular corporation). I’m pretty sure all the github FPL software carries one of the standard open source licenses (MIT I think?) so its not “mystery theater” for all the adopters of that software to know what their rights and duties are.

Getting back more directly to your issue, what were the incremental changes during FIXatdl development? If you know the areas you are interested in perhaps you can highlight them from the above written change log? Typically we had telephone calls and snippets of code going back and forth for each major change, some of which MAY be on the old BBS system archives at FPL where we may be able to get staff to look up the related discussion?

If you can identify what “internal build” version you are starting from (perhaps based on a date?) we can probably talk through the changes since then by looking at the log. Some development areas were very smooth, but others were very rough and we did the best we could with the resources at hand.