1<?xml version="1.0" encoding="UTF-8"?>
  2<!-- CHART Activity algorithm specification files -->
  3<element name="activity" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  4  <interleave>
  5    <attribute name="xsi:noNamespaceSchemaLocation">
  6      <value>http://chart/schemas/activity.xsd</value>
  7    </attribute>
  8    <element name="description">
  9      <a:documentation>Give about one sentance describing what this activity does.</a:documentation>
 10      <text/>
 11    </element>
 12    <optional>
 13      <element name="url">
 14        <a:documentation>Link to a web page giving more information.</a:documentation>
 15        <text/>
 16      </element>
 17    </optional>
 18    <zeroOrMore>
 19      <element name="event">
 20        <a:documentation>List all events this activity can raise.</a:documentation>
 21        <text/>
 22      </element>
 23    </zeroOrMore>
 24    <element name="class">
 25      <a:documentation>General purpose processing algorithm or a report generator.</a:documentation>
 26      <choice>
 27        <value>algorithm</value>
 28        <value>report</value>
 29      </choice>
 30    </element>
 31    <optional>
 32      <element name="test">
 33        <a:documentation>Name of an executable to test this activity.</a:documentation>
 34        <text/>
 35      </element>
 36    </optional>
 37    <optional>
 38      <element name="executable">
 39        <a:documentation>For a processing algorithm name the executable file.</a:documentation>
 40        <text/>
 41      </element>
 42    </optional>
 43    <optional>
 44      <element name="template">
 45        <a:documentation>For a report activity name the report template XML file inside
 46settings.REPORT_TEMPLATE_DIR.</a:documentation>
 47        <text/>
 48      </element>
 49    </optional>
 50    <optional>
 51      <element name="weight">
 52        <a:documentation>Allow heavy-weight activities to be restricted to workers with more resources</a:documentation>
 53        <data type="float"/>
 54      </element>
 55    </optional>
 56    <optional>
 57      <element name="priority">
 58        <a:documentation>Allows workers to target some activities first</a:documentation>
 59        <data type="float"/>
 60      </element>
 61    </optional>
 62    <element name="calling-convention">
 63      <a:documentation>State which parameters the algorithm needs to be called with</a:documentation>
 64      <choice>
 65        <value>none</value>
 66        <value>timerange</value>
 67        <value>sid+timerange</value>
 68        <value>filename</value>
 69        <value>sid+hourly</value>
 70        <value>sid+timerange+table</value>
 71      </choice>
 72    </element>
 73    <zeroOrMore>
 74      <element name="trigger">
 75        <a:documentation>Tell the worker this activity should be called automatically after certain tables are written to</a:documentation>
 76        <interleave>
 77          <optional>
 78            <element name="with-stats">
 79              <data type="boolean"/>
 80            </element>
 81          </optional>
 82          <optional>
 83            <element name="type">
 84              <choice>
 85                <value>orbital</value>
 86                <value>daily</value>
 87                <value>hourly</value>
 88                <value>threedaily</value>
 89                <value>20min</value>
 90              </choice>
 91            </element>
 92          </optional>
 93          <optional>
 94            <element name="table">
 95              <text/>
 96            </element>
 97          </optional>
 98          <optional>
 99            <element name="latency">
100              <data type="duration"/>
101            </element>
102          </optional>
103        </interleave>
104      </element>
105    </zeroOrMore>
106    <zeroOrMore>
107      <element name="output-table">
108        <a:documentation>Declare all output tables we can write to.</a:documentation>
109        <text/>
110      </element>
111    </zeroOrMore>
112    <zeroOrMore>
113      <element name="group">
114        <a:documentation>This is purely cosmetic. Tell the report viewer to group together all reports with the
115same &lt;group&gt; value.</a:documentation>
116        <text/>
117      </element>
118    </zeroOrMore>
119    <zeroOrMore>
120      <element name="sid">
121        <a:documentation>Enable only for SIDs</a:documentation>
122        <text/>
123      </element>
124    </zeroOrMore>
125    <zeroOrMore>
126      <element name="related">
127        <a:documentation>When viewing a report in the report viewer the user can pull down a list of other
128reports to switch to. If the activity has &lt;related&gt; reports these are shown at the top.</a:documentation>
129        <zeroOrMore>
130          <element name="report">
131            <text/>
132          </element>
133        </zeroOrMore>
134      </element>
135    </zeroOrMore>
136    <optional>
137      <element name="weight">
138        <data type="integer"/>
139      </element>
140    </optional>
141    <optional>
142      <element name="priority">
143        <data type="integer"/>
144      </element>
145    </optional>
146    <optional>
147      <element name="configuration">
148        <oneOrMore>
149          <element name="parameter">
150            <interleave>
151              <element name="name">
152                <text/>
153              </element>
154              <element name="description">
155                <text/>
156              </element>
157              <element name="datatype">
158                <value>path</value>
159              </element>
160              <element name="value">
161                <text/>
162              </element>
163            </interleave>
164          </element>
165        </oneOrMore>
166      </element>
167    </optional>
168  </interleave>
169</element>