首页 > 解决方案 > 在 MULTIPLECHARVALUE 或 MULTIPLESTRINGVALUE 字段中重复相同的值是否合法?

问题描述

假设 FIX 字段的类型为MULTIPLECHARVALUEor ,并且MULTIPLESTRINGVALUE为该字段定义的枚举值是AB和。我知道这是该字段的合法值,但是在该字段中重复的值是否合法?例如,合法吗?如果是,它的语义是什么?CD"A C D""A C C D"

我能想到三种可能:

  1. "A C C D"是无效值,因为C重复。
  2. "A C C D"是有效的并且在语义上与 相同"A C D"。换句话说,集合语义是有意的。
  3. "A C C D"是有效的并且具有多重集/袋语义。

MULTIPLECHARVALUE不幸的是,我MULTIPLESTRINGVALUE在 FIX 规范文档中找不到任何关于预期语义的明确定义。

标签: fix-protocol

解决方案


FIX50SP2 规范没有回答你的问题,所以我只能得出结论,这三种解释中的任何一种都可以被认为是有效的。

就像 FIX 的问题一样,真正的答案取决于您正在与之交流的交易对手。

所以我的回答是:

  1. 如果您是客户端应用程序,请询问您的交易对手他们想要什么(或查看他们的文档)。
  2. 如果您是服务器应用程序,您可以自行决定。您的文档应该告诉您的客户如何采取行动。

如果有帮助,QuickFIX/n 引擎会将 MultipleCharValue/MultipleStringValue 字段视为字符串,并将其留给应用程序代码来解析各个值。因此,开发人员很容易支持任何解释,甚至支持不同领域的不同解释。(我怀疑其他 QuickFIX 语言实现是相同的。)


推荐阅读