<!--
		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="StudentSnapshotType">
    <xs:annotation>
      <xs:documentation>
        This object provides a snapshot of a student's record on a given day. All information reported in the object is
        reported as it appeared in the responding system on the date specified in SnapDate. It can be used for synching data
        across applications, for periodically loading a data warehouse, or for vertical reporting of data to a requesting
        authority, such as a state department of education.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="sif:SchoolYear" minOccurs="0" />
      <xs:element ref="sif:Name" minOccurs="0" />
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType">
        <xs:annotation>
          <xs:documentation>The state-assigned identifier for this student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Sex" minOccurs="0" nillable="true" type="sif:AUCodeSetsSexCodeType">
        <xs:annotation>
          <xs:documentation>'Sex' is the distinction 'male' and 'female', as reported by the person.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BirthDate" minOccurs="0" nillable="true" type="sif:BirthDateType">
        <xs:annotation>
          <xs:documentation>The person's date of birth.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Age" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The age (in years) of the student on the date in SnapDate.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ProjectedGraduationYear" minOccurs="0" nillable="true" type="sif:ProjectedGraduationYearType">
        <xs:annotation>
          <xs:documentation>Currently projected graduation year.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OnTimeGraduationYear" minOccurs="0" nillable="true" type="sif:OnTimeGraduationYearType">
        <xs:annotation>
          <xs:documentation>First projected graduation year, usually determined when student is accepted into ninth grade.</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="HomeEnrollment" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentSchoolEnrollmentRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>The ID (GUID) of the StudentSchoolEnrollment object from which the enrollment information is derived.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SchoolName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Name of the school.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SchoolInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>
        The ID (GUID) of the school.  Provide both the HomeEnrollment/SchoolInfoRefId and HomeEnrollment/LocalId elements if possible.
        If not, one or the other must be provided.
      </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
              <xs:annotation>
                <xs:documentation>
        The locally-defined identifier for this school.
        Provide both the HomeEnrollment/LocalId and HomeEnrollment/SchoolId elements if possible.
        If not, one or the other must be provided.
      </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SchoolNo" minOccurs="0" nillable="true" type="sif:LocalIdType">
              <xs:annotation>
                <xs:documentation>
        The state or province defined identifier for this school.
      </xs:documentation>
              </xs:annotation>
            </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>HomeGroup this student belongs to</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 SIF 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="HomeroomNumber" minOccurs="0" nillable="true" type="sif:HomeroomNumberType">
              <xs:annotation>
                <xs:documentation>The locally-defined identifier of that room</xs:documentation>
              </xs:annotation>
            </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_ExtendedElementsKey32">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="SnapDate" use="required" type="xs:date">
      <xs:annotation>
        <xs:documentation>
        The date the data snapshot was taken.
        Some elements are provided/calculated as of the SnapDate, and some are provided as of the date the object is requested
        (i.e., some can be historical and some will represent the last information available/last known value).
        In a SIS the following elements are provided/calculated as of the SnapDate: Age, HomeEnrollment and all its child elements.
        Other applications (e.g., data warehouses) may be able to provide values for other elements on various snap dates.
      </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the student to whom this information relates.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentSnapshot" type="sif:StudentSnapshotType">
    <xs:unique name="StudentSnapshotKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@SnapDate" />
      <xs:field xpath="@StudentPersonalRefId" />
    </xs:unique>
  </xs:element>

</xs:schema>