FIX Trading Community

 

 Remember me

Register  |   Lost password?

General Q/A

Discussions > General Q/A > delimiter

delimiter

Complete message thread from old site

Najla Ouragini
4783 days ago,(2001/03/19)

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.

FIX Trading Community
4783 days ago,(2001/03/19)

[ 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.

Jebeh Kawah
2080 days ago,(2008/08/12)

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.

Scott Atwell
2080 days ago,(2008/08/12)

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.