1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<title>Validation</title>
</head>
<body>
<div class='header'>
<div class='headertitle'>
Validation
</div>
</div>
<div class='contents'>
<p>QuickFIX will validate and reject any poorly formed messages
before they can reach your application. An XML file defines
what messages, fields, and values a session supports.</p>
<p>Several standard files are in included in the <b>spec</b>
directory.</p>
<p>The skeleton of a definition file looks like this.</p>
<pre class='fragment'>
<fix type="FIX" major="4" minor="1">
<header>
<field name="BeginString" required="Y"/>
...
</header>
<trailer>
<field name="CheckSum" required="Y"/>
...
</trailer>
<messages>
<message name="Heartbeat" msgtype="0" msgcat="admin">
<field name="TestReqID" required="N"/>
</message>
...
<message name="NewOrderSingle" msgtype="D" msgcat="app">
<field name="ClOrdID" required="Y"/>
...
</message>
...
</messages>
<fields>
<field number="1" name="Account" type="CHAR" />
...
<field number="4" name="AdvSide" type="CHAR">
<value enum="B" description="BUY" />
<value enum="S" description="SELL" />
<value enum="X" description="CROSS" />
<value enum="T" description="TRADE" />
</field>
...
</fields>
</fix>
</pre>
<p>The validator will not reject conditionally required fields
because the rules for them are not clearly defined. Using a
conditionally required field that is not preset will cause a
message to be rejected.</p>
</div>
</body>
</html>
|