Mercurial > hg > webaudioevaluationtool
diff test-schema.xsd @ 1106:282dfb8076f5
Merge default to dev_main
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Wed, 17 Feb 2016 11:29:18 +0000 |
parents | |
children | b5bf2f57187c f53b1098795f a4ad9e55b5b8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-schema.xsd Wed Feb 17 11:29:18 2016 +0000 @@ -0,0 +1,226 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <!-- define simple elements--> + <xs:element name="statement" type="xs:string"/> + <xs:element name="metricenable" type="xs:string"/> + <xs:element name="title" type="xs:string"/> + + <!-- define simple attributes--> + <xs:attribute name="id" type="xs:ID"/> + <xs:attribute name="mandatory" type="xs:boolean"/> + <xs:attribute name="name" type="xs:string"/> + + <!-- define complex elements--> + <xs:element name="waet"> + <xs:complexType> + <xs:sequence> + <xs:element ref="setup" minOccurs="1" maxOccurs="1"/> + <xs:element ref="page" minOccurs="1" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="setup"> + <xs:complexType> + <xs:sequence> + <xs:element ref="survey" minOccurs="0" maxOccurs="2"/> + <xs:element ref="metric" maxOccurs="1"/> + <xs:element ref="interface" maxOccurs="1"/> + </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="testPages" type="xs:nonNegativeInteger" default="0"/> + <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/> + <xs:attribute name="sampleRate" type="xs:positiveInteger" use="optional"/> + </xs:complexType> + </xs:element> + + <xs:element name="page"> + <xs:complexType> + <xs:sequence> + <xs:element ref="title" minOccurs="0" maxOccurs="1"/> + <xs:element name="commentboxprefix" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element ref="interface" minOccurs="1" maxOccurs="unbounded"/> + <xs:element ref="audioelement" minOccurs="1" maxOccurs="unbounded"/> + <xs:element ref="commentquestion" minOccurs="0" maxOccurs="unbounded"/> + <xs:element ref="survey" minOccurs="0" maxOccurs="2"/> + </xs:sequence> + <xs:attribute ref="id" use="required"/> + <xs:attribute name="hostURL" type="xs:anyURI"/> + <xs:attribute name="randomiseOrder" type="xs:boolean" default="false"/> + <xs:attribute name="repeatCount" type="xs:nonNegativeInteger" default="0"/> + <xs:attribute name="loop" type="xs:boolean" default="false"/> + <xs:attribute name="showElementComments" type="xs:boolean" default="false"/> + <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/> + </xs:complexType> + </xs:element> + + <xs:element name="metric"> + <xs:complexType> + <xs:sequence> + <xs:element name="metricenable" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="interface"> + <xs:complexType> + <xs:sequence> + <xs:element ref="title" minOccurs="0" maxOccurs="1"/> + <xs:element name="interfaceoption" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="type" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="check"/> + <xs:enumeration value="show"/> + <xs:enumeration value="option"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute ref="name" use="required"/> + <xs:attribute name="min" type="xs:decimal" use="optional"/> + <xs:attribute name="max" type="xs:decimal" use="optional"/> + </xs:complexType> + </xs:element> + <xs:element name="scales" minOccurs="0" maxOccurs="1"> + <xs:complexType> + <xs:sequence> + <xs:element name="scalelabel" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="position" use="required"> + <xs:simpleType> + <xs:restriction base="xs:nonNegativeInteger"> + <xs:minInclusive value="0"/> + <xs:maxInclusive value="100"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute ref="name" use="optional"/> + </xs:complexType> + </xs:element> + + <xs:element name="audioelement"> + <xs:complexType> + <xs:attribute ref="id" use="required"/> + <xs:attribute name="url" type="xs:anyURI" use="required"/> + <xs:attribute name="gain" type="xs:decimal" default="0"/> + <xs:attribute name="type" default="normal"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="normal"/> + <xs:enumeration value="anchor"/> + <xs:enumeration value="reference"/> + <xs:enumeration value="outside-reference"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="marker" use="optional"> + <xs:simpleType> + <xs:restriction base="xs:nonNegativeInteger"> + <xs:minInclusive value="0"/> + <xs:maxInclusive value="100"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/> + </xs:complexType> + </xs:element> + + <xs:element name="commentquestion"> + <xs:complexType> + <xs:sequence> + <xs:element ref="statement" minOccurs="0" maxOccurs="1"/> + <xs:element name="option" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute ref="name"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute ref="id" use="required"/> + <xs:attribute name="type" default="question"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="question"/> + <xs:enumeration value="radio"/> + <xs:enumeration value="checkbox"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + + <xs:element name="survey"> + <xs:complexType> + <xs:sequence> + <xs:element name="surveyentry" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element ref="statement" minOccurs="1" maxOccurs="1"/> + <xs:element name="option" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute ref="name"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute ref="id"/> + <xs:attribute ref="mandatory"/> + <xs:attribute name="min" type="xs:decimal"/> + <xs:attribute name="max" type="xs:decimal"/> + <xs:attribute name="type" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="statement"/> + <xs:enumeration value="question"/> + <xs:enumeration value="number"/> + <xs:enumeration value="radio"/> + <xs:enumeration value="checkbox"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="boxsize" default="normal"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="normal"/> + <xs:enumeration value="large"/> + <xs:enumeration value="small"/> + <xs:enumeration value="huge"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="location"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="before"/> + <xs:enumeration value="pre"/> + <xs:enumeration value="after"/> + <xs:enumeration value="post"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + +</xs:schema> \ No newline at end of file