Re: [Quickfix-users] Problem parsing repeating group
Brought to you by:
orenmnero
From: Oren M. <or...@qu...> - 2004-10-18 15:46:08
|
Nathan, can you also please mention the version of QuickFIX you are =20 running? --oren On Oct 18, 2004, at 10:37 AM, Kidd, Nathan wrote: > QuickFIX Documentation: =20 > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX FAQ: =20 > http://www.quickfixengine.org/wikifix/index.php?QuickFixFAQ > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I an sending a security list request ("x") to a target server =20 > belonging to a > 3rd party. In response I get a list of securitylist messages ("y"). > > The FIX spec supplied by the 3rd party indicates that a user defined =20= > field > 6138 can occur within the Instrument component. I've therefore added =20= > the user > defined tag to the XML file we are using for validation. > > An example message (header not shown): > > 146=3D1=0155=3DMN > = 5500K=0148=3D20=0122=3D8=01461=3DOCXXXS=01200=3D200411=01541=3D20041119=01= 225=3D20040823=01202=3D55=20 > = 00=01231=3D1=016138=3D1=01711=3D1=01311=3DMNX04EXE=0115=3DEUR=01320=3D1=01= 322=3D03E382B50000=01560=3D0=01=20 > 393=3D5015=01893=3DN=01325=3DN=0110=3D009=01 > > However, quickfix doesn't read the message in correctly, and results =20= > in field > 711 being parsed twice. This means that when the body length check is =20= > done, > quickfix calculates it incorrectly, resulting in the following error: > > 20041018-15:07:19 : Invalid message: Expected BodyLength=3D242, = Recieved > BodyLength=3D236 > > Debugging reveals that quickfix appears to be reading field 6138 as =20= > part of > the 711 group, and reading field 711 twice (hence the incorrect =20 > length). > > Does anyone recognised what I may have done incorrectly? > > Many thanks, > Nathan > > This is from my xml: > > > <components> > <component name=3D"Instrument"> > <field name=3D"Symbol" required=3D"Y" /> > <field name=3D"SymbolSfx" required=3D"N" /> > <field name=3D"SecurityID" required=3D"N" /> > <field name=3D"SecurityIDSource" required=3D"N" /> > <group name=3D"NoSecurityAltID" required=3D"N"> > <field name=3D"SecurityAltID" required=3D"N" /> > <field name=3D"SecurityAltIDSource" required=3D"N" /> > </group> > <field name=3D"Product" required=3D"N" /> > <field name=3D"CFICode" required=3D"N" /> > <field name=3D"SecurityType" required=3D"N" /> > <field name=3D"SecuritySubType" required=3D"N" /> > <field name=3D"MaturityMonthYear" required=3D"N" /> > <field name=3D"MaturityDate" required=3D"N" /> > <field name=3D"CouponPaymentDate" required=3D"N" /> > <field name=3D"IssueDate" required=3D"N" /> > <field name=3D"RepoCollateralSecurityType" required=3D"N" /> > <field name=3D"RepurchaseTerm" required=3D"N" /> > <field name=3D"RepurchaseRate" required=3D"N" /> > <field name=3D"Factor" required=3D"N" /> > <field name=3D"CreditRating" required=3D"N" /> > <field name=3D"InstrRegistry" required=3D"N" /> > <field name=3D"CountryOfIssue" required=3D"N" /> > <field name=3D"StateOrProvinceOfIssue" required=3D"N" /> > <field name=3D"LocaleOfIssue" required=3D"N" /> > <field name=3D"RedemptionDate" required=3D"N" /> > <field name=3D"StrikePrice" required=3D"N" /> > <field name=3D"StrikeCurrency" required=3D"N" /> > <field name=3D"OptAttribute" required=3D"N" /> > <field name=3D"ContractMultiplier" required=3D"N" /> > <field name=3D"TickSize" required=3D"Y" /> > <field name=3D"CouponRate" required=3D"N" /> > <field name=3D"SecurityExchange" required=3D"N" /> > <field name=3D"Issuer" required=3D"N" /> > <field name=3D"EncodedIssuerLen" required=3D"N" /> > <field name=3D"EncodedIssuer" required=3D"N" /> > <field name=3D"SecurityDesc" required=3D"N" /> > <field name=3D"EncodedSecurityDescLen" required=3D"N" /> > <field name=3D"EncodedSecurityDesc" required=3D"N" /> > <field name=3D"Pool" required=3D"N" /> > <field name=3D"ContractSettlMonth" required=3D"N" /> > <field name=3D"CPProgram" required=3D"N" /> > <field name=3D"CPRegType" required=3D"N" /> > <group name=3D"NoEvents" required=3D"N"> > <field name=3D"EventType" required=3D"N" /> > <field name=3D"EventDate" required=3D"N" /> > <field name=3D"EventPx" required=3D"N" /> > <field name=3D"EventText" required=3D"N" /> > </group> > <field name=3D"DatedDate" required=3D"N" /> > <field name=3D"InterestAccrualDate" required=3D"N" /> > </component> > <SNIP><SNIP><SNIP> > <field number=3D"6138" name=3D"TickSize" type=3D"PRICE" /> > =09 > > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 > =3D=3D=3D=3D=3D=3D=3D > This message is for the sole use of the intended recipient. If you =20 > received > this message in error please delete it and notify us. If this message =20= > was > misdirected, CSFB does not waive any confidentiality or privilege. = CSFB > retains and monitors electronic communications sent through its =20 > network. > Instructions transmitted over this system are not binding on CSFB =20 > until they > are confirmed by us. Message transmission is not guaranteed to be =20 > secure. > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 > =3D=3D=3D=3D=3D=3D=3D > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IT Product Guide on =20 > ITManagersJournal > Use IT products in your business? Tell us what you think of them. Give = =20 > us > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out = =20 > more > http://productguide.itmanagersjournal.com/guidepromo.tmpl > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |