1<?xml version="1.0" encoding="UTF-8"?>
  2<!-- CHART Event Classes definitions -->
  3<grammar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://relaxng.org/ns/structure/1.0">
  4  <start>
  5    <ref name="classdef"/>
  6  </start>
  7  <define name="classdef">
  8    <element name="class">
  9      <interleave>
 10        <optional>
 11          <attribute name="xsi:noNamespaceSchemaLocation">
 12            <value>http://chart/schemas/eventclasses.xsd</value>
 13          </attribute>
 14        </optional>
 15        <element name="name">
 16          <text/>
 17        </element>
 18        <optional>
 19          <element name="description">
 20            <text/>
 21          </element>
 22        </optional>
 23        <optional>
 24          <element name="renderer">
 25            <value>ool_event</value>
 26          </element>
 27        </optional>
 28        <optional>
 29          <element name="key-code">
 30            <text/>
 31          </element>
 32        </optional>
 33        <optional>
 34          <element name="test">
 35            <text/>
 36          </element>
 37        </optional>
 38        <optional>
 39          <element name="template">
 40            <text/>
 41          </element>
 42        </optional>
 43        <optional>
 44          <!-- element function { text } & -->
 45          <element name="email-function">
 46            <text/>
 47          </element>
 48        </optional>
 49        <optional>
 50          <element name="email-notification">
 51            <text/>
 52          </element>
 53        </optional>
 54        <optional>
 55          <element name="url">
 56            <text/>
 57          </element>
 58        </optional>
 59        <zeroOrMore>
 60          <element name="class-property">
 61            <interleave>
 62              <element name="name">
 63                <text/>
 64              </element>
 65              <element name="value">
 66                <text/>
 67              </element>
 68            </interleave>
 69          </element>
 70        </zeroOrMore>
 71        <zeroOrMore>
 72          <element name="instance-property">
 73            <interleave>
 74              <element name="name">
 75                <text/>
 76              </element>
 77              <element name="type">
 78                <choice>
 79                  <value>int</value>
 80                  <value>uint</value>
 81                  <value>float</value>
 82                  <value>string</value>
 83                  <value>duration</value>
 84                  <value>datetime</value>
 85                  <value>boolean</value>
 86                  <value>json</value>
 87                </choice>
 88              </element>
 89              <optional>
 90                <element name="unit">
 91                  <text/>
 92                </element>
 93              </optional>
 94              <optional>
 95                <element name="description">
 96                  <text/>
 97                </element>
 98              </optional>
 99              <optional>
100                <element name="optional">
101                  <empty/>
102                </element>
103              </optional>
104              <optional>
105                <element name="defaultview">
106                  <empty/>
107                </element>
108              </optional>
109              <optional>
110                <element name="choices">
111                  <oneOrMore>
112                    <element name="item">
113                      <interleave>
114                        <optional>
115                          <element name="value">
116                            <text/>
117                          </element>
118                        </optional>
119                        <optional>
120                          <element name="name">
121                            <text/>
122                          </element>
123                        </optional>
124                        <optional>
125                          <element name="description">
126                            <text/>
127                          </element>
128                        </optional>
129                        <optional>
130                          <element name="colour">
131                            <text/>
132                          </element>
133                        </optional>
134                      </interleave>
135                    </element>
136                  </oneOrMore>
137                </element>
138              </optional>
139            </interleave>
140          </element>
141        </zeroOrMore>
142        <zeroOrMore>
143          <ref name="classdef"/>
144        </zeroOrMore>
145      </interleave>
146    </element>
147  </define>
148</grammar>