Playlist User Guide
General Concepts
Playlist is a tool to visualize an Orchestra XML reference file and reduce it to a subset exported into a new Orchestra XML file. Playlist is not a FIX validation tool, i.e. it relies on the correctness of the reference file and the FIX knowledge of the user. For example, it is the responsibility of the user to ensure the proper selection of fields required by FIX, i.e. the tool will not complain if the user only selects stop order types but fails to select the StopPx(99) field. The only exception to this rule is that StandardHeader and StandardTrailer do not have to be selected and will automatically be added to each of the selected messages when creating the new Orchestra XML file. This includes the pre-selection of required fields in the StandardHeader component (BeginString(8), BodyLength(9), MsgType(35),…) for the tag=value encoding.
Login and Logout
Access to Playlist requires you to register and login to the FIX Trading Community website, and your confirmed affiliation with a FIX member firm. Once you are confirmed to be affiliated with a FIX member firm you can request access to Playlist, please contact the FIX Program Office (fix@fixtrading.org) for access. There is no explicit function to logout of Playlist, i.e. you can just close your browser tab.
Input and Output
Playlist requires an Orchestra XML file as input. It serves as a reference file for both the display and for the new Orchestra XML file created as output. The input file has to conform to the schema of the Orchestra Technical Standard Version 1.0. It is possible to change the input by reading a new Orchestra XML file. These files are not uploaded to the FIX infrastructure and remain local in the memory of your browser. You can press “Clear Input File” or refresh your browser window to remove the current reference file.
The file name for the new Orchestra XML file defaults to “myorchestra.xml” but you can easily change it by clicking into the field. The button “Create Orchestra file” is accessible as soon as you have read in a reference file and made a selection. Playlist does not require the selection to include a FIX message, i.e. you can also create a subset of the reference file that only includes a single group or component. Fields depend on being automatically enabled in the context of a message, group or component and cannot be selected independently.
Repository Visualization and Handling
The reference file is shown in six different sections described below. Entire sections and their elements (message, a repeating group, a component, a field, a code set, a code value) can be expanded (click on “+”) or collapsed (click on “-“), with each element having its own check box. All check boxes have two settings, selected and not selected. A third setting, partially selected, is possible for elements containing other elements. The user can only select or deselect a check box, partial selections are the result of Playlist indicating that some but not all of the nested elements have been selected.
Some of the check boxes are read-only as they are automatically set by Playlist. For example, selecting the check box of a message enables all of its groups, components and fields. Selecting a single field within a message will result in Playlist showing the message as partially selected. Selecting a partially selected check box changes it to being deselected and changing it to being fully selected requires selecting the check box again for a second time.
Messages
Alphabetical list of messages can be expanded to show its groups, components, and fields. These are also sorted alphabetically to ease searching in large messages. The fields are shown with their name, tag number and datatype or code set. The groups and components can only be expanded in the next two sections as V1.0 only supports a single subset for a given group or component. StandardHeader and StandardTrailer of messages are not shown but will automatically be added to each of the selected messages when creating the new Orchestra XML file.
Groups
Alphabetical list of all repeating groups (regardless of nesting level) can be expanded to show its nested groups, components, and fields. These are also sorted alphabetically to ease searching in large groups. The fields are shown with their name, tag number and datatype or code set. The nested groups and components cannot be expanded in place but are part of the single list of repeating groups or components (see next section). The fields with NumInGroup datatype for repeating groups are not shown but will automatically be added to each of the selected repeating groups when creating the new Orchestra XML file.
Components
Alphabetical list of all components (regardless of nesting level) can be expanded to show its nested groups, components, and fields. These are also sorted alphabetically to ease searching in large components. The fields are shown with their name, tag number and datatype or code set. The nested groups and components cannot be expanded in place but are part of the single list of repeating groups (see previous section) or components.
Fields
Fields are a read-only section, i.e. they are automatically shown as selected when enabling them in a message, group or component and vice-versa when disabled again. Fields are grouped by tag numbers into groups of 1,000 tags at a time and sorted by tag number. The tag ranges can be expanded to show individual fields. These are shown with their name, tag number, datatype and base datatype (only for code sets).
Code Sets
Code sets (a.k.a. enumerated values) are independent elements in the FIX Orchestra Technical Standard. They have a name that is derived from the main FIX field that uses its values and are listed alphabetically with their name and datatype. The individual codes are shown with their value and symbolic name (shown in FIXimate inside square brackets). Some code sets such as the one used by SecurityType(167) and similar fields have groups that are additionally displayed in brackets at the end of the line (FIXimate shows code set values sorted by group).
The code sets themselves are read-only and automatically shown as (partially) selected when enabling a field in a message, group or component that uses them. The code set will be deselected when there is no more selected field that uses it. The individual codes can be selected or deselected as long as at least one code has been selected. Once (partially) selected, deselecting a code set requires the user to deselect all fields using that code set from messages, groups and components.
Datatypes
Datatypes are a read-only section as they are automatically shown as selected when enabling a field with this datatype in a message, group or component. They are automatically disabled if no field with this datatype is selected.
Known Limitations
This section describes know limitations of the current version and provides workarounds where available.
- It is not possible to add a message, group, component, field, code set or code value that is not already part of the input reference file. Going back to the initial reference file and repeating the selection process is a simple workaround but may require significant effort. However, there is another solution for amendments of a new Orchestra XML file. Playlist is primarily intended to jumpstart the process of creating a basic machine-readable representation of an electronic interface. The maintenance of the related Orchestra XML file is supported by Tablature with the ability convert between an XML and a markdown representation. The Tablature wiki explains how to use markdown to define your Rules of Engagement.
- It is not possible to deselect the last code of a code set even if the code set is currently not used by any field. This happens when you go into the code set section and select a code of a previously unused code set. The workaround is to select a field using that code set in any of the messages, groups or components and immediately deselecting it. As it is the only usage, the deselection of the field also causes the entire code set to be deselected.
- When uploading a reference file containing the components StandardHeader and StandardTrailer, its required fields will automatically be selected for convenience. One of these fields is MsgType(35), which causes the entire code set MsgTypeCodeSet and all of its codes to be selected as well. This may require to deselect a large number of codes, especially if the reference file is the official one for FIX Latest which contains more than 160 message types. The workaround is to go into the components section where the StandardHeader is defined, deselect MsgType(35) to remove MsgTypeCodeSet in its entirety, then go to the code sets section and select the desired codes of MsgTypeCodeSet. Once the codes are selected, go back to the StandardHeader and select MsgType(35) again. It will not change the selected subset in MsgTypeCodeSet.
- Information about union datatypes is not provided in the display. However, the full field definition as provided in the input reference file is used for the creation of the new Orchestra XML file, i.e. it will include a union datatype if applicable.