<!--
		SIF Implementation Specification (Australia) 3.4.3


		(April 5, 2018)
		
		Infrastructure Version: v3
	-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sifassociation.org/datamodel/au/3.4" targetNamespace="http://www.sifassociation.org/datamodel/au/3.4" elementFormDefault="qualified" version="3.4.3">
  <xs:complexType name="StudentSchoolEnrollmentType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating>High</privacyRating>
      </xs:appinfo>
      <xs:documentation>
        This object defines information related to a student's enrollment.  StudentSchoolEnrollment
        instances must not span multiple school years.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="StudentPersonalRefId" minOccurs="0" type="IdRefType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The ID (GUID) of the student to whom this information is linked.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="IdRefType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The ID (GUID) of the school to which this enrollment applies.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="MembershipType" minOccurs="0" type="AUCodeSetsSchoolEnrollmentTypeType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The type of this enrollment as it relates to the school identified in SchoolInfoRefId.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="LocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The locally-assigned identifier for this student enrollment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TimeFrame" minOccurs="0" type="AUCodeSetsEnrollmentTimeFrameType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>
        The timeframe of the enrollment based on the SIF_Date of last publication. For events, it is determined as of the date the event is generated. For requests and responses, it is calculated based on the date of the request.
      </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolYear" minOccurs="0" type="SchoolYearType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>
        School year for which this enrollment is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007). StudentSchoolEnrollment instances must not span multiple school years.
      </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EntryDate" minOccurs="0" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The date from when this enrollment is valid.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EntryType" minOccurs="0" nillable="true" type="StudentEntryContainerType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Container elements for EntryType information</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="YearLevel" minOccurs="0" nillable="true" type="YearLevelType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Year or academic level of student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Homeroom" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating>Low</privacyRating>
            </xs:appinfo>
            <xs:documentation>Homeroom for this enrollment.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:appinfo>
                    <sifChar>M</sifChar>
                    <privacyRating>Low</privacyRating>
                  </xs:appinfo>
                  <xs:documentation>The name of the object referenced.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="RoomInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Advisor" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating>Low</privacyRating>
            </xs:appinfo>
            <xs:documentation>Staff member assigned as an advisor.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:appinfo>
                    <sifChar>M</sifChar>
                    <privacyRating>Low</privacyRating>
                  </xs:appinfo>
                  <xs:documentation>The name of the object referenced.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="StaffPersonal" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Counselor" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating>Low</privacyRating>
            </xs:appinfo>
            <xs:documentation>Staff member assigned as an advisor.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:appinfo>
                    <sifChar>M</sifChar>
                    <privacyRating>Low</privacyRating>
                  </xs:appinfo>
                  <xs:documentation>The name of the object referenced.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="StaffPersonal" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Homegroup" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The name of the homegroup the student enrollment belongs to.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ACARASchoolId" minOccurs="0" nillable="true" type="LocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>ACARA School Id.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ClassCode" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The name of the class code the student belongs to, for the purposes of NAPLAN registration.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TestLevel" minOccurs="0" nillable="true" type="YearLevelType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Values: 3,5,7,9. The test level that the student is registering for.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ReportingSchool" minOccurs="0" nillable="true" type="AUCodeSetsYesOrNoCategoryType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Is this the school to which student's report is to be made available?</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="House" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The name of the house the student belongs to.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IndividualLearningPlan" minOccurs="0" nillable="true" type="AUCodeSetsYesOrNoCategoryType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Medium</privacyRating>
          </xs:appinfo>
          <xs:documentation>Does this student have an individual learning plan in place?</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Calendar" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating>Low</privacyRating>
            </xs:appinfo>
            <xs:documentation>The calendar assigned to this enrollment. </xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:appinfo>
                    <sifChar>M</sifChar>
                    <privacyRating>Low</privacyRating>
                  </xs:appinfo>
                  <xs:documentation>The name of the object referenced.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="CalendarSummary" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExitDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>C</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>
        The last school calendar day of this enrollment. If the student has exited the school or the enrollment has a RecordClosureReason, ExitDate must have a value.
      </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExitStatus" minOccurs="0" nillable="true" type="StudentExitStatusContainerType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>High</privacyRating>
          </xs:appinfo>
          <xs:documentation>Container element for exit status codes.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExitType" minOccurs="0" nillable="true" type="StudentExitContainerType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>High</privacyRating>
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="FTE" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:annotation>
              <xs:appinfo>
                <sifChar>O</sifChar>
                <privacyRating>Low</privacyRating>
              </xs:appinfo>
              <xs:documentation>Full-time equivalent numeric value of the student's course load during this enrollment, expressed in decimal form, where 1.00 represents a full-time enrollment.</xs:documentation>
            </xs:annotation>
            <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:fractionDigits value="2" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FTPTStatus" minOccurs="0" nillable="true" type="AUCodeSetsFTPTStatusCodeType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>An indication of whether the student is enrolled full time or part time.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FFPOS" minOccurs="0" nillable="true" type="AUCodeSetsFFPOSStatusCodeType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Enrolled Full-fee Paying Overseas Student (FFPOS) Status.  Enrolment Frame Element 10 NSCC Collection.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CatchmentStatus" minOccurs="0" nillable="true" type="CatchmentStatusContainerType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Container element for location of an individual's legal residence relative to (within or outside) the boundaries of the school for this enrolment. Enrolment Catchment Status.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="RecordClosureReason" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>High</privacyRating>
          </xs:appinfo>
          <xs:documentation>The reason why this enrollment was closed.  The EndOfYear option must be used to convey status change due to rollover activity.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="SchoolExit" />
            <xs:enumeration value="TimeDependentDataChange" />
            <xs:enumeration value="EndOfYear" />
            <xs:enumeration value="CampusExit" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="PromotionInfo" minOccurs="0" nillable="true" type="PromotionInfoType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Medium</privacyRating>
          </xs:appinfo>
          <xs:documentation>Information on a student's promotion, retention, or demotion related to this enrollment instance.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PreviousSchool" minOccurs="0" nillable="true" type="LocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>If the student has previously been enrolled at a school, i.e. student is transferring, the previous school number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DestinationSchool" minOccurs="0" nillable="true" type="LocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>If the student has exited the school, the local id of the school to which the student has transferred to.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StudentSubjectChoiceList" minOccurs="0" nillable="true" type="StudentSubjectChoiceListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>List of Student Subject Choices where available.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StartedAtSchoolDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>First date the student was enrolled at this school if known.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="SIF_MetadataType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>High</privacyRating>
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="SIF_ExtendedElementsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>High</privacyRating>
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="RefIdType">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating>Low</privacyRating>
        </xs:appinfo>
        <xs:documentation>The ID (GUID) that uniquely identifies a particular enrollment.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentSchoolEnrollment" type="StudentSchoolEnrollmentType">
    <xs:unique name="StudentSchoolEnrollmentKey1">
      <xs:selector xpath="./StudentSchoolEnrollment" />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>

  <xs:complexType name="StudentSchoolEnrollmentCollectionType">
    <xs:sequence>
      <xs:element name="StudentSchoolEnrollment" type="StudentSchoolEnrollmentType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="StudentSchoolEnrollments" type="StudentSchoolEnrollmentCollectionType" />

</xs:schema>