<xsd:schema id="xquest" elementFormDefault="qualified" targetNamespace="http://rnvs.informatik.tu-chemnitz.de/xquest" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xquest="http://rnvs.informatik.tu-chemnitz.de/xquest">

	<xsd:complexType name="fontType" mixed="true">
		<xsd:complexContent>
			<xsd:extension base="xquest:htmlMarkup">
				<xsd:attribute name="color" type="xsd:string" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="htmlMarkup" mixed="true">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="i" type="xquest:htmlMarkup"/>
			<xsd:element name="b" type="xquest:htmlMarkup"/>
			<xsd:element name="font" type="xquest:fontType"/>
			<xsd:element name="br"/>
		</xsd:choice>
	</xsd:complexType>

	<xsd:complexType name="atextHtmlMarkup" mixed="true">
		<xsd:complexContent>
			<xsd:extension base="xquest:htmlMarkup">
				<xsd:choice>
					<xsd:element name="input" maxOccurs="unbounded">
						<xsd:complexType>
							<xsd:attribute name="length" type="xsd:string" use="optional"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="selectquestion" mixed="true">
		<xsd:sequence>
			<xsd:element name="qtext" type="xquest:htmlMarkup"/>
			<xsd:element name="atext" type="xquest:htmlMarkup" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="type" use="required">
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="or"/>
					<xsd:enumeration value="xor"/>
					<xsd:enumeration value="dropdown"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="txtquestion" mixed="true">
		<xsd:sequence>
			<xsd:element name="qtext" type="xquest:htmlMarkup"/>
			<xsd:element name="atext" type="xquest:atextHtmlMarkup" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="txtareaquestion" mixed="true">
		<xsd:sequence>
			<xsd:element name="qtext" type="xquest:htmlMarkup"/>
		</xsd:sequence>
		<xsd:attribute name="cols" type="xsd:integer" use="optional"/>
		<xsd:attribute name="rows" type="xsd:integer" use="optional"/>
	</xsd:complexType>

	<xsd:complexType name="rangequestion" mixed="true">
		<xsd:sequence>
			<xsd:element name="qtext" type="xquest:htmlMarkup"/>
		</xsd:sequence>
		<xsd:attribute name="left" type="xsd:string" use="required"/>
		<xsd:attribute name="right" type="xsd:string" use="required"/>
		<xsd:attribute name="count" type="xsd:integer" use="required"/>
	</xsd:complexType>

	<xsd:complexType name="alist">
		<xsd:sequence>
			<xsd:element name="atext" type="xquest:htmlMarkup" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="matrixquestion" mixed="true">
		<xsd:sequence>
			<xsd:element name="qtext" type="xquest:htmlMarkup"/>
			<xsd:element name="rows" type="xquest:alist"/>
			<xsd:element name="columns" type="xquest:alist"/>
			<xsd:element name="fields" type="xquest:alist"/>
		</xsd:sequence>
		<xsd:attribute name="type">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="text"/>
						<xsd:enumeration value="or"/>
						<xsd:enumeration value="dropdown"/>
						<xsd:enumeration value="xorc"/>
						<xsd:enumeration value="xorr"/>
					</xsd:restriction>
				</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:element name="questionnaire">
		<xsd:complexType>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element name="p" type="xquest:htmlMarkup"/>
				<xsd:element name="selectquestion" type="xquest:selectquestion"/>
				<xsd:element name="txtquestion" type="xquest:txtquestion"/>
				<xsd:element name="txtareaquestion" type="xquest:txtareaquestion"/>
				<xsd:element name="rangequestion" type="xquest:rangequestion"/>
				<xsd:element name="matrixquestion" type="xquest:matrixquestion"/>
				<xsd:element name="submit" maxOccurs="1">
					<xsd:complexType>
						<xsd:attribute name="value" type="xsd:string" use="optional"/>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="result" minOccurs="1" maxOccurs="1">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="pass" type="xsd:string"/>
							<xsd:element name="fail" minOccurs="0" maxOccurs="2">
								<xsd:complexType>
									<xsd:simpleContent>
										<xsd:extension base="xsd:string">
											<xsd:attribute name="type" use="required">
												<xsd:simpleType>
													<xsd:restriction base="xsd:string">
														<xsd:enumeration value="id"/>
														<xsd:enumeration value="used"/>
													</xsd:restriction>
												</xsd:simpleType>
											</xsd:attribute>
										</xsd:extension>
									</xsd:simpleContent>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:choice>
			<xsd:attribute name="title" type="xsd:string" use="required"/>
			<xsd:attribute name="baseurl" type="xsd:anyURI" use="required"/>
			<xsd:attribute name="submiturl" type="xsd:anyURI" use="required"/>
			<xsd:attribute name="db_table" type="xsd:Name" use="required"/>
			<xsd:attribute name="db_name" type="xsd:Name" use="required"/>
			<xsd:attribute name="db_user" type="xsd:Name" use="required"/>
			<xsd:attribute name="db_pass" type="xsd:Name" use="required"/>
			<xsd:attribute name="db_host" type="xsd:Name" use="required"/>
			<xsd:attribute name="restrict" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="url"/>
						<xsd:enumeration value="inline"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>

