delimiter

Imported from previous forum

what is the delimiter between fields, in a FIX message?: is it ^ or ?
because in the specification of FIX4.2 it’s ^ (in an annexe) and in an
example (not in the specifciations)!!
However, in the specifications of FIX4.2 the delimiter is: <SOH>!! and I
don’t know what character is it clearly!!
( In the specifications, they say: The non-printing, ASCII “SOH” (#001) and
they make as example of message:
“384=2<SOH>35=6<SOH>385=R<SOH>35=7<SOH>385=R<SOH>”)
Can someone clear me up this doubt, I mean what’s the delimiter, exactly,
between the fields of a FIX message?
and how can I know that the Standard Message Header has finished: I mean,
what’s the delimiter between the Standard Message Header and the body of the
message?
and what’s the delimiter between the body and the Standard Message Trailer?
Thank you in advance.
Najla.

[ original email was from Dave Stone - dave.stone@radianz.com ]
Najla,

Firstly, the ASCII collating sequence. SOH is described as “Start of Heading” and is abbreviated in text as SOH. Out of the first 32 non-printing characters, ie everything before the space character (SP), SOH is the 2nd character in this set and is allocated the value 001. As such it is also the control-a character. Prime position in this ASCII character set is termed NULL (or NUL for short) and has a value of zero (000). Another example includes BEL often noted as control-g, the ‘bell’ (BEL) character, or, backspace which is control-h and known as (BS). It is also commonplace when annotating protocol messages to embrace control/non-printing characters in the “<”/">" pair of characters. In the case of SOH this would be “<SOH>”, but remember that this represents just 1 byte/character. Sometimes, for expediency, the circumflex (^) character is used to indicate the delimiter, hence its use also.

Thus, the delimiter is one character, non-visible, and as such make a good candidate for delimiting an otherwise printable protocol stream.

If you look back through the discussion group you’ll see other references to peoples usage of SOH in both C and Java and these should help you.

On the header front, the ‘header’ is defined as a specific set of tag numbers. Some of those tags must occur right up front, namely 8, 9 and 35, where as the rest can be interspersed with the rest of the ‘non-header’ tags. The checksum tag must be last. So, whilst there are many ways of parsing a message, tag 9 is the message length, a useful indicator, and the checksum is a good tag in that the end of the message is very probably happening.

The specification is quite clear on these matters and some of the examples demonstrate their usage. Happy coding.

Regards,

> what is the delimiter between fields, in a FIX message?: is it ^ or ?
> because in the specification of FIX4.2 it’s ^ (in an annexe) and in an
> example (not in the specifciations)!!
> However, in the specifications of FIX4.2 the delimiter is: <SOH>!! and I
> don’t know what character is it clearly!!
> ( In the specifications, they say: The non-printing, ASCII “SOH” (#001) and
> they make as example of message:
> “384=2<SOH>35=6<SOH>385=R<SOH>35=7<SOH>385=R<SOH>”)
> Can someone clear me up this doubt, I mean what’s the delimiter, exactly,
> between the fields of a FIX message?
> and how can I know that the Standard Message Header has finished: I mean,
> what’s the delimiter between the Standard Message Header and the body of the
> message?
> and what’s the delimiter between the body and the Standard Message Trailer?
> Thank you in advance.
> Najla.

Also, the different versions of FIX appear to have different delimiters; ex. 4.2 has ^ and 4.0 uses . Is this correct?

Najla,

Firstly, the ASCII collating sequence. SOH is described as “Start of
Heading” and is abbreviated in text as SOH. Out of the first 32 non-
printing characters, ie everything before the space character (SP), SOH
is the 2nd character in this set and is allocated the value 001. As such
it is also the control-a character. Prime position in this ASCII
character set is termed NULL (or NUL for short) and has a value of zero
(000). Another example includes BEL often noted as control-g, the ‘bell’
(BEL) character, or, backspace which is control-h and known as (BS). It
is also commonplace when annotating protocol messages to embrace control/non-
printing characters in the “<”/“>” pair of characters. In the case of
SOH this would be “”, but remember that this represents just 1
byte/character. Sometimes, for expediency, the circumflex (^) character
is used to indicate the delimiter, hence its use also.

Thus, the delimiter is one character, non-visible, and as such make a
good candidate for delimiting an otherwise printable protocol stream.

If you look back through the discussion group you’ll see other
references to peoples usage of SOH in both C and Java and these
should help you.

On the header front, the ‘header’ is defined as a specific set of tag
numbers. Some of those tags must occur right up front, namely 8, 9 and
35, where as the rest can be interspersed with the rest of the ‘non-
header’ tags. The checksum tag must be last. So, whilst there are many
ways of parsing a message, tag 9 is the message length, a useful
indicator, and the checksum is a good tag in that the end of the message
is very probably happening.

The specification is quite clear on these matters and some of the
examples demonstrate their usage. Happy coding.

Regards,

what is the delimiter between fields, in a FIX message?: is it ^ or 
? because in the specification of FIX4.2 it’s ^ (in an annexe) and in
an example (not in the specifciations)!! However, in the
specifications of FIX4.2 the delimiter is: !! and I don’t know
what character is it clearly!! ( In the specifications, they say: The
non-printing, ASCII “SOH” (#001) and they make as example of message:
“384=235=6385=R35=7385=R”) Can someone clear
me up this doubt, I mean what’s the delimiter, exactly, between the
fields of a FIX message? and how can I know that the Standard Message
Header has finished: I mean, what’s the delimiter between the Standard
Message Header and the body of the message? and what’s the delimiter
between the body and the Standard Message Trailer? Thank you in
advance. Najla.

No. The field delimiter has always been the “SOH” (ASCII 0x01). It is an “unprintable” character, therefore, you may see different convetions to “render” it for people to “read” it.

Also, the different versions of FIX appear to have different delimiters;
ex. 4.2 has ^ and 4.0 uses . Is this correct?

Najla,

Firstly, the ASCII collating sequence. SOH is described as “Start of
Heading” and is abbreviated in text as SOH. Out of the first 32 non-
printing characters, ie everything before the space character (SP),
SOH is the 2nd character in this set and is allocated the value 001.
As such it is also the control-a character. Prime position in this
ASCII character set is termed NULL (or NUL for short) and has a
value of zero
(000). Another example includes BEL often noted as control-g, the
‘bell’ (BEL) character, or, backspace which is control-h and
known as (BS). It is also commonplace when annotating protocol
messages to embrace control/non- printing characters in the
“<”/“>” pair of characters. In the case of SOH this would be
“”, but remember that this represents just 1
byte/character. Sometimes, for expediency, the circumflex (^)
character is used to indicate the delimiter, hence its use
also.

Thus, the delimiter is one character, non-visible, and as such make a
good candidate for delimiting an otherwise printable protocol stream.

If you look back through the discussion group you’ll see other
references to peoples usage of SOH in both C and Java and these should
help you.

On the header front, the ‘header’ is defined as a specific set of tag
numbers. Some of those tags must occur right up front, namely 8, 9 and
35, where as the rest can be interspersed with the rest of the ‘non-
header’ tags. The checksum tag must be last. So, whilst there are many
ways of parsing a message, tag 9 is the message length, a useful
indicator, and the checksum is a good tag in that the end of the
message is very probably happening.

The specification is quite clear on these matters and some of the
examples demonstrate their usage. Happy coding.

Regards,

what is the delimiter between fields, in a FIX message?: is it ^ or
 ? because in the specification of FIX4.2 it’s ^ (in an annexe) and
in an example (not in the specifciations)!! However, in the
specifications of FIX4.2 the delimiter is: !! and I don’t know
what character is it clearly!! ( In the specifications, they say:
The non-printing, ASCII “SOH” (#001) and they make as example of
message: “384=235=6385=R35=7385=R”) Can
someone clear me up this doubt, I mean what’s the delimiter,
exactly, between the fields of a FIX message? and how can I know
that the Standard Message Header has finished: I mean, what’s the
delimiter between the Standard Message Header and the body of the
message? and what’s the delimiter between the body and the Standard
Message Trailer? Thank you in advance. Najla.