<?xml version="1.0" encoding="UTF-8"?>
<!-- filename=ims_qtiasiv1p2.xsd -->
<!-- Copyright (2) 2002 IMS Global Learning Consortium, Inc. -->
<xs:schema targetNamespace="http://www.imsglobal.org/xsd/ims_qtiasiv1p2"
	 xmlns:x="http://www.w3.org/XML/1998/namespace" 
	 xmlns:xs="http://www.w3.org/2001/XMLSchema" 
	 xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" 
	 elementFormDefault="qualified" 
	 version="IMS QTI ASI 1.2">
	<!-- **************************** -->
	<!-- ** Inclusions and Imports ** -->
	<!-- **************************** -->
	<xs:import namespace="http://www.w3.org/XML/1998/namespace" 
	schemaLocation="xml.xsd"/>
	<!-- ****************** -->
	<!-- ** Root Element ** -->
	<!-- ****************** -->
	<xs:element name="questestinterop" type="questestinteropType"/>
	<!-- ************************** -->
	<!-- ** Element Declarations ** -->
	<!-- ************************** -->
	<xs:element name="altmaterial" type="altmaterialType"/>
	<xs:element name="and" type="andType"/>
	<xs:element name="and_objects" type="and_objectsType"/>
	<xs:element name="and_selection" type="and_selectionType"/>
	<xs:element name="and_test" type="and_testType"/>
	<xs:element name="assessfeedback" type="assessfeedbackType"/>
	<xs:element name="assessment" type="assessmentType"/>
	<xs:element name="assessmentcontrol" type="assessmentcontrolType"/>
	<xs:element name="assessproc_extension" type="assessproc_extensionType"/>
	<xs:element name="conditionvar" type="conditionvarType"/>
	<xs:element name="decvar" type="decvarType"/>
	<xs:element name="displayfeedback" type="displayfeedbackType"/>
	<xs:element name="duration" type="xs:string"/>
	<xs:element name="durequal" type="durequalType"/>
	<xs:element name="durgt" type="durgtType"/>
	<xs:element name="durgte" type="durgteType"/>
	<xs:element name="durlt" type="durltType"/>
	<xs:element name="durlte" type="durlteType"/>
	<xs:element name="fieldentry" type="xs:string"/>
	<xs:element name="fieldlabel" type="xs:string"/>
	<xs:element name="flow" type="flowType"/>
	<xs:element name="flow_label" type="flow_labelType"/>
	<xs:element name="flow_mat" type="flow_matType"/>
	<xs:element name="hint" type="hintType"/>
	<xs:element name="hintmaterial" type="hintmaterialType"/>
	<xs:element name="interpretvar" type="interpretvarType"/>
	<xs:element name="item" type="itemType"/>
	<xs:element name="itemcontrol" type="itemcontrolType"/>
	<xs:element name="itemfeedback" type="itemfeedbackType"/>
	<xs:element name="itemmetadata" type="itemmetadataType"/>
	<xs:element name="itempostcondition" type="xs:string"/>
	<xs:element name="itemprecondition" type="xs:string"/>
	<xs:element name="itemproc_extension" type="itemproc_extensionType"/>
	<xs:element name="itemref" type="itemrefType"/>
	<xs:element name="itemrubric" type="itemrubricType"/>
	<xs:element name="map_input" type="map_inputType"/>
	<xs:element name="map_output" type="map_outputType"/>
	<xs:element name="mat_extension" type="mat_extensionType"/>
	<xs:element name="matapplet" type="matappletType"/>
	<xs:element name="matapplication" type="matapplicationType"/>
	<xs:element name="mataudio" type="mataudioType"/>
	<xs:element name="matbreak" type="matbreakType"/>
	<xs:element name="matemtext" type="matemtextType"/>
	<xs:element name="material" type="materialType"/>
	<xs:element name="material_ref" type="material_refType"/>
	<xs:element name="matimage" type="matimageType"/>
	<xs:element name="matref" type="matrefType"/>
	<xs:element name="mattext" type="mattextType"/>
	<xs:element name="matvideo" type="matvideoType"/>
	<xs:element name="not" type="notType"/>
	<xs:element name="not_objects" type="not_objectsType"/>
	<xs:element name="not_selection" type="not_selectionType"/>
	<xs:element name="not_test" type="not_testType"/>
	<xs:element name="objectbank" type="objectbankType"/>
	<xs:element name="objectives" type="objectivesType"/>
	<xs:element name="objects_condition" type="objects_conditionType"/>
	<xs:element name="objects_parameter" type="objects_parameterType"/>
	<xs:element name="objectscond_extension" type="xs:string"/>
	<xs:element name="or" type="orType"/>
	<xs:element name="or_objects" type="or_objectsType"/>
	<xs:element name="or_selection" type="or_selectionType"/>
	<xs:element name="or_test" type="or_testType"/>
	<xs:element name="order" type="orderType"/>
	<xs:element name="order_extension" type="order_extensionType"/>
	<xs:element name="other" type="xs:string"/>
	<xs:element name="outcomes" type="outcomesType"/>
	<xs:element name="outcomes_feedback_test" type="outcomes_feedback_testType"/>
	<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
	<xs:element name="outcomes_processing" type="outcomes_processingType"/>
	<xs:element name="presentation" type="presentationType"/>
	<xs:element name="presentation_material" type="presentation_materialType"/>
	<xs:element name="processing_parameter" type="processing_parameterType"/>
	<xs:element name="qmd_computerscored" type="xs:string"/>
	<xs:element name="qmd_feedbackpermitted" type="xs:string"/>
	<xs:element name="qmd_hintspermitted" type="xs:string"/>
	<xs:element name="qmd_itemtype" type="xs:string"/>
	<xs:element name="qmd_levelofdifficulty" type="xs:string"/>
	<xs:element name="qmd_material" type="xs:string"/>
	<xs:element name="qmd_maximumscore" type="xs:string"/>
	<xs:element name="qmd_renderingtype" type="xs:string"/>
	<xs:element name="qmd_responsetype" type="xs:string"/>
	<xs:element name="qmd_scoringpermitted" type="xs:string"/>
	<xs:element name="qmd_solutionspermitted" type="xs:string"/>
	<xs:element name="qmd_status" type="xs:string"/>
	<xs:element name="qmd_timedependence" type="xs:string"/>
	<xs:element name="qmd_timelimit" type="xs:string"/>
	<xs:element name="qmd_toolvendor" type="xs:string"/>
	<xs:element name="qmd_topic" type="xs:string"/>
	<xs:element name="qmd_typeofsolution" type="xs:string"/>
	<xs:element name="qmd_weighting" type="xs:string"/>
	<xs:element name="qticomment" type="qticommentType"/>
	<xs:element name="qtimetadata" type="qtimetadataType"/>
	<xs:element name="qtimetadatafield" type="qtimetadatafieldType"/>
	<xs:element name="reference" type="referenceType"/>
	<xs:element name="render_choice" type="render_choiceType"/>
	<xs:element name="render_fib" type="render_fibType"/>
	<xs:element name="render_hotspot" type="render_hotspotType"/>
	<xs:element name="render_slider" type="render_sliderType"/>
	<xs:element name="respcond_extension" type="respcond_extensionType"/>
	<xs:element name="respcondition" type="respconditionType"/>
	<xs:element name="render_extension" type="render_extensionType"/>
	<xs:element name="response_extension" type="response_extensionType"/>
	<xs:element name="response_grp" type="response_grpType"/>
	<xs:element name="response_labelType" type="response_labelType"/>
	<xs:element name="response_lid" type="response_lidType"/>
	<xs:element name="response_na" type="response_naType"/>
	<xs:element name="response_num" type="response_numType"/>
	<xs:element name="response_str" type="response_strType"/>
	<xs:element name="response_xy" type="response_xyType"/>
	<xs:element name="resprocessing" type="resprocessingType"/>
	<xs:element name="rubric" type="rubricType"/>
	<xs:element name="section" type="sectionType"/>
	<xs:element name="sectioncontrol" type="sectioncontrolType"/>
	<xs:element name="sectionfeedback" type="sectionfeedbackType"/>
	<xs:element name="sectionproc_extension" type="sectionproc_extensionType"/>
	<xs:element name="sectionpostcondition" type="xs:string"/>
	<xs:element name="sectionprecondition" type="xs:string"/>
	<xs:element name="sectionref" type="sectionrefType"/>
	<xs:element name="selection" type="selectionType"/>
	<xs:element name="selection_extension" type="selection_extensionType"/>
	<xs:element name="selection_metadata" type="selection_metadataType"/>
	<xs:element name="selection_number" type="xs:string"/>
	<xs:element name="selection_ordering" type="selection_orderingType"/>
	<xs:element name="sequence_parameter" type="sequence_parameterType"/>
	<xs:element name="setvar" type="setvarType"/>
	<xs:element name="solution" type="solutionType"/>
	<xs:element name="solutionmaterial" type="solutionmaterialType"/>
	<xs:element name="sourcebank_ref" type="xs:string"/>
	<xs:element name="test_variable" type="test_variableType"/>
	<xs:element name="unanswered" type="unansweredType"/>
	<xs:element name="var_extension" type="var_extensionType"/>
	<xs:element name="varequal" type="varequalType"/>
	<xs:element name="vargt" type="vargtType"/>
	<xs:element name="vargte" type="vargteType"/>
	<xs:element name="variable_test" type="variable_testType"/>
	<xs:element name="varinside" type="varinsideType"/>
	<xs:element name="varlt" type="varltType"/>
	<xs:element name="varlte" type="varlteType"/>
	<xs:element name="varsubset" type="varsubsetType"/>
	<xs:element name="varsubstring" type="varsubstringType"/>
	<xs:element name="vocabulary" type="vocabularyType"/>
	<!-- ******************************* -->
	<!-- ** Complex Type Declarations ** -->
	<!-- ******************************* -->
	<!-- ***************** -->
	<!-- ** altmaterial ** -->
	<!-- ***************** -->
	<xs:complexType name="altmaterialType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="mattext" type="mattextType"/>
				<xs:element name="matemtext" type="matemtextType"/>
				<xs:element name="matimage" type="matimageType"/>
				<xs:element name="mataudio" type="mataudioType"/>
				<xs:element name="matvideo" type="matvideoType"/>
				<xs:element name="matapplet" type="matappletType"/>
				<xs:element name="matapplication" type="matapplicationType"/>
				<xs:element name="matref" type="matrefType"/>
				<xs:element ref="matbreak"/>
				<xs:element ref="mat_extension"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute ref="x:lang"/>
	</xs:complexType>
	<!-- ********* -->
	<!-- ** and ** -->
	<!-- ********* -->
	<xs:complexType name="andType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="not" type="notType"/>
			<xs:element name="and" type="andType"/>
			<xs:element name="or" type="orType"/>
			<xs:element name="unanswered" type="unansweredType"/>
			<xs:element ref="other"/>
			<xs:element name="varequal" type="varequalType"/>
			<xs:element name="varlt" type="varltType"/>
			<xs:element name="varlte" type="varlteType"/>
			<xs:element name="vargt" type="vargtType"/>
			<xs:element name="vargte" type="vargteType"/>
			<xs:element name="varsubset" type="varsubsetType"/>
			<xs:element name="varinside" type="varinsideType"/>
			<xs:element name="varsubstring" type="varsubstringType"/>
			<xs:element name="durequal" type="durequalType"/>
			<xs:element name="durlt" type="durltType"/>
			<xs:element name="durlte" type="durlteType"/>
			<xs:element name="durgt" type="durgtType"/>
			<xs:element name="durgte" type="durgteType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ***************** -->
	<!-- ** and_objects ** -->
	<!-- ***************** -->
	<xs:complexType name="and_objectsType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
			<xs:element name="and_objects" type="and_objectsType"/>
			<xs:element name="or_objects" type="or_objectsType"/>
			<xs:element name="not_objects" type="not_objectsType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** and_selection ** -->
	<!-- ******************* -->
	<xs:complexType name="and_selectionType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="selection_metadata" type="selection_metadataType"/>
			<xs:element name="and_selection" type="and_selectionType"/>
			<xs:element name="or_selection" type="or_selectionType"/>
			<xs:element name="not_selection" type="not_selectionType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** and_test ** -->
	<!-- ************** -->
	<xs:complexType name="and_testType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="variable_test" type="variable_testType"/>
			<xs:element name="and_test" type="and_testType"/>
			<xs:element name="or_test" type="or_testType"/>
			<xs:element name="not_test" type="not_testType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ******************** -->
	<!-- ** assessfeedback ** -->
	<!-- ******************** -->
	<xs:complexType name="assessfeedbackType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice>
				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="title" type="xs:string"/>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** assessment ** -->
	<!-- **************** -->
	<xs:complexType name="assessmentType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element ref="duration" minOccurs="0"/>
			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="assessmentcontrol" type="assessmentcontrolType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="rubric" type="rubricType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="presentation_material" type="presentation_materialType" minOccurs="0"/>
			<xs:element name="outcomes_processing" type="outcomes_processingType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="assessproc_extension" minOccurs="0"/>
			<xs:element name="assessfeedback" type="assessfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="selection_ordering" type="selection_orderingType" minOccurs="0"/>
			<xs:element name="reference" type="referenceType" minOccurs="0"/>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="sectionref" type="sectionrefType"/>
				<xs:element name="section" type="sectionType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="title" type="xs:string"/>
		<xs:attribute ref="x:lang"/>
	</xs:complexType>
	<!-- *********************** -->
	<!-- ** assessmentcontrol ** -->
	<!-- *********************** -->
	<xs:complexType name="assessmentcontrolType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="hintswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="solutionswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="feedbackswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ************************** -->
	<!-- ** assessproc_extension ** -->
	<!-- ************************** -->
	<xs:complexType name="assessproc_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** conditionvar ** -->
	<!-- ****************** -->
	<xs:complexType name="conditionvarType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="not" type="notType"/>
			<xs:element name="and" type="andType"/>
			<xs:element name="or" type="orType"/>
			<xs:element name="unanswered" type="unansweredType"/>
			<xs:element ref="other"/>
			<xs:element name="varequal" type="varequalType"/>
			<xs:element name="varlt" type="varltType"/>
			<xs:element name="varlte" type="varlteType"/>
			<xs:element name="vargt" type="vargtType"/>
			<xs:element name="vargte" type="vargteType"/>
			<xs:element name="varsubset" type="varsubsetType"/>
			<xs:element name="varinside" type="varinsideType"/>
			<xs:element name="varsubstring" type="varsubstringType"/>
			<xs:element name="durequal" type="durequalType"/>
			<xs:element name="durlt" type="durltType"/>
			<xs:element name="durlte" type="durlteType"/>
			<xs:element name="durgt" type="durgtType"/>
			<xs:element name="durgte" type="durgteType"/>
			<xs:element ref="var_extension"/>
		</xs:choice>
	</xs:complexType>
	<!-- ************ -->
	<!-- ** decvar ** -->
	<!-- ************ -->
	<xs:complexType name="decvarType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
				<xs:attribute name="vartype" default="Integer">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="Integer"/>
							<xs:enumeration value="String"/>
							<xs:enumeration value="Decimal"/>
							<xs:enumeration value="Scientific"/>
							<xs:enumeration value="Boolean"/>
							<xs:enumeration value="Enumerated"/>
							<xs:enumeration value="Set"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="defaultval" type="xs:string"/>
				<xs:attribute name="minvalue" type="xs:string"/>
				<xs:attribute name="maxvalue" type="xs:string"/>
				<xs:attribute name="members" type="xs:string"/>
				<xs:attribute name="cutvalue" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ********************* -->
	<!-- ** displayfeedback ** -->
	<!-- ********************* -->
	<xs:complexType name="displayfeedbackType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="feedbacktype" default="Response">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="Response"/>
							<xs:enumeration value="Solution"/>
							<xs:enumeration value="Hint"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** durequal ** -->
	<!-- ************** -->
	<xs:complexType name="durequalType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="index" type="xs:string"/>
				<xs:attribute name="respident" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- *********** -->
	<!-- ** durgt ** -->
	<!-- *********** -->
	<xs:complexType name="durgtType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="index" type="xs:string"/>
				<xs:attribute name="respident" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************ -->
	<!-- ** durgte ** -->
	<!-- ************ -->
	<xs:complexType name="durgteType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="index" type="xs:string"/>
				<xs:attribute name="respident" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- *********** -->
	<!-- ** durlt ** -->
	<!-- *********** -->
	<xs:complexType name="durltType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="index" type="xs:string"/>
				<xs:attribute name="respident" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************ -->
	<!-- ** durlte ** -->
	<!-- ************ -->
	<xs:complexType name="durlteType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="index" type="xs:string"/>
				<xs:attribute name="respident" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ********** -->
	<!-- ** flow ** -->
	<!-- ********** -->
	<xs:complexType name="flowType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="flow" type="flowType"/>
			<xs:element name="material" type="materialType"/>
			<xs:element name="material_ref" type="material_refType"/>
			<xs:element name="response_lid" type="response_lidType"/>
			<xs:element name="response_xy" type="response_xyType"/>
			<xs:element name="response_str" type="response_strType"/>
			<xs:element name="response_num" type="response_numType"/>
			<xs:element name="response_grp" type="response_grpType"/>
			<xs:element ref="response_extension"/>
		</xs:choice>
		<xs:attribute name="class" type="xs:string" default="Block"/>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** flow_label ** -->
	<!-- **************** -->
	<xs:complexType name="flow_labelType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="flow_label" type="flow_labelType"/>
			<xs:element name="response_label" type="response_labelType"/>
		</xs:choice>
		<xs:attribute name="class" type="xs:string" default="Block"/>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** flow_mat ** -->
	<!-- ************** -->
	<xs:complexType name="flow_matType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="flow_mat" type="flow_matType"/>
			<xs:element name="material" type="materialType"/>
			<xs:element name="material_ref" type="material_refType"/>
		</xs:choice>
		<xs:attribute name="class" type="xs:string" default="Block"/>
	</xs:complexType>
	<!-- ********** -->
	<!-- ** hint ** -->
	<!-- ********** -->
	<xs:complexType name="hintType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element name="hintmaterial" type="hintmaterialType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="feedbackstyle" default="Complete">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Complete"/>
					<xs:enumeration value="Incremental"/>
					<xs:enumeration value="Multilevel"/>
					<xs:enumeration value="Proprietary"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** hintmaterial ** -->
	<!-- ****************** -->
	<xs:complexType name="hintmaterialType">
		<xs:choice>
			<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** interpretvar ** -->
	<!-- ****************** -->
	<xs:complexType name="interpretvarType">
		<xs:choice>
			<xs:element name="material" type="materialType"/>
			<xs:element name="material_ref" type="material_refType"/>
		</xs:choice>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="varname" type="xs:string" default="SCORE"/>
	</xs:complexType>
	<!-- ********** -->
	<!-- ** item ** -->
	<!-- ********** -->
	<xs:complexType name="itemType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element ref="duration" minOccurs="0"/>
			<xs:element name="itemmetadata" type="itemmetadataType" minOccurs="0"/>
			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="itemcontrol" type="itemcontrolType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="itemprecondition" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="itempostcondition" minOccurs="0" maxOccurs="unbounded"/>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="itemrubric" type="itemrubricType"/>
				<xs:element name="rubric" type="rubricType"/>
			</xs:choice>
			<xs:element name="presentation" type="presentationType" minOccurs="0"/>
			<xs:element name="resprocessing" type="resprocessingType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="itemproc_extension" minOccurs="0"/>
			<xs:element name="itemfeedback" type="itemfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="reference" type="referenceType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="maxattempts" type="xs:string"/>
		<xs:attribute name="label" type="xs:string"/>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="title" type="xs:string"/>
		<xs:attribute ref="x:lang"/>
	</xs:complexType>
	<!-- ***************** -->
	<!-- ** itemcontrol ** -->
	<!-- ***************** -->
	<xs:complexType name="itemcontrolType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="feedbackswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="hintswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="solutionswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** itemfeedback ** -->
	<!-- ****************** -->
	<xs:complexType name="itemfeedbackType">
		<xs:choice maxOccurs="unbounded">
			<xs:choice>
				<xs:element name="flow_mat" type="flow_matType"/>
				<xs:element name="material" type="materialType"/>
			</xs:choice>
			<xs:element name="solution" type="solutionType"/>
			<xs:element name="hint" type="hintType"/>
		</xs:choice>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="title" type="xs:string"/>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** itemmetadata ** -->
	<!-- ****************** -->
	<xs:complexType name="itemmetadataType">
		<xs:sequence>
			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="qmd_computerscored" minOccurs="0"/>
			<xs:element ref="qmd_feedbackpermitted" minOccurs="0"/>
			<xs:element ref="qmd_hintspermitted" minOccurs="0"/>
			<xs:element ref="qmd_itemtype" minOccurs="0"/>
			<xs:element ref="qmd_levelofdifficulty" minOccurs="0"/>
			<xs:element ref="qmd_maximumscore" minOccurs="0"/>
			<xs:element ref="qmd_renderingtype" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="qmd_responsetype" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="qmd_scoringpermitted" minOccurs="0"/>
			<xs:element ref="qmd_solutionspermitted" minOccurs="0"/>
			<xs:element ref="qmd_status" minOccurs="0"/>
			<xs:element ref="qmd_timedependence" minOccurs="0"/>
			<xs:element ref="qmd_timelimit" minOccurs="0"/>
			<xs:element ref="qmd_toolvendor" minOccurs="0"/>
			<xs:element ref="qmd_topic" minOccurs="0"/>
			<xs:element ref="qmd_weighting" minOccurs="0"/>
			<xs:element ref="qmd_material" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="qmd_typeofsolution" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ************************ -->
	<!-- ** itemproc_extension ** -->
	<!-- ************************ -->
	<xs:complexType name="itemproc_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- ************* -->
	<!-- ** itemref ** -->
	<!-- ************* -->
	<xs:complexType name="itemrefType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** itemrubric ** -->
	<!-- **************** -->
	<xs:complexType name="itemrubricType">
		<xs:sequence>
			<xs:element name="material" type="materialType"/>
		</xs:sequence>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- *************** -->
	<!-- ** map_input ** -->
	<!-- *************** -->
	<xs:complexType name="map_inputType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** map_output ** -->
	<!-- **************** -->
	<xs:complexType name="map_outputType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** mat_extension ** -->
	<!-- ******************* -->
	<xs:complexType name="mat_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- *************** -->
	<!-- ** matapplet ** -->
	<!-- *************** -->
	<xs:complexType name="matappletType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="label" type="xs:string"/>
				<xs:attribute name="uri" type="xs:string"/>
				<xs:attribute name="y0" type="xs:string"/>
				<xs:attribute name="height" type="xs:string"/>
				<xs:attribute name="width" type="xs:string"/>
				<xs:attribute name="x0" type="xs:string"/>
				<xs:attribute name="embedded" type="xs:string" default="base64"/>
				<xs:attribute name="entityref" type="xs:ENTITY"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ******************** -->
	<!-- ** matapplication ** -->
	<!-- ******************** -->
	<xs:complexType name="matapplicationType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="apptype" type="xs:string"/>
				<xs:attribute name="label" type="xs:string"/>
				<xs:attribute name="uri" type="xs:string"/>
				<xs:attribute name="embedded" type="xs:string" default="base64"/>
				<xs:attribute name="entityref" type="xs:ENTITY"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** mataudio ** -->
	<!-- ************** -->
	<xs:complexType name="mataudioType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="audiotype" type="xs:string" default="audio/base"/>
				<xs:attribute name="label" type="xs:string"/>
				<xs:attribute name="uri" type="xs:string"/>
				<xs:attribute name="embedded" type="xs:string" default="base64"/>
				<xs:attribute name="entityref" type="xs:ENTITY"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** matbreak ** -->
	<!-- ************** -->
	<xs:complexType name="matbreakType"/>
	<!-- *************** -->
	<!-- ** matemtext ** -->
	<!-- *************** -->
	<xs:complexType name="matemtextType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="texttype" type="xs:string" default="text/plain"/>
				<xs:attribute name="label" type="xs:string"/>
				<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
				<xs:attribute name="uri" type="xs:string"/>
				<xs:attribute ref="x:space" default="default"/>
				<xs:attribute ref="x:lang"/>
				<xs:attribute name="entityref" type="xs:ENTITY"/>
				<xs:attribute name="width" type="xs:string"/>
				<xs:attribute name="height" type="xs:string"/>
				<xs:attribute name="y0" type="xs:string"/>
				<xs:attribute name="x0" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** material ** -->
	<!-- ************** -->
	<xs:complexType name="materialType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="mattext" type="mattextType"/>
				<xs:element name="matemtext" type="matemtextType"/>
				<xs:element name="matimage" type="matimageType"/>
				<xs:element name="mataudio" type="mataudioType"/>
				<xs:element name="matvideo" type="matvideoType"/>
				<xs:element name="matapplet" type="matappletType"/>
				<xs:element name="matapplication" type="matapplicationType"/>
				<xs:element name="matref" type="matrefType"/>
				<xs:element ref="matbreak"/>
				<xs:element ref="mat_extension"/>
			</xs:choice>
			<xs:element name="altmaterial" type="altmaterialType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="label" type="xs:string"/>
		<xs:attribute ref="x:lang"/>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** material_ref ** -->
	<!-- ****************** -->
	<xs:complexType name="material_refType">
		<xs:attribute name="linkrefid" type="xs:string" use="required"/>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** matimage ** -->
	<!-- ************** -->
	<xs:complexType name="matimageType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="imagtype" type="xs:string" default="image/jpeg"/>
				<xs:attribute name="label" type="xs:string"/>
				<xs:attribute name="height" type="xs:string"/>
				<xs:attribute name="uri" type="xs:string"/>
				<xs:attribute name="embedded" type="xs:string" default="base64"/>
				<xs:attribute name="width" type="xs:string"/>
				<xs:attribute name="y0" type="xs:string"/>
				<xs:attribute name="x0" type="xs:string"/>
				<xs:attribute name="entityref" type="xs:ENTITY"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************ -->
	<!-- ** matref ** -->
	<!-- ************ -->
	<xs:complexType name="matrefType">
		<xs:attribute name="linkrefid" type="xs:string" use="required"/>
	</xs:complexType>
	<!-- ************* -->
	<!-- ** mattext ** -->
	<!-- ************* -->
	<xs:complexType name="mattextType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="texttype" type="xs:string" default="text/plain"/>
				<xs:attribute name="label" type="xs:string"/>
				<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
				<xs:attribute name="uri" type="xs:string"/>
				<xs:attribute ref="x:space" default="default"/>
				<xs:attribute ref="x:lang"/>
				<xs:attribute name="entityref" type="xs:ENTITY"/>
				<xs:attribute name="width" type="xs:string"/>
				<xs:attribute name="height" type="xs:string"/>
				<xs:attribute name="y0" type="xs:string"/>
				<xs:attribute name="x0" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** matvideo ** -->
	<!-- ************** -->
	<xs:complexType name="matvideoType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="videotype" type="xs:string" default="video/avi"/>
				<xs:attribute name="label" type="xs:string"/>
				<xs:attribute name="uri" type="xs:string"/>
				<xs:attribute name="width" type="xs:string"/>
				<xs:attribute name="height" type="xs:string"/>
				<xs:attribute name="y0" type="xs:string"/>
				<xs:attribute name="x0" type="xs:string"/>
				<xs:attribute name="embedded" type="xs:string" default="base64"/>
				<xs:attribute name="entityref" type="xs:ENTITY"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ********* -->
	<!-- ** not ** -->
	<!-- ********* -->
	<xs:complexType name="notType">
		<xs:choice>
			<xs:element name="and" type="andType"/>
			<xs:element name="or" type="orType"/>
			<xs:element name="not" type="notType"/>
			<xs:element name="unanswered" type="unansweredType"/>
			<xs:element ref="other"/>
			<xs:element name="varequal" type="varequalType"/>
			<xs:element name="varlt" type="varltType"/>
			<xs:element name="varlte" type="varlteType"/>
			<xs:element name="vargt" type="vargtType"/>
			<xs:element name="vargte" type="vargteType"/>
			<xs:element name="varsubset" type="varsubsetType"/>
			<xs:element name="varinside" type="varinsideType"/>
			<xs:element name="varsubstring" type="varsubstringType"/>
			<xs:element name="durequal" type="durequalType"/>
			<xs:element name="durlt" type="durltType"/>
			<xs:element name="durlte" type="durlteType"/>
			<xs:element name="durgt" type="durgtType"/>
			<xs:element name="durgte" type="durgteType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ***************** -->
	<!-- ** not_objects ** -->
	<!-- ***************** -->
	<xs:complexType name="not_objectsType">
		<xs:choice>
			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
			<xs:element name="and_objects" type="and_objectsType"/>
			<xs:element name="or_objects" type="or_objectsType"/>
			<xs:element name="not_objects" type="not_objectsType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** not_selection ** -->
	<!-- ******************* -->
	<xs:complexType name="not_selectionType">
		<xs:choice>
			<xs:element name="selection_metadata" type="selection_metadataType"/>
			<xs:element name="and_selection" type="and_selectionType"/>
			<xs:element name="or_selection" type="or_selectionType"/>
			<xs:element name="not_selection" type="not_selectionType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** not_test ** -->
	<!-- ************** -->
	<xs:complexType name="not_testType">
		<xs:choice>
			<xs:element name="variable_test" type="variable_testType"/>
			<xs:element name="and_test" type="and_testType"/>
			<xs:element name="or_test" type="or_testType"/>
			<xs:element name="not_test" type="not_testType"/>
		</xs:choice>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** objectbank ** -->
	<!-- **************** -->
	<xs:complexType name="objectbankType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="section" type="sectionType"/>
				<xs:element name="item" type="itemType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="ident" type="xs:string" use="required"/>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** objectives ** -->
	<!-- **************** -->
	<xs:complexType name="objectivesType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice>
				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- *********************** -->
	<!-- ** objects_condition ** -->
	<!-- *********************** -->
	<xs:complexType name="objects_conditionType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice minOccurs="0">
				<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
				<xs:element name="and_objects" type="and_objectsType"/>
				<xs:element name="or_objects" type="or_objectsType"/>
				<xs:element name="not_objects" type="not_objectsType"/>
			</xs:choice>
			<xs:element name="objects_parameter" type="objects_parameterType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="map_input" type="map_inputType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="objectscond_extension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- *********************** -->
	<!-- ** objects_parameter ** -->
	<!-- *********************** -->
	<xs:complexType name="objects_parameterType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="pname" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ******** -->
	<!-- ** or ** -->
	<!-- ******** -->
	<xs:complexType name="orType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="not" type="notType"/>
			<xs:element name="and" type="andType"/>
			<xs:element name="or" type="orType"/>
			<xs:element name="unanswered" type="unansweredType"/>
			<xs:element ref="other"/>
			<xs:element name="varequal" type="varequalType"/>
			<xs:element name="varlt" type="varltType"/>
			<xs:element name="varlte" type="varlteType"/>
			<xs:element name="vargt" type="vargtType"/>
			<xs:element name="vargte" type="vargteType"/>
			<xs:element name="varsubset" type="varsubsetType"/>
			<xs:element name="varinside" type="varinsideType"/>
			<xs:element name="varsubstring" type="varsubstringType"/>
			<xs:element name="durequal" type="durequalType"/>
			<xs:element name="durlt" type="durltType"/>
			<xs:element name="durlte" type="durlteType"/>
			<xs:element name="durgt" type="durgtType"/>
			<xs:element name="durgte" type="durgteType"/>
		</xs:choice>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** or_objects ** -->
	<!-- **************** -->
	<xs:complexType name="or_objectsType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
			<xs:element name="and_objects" type="and_objectsType"/>
			<xs:element name="or_objects" type="or_objectsType"/>
			<xs:element name="not_objects" type="not_objectsType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** or_selection ** -->
	<!-- ****************** -->
	<xs:complexType name="or_selectionType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="selection_metadata" type="selection_metadataType"/>
			<xs:element name="and_selection" type="and_selectionType"/>
			<xs:element name="or_selection" type="or_selectionType"/>
			<xs:element name="not_selection" type="not_selectionType"/>
		</xs:choice>
	</xs:complexType>
	<!-- ************* -->
	<!-- ** or_test ** -->
	<!-- ************* -->
	<xs:complexType name="or_testType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="variable_test" type="variable_testType"/>
			<xs:element name="and_test" type="and_testType"/>
			<xs:element name="or_test" type="or_testType"/>
			<xs:element name="not_test" type="not_testType"/>
		</xs:choice>
	</xs:complexType>
	<!-- *********** -->
	<!-- ** order ** -->
	<!-- *********** -->
	<xs:complexType name="orderType">
		<xs:sequence>
			<xs:element ref="order_extension" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="order_type" type="xs:string" use="required"/>
	</xs:complexType>
	<!-- ********************* -->
	<!-- ** order_extension ** -->
	<!-- ********************* -->
	<xs:complexType name="order_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** outcomes ** -->
	<!-- ************** -->
	<xs:complexType name="outcomesType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:sequence maxOccurs="unbounded">
				<xs:element name="decvar" type="decvarType"/>
				<xs:element name="interpretvar" type="interpretvarType" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:sequence>
	</xs:complexType>
	<!-- **************************** -->
	<!-- ** outcomes_feedback_test ** -->
	<!-- **************************** -->
	<xs:complexType name="outcomes_feedback_testType">
		<xs:sequence>
			<xs:element name="test_variable" type="test_variableType"/>
			<xs:element name="displayfeedback" type="displayfeedbackType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="title" type="xs:string"/>
	</xs:complexType>
	<!-- *********************** -->
	<!-- ** outcomes_metadata ** -->
	<!-- *********************** -->
	<xs:complexType name="outcomes_metadataType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="mdname" type="xs:string" use="required"/>
				<xs:attribute name="mdoperator" use="required">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="EQ"/>
							<xs:enumeration value="NEQ"/>
							<xs:enumeration value="LT"/>
							<xs:enumeration value="LTE"/>
							<xs:enumeration value="GT"/>
							<xs:enumeration value="GTE"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************************* -->
	<!-- ** outcomes_processing ** -->
	<!-- ************************* -->
	<xs:complexType name="outcomes_processingType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element name="outcomes" type="outcomesType"/>
			<xs:element name="objects_condition" type="objects_conditionType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="processing_parameter" type="processing_parameterType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="map_output" type="map_outputType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="outcomes_feedback_test" type="outcomes_feedback_testType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="scoremodel" type="xs:string"/>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** presentation ** -->
	<!-- ****************** -->
	<xs:complexType name="presentationType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice>
				<xs:element name="flow" type="flowType"/>
				<xs:choice maxOccurs="unbounded">
					<xs:element name="material" type="materialType"/>
					<xs:element name="response_lid" type="response_lidType"/>
					<xs:element name="response_xy" type="response_xyType"/>
					<xs:element name="response_str" type="response_strType"/>
					<xs:element name="response_num" type="response_numType"/>
					<xs:element name="response_grp" type="response_grpType"/>
					<xs:element ref="response_extension"/>
				</xs:choice>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="label" type="xs:string"/>
		<xs:attribute ref="x:lang"/>
		<xs:attribute name="y0" type="xs:string"/>
		<xs:attribute name="x0" type="xs:string"/>
		<xs:attribute name="width" type="xs:string"/>
		<xs:attribute name="height" type="xs:string"/>
	</xs:complexType>
	<!-- *************************** -->
	<!-- ** presentation_material ** -->
	<!-- *************************** -->
	<xs:complexType name="presentation_materialType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ************************** -->
	<!-- ** processing_parameter ** -->
	<!-- ************************** -->
	<xs:complexType name="processing_parameterType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="pname" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** qticomment ** -->
	<!-- **************** -->
	<xs:complexType name="qticommentType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute ref="x:lang"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ***************** -->
	<!-- ** qtimetadata ** -->
	<!-- ***************** -->
	<xs:complexType name="qtimetadataType">
		<xs:sequence>
			<xs:element name="vocabulary" type="vocabularyType" minOccurs="0"/>
			<xs:element name="qtimetadatafield" type="qtimetadatafieldType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ********************** -->
	<!-- ** qtimetadatafield ** -->
	<!-- ********************** -->
	<xs:complexType name="qtimetadatafieldType">
		<xs:sequence>
			<xs:element ref="fieldlabel"/>
			<xs:element ref="fieldentry"/>
		</xs:sequence>
		<xs:attribute ref="x:lang"/>
	</xs:complexType>
	<!-- ********************* -->
	<!-- ** questestinterop ** -->
	<!-- ********************* -->
	<xs:complexType name="questestinteropType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice>
				<xs:element name="objectbank" type="objectbankType"/>
				<xs:element name="assessment" type="assessmentType"/>
				<xs:choice maxOccurs="unbounded">
					<xs:element name="section" type="sectionType"/>
					<xs:element name="item" type="itemType"/>
				</xs:choice>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<!-- *************** -->
	<!-- ** reference ** -->
	<!-- *************** -->
	<xs:complexType name="referenceType">
		<xs:choice maxOccurs="unbounded">
			<xs:element name="qticomment" type="qticommentType"/>
			<xs:element name="material" type="materialType"/>
			<xs:element name="mattext" type="mattextType"/>
			<xs:element name="matemtext" type="matemtextType"/>
			<xs:element name="matimage" type="matimageType"/>
			<xs:element name="mataudio" type="mataudioType"/>
			<xs:element name="matvideo" type="matvideoType"/>
			<xs:element name="matapplet" type="matappletType"/>
			<xs:element name="matapplication" type="matapplicationType"/>
			<xs:element ref="matbreak"/>
			<xs:element ref="mat_extension"/>
		</xs:choice>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** render_choice ** -->
	<!-- ******************* -->
	<xs:complexType name="render_choiceType">
		<xs:sequence>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
				<xs:element name="response_label" type="response_labelType"/>
				<xs:element name="flow_label" type="flow_labelType"/>
			</xs:choice>
			<xs:element ref="response_na" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="shuffle" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="minnumber" type="xs:string"/>
		<xs:attribute name="maxnumber" type="xs:string"/>
	</xs:complexType>
	<!-- ********************** -->
	<!-- ** render_extension ** -->
	<!-- ********************** -->
	<xs:complexType name="render_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** render_fib ** -->
	<!-- **************** -->
	<xs:complexType name="render_fibType">
		<xs:sequence>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
				<xs:element name="response_label" type="response_labelType"/>
				<xs:element name="flow_label" type="flow_labelType"/>
			</xs:choice>
			<xs:element ref="response_na" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="encoding" type="xs:string" default="UTF_8"/>
		<xs:attribute name="fibtype" default="String">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="String"/>
					<xs:enumeration value="Integer"/>
					<xs:enumeration value="Decimal"/>
					<xs:enumeration value="Scientific"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="rows" type="xs:string"/>
		<xs:attribute name="maxchars" type="xs:string"/>
		<xs:attribute name="prompt">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Box"/>
					<xs:enumeration value="Dashline"/>
					<xs:enumeration value="Asterisk"/>
					<xs:enumeration value="Underline"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="columns" type="xs:string"/>
		<xs:attribute name="charset" type="xs:string" default="ascii-us"/>
		<xs:attribute name="maxnumber" type="xs:string"/>
		<xs:attribute name="minnumber" type="xs:string"/>
	</xs:complexType>
	<!-- ******************** -->
	<!-- ** render_hotspot ** -->
	<!-- ******************** -->
	<xs:complexType name="render_hotspotType">
		<xs:sequence>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
				<xs:element name="response_label" type="response_labelType"/>
				<xs:element name="flow_label" type="flow_labelType"/>
			</xs:choice>
			<xs:element ref="response_na" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="maxnumber" type="xs:string"/>
		<xs:attribute name="minnumber" type="xs:string"/>
		<xs:attribute name="showdraw" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** render_slider ** -->
	<!-- ******************* -->
	<xs:complexType name="render_sliderType">
		<xs:sequence>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
				<xs:element name="response_label" type="response_labelType"/>
				<xs:element name="flow_label" type="flow_labelType"/>
			</xs:choice>
			<xs:element ref="response_na" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="orientation" default="Horizontal">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Horizontal"/>
					<xs:enumeration value="Vertical"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="lowerbound" type="xs:string" use="required"/>
		<xs:attribute name="upperbound" type="xs:string" use="required"/>
		<xs:attribute name="step" type="xs:string"/>
		<xs:attribute name="startval" type="xs:string"/>
		<xs:attribute name="steplabel" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="maxnumber" type="xs:string"/>
		<xs:attribute name="minnumber" type="xs:string"/>
	</xs:complexType>
	<!-- ************************ -->
	<!-- ** respcond_extension ** -->
	<!-- ************************ -->
	<xs:complexType name="respcond_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** respcondition ** -->
	<!-- ******************* -->
	<xs:complexType name="respconditionType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element name="conditionvar" type="conditionvarType"/>
			<xs:element name="setvar" type="setvarType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="displayfeedback" type="displayfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="respcond_extension" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="continue" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="title" type="xs:string"/>
	</xs:complexType>
	<!-- ************************ -->
	<!-- ** response_extension ** -->
	<!-- ************************ -->
	<xs:complexType name="response_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** response_grp ** -->
	<!-- ****************** -->
	<xs:complexType name="response_grpType">
		<xs:sequence>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
			<xs:choice>
				<xs:element name="render_choice" type="render_choiceType"/>
				<xs:element name="render_hotspot" type="render_hotspotType"/>
				<xs:element name="render_slider" type="render_sliderType"/>
				<xs:element name="render_fib" type="render_fibType"/>
				<xs:element ref="render_extension"/>
			</xs:choice>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="rcardinality" default="Single">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Single"/>
					<xs:enumeration value="Multiple"/>
					<xs:enumeration value="Ordered"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="rtiming" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ************************ -->
	<!-- ** response_lableType ** -->
	<!-- ************************ -->
	<xs:complexType name="response_labelType" mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="qticomment" type="qticommentType"/>
			<xs:element name="material" type="materialType"/>
			<xs:element name="material_ref" type="material_refType"/>
			<xs:element name="flow_mat" type="flow_matType"/>
		</xs:choice>
		<xs:attribute name="rshuffle" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="rarea" default="Ellipse">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Ellipse"/>
					<xs:enumeration value="Rectangle"/>
					<xs:enumeration value="Bounded"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="rrange" default="Exact">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Exact"/>
					<xs:enumeration value="Range"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="labelrefid" type="xs:string"/>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="match_group" type="xs:string"/>
		<xs:attribute name="match_max" type="xs:string"/>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** response_lid ** -->
	<!-- ****************** -->
	<xs:complexType name="response_lidType">
		<xs:sequence>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
			<xs:choice>
				<xs:element name="render_choice" type="render_choiceType"/>
				<xs:element name="render_hotspot" type="render_hotspotType"/>
				<xs:element name="render_slider" type="render_sliderType"/>
				<xs:element name="render_fib" type="render_fibType"/>
				<xs:element ref="render_extension"/>
			</xs:choice>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="rcardinality" default="Single">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Single"/>
					<xs:enumeration value="Multiple"/>
					<xs:enumeration value="Ordered"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="rtiming" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ident" type="xs:string" use="required"/>
	</xs:complexType>
	<!-- ***************** -->
	<!-- ** response_na ** -->
	<!-- ***************** -->
	<xs:complexType name="response_naType"/>
	<!-- ****************** -->
	<!-- ** response_num ** -->
	<!-- ****************** -->
	<xs:complexType name="response_numType">
		<xs:sequence>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
			<xs:choice>
				<xs:element name="render_choice" type="render_choiceType"/>
				<xs:element name="render_hotspot" type="render_hotspotType"/>
				<xs:element name="render_slider" type="render_sliderType"/>
				<xs:element name="render_fib" type="render_fibType"/>
				<xs:element ref="render_extension"/>
			</xs:choice>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="numtype" default="Integer">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Integer"/>
					<xs:enumeration value="Decimal"/>
					<xs:enumeration value="Scientific"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="rcardinality" default="Single">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Single"/>
					<xs:enumeration value="Multiple"/>
					<xs:enumeration value="Ordered"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="rtiming" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** response_str ** -->
	<!-- ****************** -->
	<xs:complexType name="response_strType">
		<xs:sequence>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
			<xs:choice>
				<xs:element name="render_choice" type="render_choiceType"/>
				<xs:element name="render_hotspot" type="render_hotspotType"/>
				<xs:element name="render_slider" type="render_sliderType"/>
				<xs:element name="render_fib" type="render_fibType"/>
				<xs:element ref="render_extension"/>
			</xs:choice>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="rcardinality" default="Single">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Single"/>
					<xs:enumeration value="Multiple"/>
					<xs:enumeration value="Ordered"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="rtiming" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ***************** -->
	<!-- ** response_xy ** -->
	<!-- ***************** -->
	<xs:complexType name="response_xyType">
		<xs:sequence>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
			<xs:choice>
				<xs:element name="render_choice" type="render_choiceType"/>
				<xs:element name="render_hotspot" type="render_hotspotType"/>
				<xs:element name="render_slider" type="render_sliderType"/>
				<xs:element name="render_fib" type="render_fibType"/>
				<xs:element ref="render_extension"/>
			</xs:choice>
			<xs:choice minOccurs="0">
				<xs:element name="material" type="materialType"/>
				<xs:element name="material_ref" type="material_refType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="rcardinality" default="Single">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Single"/>
					<xs:enumeration value="Multiple"/>
					<xs:enumeration value="Ordered"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="rtiming" default="No">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ident" type="xs:string" use="required"/>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** resprocessing ** -->
	<!-- ******************* -->
	<xs:complexType name="resprocessingType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element name="outcomes" type="outcomesType"/>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="respcondition" type="respconditionType"/>
				<xs:element ref="itemproc_extension"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="scoremodel" type="xs:string"/>
	</xs:complexType>
	<!-- ************ -->
	<!-- ** rubric ** -->
	<!-- ************ -->
	<xs:complexType name="rubricType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice>
				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ************* -->
	<!-- ** section ** -->
	<!-- ************* -->
	<xs:complexType name="sectionType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element ref="duration" minOccurs="0"/>
			<xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="sectioncontrol" type="sectioncontrolType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="sectionprecondition" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="sectionpostcondition" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="rubric" type="rubricType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="presentation_material" type="presentation_materialType" minOccurs="0"/>
			<xs:element name="outcomes_processing" type="outcomes_processingType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="sectionproc_extension" minOccurs="0"/>
			<xs:element name="sectionfeedback" type="sectionfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="selection_ordering" type="selection_orderingType" minOccurs="0"/>
			<xs:element name="reference" type="referenceType" minOccurs="0"/>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="itemref" type="itemrefType"/>
				<xs:element name="item" type="itemType"/>
				<xs:element name="sectionref" type="sectionrefType"/>
				<xs:element name="section" type="sectionType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="title" type="xs:string"/>
		<xs:attribute ref="x:lang"/>
	</xs:complexType>
	<!-- ******************** -->
	<!-- ** sectioncontrol ** -->
	<!-- ******************** -->
	<xs:complexType name="sectioncontrolType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="feedbackswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="hintswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="solutionswitch" default="Yes">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Yes"/>
					<xs:enumeration value="No"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ********************* -->
	<!-- ** sectionfeedback ** -->
	<!-- ********************* -->
	<xs:complexType name="sectionfeedbackType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:choice>
				<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
				<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="view" default="All">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="All"/>
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="AdminAuthority"/>
					<xs:enumeration value="Assessor"/>
					<xs:enumeration value="Author"/>
					<xs:enumeration value="Candidate"/>
					<xs:enumeration value="InvigilatorProctor"/>
					<xs:enumeration value="Psychometrician"/>
					<xs:enumeration value="Scorer"/>
					<xs:enumeration value="Tutor"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ident" type="xs:string" use="required"/>
		<xs:attribute name="title" type="xs:string"/>
	</xs:complexType>
	<!-- *************************** -->
	<!-- ** sectionproc_extension ** -->
	<!-- *************************** -->
	<xs:complexType name="sectionproc_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** sectionref ** -->
	<!-- **************** -->
	<xs:complexType name="sectionrefType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="linkrefid" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- *************** -->
	<!-- ** selection ** -->
	<!-- *************** -->
	<xs:complexType name="selectionType">
		<xs:sequence>
			<xs:element ref="sourcebank_ref" minOccurs="0"/>
			<xs:element ref="selection_number" minOccurs="0"/>
			<xs:element name="selection_metadata" type="selection_metadataType" minOccurs="0"/>
			<xs:choice minOccurs="0">
				<xs:element name="and_selection" type="and_selectionType"/>
				<xs:element name="or_selection" type="or_selectionType"/>
				<xs:element name="not_selection" type="not_selectionType"/>
				<xs:element ref="selection_extension"/>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<!-- ************************* -->
	<!-- ** selection_extension ** -->
	<!-- ************************* -->
	<xs:complexType name="selection_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- ************************ -->
	<!-- ** selection_metadata ** -->
	<!-- ************************ -->
	<xs:complexType name="selection_metadataType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="mdname" type="xs:string" use="required"/>
				<xs:attribute name="mdoperator" use="required">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="EQ"/>
							<xs:enumeration value="NEQ"/>
							<xs:enumeration value="LT"/>
							<xs:enumeration value="LTE"/>
							<xs:enumeration value="GT"/>
							<xs:enumeration value="GTE"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************************ -->
	<!-- ** selection_ordering ** -->
	<!-- ************************ -->
	<xs:complexType name="selection_orderingType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element name="sequence_parameter" type="sequence_parameterType" minOccurs="0"/>
			<xs:element name="selection" type="selectionType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="order" type="orderType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="sequence_type" type="xs:string"/>
	</xs:complexType>
	<!-- ************************ -->
	<!-- ** sequence_parameter ** -->
	<!-- ************************ -->
	<xs:complexType name="sequence_parameterType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="pname" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************ -->
	<!-- ** setvar ** -->
	<!-- ************ -->
	<xs:complexType name="setvarType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
				<xs:attribute name="action" default="Set">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="Set"/>
							<xs:enumeration value="Add"/>
							<xs:enumeration value="Subtract"/>
							<xs:enumeration value="Multiply"/>
							<xs:enumeration value="Divide"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** solution ** -->
	<!-- ************** -->
	<xs:complexType name="solutionType">
		<xs:sequence>
			<xs:element name="qticomment" type="qticommentType" minOccurs="0"/>
			<xs:element name="solutionmaterial" type="solutionmaterialType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="feedbackstyle" default="Complete">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="Complete"/>
					<xs:enumeration value="Incremental"/>
					<xs:enumeration value="Multilevel"/>
					<xs:enumeration value="Proprietary"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- ********************** -->
	<!-- ** solutionmaterial ** -->
	<!-- ********************** -->
	<xs:complexType name="solutionmaterialType">
		<xs:choice>
			<xs:element name="material" type="materialType" maxOccurs="unbounded"/>
			<xs:element name="flow_mat" type="flow_matType" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** test_variable ** -->
	<!-- ******************* -->
	<xs:complexType name="test_variableType">
		<xs:choice>
			<xs:element name="variable_test" type="variable_testType"/>
			<xs:element name="and_test" type="and_testType"/>
			<xs:element name="or_test" type="or_testType"/>
			<xs:element name="not_test" type="not_testType"/>
		</xs:choice>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** unanswered ** -->
	<!-- **************** -->
	<xs:complexType name="unansweredType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="respident" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** var_extension ** -->
	<!-- ******************* -->
	<xs:complexType name="var_extensionType" mixed="true">
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<!-- ************** -->
	<!-- ** varequal ** -->
	<!-- ************** -->
	<xs:complexType name="varequalType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="case" default="No">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="Yes"/>
							<xs:enumeration value="No"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="respident" type="xs:string" use="required"/>
				<xs:attribute name="index" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- *********** -->
	<!-- ** vargt ** -->
	<!-- *********** -->
	<xs:complexType name="vargtType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="respident" type="xs:string" use="required"/>
				<xs:attribute name="index" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************ -->
	<!-- ** vargte ** -->
	<!-- ************ -->
	<xs:complexType name="vargteType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="respident" type="xs:string" use="required"/>
				<xs:attribute name="index" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ******************* -->
	<!-- ** variable_test ** -->
	<!-- ******************* -->
	<xs:complexType name="variable_testType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="varname" type="xs:string" default="SCORE"/>
				<xs:attribute name="testoperator" use="required">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="EQ"/>
							<xs:enumeration value="NEQ"/>
							<xs:enumeration value="LT"/>
							<xs:enumeration value="LTE"/>
							<xs:enumeration value="GT"/>
							<xs:enumeration value="GTE"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- *************** -->
	<!-- ** varinside ** -->
	<!-- *************** -->
	<xs:complexType name="varinsideType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="areatype" use="required">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="Ellipse"/>
							<xs:enumeration value="Rectangle"/>
							<xs:enumeration value="Bounded"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="respident" type="xs:string" use="required"/>
				<xs:attribute name="index" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- *********** -->
	<!-- ** varlt ** -->
	<!-- *********** -->
	<xs:complexType name="varltType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="respident" type="xs:string" use="required"/>
				<xs:attribute name="index" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ************ -->
	<!-- ** varlte ** -->
	<!-- ************ -->
	<xs:complexType name="varlteType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="respident" type="xs:string" use="required"/>
				<xs:attribute name="index" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- *************** -->
	<!-- ** varsubset ** -->
	<!-- *************** -->
	<xs:complexType name="varsubsetType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="respident" type="xs:string" use="required"/>
				<xs:attribute name="setmatch" default="Exact">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="Exact"/>
							<xs:enumeration value="Partial"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="index" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ****************** -->
	<!-- ** varsubstring ** -->
	<!-- ****************** -->
	<xs:complexType name="varsubstringType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="index" type="xs:string"/>
				<xs:attribute name="respident" type="xs:string" use="required"/>
				<xs:attribute name="case" default="No">
					<xs:simpleType>
						<xs:restriction base="xs:NMTOKEN">
							<xs:enumeration value="Yes"/>
							<xs:enumeration value="No"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- **************** -->
	<!-- ** vocabulary ** -->
	<!-- **************** -->
	<xs:complexType name="vocabularyType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="uri" type="xs:string"/>
				<xs:attribute name="entityref" type="xs:ENTITY"/>
				<xs:attribute name="vocab_type" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:schema>
