[This message was posted by Hanno Klein of Deutsche Börse Systems 
<[email protected]> to the "FIXML" discussion forum at 
http://fixprotocol.org/discuss/7. You can reply to it on-line at 
http://fixprotocol.org/discuss/read/50a71755 - PLEASE DO NOT REPLY BY MAIL.]

Hi Clive,

I do not understand the semantic that the sender is trying to convey in this 
case. Is it "there are 3 contra brokers, one of which I have no further 
information on or I have information but I cannot disclose it"?

If I understand the issue correctly then it is not about an empty repeating 
group but about an empty INSTANCE of a repeating group. In the tag=value syntax 
it is not possible to convey an empty instance, i.e. NoXXX and the number of 
field sets must be identical. Each of the field sets starts with the first 
field of the group which is conditionally required. The FIXML syntax does not 
have NoXXX fields, i.e. the cardinality is implicit and each instance has a 
separate element enclosed in "<" and "\". This makes possible what you show 
below.

My view is that NoXXX must not be overloaded with multiple semantics. The only 
semantic it has is of technical nature and in the context of tag=value syntax. 
For example, in case of the contra brokers, its sole purpose is to convey the 
number of contra brokers for which detailed information is about to follow. It 
does NOT convey the number of actual contra brokers. A separate (new) field, 
e.g. TotNumContraBrokers would be needed to convey that there were 3 brokers, 
followed by a repeating group conveying data about two of them. Then you have 
an explicit field in FIXML and no mapping problem.

A construct such as <ns0:Contra/> must not be allowed as it cannot be mapped to 
tag=value which is the basis for everything in FIX. A workaround is to send 375 
with a dummy value or an empty string, i.e. <ns0:Contra 375=”[N/A]”/> or 
<ns0:Contra 375=””/>.

Empty repeating groups can be conveyed in tag=value by omitting the group. This 
is only available for optional repeating groups, e.g. MDFullGrp does not allow 
its omittance and a new MDEntryType=J=Empty Book was added for that purpose. 
This is worth a discussion but it is a different issue.

To summarize, issues are:
a) empty instance of a repeating group
b) empty repeating group

My view is that a) must not be allowed explicitly as it can only be done in 
FIXML (<GroupName\>) and that b) must not be allowed explicitly as it can only 
be done in tag=value (NoXXX=0). I am only aware of a discussion on b) in the 
past but not on a).

Market data is a special case for b) because book data is not the only 
information that can be part of the repeating group, i.e. you can send trades 
as well as an empty book. Absence of the entire group thus is not identical to 
MDEntryType=J because absence also means there are no trades, opening prices, 
highs, lows,... available.

Regards,
Hanno.

> 
> The "Contra" element / component in FIX has no mandatory fields (count tag = 
> 382). When used in FIXML if no tags are available for the component should 
> the whole "Contra" element be excluded from the FIXML message?
> 
> Taking this further.. would the sample below be valid.. and how could/should 
> it be converted to FIX tag-value.. there are 3 elements for "Contra" but in 
> tag-value a count of 3 would be invalid as one of the repeating group 
> elements would be empty, which would be invalid...
> 
> <ns0:ExecRpt xmlns:ns0="http://www.fixprotocol.org/FIXML-5-0"; 
>       OrdID="1" 
>       ID="110" ExecTyp="F" Stat="2" 
>       Side="2" Px="13000.0" AvgPx="0.0" 
>       ExecID="1" LastPx="1" LastQty="1" 
>       LeavesQty="0" CumQty="1" 
>       TrdDt="2010-09-23" 
>       TxnTm="2010-09-23T22:01:54.754" 
>       SettlTyp="4" 
>       TradeId="1" 
>       SettlDt="2010-09-28">
>     <ns0:Hdr SID="SID" TID="TID" SeqNum="80" 
>       PosDup="N" PosRsnd="N" Snt="2010-09-23T22:01:54.76"/>
>     <ns0:Pty ID="1" Src="D" R="1"/>
>     <ns0:Pty ID="2" Src="D" R="2"/>
>     <ns0:Contra/>
>     <ns0:Contra 375=”SOMEVALUE”/>
>     <ns0:Contra 375=”SOMEVALUEOTHERVALUE”/>
>     <ns0:Instrmt Sym="A" Exch="A"/>
>     <ns0:OrdQty Qty="1"/>
> </ns0:ExecRpt>
> 
> Any help appreciated
> 
> Thanks
> 
> Clive


[You can unsubscribe from this discussion group by sending a message to 
mailto:[email protected]]

-- 
You received this message because you are subscribed to the Google Groups 
"Financial Information eXchange" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fix-protocol?hl=en.

Reply via email to