Mercurial > hg > webaudioevaluationtool
view SpecificationSchema.xsd @ 1118:3edcbbea168b
Added schema for Test Specification Document for validation (wip)
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Wed, 23 Dec 2015 12:41:08 +0000 |
parents | |
children | 9d73d9f6b03e |
line wrap: on
line source
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://127.0.0.1:8020/webaudioevaluationtool/SpecificationSchema.xsd" xmlns="http://127.0.0.1:8020/webaudioevaluationtool/SpecificationSchema.xsd" elementFormDefault="qualified"> <xs:annotation> <xs:documentation xml:lang="en"> Schema for the Web Audio Evaluation Toolbox </xs:documentation> </xs:annotation> <!-- definition of simple objects--> <xs:element name="statement" type="xs:string"></xs:element> <xs:element name="title" type="xs:string"></xs:element> <!-- definition of common attributes--> <xs:attribute name="id" type="xs:ID"></xs:attribute> <xs:attribute name="mandatory" type="xs:boolean"></xs:attribute> <xs:attribute name="name" type="xs:string"></xs:attribute> <xs:attribute name="url" type="xs:anyURI"></xs:attribute> <!-- definition of the complex nodes--> <xs:element name="BrowserEvalProjectDocument"> <xs:complexType> <xs:sequence> <xs:element ref="setup" maxOccurs="1"/> <xs:element ref="audioHolder" minOccurs="1" maxOccurs="200"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="setup"> <xs:complexType> <xs:sequence> <xs:element ref="PreTest"/> <xs:element ref="PostTest"/> <xs:element ref="Metric"/> <xs:element ref="interface"/> </xs:sequence> <xs:attribute name="interface" type="xs:string" use="required"/> <xs:attribute name="projectReturn" type="xs:string" use="required"/> <xs:attribute name="randomiseOrder" type="xs:boolean" default="false"/> <xs:attribute name="collectMetrics" type="xs:boolean" default="true"/> <xs:attribute name="testPages" type="xs:nonNegativeInteger" default="0"/> <xs:attribute name="loudness" type="xs:nonPositiveInteger" default="-23"/> </xs:complexType> </xs:element> <xs:element name="Metric"> <xs:complexType> <xs:sequence> <xs:element name="metricEnable" type="xs:string" minOccurs="0" maxOccurs="200"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="check"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="show"> <xs:complexType> <xs:attribute ref="name" use="required"/> </xs:complexType> </xs:element> <xs:element name="scale"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="position" type="xs:nonNegativeInteger" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="interface"> <xs:complexType> <xs:sequence> <xs:element ref="title" minOccurs="0" maxOccurs="1"/> <xs:element ref="check" minOccurs="0" maxOccurs="200"/> <xs:element ref="show" minOccurs="0" maxOccurs="200"/> <xs:element ref="scale" minOccurs="0" maxOccurs="200"/> <xs:element ref="commentBoxPrefix" minOccurs="0" maxOccurs="1"/> <xs:element name="option" minOccurs="0" maxOccurs="200"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="audioHolder"> <xs:complexType> <xs:sequence> <xs:element ref="interface" minOccurs="0" maxOccurs="200"/> <xs:element ref="audioElements" minOccurs="1" maxOccurs="200"/> <xs:element name="CommentQuestion" minOccurs="0" maxOccurs="200"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:ID"/> <xs:attribute name="type" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element ref="PreTest"/> <xs:element ref="PostTest"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="hostURL" type="xs:string" use="required"/> <xs:attribute name="randomiseOrder" type="xs:string" default="false"/> <xs:attribute name="repeatCount" type="xs:nonNegativeInteger" default="0"/> <xs:attribute name="loop" type="xs:boolean" default="false"/> <xs:attribute name="elementComments" type="xs:boolean" default="true"/> <xs:attribute name="loudness" type="xs:nonPositiveInteger" default="-23"/> </xs:complexType> </xs:element> <xs:element name="audioElements"> <xs:complexType> <xs:attribute name="id" type="xs:ID" use="required"/> <xs:attribute name="url" type="xs:anyURI" use="required"/> <xs:attribute name="gain" type="xs:integer" default="0"/> <xs:attribute name="type" type="xs:string" default="normal"/> <xs:attribute name="marker"> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <!-- Survery Nodes --> <xs:element name="PreTest"> <xs:complexType> <xs:all> <xs:element ref="statement" minOccurs="0"/> <xs:element ref="question" minOccurs="0"/> <xs:element ref="number" minOccurs="0"/> <xs:element ref="radio" minOccurs="0"/> <xs:element ref="checkbox" minOccurs="0"/> </xs:all> </xs:complexType> </xs:element> <xs:element name="PostTest"> <xs:complexType> <xs:all> <xs:element ref="statement" minOccurs="0"/> <xs:element ref="question" minOccurs="0"/> <xs:element ref="number" minOccurs="0"/> <xs:element ref="radio" minOccurs="0"/> <xs:element ref="checkbox" minOccurs="0"/> </xs:all> </xs:complexType> </xs:element> <xs:element name="question"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="mandatory" type="xs:string" default="false"/> <xs:attribute name="boxsize" default="normal"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="small"/> <xs:enumeration value="normal"/> <xs:enumeration value="large"/> <xs:enumeration value="hude"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="number"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="mandatory" type="xs:string" default="false"/> <xs:attribute name="min" type="xs:decimal"/> <xs:attribute name="max" type="xs:decimal"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="checkbox"> <xs:complexType> <xs:sequence> <xs:element ref="statement" minOccurs="1" maxOccurs="1"/> <xs:element name="option" minOccurs="1" maxOccurs="200"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="mandatory" type="xs:string" default="false"/> </xs:complexType> </xs:element> <xs:element name="radio"> <xs:complexType> <xs:sequence> <xs:element ref="statement" minOccurs="1" maxOccurs="1"/> <xs:element name="option" minOccurs="1" maxOccurs="200"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="mandatory" type="xs:string" default="false"/> </xs:complexType> </xs:element> </xs:schema>