To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Revision:

root / test-schema.xsd

History | View | Annotate | Download (11.3 KB)

1
<?xml version="1.0"?>
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
  <!-- define simple elements-->
4
  <xs:element name="statement" type="xs:string"/>
5
  <xs:element name="metricenable" type="xs:string"/>
6
  <xs:element name="title" type="xs:string"/>
7
  
8
  <!-- define simple attributes-->
9
  <xs:attribute name="id" type="xs:ID"/>
10
  <xs:attribute name="mandatory" type="xs:boolean"/>
11
  <xs:attribute name="name" type="xs:string"/>
12

    
13
  <xs:attribute name="preSilence" default="0">
14
      <xs:simpleType>
15
          <xs:restriction base="xs:decimal">
16
              <xs:minInclusive value="0.0"/>
17
          </xs:restriction>
18
      </xs:simpleType>
19
  </xs:attribute>
20
  <xs:attribute name="postSilence" default="0">
21
      <xs:simpleType>
22
          <xs:restriction base="xs:decimal">
23
              <xs:minInclusive value="0.0"/>
24
          </xs:restriction>
25
      </xs:simpleType>
26
  </xs:attribute>
27
  
28
  <!-- define complex elements-->
29
  <xs:element name="waet">
30
    <xs:complexType>
31
      <xs:sequence>
32
        <xs:element ref="setup" minOccurs="1" maxOccurs="1"/>
33
        <xs:element ref="page" minOccurs="1" maxOccurs="unbounded"/>
34
      </xs:sequence>
35
    </xs:complexType>
36
  </xs:element>
37

    
38
  <xs:element name="setup">
39
    <xs:complexType>
40
      <xs:sequence>
41
        <xs:element name="exitText" type="xs:string" minOccurs="0" maxOccurs="1"/>
42
        <xs:element ref="survey" minOccurs="0" maxOccurs="2"/>
43
        <xs:element ref="metric" maxOccurs="1"/>
44
        <xs:element ref="interface" maxOccurs="1"/>
45
      </xs:sequence>
46
      <xs:attribute name="interface" type="xs:string" use="required"/>
47
      <xs:attribute name="projectReturn" type="xs:string" use="required"/>
48
      <xs:attribute name="randomiseOrder" type="xs:boolean" default="false"/>
49
      <xs:attribute name="testPages" type="xs:nonNegativeInteger" default="0"/>
50
      <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/>
51
      <xs:attribute name="sampleRate" type="xs:positiveInteger" use="optional"/>
52
      <xs:attribute name="calibration" type="xs:boolean" default="false"/>
53
      <xs:attribute ref="preSilence"/>
54
      <xs:attribute ref="postSilence"/>
55
    </xs:complexType>
56
  </xs:element>
57

    
58
  <xs:element name="page">
59
    <xs:complexType>
60
      <xs:sequence>
61
        <xs:element ref="title" minOccurs="0" maxOccurs="1"/>
62
        <xs:element name="commentboxprefix" type="xs:string" minOccurs="0" maxOccurs="1"/>
63
        <xs:element ref="interface" minOccurs="1" maxOccurs="unbounded"/>
64
        <xs:element ref="audioelement" minOccurs="1" maxOccurs="unbounded"/>
65
        <xs:element ref="commentquestion" minOccurs="0" maxOccurs="unbounded"/>
66
        <xs:element ref="survey" minOccurs="0" maxOccurs="2"/>
67
      </xs:sequence>
68
      <xs:attribute ref="id" use="required"/>
69
      <xs:attribute name="hostURL" type="xs:anyURI" default=""/>
70
      <xs:attribute name="randomiseOrder" type="xs:boolean" default="false"/>
71
      <xs:attribute name="repeatCount" type="xs:nonNegativeInteger" default="0"/>
72
      <xs:attribute name="loop" type="xs:boolean" default="false"/>
73
      <xs:attribute name="synchronous" type="xs:boolean" default="false"/>
74
      <xs:attribute name="showElementComments" type="xs:boolean" default="false"/>
75
      <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/>
76
      <xs:attribute name="hidden" type="xs:boolean" default="false"/>
77
      <xs:attribute name="label" use="optional" default="default">
78
          <xs:simpleType>
79
              <xs:restriction base="xs:string">
80
                  <xs:enumeration value="default"/>
81
                  <xs:enumeration value="none"/>
82
                  <xs:enumeration value="number"/>
83
                  <xs:enumeration value="letter"/>
84
                  <xs:enumeration value="capital"/>
85
                  <xs:enumeration value="given"/>
86
              </xs:restriction>
87
          </xs:simpleType>
88
      </xs:attribute>
89
      <xs:attribute name="originalId" use="optional" default="default">
90
          <xs:simpleType>
91
              <xs:restriction base="xs:string">
92
                  <xs:enumeration value="default"/>
93
                  <xs:enumeration value="none"/>
94
                  <xs:enumeration value="number"/>
95
                  <xs:enumeration value="letter"/>
96
                  <xs:enumeration value="capital"/>
97
                  <xs:enumeration value="given"/>
98
              </xs:restriction>
99
          </xs:simpleType>
100
      </xs:attribute><xs:attribute ref="preSilence"/>
101
      <xs:attribute ref="postSilence"/>
102
    </xs:complexType>
103
  </xs:element>
104

    
105
  <xs:element name="metric">
106
    <xs:complexType>
107
      <xs:sequence>
108
        <xs:element name="metricenable" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
109
      </xs:sequence>
110
    </xs:complexType>
111
  </xs:element>
112

    
113
  <xs:element name="interface">
114
    <xs:complexType>
115
      <xs:sequence>
116
        <xs:element ref="title" minOccurs="0" maxOccurs="1"/>
117
        <xs:element name="interfaceoption" minOccurs="0" maxOccurs="unbounded">
118
          <xs:complexType>
119
            <xs:attribute name="type" use="required">
120
              <xs:simpleType>
121
                <xs:restriction base="xs:string">
122
                  <xs:enumeration value="check"/>
123
                  <xs:enumeration value="show"/>
124
                  <xs:enumeration value="option"/>
125
                </xs:restriction>
126
              </xs:simpleType>
127
            </xs:attribute>
128
            <xs:attribute ref="name" use="required"/>
129
            <xs:attribute name="min" type="xs:decimal" use="optional"/>
130
            <xs:attribute name="max" type="xs:decimal" use="optional"/>
131
          </xs:complexType>
132
        </xs:element>
133
        <xs:element name="scales" minOccurs="0" maxOccurs="1">
134
          <xs:complexType>
135
            <xs:sequence>
136
              <xs:element name="scalelabel" minOccurs="0" maxOccurs="unbounded">
137
                <xs:complexType>
138
                  <xs:simpleContent>
139
                    <xs:extension base="xs:string">
140
                      <xs:attribute name="position" use="required">
141
                        <xs:simpleType>
142
                          <xs:restriction base="xs:nonNegativeInteger">
143
                            <xs:minInclusive value="0"/>
144
                            <xs:maxInclusive value="100"/>
145
                          </xs:restriction>
146
                        </xs:simpleType>
147
                      </xs:attribute>
148
                    </xs:extension>
149
                  </xs:simpleContent>
150
                </xs:complexType>
151
              </xs:element>
152
            </xs:sequence>
153
          </xs:complexType>
154
        </xs:element>
155
      </xs:sequence>
156
      <xs:attribute ref="name" use="optional"/>
157
    </xs:complexType>
158
  </xs:element>
159

    
160
  <xs:element name="audioelement">
161
    <xs:complexType>
162
      <xs:attribute ref="id" use="required"/>
163
      <xs:attribute name="url" type="xs:anyURI" use="required"/>
164
      <xs:attribute name="gain" type="xs:decimal" default="0"/>
165
      <xs:attribute name="label"/>
166
      <xs:attribute name="inactive" type="xs:boolean" default="false"/>
167
      <xs:attribute name="originalId"/>
168
      <xs:attribute ref="name"/>
169
      <xs:attribute name="type" default="normal">
170
        <xs:simpleType>
171
          <xs:restriction base="xs:string">
172
            <xs:enumeration value="normal"/>
173
            <xs:enumeration value="anchor"/>
174
            <xs:enumeration value="reference"/>
175
            <xs:enumeration value="outside-reference"/>
176
          </xs:restriction>
177
        </xs:simpleType>
178
      </xs:attribute>
179
      <xs:attribute name="marker" use="optional">
180
        <xs:simpleType>
181
          <xs:restriction base="xs:nonNegativeInteger">
182
            <xs:minInclusive value="0"/>
183
            <xs:maxInclusive value="100"/>
184
          </xs:restriction>
185
        </xs:simpleType>
186
      </xs:attribute>
187
      <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/>
188
      <xs:attribute ref="preSilence"/>
189
      <xs:attribute ref="postSilence"/>
190
    </xs:complexType>
191
  </xs:element>
192

    
193
  <xs:element name="commentquestion">
194
    <xs:complexType>
195
      <xs:sequence>
196
        <xs:element ref="statement" minOccurs="0" maxOccurs="1"/>
197
        <xs:element name="option" minOccurs="0" maxOccurs="unbounded">
198
          <xs:complexType>
199
            <xs:simpleContent>
200
              <xs:extension base="xs:string">
201
                <xs:attribute ref="name"/>
202
              </xs:extension>
203
            </xs:simpleContent>
204
          </xs:complexType>
205
        </xs:element>
206
      </xs:sequence>
207
      <xs:attribute ref="id" use="optional"/>
208
      <xs:attribute ref="name" use="optional"/>
209
      <xs:attribute name="type" default="question">
210
        <xs:simpleType>
211
          <xs:restriction base="xs:string">
212
            <xs:enumeration value="question"/>
213
            <xs:enumeration value="radio"/>
214
            <xs:enumeration value="checkbox"/>
215
          </xs:restriction>
216
        </xs:simpleType>
217
      </xs:attribute>
218
    </xs:complexType>
219
  </xs:element>
220

    
221
  <xs:element name="survey">
222
    <xs:complexType>
223
      <xs:sequence>
224
        <xs:element name="surveyentry" minOccurs="0" maxOccurs="unbounded">
225
          <xs:complexType>
226
            <xs:sequence>
227
              <xs:element ref="statement" minOccurs="1" maxOccurs="1"/>
228
              <xs:element name="option" minOccurs="0" maxOccurs="unbounded">
229
                <xs:complexType>
230
                  <xs:simpleContent>
231
                    <xs:extension base="xs:string">
232
                      <xs:attribute ref="name"/>
233
                    </xs:extension>
234
                  </xs:simpleContent>
235
                </xs:complexType>
236
              </xs:element>
237
            </xs:sequence>
238
            <xs:attribute ref="id" use="required"/>
239
            <xs:attribute ref="name"/>
240
            <xs:attribute ref="mandatory"/>
241
            <xs:attribute name="min" type="xs:decimal"/>
242
            <xs:attribute name="max" type="xs:decimal"/>
243
            <xs:attribute name="type" use="required">
244
              <xs:simpleType>
245
                <xs:restriction base="xs:string">
246
                  <xs:enumeration value="statement"/>
247
                  <xs:enumeration value="question"/>
248
                  <xs:enumeration value="number"/>
249
                  <xs:enumeration value="radio"/>
250
                  <xs:enumeration value="checkbox"/>
251
                </xs:restriction>
252
              </xs:simpleType>
253
            </xs:attribute>
254
            <xs:attribute name="boxsize" default="normal">
255
              <xs:simpleType>
256
                <xs:restriction base="xs:string">
257
                  <xs:enumeration value="normal"/>
258
                  <xs:enumeration value="large"/>
259
                  <xs:enumeration value="small"/>
260
                  <xs:enumeration value="huge"/>
261
                </xs:restriction>
262
              </xs:simpleType>
263
            </xs:attribute>
264
          </xs:complexType>
265
        </xs:element>
266
      </xs:sequence>
267
      <xs:attribute name="location">
268
        <xs:simpleType>
269
          <xs:restriction base="xs:string">
270
            <xs:enumeration value="before"/>
271
            <xs:enumeration value="pre"/>
272
            <xs:enumeration value="after"/>
273
            <xs:enumeration value="post"/>
274
          </xs:restriction>
275
        </xs:simpleType>
276
      </xs:attribute>
277
    </xs:complexType>
278
  </xs:element>
279
  
280
</xs:schema>