FIX协议一般允许空字符串值吗?

问题描述 投票:0回答:2

当我查看 FIX 协议中 String 类型的定义时(例如 herehere),我没有看到指定的最小长度。是否允许使用空字符串?一个在线解码器似乎接受一个空字符串值(参见标签 320),另一个其他抱怨它无效。

fix-protocol
2个回答
2
投票

FIX 4.4规范规定如下(原文强调):

每条消息均由

<tag>=<value>
字段流构成,其中包含 流中字段之间的字段分隔符。标签属于数据类型 标签号所有标签都必须指定一个值。可选字段无 不应在 FIX 消息中指定值。拒绝 消息是对没有值的标签的适当响应。

这强烈表明(但没有明确指出)我对字符串使用空值是无效的。不同的 FIX 实现可能以不同的方式处理这种边缘情况,这对我来说并不奇怪。所以,我认为最好的方法是避免对字符串使用空值。


1
投票

+1 表示 Ciaran 和 Grant 的回答/评论。只是想添加一些东西。

  1. 我通常建议在最新规范中查找类似的内容,因为它们通常已经过改进/重新措辞/澄清,以消除旧规范中不清楚或不明确的陈述。

  2. 答案就在您问题中链接到的页面上(强调我的): https://www.fixtrading.org/standards/tagvalue-online/#well-formed-field

格式良好的域具有以下形式:

tag=value<SOH>

如果编码结果出现以下任何情况,则字段应被视为格式错误:

标签为空

缺少标签分隔符

该值为空

该值包含

<SOH>
字符并且该字段的数据类型不是 data 或 XMLdata

该字段的数据类型是数据,并且该字段前面没有紧接着其关联的长度字段。

© www.soinside.com 2019 - 2024. All rights reserved.