<?xml version='1.0' encoding='UTF-8' ?>

<!--Generated by XML Authority-->

<!--	*******************************************************		-->
<!--																-->
<!--	TITLE:		ims_qtiresv1p2p1.dtd							-->
<!--	TYPE:		IMS Question and Test Interoperability			-->
<!--				Results Reporting								-->
<!--																-->
<!--	REVISION HISTORY:											-->
<!--	Date	        Author										-->
<!--	====	        ======										-->
<!--	14th Feb 2003	Colin Smythe								-->
<!--																-->
<!--	This specification has been approved as a Final release.	-->
<!--																-->
<!--	+++++++++++++++++++++++++++++++++++++++++++++++++++++++		-->
<!--	*******************************************************		-->
<!--					ENTITY DEFINITIONS							-->
<!--	*******************************************************		-->
<!ENTITY % I_Vartype " vartype  (Integer | Decimal | Scientific | String | Boolean | Set | Enumerated )  'Integer'">

<!ENTITY % I_Varname " varname CDATA  'SCORE'">

<!ENTITY % I_Identref " ident_ref CDATA  #IMPLIED">

<!ENTITY % I_Evaltitle " asi_title CDATA  #IMPLIED">

<!ENTITY % I_Presented " presented  (Yes | No | Unknown )  'Yes'">

<!ENTITY % I_Status " status  (Valid | Noanswer | Error )  'Valid'">

<!ENTITY % I_Uri " uri CDATA  #IMPLIED">

<!ENTITY % I_Entityref " entityref ENTITY  #IMPLIED">

<!--	+++++++++++++++++++++++++++++++++++++++++++++++++++++++		-->
<!--	*******************************************************		-->
<!--					ROOT DEFINITION								-->
<!--	*******************************************************		-->
<!ELEMENT qti_result_report (qti_comment? , result+)>

<!--	+++++++++++++++++++++++++++++++++++++++++++++++++++++++		-->
<!ELEMENT qti_comment (#PCDATA)>

<!ATTLIST qti_comment  xml:lang CDATA  #IMPLIED >
<!--	*******************************************************		-->
<!--				CORE OBJECT DEFINITIONS							-->
<!--	*******************************************************		-->
<!ELEMENT result (qti_comment? , context , (summary_result | assessment_result | section_result | item_result) , extension_result?)>

<!ELEMENT context (qti_comment? , name? , generic_identifier* , date* , extension_context?)>

<!ELEMENT summary_result (qti_comment? , type_label? , generic_identifier* , date* , status? , duration? , score? , grade? , outcomes? , extension_summary_result?)>

<!ATTLIST summary_result  %I_Evaltitle; >
<!ELEMENT assessment_result (qti_comment? , asi_metadata* , asi_description? , date* , duration? , objective* , control? , outcomes? , feedback_displayed* , num_items? , num_sections? , num_items_presented? , num_items_attempted? , num_sections_presented? , section_result* , extension_assessment_result?)>

<!ATTLIST assessment_result  %I_Identref;
                              %I_Evaltitle; >
<!ELEMENT section_result (qti_comment? , asi_metadata* , asi_description? , date* , duration? , objective* , control? , outcomes? , feedback_displayed* , num_items? , num_sections? , num_items_presented? , num_items_attempted? , num_sections_presented? , (section_result | item_result)* , extension_section_result?)>

<!ATTLIST section_result  %I_Evaltitle;
                           %I_Identref;
                           %I_Presented; >
<!ELEMENT item_result (qti_comment? , asi_metadata* , asi_description? , date* , duration? , objective* , control? , response* , outcomes? , feedback_displayed* , extension_item_result?)>

<!ATTLIST item_result  %I_Evaltitle;
                        %I_Identref;
                        %I_Presented; >
<!--	+++++++++++++++++++++++++++++++++++++++++++++++++++++++		-->
<!--	*******************************************************		-->
<!--				SUPPORT OBJECT DEFINITIONS						-->
<!--	*******************************************************		-->
<!ELEMENT name (#PCDATA)>

<!ELEMENT generic_identifier (type_label? , identifier_string)>

<!ELEMENT date (type_label? , datetime)>

<!ELEMENT score_min (#PCDATA)>

<!ELEMENT score_max (#PCDATA)>

<!ELEMENT score_value (#PCDATA)>

<!ELEMENT grade (grade_value , grade_cut? , extension_grade?)>

<!ATTLIST grade  %I_Varname;
                  %I_Status;
                  members   CDATA  #IMPLIED >
<!ELEMENT duration (#PCDATA)>

<!ELEMENT type_label (#PCDATA)>

<!ATTLIST type_label  source CDATA  #IMPLIED >
<!ELEMENT status (type_label? , datetime? , status_value)>

<!ELEMENT objective (#PCDATA)>

<!ATTLIST objective  view         (All | 
                                    Administrator | 
                                    AdminAuthority | 
                                    Assessor | 
                                    Author | 
                                    Candidate | 
                                    InvigilatorProctor | 
                                    Psychometrician | 
                                    Scorer | 
                                    Tutor )  'All'
                      %I_Uri;
                      %I_Entityref; >
<!ELEMENT control (#PCDATA)>

<!ATTLIST control  hint_switch      (Yes | No )  'No'
                    solution_switch  (Yes | No )  'No'
                    feedback_switch  (Yes | No )  'No' >
<!ELEMENT asi_metadata (vocabulary? , asi_metadatafield+)>

<!ELEMENT response (qti_comment? , response_form? , num_attempts? , response_value* , extension_response?)>

<!ATTLIST response  %I_Identref; >
<!ELEMENT response_value (#PCDATA)>

<!ATTLIST response_value  %I_Uri;
                           %I_Entityref;
                           response_status  (Null | Valid | NA | Invalid )  'Valid'
                           response_time   CDATA  #IMPLIED >
<!ELEMENT feedback_displayed (#PCDATA)>

<!ATTLIST feedback_displayed  %I_Uri;
                               %I_Entityref;
                               %I_Identref;
                               %I_Evaltitle; >
<!ELEMENT num_items (#PCDATA)>

<!ELEMENT num_sections (#PCDATA)>

<!ELEMENT num_sections_presented (#PCDATA)>

<!ELEMENT num_items_attempted (#PCDATA)>

<!ELEMENT num_items_presented (#PCDATA)>

<!ELEMENT response_form (correct_response* , extension_responseform?)>

<!ATTLIST response_form  cardinality    (single | multiple | ordered | extension )  #IMPLIED
                          render_type    (choice | hotspot | slider | fib | extension )  #IMPLIED
                          timing         (Yes | No )  #IMPLIED
                          response_type  (lid | xy | str | num | grp | extension )  #IMPLIED >
<!ELEMENT correct_response (#PCDATA)>

<!ELEMENT outcomes (status? , (score | grade)*)>

<!ELEMENT score (score_value , score_interpretation? , score_min? , score_max? , score_normalized? , score_average? , score_std_error? , score_reliability? , score_cut? , extension_score?)>

<!ATTLIST score  %I_Varname;
                  %I_Vartype;
                  %I_Status; >
<!ELEMENT score_cut (#PCDATA)>

<!ELEMENT grade_value (#PCDATA)>

<!ELEMENT grade_cut (#PCDATA)>

<!ELEMENT score_average (#PCDATA)>

<!ELEMENT score_std_error (#PCDATA)>

<!ELEMENT num_attempts (#PCDATA)>

<!ELEMENT asi_description (#PCDATA)>

<!ATTLIST asi_description  %I_Uri;
                            %I_Entityref; >
<!ELEMENT identifier_string (#PCDATA)>

<!ELEMENT datetime (#PCDATA)>

<!ELEMENT status_value (#PCDATA)>

<!ELEMENT vocabulary (#PCDATA)>

<!ATTLIST vocabulary  %I_Uri;
                       %I_Entityref;
                       vocab_type  CDATA  #IMPLIED >
<!ELEMENT asi_metadatafield (field_name , field_value)>

<!ATTLIST asi_metadatafield  xml:lang CDATA  #IMPLIED >
<!ELEMENT field_name (#PCDATA)>

<!ELEMENT field_value (#PCDATA)>

<!ELEMENT score_reliability (#PCDATA)>

<!ELEMENT score_interpretation (#PCDATA)>

<!ATTLIST score_interpretation  %I_Uri;
                                 %I_Entityref; >
<!--	*******************************************************		-->
<!--					EXTENSION DEFINITIONS						-->
<!--	*******************************************************		-->
<!ELEMENT extension_context ANY>

<!ELEMENT extension_assessment_result ANY>

<!ELEMENT extension_section_result ANY>

<!ELEMENT extension_score ANY>

<!ELEMENT extension_summary_result ANY>

<!ELEMENT extension_item_result ANY>

<!ELEMENT extension_response ANY>

<!ELEMENT extension_responseform ANY>

<!ELEMENT extension_grade ANY>

<!ELEMENT extension_result ANY>

<!ELEMENT score_normalized (#PCDATA)>

