[QFJ-881] FieldType.MultipleValueString are not created from FIX5+ xml files Created: 12/Mar/16 Updated: 23/Sep/16 Resolved: 17/Mar/16 |
|
Status: | Closed |
Project: | QuickFIX/J |
Component/s: | Metadata/Specs |
Affects Version/s: | 1.6.1 |
Fix Version/s: | 1.6.2 |
Type: | Bug | Priority: | Default |
Reporter: | exgorth | Assignee: | Christoph John |
Resolution: | Fixed | Votes: | 0 |
Labels: | None |
Issue Links: |
|
Description |
Fields where 'type' attribute has value 'MULTIPLESTRINGVALUE' are referenced in all FIX5+.xml. They cannot be correctly identified when added to DataDictonary because corresponding definition quickfix.FieldType ( quickfix.FieldType#MultipleValueString) expects value 'MULTIPLEVALUESTRING'. Quick workaround for 1.6.1 is to update values in your xml dictionary, or change type to STRING and validate within app (as suggested elsewhere https://github.com/connamara/quickfixn/issues/66). Proper fix would probably involve correcting both xml files and quickfix.FieldType to refer to MultipleStringValue constant as defined in the the official fixmlschema doc: <xs:simpleType name="MultipleStringValue"> <xs:annotation> <xs:documentation>string field containing one or more space delimited multiple character values (e.g. |277=AV AN A| ).</xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:pattern value=".+(\s.+)*"/> </xs:restriction> </xs:simpleType> I would also suggest an engine to generate a warning (or allow some other strategy) when a DataDictionary parser encounters some 'unexpected' value (instead of just silently assuming type was Unknown) |
Comments |
Comment by exgorth [ 12/Mar/16 ] |
The benefit of fixing this: messages that carry such types, for example MarketDataIncrementalRefresh(X) holding 75=U X, could you correctly processed by the engine with dictionary validation turned on. At the moment it rejects such (valid) messages. |