In this chapter we will walk through schema field related operations in FIX schema editor.
In the schema document, expand the root tree node (US_Equity_PropDesk_44), and perform a mouse right click on the "Fields" node.
A pop up menu will be displayed. Click the "Add New Field" item on the pop up.
A "Create New Schema Field" dialog will pop up.
In this example, we will create a new custom string field with name "VwapVolCurveType" and tag value "6000". Note the schema editor will display error dialog if the user specifies a new file name or tag ID that conflicts with that of existing fields.
Click "OK" button. The new custom field will be added to the schema field list in the schema tree. The actual location of the new field depends on the sorting method of the schema field list display.
Note: Enterprise Manager checks the format of name, as well as any possible conflicts with existing fields. For more information about naming convention, see Resource Names and Versions.
When a schema field is selected in the schema editor view, the details of the field will be displayed on the panel located in the lower right part of the schema document view. The information will also be displayed in the "Properties" tool window which located on the upper right corner of the screen shot below. User can modify the schema field by modifying the information in the "Properties" tool window.
Note: "Properties" tool window is the only way to modify the schema. Make sure that tool window is activated and visible.
FIX schema field can have a list of valid values. To add a new valid value to the specific field, right click the field node in the schema editor view.
Choose "Add ValidValue" in the pop up menu.
A "Create a New ValidValue" dialog will pop up. Fill in the name, value and description of the valid value. Note FIX enterprise will pop up an error dialog if user provides invalid name or values, or the name or value conflicts with existing one.
Click "OK" button, the new valid value will be added. Repeat the step described above to add more valid values.
If a valid value node is selected in the tree view of schema editor, the right side of the view will display the detail information of both the declaring field and the valid value. The upper panel displays the valid value information, the lower panel displays the field information, respectively
Both field and valid value can be modified using the "Properties" tool window. Each schema field has a "ValidValueExclusive" flag controlling the validation of the FIX messages contain that field tag.
If the "ValidValueExclusive" flag is set to "true" and a FIX message contains that field tag, if the value of the field is not in the valid value list, the message should be considered invalid.
Users can not modify or delete properties of a custom schema field if that field is defined in the parent standard schema. The "ValidValueExclusive" flag is the only exception, because modifying that flag doesn't alters the schema, it only affects the message validation.
FIX messages may contain a special field that contains binary data, namely the "EncodedData" field. Because the tag delimiter may appear in the binary data, that special type of field must be preceded with a "length" field.
It's not recommended to define custom encoded data field in custom schemas. But if an encoded data field do need to be defined, Enterprise manager provides special support to define such field.
In the following example, we first created an encoded length field and encoded data field, with tag values 6010 and 6011, respectively.

Right click on the node of the field "CustomEncodedData" we just created. Because the field has a type of "data" (see screen shot above), an extra item "Specify EncodedDataLen Tag" will appear in the pop up menu. Choose that menu item.
A field chooser dialog will pop up with all qualified fields. In FIX 4.4, a qualified "encoded data length" field must have a type of "length" and haven't not been linked to other "encoded data" field. In this example, we only have one qualified field. So we just select that field and click "OK", the association will be established.
The encoded data related information can also be viewed from the "Properties" tool window. For example, select the "CustomEncodedLen" field, the information about encoded will be displayed, as shown in the screen shot below.
As we mentioned before, user can not delete derived fields from custom FIX schema. Nevertheless, QWFIX Enterprise manager provides a way to delete a field from all all messages and components in the schema. For example, in this example, we defined a custom schema for US domestic equity proprietary trading. So we know we won't be using the tags related to underlying securities which is usually used in fixed income trading.
We can excluding one such field, field "NoUnderlyings" with tag "711" by right clicking the field node and choose "Exclude Field From All Messages" in the pop up menu.
A confirmation dialog will pop up with a list of messages/components that will be affected by that operation.
Click "Yes" button, the field will be deleted from all messages and components defined in the current schema. Note in this example, the field represents a repeating group in FIX message, QWFIX Enterprise Manager is smart enough to delete all underlying fields in message accordingly (encoded data related field will be treated in a similar way).
Note: QWFIX Enterprise Manager employs complicated checking rules in operations. If a user attempts to exclude a field that appears in message header from a custom schema, the Enterprise Manager will report an error and abort the request. In the error message, the Enterprise Manager will tell the user to modify the header in the parent standard schema first.
Unlike schema fields, user can delete a valid value associated with a field in a custom schema. Deleting a valid value may possibly affect the message validation. Sometimes it's the desired behavior. For example, in the example above, the schema is used for equity trading, so valid values such as ForexMarket, ForexLimit and ForexSwap should be removed from field OrdType (tag 40) because those values are used in currency trading.
The schema editor uses different icons to represent different states for schema fields and valid values of fields.
A new field defined in schema will be displayed with a
icon.
A field inherited from standard schema without modification in new schema will be displayed with a
icon.
A field inherited from standard schema with modification in new schema will be displayed with a
icon. Modification includes modification to the field property or modification to the underlying
validvalues.
A new valid value defined in schema field will be displayed with a
icon.
A valid value inherited from the same field in standard schema will be displayed with a
icon.
A valid value defined in the same field in standard schema but is deleted
from the custom schema will be displayed with a
icon.
Note: User can not delete inherited field from the custom schema, nor can user modify a valid value derived from standard schema.