<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="QML" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
	version="4.2">
	<xs:element name="QUESTION">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element name="TAG" type="Tag" minOccurs="0" maxOccurs="unbounded" />
				<xs:element name="COMMENT" type="Comment" minOccurs="0" maxOccurs="unbounded" />
				<xs:element name="CONTENT" type="Content" minOccurs="0" maxOccurs="unbounded" />
				<xs:element name="ANSWER" type="Answer" minOccurs="0" maxOccurs="1" />
				<xs:element name="OUTCOME" type="Outcome" minOccurs="0" maxOccurs="unbounded" />
			</xs:sequence>
			<xs:attribute name="ID" type="QuestionID" use="required" />
			<xs:attribute name="TOPIC" type="xs:string" />
			<xs:attribute name="DESCRIPTION" type="DescriptionString" use="optional" default="Question Description" />
			<xs:attribute name="TYPE" type="NameString" />
			<xs:attribute name="STATUS" type="NameString" />
			<xs:attribute name="CEILING" type="Ceiling" />
			<xs:attribute name="FLOOR" type="Floor" />
			<xs:attribute name="VOICE_SERVER" type="xs:string" />
			<xs:attribute name="VOICE_RID" type="xs:string" />
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Comment">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="AUTHOR" type="NameString" use="required" />
				<xs:attribute name="NAME" type="NameString" use="required" />
				<xs:attribute name="DATE" type="NameString" use="required" />
				<xs:attribute name="TYPE" type="NameString" use="required" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="Outcome">
		<xs:sequence>
			<xs:element name="CONDITION" type="xs:string" minOccurs="1" maxOccurs="1" />
			<xs:element name="CONTENT" type="Content" minOccurs="1" maxOccurs="1" />
		</xs:sequence>
		<xs:attribute name="ID" type="NameString" use="required" />
		<xs:attribute name="SCORE" type="Length" use="optional" />
		<xs:attribute name="ADD" type="Length" use="optional" />
		<xs:attribute name="CONTINUE" type="TrueFalseEnum" use="optional" />
	</xs:complexType>
	<xs:complexType name="Content">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="NAME" type="NameString" use="optional" />
				<xs:attribute name="TYPE" type="NameString" use="optional" />
				<xs:attribute name="STYLE" type="NameString" use="optional" />
				<xs:attribute name="WIDTH" type="PositiveLength" use="optional" />
				<xs:attribute name="HEIGHT" type="PositiveLength" use="optional" />
				<xs:attribute name="HIDDEN" type="TrueFalseEnum" use="optional" />
				<xs:attribute name="AUTOSTART" type="TrueFalseEnum" use="optional" />
				<xs:attribute name="LOOP" type="TrueFalseEnum" use="optional" />
				<xs:attribute name="ALIGN" type="AlignEnum" use="optional" />
				<xs:attribute name="VSPACE" type="Margin" use="optional" />
				<xs:attribute name="HSPACE" type="Margin" use="optional" />
				<xs:attribute name="BORDER" type="Margin" use="optional" />
				<xs:attribute name="ALT" type="AlternativeString" use="optional" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="Choice">
		<xs:sequence>
			<xs:element name="OPTION" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
			<xs:element name="CONTENT" type="Content" minOccurs="1" maxOccurs="1" />
		</xs:sequence>
		<xs:attribute name="ID" type="NameString" use="required" />
		<xs:attribute name="MAXCHARS" type="PositiveLength" use="optional" />
		<xs:attribute name="SCROLL" type="DirectionEnum" use="optional" />
	</xs:complexType>
	<xs:complexType name="Answer">
		<xs:choice minOccurs="1" maxOccurs="unbounded">
			<xs:element name="CONTENT" type="Content" />
			<xs:element name="CHOICE" type="Choice" />
		</xs:choice>
		<xs:attribute name="QTYPE" type="NameString" use="required" />
		<xs:attribute name="SHUFFLE" type="ShuffleEnum" use="optional" />
		<xs:attribute name="COMMENT" type="YesNoEnum" use="optional" />
		<xs:attribute name="COMMENTLABEL" type="MessageString" use="optional" />
		<xs:attribute name="COMMENTHEIGHT" type="CommentHeight" use="optional" />
		<xs:attribute name="COMMENTWIDTH" type="CommentWidth" use="optional" />
		<xs:attribute name="MAXSELECT" type="MaxSelect" use="optional" />
		<xs:attribute name="SUBTYPE" type="DirectionEnum" use="optional" />
	</xs:complexType>
	<xs:complexType name="Tag">
		<xs:simpleContent>
			<xs:extension base="NameString">
				<xs:attribute name="NAME" type="NameString" use="required" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="QuestionID">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{16}" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="NameString">
		<xs:restriction base="xs:string">
			<xs:maxLength value="50" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AlternativeString">
		<xs:restriction base="xs:string">
			<xs:maxLength value="100" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DescriptionString">
		<xs:restriction base="xs:string"></xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MessageString">
		<xs:restriction base="xs:string">
			<xs:maxLength value="1024" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Margin">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="50" />
			<xs:minInclusive value="0" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Ceiling">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="100" />
			<xs:minInclusive value="-1" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Floor">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="1" />
			<xs:minInclusive value="-100" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="PositiveLength">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="32767" />
			<xs:minInclusive value="0" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Length">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="32767" />
			<xs:minInclusive value="-32768" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CommentHeight">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="40" />
			<xs:minInclusive value="1" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CommentWidth">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="100" />
			<xs:minInclusive value="5" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MaxSelect">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="40" />
			<xs:minInclusive value="0" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="YesNoEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="N" />
			<xs:enumeration value="NO" />
			<xs:enumeration value="Y" />
			<xs:enumeration value="YES" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ShuffleEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="N" />
			<xs:enumeration value="NO" />
			<xs:enumeration value="Y" />
			<xs:enumeration value="YES" />
			<xs:enumeration value="P" />
			<xs:enumeration value="PART" />
			<xs:enumeration value="T" />
			<xs:enumeration value="EXCEPT_LAST_TWO" />
			<xs:enumeration value="n" />
			<xs:enumeration value="no" />
			<xs:enumeration value="y" />
			<xs:enumeration value="yes" />
			<xs:enumeration value="p" />
			<xs:enumeration value="part" />
			<xs:enumeration value="t" />
			<xs:enumeration value="except_last_two" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DirectionEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="VERT" />
			<xs:enumeration value="HORZ" />
			<xs:enumeration value="FLASH" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TrueFalseEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="FALSE" />
			<xs:enumeration value="TRUE" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AlignEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Left" />
			<xs:enumeration value="Right" />
			<xs:enumeration value="Top" />
			<xs:enumeration value="Bottom" />
			<xs:enumeration value="Middle" />
		</xs:restriction>
	</xs:simpleType>
</xs:schema>