Mercurial > hg > webaudioevaluationtool
changeset 1123:23c3e630571b
Added schema
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Tue, 29 Dec 2015 13:54:56 +0000 |
parents | 0aaf631d502d |
children | 0f161e776cb4 |
files | test-schema.xsd |
diffstat | 1 files changed, 226 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-schema.xsd Tue Dec 29 13:54:56 2015 +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" 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="project-return" use="required" type="xs:string"/> + <xs:attribute name="randomise-order" type="xs:boolean" default="false"/> + <xs:attribute name="test-pages" type="xs:nonNegativeInteger" default="0"/> + <xs:attribute name="loudness" type="xs:nonPositiveInteger" use="optional"/> + <xs:attribute name="sample-rate" 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" maxOccurs="2"/> + </xs:sequence> + <xs:attribute ref="id" use="required"/> + <xs:attribute name="host-URL" type="xs:anyURI" use="required"/> + <xs:attribute name="randomise-order" type="xs:boolean" default="false"/> + <xs:attribute name="repeat-count" type="xs:nonNegativeInteger" default="0"/> + <xs:attribute name="loop" type="xs:boolean" default="false"/> + <xs:attribute name="show-element-comments" 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" use="optional"/> + <xs:attribute name="max" 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"/> + <xs:attribute name="type"> + <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"/> + <xs:attribute name="max"/> + <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