<!--SIF Implementation Specification UK 1.1-4 (September 18, 2009)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/uk/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/uk/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="AssessmentResultComponentType">
    <xs:annotation>
      <xs:documentation>A psychological construct measured by the assessment. Operationally, an assessment component or subtest is a class of scores within an assessment that might collectively represent a column within a mark book. Some assessments may consist of only one component, aspect or subtest although it is more common for assessments to have several.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The name used to identify this component or aspect.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The identifier used within the publishing application.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ShortDescription" minOccurs="0" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Shorter description used for column headers in marksheets, etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Description" minOccurs="0" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Longer text describing features of the component.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="YearList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Year" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>A year with which the component grouping is applicable (by convention this is the end year of an academic year eg: 2007/8  resolves to 2008).</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AssessmentSubjectList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Subject" minOccurs="0" maxOccurs="unbounded" type="sif:UKAssessmentSubjectType">
              <xs:annotation>
                <xs:documentation>A subject area associated with this assessment component or aspect.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StageList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Stage" minOccurs="0" maxOccurs="unbounded" type="sif:UKAssessmentStageType">
              <xs:annotation>
                <xs:documentation>The assessed stage (this may well be a Keystage List, but there is no reason why it couldn’t be used for other concepts such as NcYear applicability, Level  Exam Level GCSE, A-Level etc.).</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AssessmentResultGradeSetRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>The gradeset associated with the component or aspect.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="MarkSetList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MarkSet" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date">
                    <xs:annotation>
                      <xs:documentation>Start date of the range validity - ranges should not overlap. If not supplied then assumed to have always been valid in the past.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date">
                    <xs:annotation>
                      <xs:documentation>End date of the range validity - ranges should not overlap.  If not supplied then assumed to always will be valid in the future.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="MinValue" minOccurs="0" type="xs:decimal">
                    <xs:annotation>
                      <xs:documentation>The minimum value in the range of marks.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="MaxValue" minOccurs="0" type="xs:decimal">
                    <xs:annotation>
                      <xs:documentation>The maximum value in the range of marks.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ComponentType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Defines the associated result format.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Comment" />
            <xs:enumeration value="Grade" />
            <xs:enumeration value="Mark" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ResultQualifier" minOccurs="0" type="sif:UKAssessmentResultQualifierType">
        <xs:annotation>
          <xs:documentation>Defines the format or type of result(s) awarded.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AssessmentMethod" minOccurs="0" type="sif:UKAssessmentMethodType">
        <xs:annotation>
          <xs:documentation>The method or format of the Assessment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SupplierName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The supplier/originator/designer/owner of the aspect.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType">
        <xs:unique name="SIF_ExtendedElementsKey2">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of this aspect or subtest.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="AssessmentResultComponent" type="sif:AssessmentResultComponentType">
    <xs:key name="AssessmentResultComponentKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:key>
  </xs:element>

</xs:schema>