File: xmlschema.html

package info (click to toggle)
quickfix 1.15.1%2Bdfsg-4
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye
  • size: 42,080 kB
  • sloc: cpp: 631,686; python: 129,549; ruby: 106,716; xml: 43,737; ansic: 7,668; java: 1,826; cs: 816; makefile: 544; sh: 462; sql: 313
file content (67 lines) | stat: -rw-r--r-- 1,878 bytes parent folder | download | duplicates (2)
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'>
&lt;fix type="FIX" major="4" minor="1"&gt;
  &lt;header&gt;
    &lt;field name="BeginString" required="Y"/&gt;
    ...
  &lt;/header&gt;
  &lt;trailer&gt;
    &lt;field name="CheckSum" required="Y"/&gt;
    ...
  &lt;/trailer&gt;
  &lt;messages&gt;
    &lt;message name="Heartbeat" msgtype="0" msgcat="admin"&gt;
      &lt;field name="TestReqID" required="N"/&gt;
    &lt;/message&gt;
    ...
    &lt;message name="NewOrderSingle" msgtype="D" msgcat="app"&gt;
      &lt;field name="ClOrdID" required="Y"/&gt;
      ...
    &lt;/message&gt;
    ...
  &lt;/messages&gt;
  &lt;fields&gt;
    &lt;field number="1" name="Account" type="CHAR" /&gt;
    ...
    &lt;field number="4" name="AdvSide" type="CHAR"&gt;
     &lt;value enum="B" description="BUY" /&gt;
     &lt;value enum="S" description="SELL" /&gt;
     &lt;value enum="X" description="CROSS" /&gt;
     &lt;value enum="T" description="TRADE" /&gt;
   &lt;/field&gt;
   ...
  &lt;/fields&gt;
&lt;/fix&gt;
</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>