<!--
		SIF Implementation Specification (New Zealand) 3.1
		(8 December, 2020
)
		
		Infrastructure Version: v3.1
	-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sifassociation.org/datamodel/nz/3.1" targetNamespace="http://www.sifassociation.org/datamodel/nz/3.1" elementFormDefault="qualified" version="3.1 (rc 5)">
  <xs:complexType name="StudentCurriculumProgressReportType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating>Low</privacyRating>
      </xs:appinfo>
      <xs:documentation>A single curriculum progress and achievement report provided for a student.  Used in technology centres 
        allowing the host provider to report on student progress to their base school.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="StudentCurriculumProgressReportRefId" minOccurs="0" nillable="true" type="RefIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The universally unique identifier for the data object record that is used across systems.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StudentCurriculumProgressReportLocalId" minOccurs="0" nillable="true" type="LocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The Id of the data object record that was provided by the system that the information 
			was originally sourced from.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Student" type="StudentObjectReferenceType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Generic object reference to the student whose progress is being reported.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Provider" type="ProviderObjectReferenceType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Generic object reference to the Provider (school) who is making this curriculum progress report.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TeachingGroup" type="ObjectReferenceType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Generic object reference to the TeachingGroup the student is enrolled in for which 
        the progress report is being made.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AuthorList" minOccurs="0" nillable="true" type="ProgressReportAuthorListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>A list of StaffMembers who are the authors of the curriculum progress report</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="RepositoryReceivedDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The date the repository received the students technology centre progress and achievement report.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TimeFrame" minOccurs="0" nillable="true" type="NZCodeSetsCurriculumProgressReportTimeframeType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The timeframe of the provided information e.g. Routine Update, Mid-Year, End of Year etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TechnologyClassList" minOccurs="0" nillable="true" type="TechnologyClassListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>A list of records of the Student's progress in particular classes from the 
      Technology curriculum. e.g. Hard Materials, Food Technology, Digital Design etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="RecordAudit" minOccurs="0" nillable="true" type="RecordAuditType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The audit details for a record, e.g. Created/Last Updated DateTime and Created/Last Updated By.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="StudentCurriculumProgressReport" type="StudentCurriculumProgressReportType">
    <xs:key name="StudentCurriculumProgressReportKey1">
      <xs:selector xpath="." />
      <xs:field xpath="./StudentCurriculumProgressReportRefId" />
    </xs:key>
  </xs:element>

  <xs:complexType name="StudentCurriculumProgressReportCollectionType">
    <xs:sequence>
      <xs:element name="StudentCurriculumProgressReport" type="StudentCurriculumProgressReportType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="StudentCurriculumProgressReports" type="StudentCurriculumProgressReportCollectionType" />

</xs:schema>