annotate test-schema.xsd @ 1940:fffc644a018d

Hotfix: Updated schema. <audioelement>, <surveyelement> and <commentquestion> have optional name attribute.
author Nicholas Jillings <nickjillings@users.noreply.github.com>
date Wed, 09 Mar 2016 11:29:16 +0000
parents 7c846e19725f
children c82bd8a6fa95
rev   line source
me@1936 1 <?xml version="1.0"?>
me@1936 2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
me@1936 3 <!-- define simple elements-->
me@1936 4 <xs:element name="statement" type="xs:string"/>
me@1936 5 <xs:element name="metricenable" type="xs:string"/>
me@1936 6 <xs:element name="title" type="xs:string"/>
me@1936 7
me@1936 8 <!-- define simple attributes-->
me@1936 9 <xs:attribute name="id" type="xs:ID"/>
me@1936 10 <xs:attribute name="mandatory" type="xs:boolean"/>
me@1936 11 <xs:attribute name="name" type="xs:string"/>
me@1936 12
me@1936 13 <!-- define complex elements-->
me@1936 14 <xs:element name="waet">
me@1936 15 <xs:complexType>
me@1936 16 <xs:sequence>
me@1936 17 <xs:element ref="setup" minOccurs="1" maxOccurs="1"/>
me@1936 18 <xs:element ref="page" minOccurs="1" maxOccurs="unbounded"/>
me@1936 19 </xs:sequence>
me@1936 20 </xs:complexType>
me@1936 21 </xs:element>
me@1936 22
me@1936 23 <xs:element name="setup">
me@1936 24 <xs:complexType>
me@1936 25 <xs:sequence>
me@1936 26 <xs:element ref="survey" minOccurs="0" maxOccurs="2"/>
me@1936 27 <xs:element ref="metric" maxOccurs="1"/>
me@1936 28 <xs:element ref="interface" maxOccurs="1"/>
me@1936 29 </xs:sequence>
me@1936 30 <xs:attribute name="interface" type="xs:string" use="required"/>
me@1936 31 <xs:attribute name="projectReturn" type="xs:string" use="required"/>
me@1936 32 <xs:attribute name="randomiseOrder" type="xs:boolean" default="false"/>
me@1936 33 <xs:attribute name="testPages" type="xs:nonNegativeInteger" default="0"/>
me@1936 34 <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/>
me@1936 35 <xs:attribute name="sampleRate" type="xs:positiveInteger" use="optional"/>
me@1936 36 </xs:complexType>
me@1936 37 </xs:element>
me@1936 38
me@1936 39 <xs:element name="page">
me@1936 40 <xs:complexType>
me@1936 41 <xs:sequence>
me@1936 42 <xs:element ref="title" minOccurs="0" maxOccurs="1"/>
me@1936 43 <xs:element name="commentboxprefix" type="xs:string" minOccurs="0" maxOccurs="1"/>
me@1936 44 <xs:element ref="interface" minOccurs="1" maxOccurs="unbounded"/>
me@1936 45 <xs:element ref="audioelement" minOccurs="1" maxOccurs="unbounded"/>
me@1936 46 <xs:element ref="commentquestion" minOccurs="0" maxOccurs="unbounded"/>
me@1936 47 <xs:element ref="survey" minOccurs="0" maxOccurs="2"/>
me@1936 48 </xs:sequence>
me@1936 49 <xs:attribute ref="id" use="required"/>
nickjillings@1939 50 <xs:attribute name="hostURL" type="xs:anyURI" default=""/>
me@1936 51 <xs:attribute name="randomiseOrder" type="xs:boolean" default="false"/>
me@1936 52 <xs:attribute name="repeatCount" type="xs:nonNegativeInteger" default="0"/>
me@1936 53 <xs:attribute name="loop" type="xs:boolean" default="false"/>
me@1936 54 <xs:attribute name="showElementComments" type="xs:boolean" default="false"/>
me@1936 55 <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/>
me@1936 56 </xs:complexType>
me@1936 57 </xs:element>
me@1936 58
me@1936 59 <xs:element name="metric">
me@1936 60 <xs:complexType>
me@1936 61 <xs:sequence>
me@1936 62 <xs:element name="metricenable" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
me@1936 63 </xs:sequence>
me@1936 64 </xs:complexType>
me@1936 65 </xs:element>
me@1936 66
me@1936 67 <xs:element name="interface">
me@1936 68 <xs:complexType>
me@1936 69 <xs:sequence>
me@1936 70 <xs:element ref="title" minOccurs="0" maxOccurs="1"/>
me@1936 71 <xs:element name="interfaceoption" minOccurs="0" maxOccurs="unbounded">
me@1936 72 <xs:complexType>
me@1936 73 <xs:attribute name="type" use="required">
me@1936 74 <xs:simpleType>
me@1936 75 <xs:restriction base="xs:string">
me@1936 76 <xs:enumeration value="check"/>
me@1936 77 <xs:enumeration value="show"/>
me@1936 78 <xs:enumeration value="option"/>
me@1936 79 </xs:restriction>
me@1936 80 </xs:simpleType>
me@1936 81 </xs:attribute>
me@1936 82 <xs:attribute ref="name" use="required"/>
me@1936 83 <xs:attribute name="min" type="xs:decimal" use="optional"/>
me@1936 84 <xs:attribute name="max" type="xs:decimal" use="optional"/>
me@1936 85 </xs:complexType>
me@1936 86 </xs:element>
me@1936 87 <xs:element name="scales" minOccurs="0" maxOccurs="1">
me@1936 88 <xs:complexType>
me@1936 89 <xs:sequence>
me@1936 90 <xs:element name="scalelabel" minOccurs="0" maxOccurs="unbounded">
me@1936 91 <xs:complexType>
me@1936 92 <xs:simpleContent>
me@1936 93 <xs:extension base="xs:string">
me@1936 94 <xs:attribute name="position" use="required">
me@1936 95 <xs:simpleType>
me@1936 96 <xs:restriction base="xs:nonNegativeInteger">
me@1936 97 <xs:minInclusive value="0"/>
me@1936 98 <xs:maxInclusive value="100"/>
me@1936 99 </xs:restriction>
me@1936 100 </xs:simpleType>
me@1936 101 </xs:attribute>
me@1936 102 </xs:extension>
me@1936 103 </xs:simpleContent>
me@1936 104 </xs:complexType>
me@1936 105 </xs:element>
me@1936 106 </xs:sequence>
me@1936 107 </xs:complexType>
me@1936 108 </xs:element>
me@1936 109 </xs:sequence>
me@1936 110 <xs:attribute ref="name" use="optional"/>
me@1936 111 </xs:complexType>
me@1936 112 </xs:element>
me@1936 113
me@1936 114 <xs:element name="audioelement">
me@1936 115 <xs:complexType>
me@1936 116 <xs:attribute ref="id" use="required"/>
me@1936 117 <xs:attribute name="url" type="xs:anyURI" use="required"/>
me@1936 118 <xs:attribute name="gain" type="xs:decimal" default="0"/>
nickjillings@1940 119 <xs:attribute ref="name"/>
me@1936 120 <xs:attribute name="type" default="normal">
me@1936 121 <xs:simpleType>
me@1936 122 <xs:restriction base="xs:string">
me@1936 123 <xs:enumeration value="normal"/>
me@1936 124 <xs:enumeration value="anchor"/>
me@1936 125 <xs:enumeration value="reference"/>
me@1936 126 <xs:enumeration value="outside-reference"/>
me@1936 127 </xs:restriction>
me@1936 128 </xs:simpleType>
me@1936 129 </xs:attribute>
me@1936 130 <xs:attribute name="marker" use="optional">
me@1936 131 <xs:simpleType>
me@1936 132 <xs:restriction base="xs:nonNegativeInteger">
me@1936 133 <xs:minInclusive value="0"/>
me@1936 134 <xs:maxInclusive value="100"/>
me@1936 135 </xs:restriction>
me@1936 136 </xs:simpleType>
me@1936 137 </xs:attribute>
me@1936 138 <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/>
me@1936 139 </xs:complexType>
me@1936 140 </xs:element>
me@1936 141
me@1936 142 <xs:element name="commentquestion">
me@1936 143 <xs:complexType>
me@1936 144 <xs:sequence>
me@1936 145 <xs:element ref="statement" minOccurs="0" maxOccurs="1"/>
me@1936 146 <xs:element name="option" minOccurs="0" maxOccurs="unbounded">
me@1936 147 <xs:complexType>
me@1936 148 <xs:simpleContent>
me@1936 149 <xs:extension base="xs:string">
me@1936 150 <xs:attribute ref="name"/>
me@1936 151 </xs:extension>
me@1936 152 </xs:simpleContent>
me@1936 153 </xs:complexType>
me@1936 154 </xs:element>
me@1936 155 </xs:sequence>
nickjillings@1940 156 <xs:attribute ref="id"/>
nickjillings@1940 157 <xs:attribute ref="name" use="required"/>
me@1936 158 <xs:attribute name="type" default="question">
me@1936 159 <xs:simpleType>
me@1936 160 <xs:restriction base="xs:string">
me@1936 161 <xs:enumeration value="question"/>
me@1936 162 <xs:enumeration value="radio"/>
me@1936 163 <xs:enumeration value="checkbox"/>
me@1936 164 </xs:restriction>
me@1936 165 </xs:simpleType>
me@1936 166 </xs:attribute>
me@1936 167 </xs:complexType>
me@1936 168 </xs:element>
me@1936 169
me@1936 170 <xs:element name="survey">
me@1936 171 <xs:complexType>
me@1936 172 <xs:sequence>
nickjillings@1939 173 <xs:element name="surveyentry" minOccurs="0" maxOccurs="unbounded">
me@1936 174 <xs:complexType>
me@1936 175 <xs:sequence>
me@1936 176 <xs:element ref="statement" minOccurs="1" maxOccurs="1"/>
me@1936 177 <xs:element name="option" minOccurs="0" maxOccurs="unbounded">
me@1936 178 <xs:complexType>
me@1936 179 <xs:simpleContent>
me@1936 180 <xs:extension base="xs:string">
me@1936 181 <xs:attribute ref="name"/>
me@1936 182 </xs:extension>
me@1936 183 </xs:simpleContent>
me@1936 184 </xs:complexType>
me@1936 185 </xs:element>
me@1936 186 </xs:sequence>
nickjillings@1940 187 <xs:attribute name="id" type="xs:ID" use="optional"/>
nickjillings@1940 188 <xs:attribute name="name" type="xs:string" use="optional"/>
me@1936 189 <xs:attribute ref="mandatory"/>
me@1936 190 <xs:attribute name="min" type="xs:decimal"/>
me@1936 191 <xs:attribute name="max" type="xs:decimal"/>
me@1936 192 <xs:attribute name="type" use="required">
me@1936 193 <xs:simpleType>
me@1936 194 <xs:restriction base="xs:string">
me@1936 195 <xs:enumeration value="statement"/>
me@1936 196 <xs:enumeration value="question"/>
me@1936 197 <xs:enumeration value="number"/>
me@1936 198 <xs:enumeration value="radio"/>
me@1936 199 <xs:enumeration value="checkbox"/>
me@1936 200 </xs:restriction>
me@1936 201 </xs:simpleType>
me@1936 202 </xs:attribute>
me@1936 203 <xs:attribute name="boxsize" default="normal">
me@1936 204 <xs:simpleType>
me@1936 205 <xs:restriction base="xs:string">
me@1936 206 <xs:enumeration value="normal"/>
me@1936 207 <xs:enumeration value="large"/>
me@1936 208 <xs:enumeration value="small"/>
me@1936 209 <xs:enumeration value="huge"/>
me@1936 210 </xs:restriction>
me@1936 211 </xs:simpleType>
me@1936 212 </xs:attribute>
me@1936 213 </xs:complexType>
me@1936 214 </xs:element>
me@1936 215 </xs:sequence>
me@1936 216 <xs:attribute name="location">
me@1936 217 <xs:simpleType>
me@1936 218 <xs:restriction base="xs:string">
me@1936 219 <xs:enumeration value="before"/>
me@1936 220 <xs:enumeration value="pre"/>
me@1936 221 <xs:enumeration value="after"/>
me@1936 222 <xs:enumeration value="post"/>
me@1936 223 </xs:restriction>
me@1936 224 </xs:simpleType>
me@1936 225 </xs:attribute>
me@1936 226 </xs:complexType>
me@1936 227 </xs:element>
me@1936 228
me@1936 229 </xs:schema>