<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" id="NRTCTFSchema">
  <xs:element name="CTfile">
    <xs:annotation>
      <xs:documentation>NRT CTF Structure</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Header">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="DocumentName">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="CTFversion">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="DateTime" type="xs:dateTime" />
              <xs:element name="DocumentQualifier">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="DataDescriptor">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="SupplierID">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="SourceSchool">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="LEA" type="LEAType" />
                    <xs:element name="Estab" type="EstabType" />
                    <xs:element name="SchoolName" type="SchoolNameType" />
                    <xs:element name="AcademicYear" type="AcademicYearType" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="DestSchool">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="LEA" type="LEAType" />
                    <xs:element name="Estab" type="EstabType" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="CTFpupilData">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Pupil" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="UPN" type="UniquePupilNumberType" />
                    <xs:element name="Surname">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Forename">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="DOB" type="xs:date" />
                    <xs:element name="Gender" type="GenderType" />
                    <xs:element name="StageAssessments">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="KeyStage" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Stage" type="StageType" />
                                <xs:element name="StageAssessment" maxOccurs="unbounded">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="Locale" type="LocaleType" />
                                      <xs:element name="Year" type="YearType" />
                                      <xs:element name="Subject" type="SubjectType" />
                                      <xs:element name="Method" type="MethodType" />
                                      <xs:element name="Component" type="ComponentType" />
                                      <xs:element name="ResultStatus" type="ResultStatusType" />
                                      <xs:element name="ResultQualifier" type="ResultQualifierType" />
                                      <xs:element name="Result" type="ResultType" />
                                      <xs:element name="ResultDate" type="xs:date" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <!-- SIMPLE TYPES -->
  <!-- GENERIC SIMPLE TYPES -->
  <xs:simpleType name="Integer0to9999Type">
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:maxInclusive value="9999" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TrueFalseType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="True" />
      <xs:enumeration value="False" />
      <xs:enumeration value="true" />
      <xs:enumeration value="false" />
      <xs:enumeration value="TRUE" />
      <xs:enumeration value="FALSE" />
      <xs:enumeration value="1" />
      <xs:enumeration value="0" />
    </xs:restriction>
  </xs:simpleType>
  <!-- ELEMENT SPECIFIC SIMPLE TYPES -->
  <xs:simpleType name="AcademicYearType">
    <xs:restriction base="xs:positiveInteger">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LEAType">
    <xs:restriction base="xs:positiveInteger">
      <xs:enumeration value="660" />
      <xs:enumeration value="661" />
      <xs:enumeration value="662" />
      <xs:enumeration value="663" />
      <xs:enumeration value="664" />
      <xs:enumeration value="665" />
      <xs:enumeration value="666" />
      <xs:enumeration value="667" />
      <xs:enumeration value="668" />
      <xs:enumeration value="669" />
      <xs:enumeration value="670" />
      <xs:enumeration value="671" />
      <xs:enumeration value="672" />
      <xs:enumeration value="673" />
      <xs:enumeration value="674" />
      <xs:enumeration value="675" />
      <xs:enumeration value="676" />
      <xs:enumeration value="677" />
      <xs:enumeration value="678" />
      <xs:enumeration value="679" />
      <xs:enumeration value="680" />
      <xs:enumeration value="681" />
      <xs:enumeration value="990" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="EstabType">
    <xs:restriction base="xs:positiveInteger">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SchoolNameType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="200" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="GenderType">
    <xs:restriction base="xs:string">
      <xs:length value="1" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UniquePupilNumberType">
    <xs:restriction base="xs:string">
      <xs:minLength value="13" />
      <xs:maxLength value="13" />
    </xs:restriction>
  </xs:simpleType>
  <!--StageType-->
  <xs:simpleType name="StageType">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="YearType">
    <xs:restriction base="xs:positiveInteger">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SubjectType">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ComponentType">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="MethodType">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ResultQualifierType">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ResultStatusType">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ResultType">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LocaleType">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>
</xs:schema>