<!--
		SIF Implementation Specification (Australia) 1.1 (December 23, 2010) Infrastructure Version: 2.4-16
	-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/au/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/au/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="StudentSchoolEnrollmentType">
    <xs:annotation>
      <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="sif:IdRefType">
        <xs:annotation>
          <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="sif:IdRefType">
        <xs:annotation>
          <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="sif:AUCodeSetsSchoolEnrollmentTypeType">
        <xs:annotation>
          <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="TimeFrame" minOccurs="0" type="sif:AUCodeSetsEnrollmentTimeFrameType">
        <xs:annotation>
          <xs:documentation>
        The timeframe of the enrollment based on the SIF_Date in the SIF_Header of the message. 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 ref="sif:SchoolYear" minOccurs="0" />
      <xs:element name="EntryDate" minOccurs="0" type="xs:date">
        <xs:annotation>
          <xs:documentation>The date from when this enrollment is valid.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EntryType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:AUCodeSetsEntryTypeType">
              <xs:annotation>
                <xs:documentation>Code indicating the type of entry for this enrollment</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType">
              <xs:annotation>
                <xs:documentation>List of other codes or strings that crosswalk to or serve as translations of the Code element paired with this common element. If Code changes and OtherCodes are supported, both Code and all associated OtherCode elements must be present.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="YearLevel" minOccurs="0" nillable="true" type="sif:YearLevelType">
        <xs:annotation>
          <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:documentation>Homeroom for this enrollment.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <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:documentation>Staff member assigned as an advisor.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <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:documentation>Staff member assigned as an advisor.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <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:documentation>The name of the homegroup the student enrollment belongs to.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="House" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <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="sif:AUCodeSetsYesOrNoCategoryType">
        <xs:annotation>
          <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:documentation>The calendar assigned to this enrollment. </xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <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: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">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:AUCodeSetsExitWithdrawalStatusType">
              <xs:annotation>
                <xs:documentation> Code indicating the closure status for this enrollment.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExitType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:AUCodeSetsExitWithdrawalTypeType">
              <xs:annotation>
                <xs:documentation>Code indicating the type of exit for this enrollment.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="FTE" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:annotation>
              <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="sif:AUCodeSetsFTPTStatusCodeType">
        <xs:annotation>
          <xs:documentation>An indication of whether the student is enrolled full time or part time.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CatchmentStatus" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:AUCodeSetsPublicSchoolCatchmentStatusType">
              <xs:annotation>
                <xs:documentation>Code indicating the residency status for this enrollment. Code indicating Enrollment Catchment Status.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType">
              <xs:annotation>
                <xs:documentation>List of other codes or strings that crosswalk to or serve as translations of the Code element paired with this common element. If Code changes and OtherCodes are supported, both Code and all associated OtherCode elements must be present.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="RecordClosureReason" minOccurs="0" nillable="true">
        <xs:annotation>
          <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:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="PromotionInfo" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PromotionStatus" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>This value should be set if this enrollment instance is closed for an end-of-year closeout or a mid-year promotion or demotion. A value other than NA should be specified when the enrollment instance represents an end-of-year closeout or mid-year promotion/demotion. </xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Promoted" />
                  <xs:enumeration value="Demoted" />
                  <xs:enumeration value="Retained" />
                  <xs:enumeration value="NA" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PreviousSchool" minOccurs="0" nillable="true" type="sif:LocalIdType">
        <xs:annotation>
          <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="sif:LocalIdType">
        <xs:annotation>
          <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">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentSubjectChoice" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="PreferenceNumber" minOccurs="0" nillable="true" type="xs:unsignedInt">
                    <xs:annotation>
                      <xs:documentation>Subject Priority</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SubjectLocalId" minOccurs="0" type="sif:LocalIdType">
                    <xs:annotation>
                      <xs:documentation>Local Subject Id</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="StudyDescription" minOccurs="0" nillable="true" type="sif:SubjectAreaType">
                    <xs:annotation>
                      <xs:documentation>Description about Study Mode.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="OtherSchoolLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
                    <xs:annotation>
                      <xs:documentation>Localid of a school where the student studies this subject if not at the home school.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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_ExtendedElementsKey22">
          <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) that uniquely identifies a particular enrollment.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

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

</xs:schema>