<!--
		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="SummaryEnrollmentInfoType">
    <xs:annotation>
      <xs:documentation>
        A key Australian business requirement is the ability to publish a complete student status update on demand.  This status may include multiple school enrolments.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="sif:SchoolYear" minOccurs="0" />
      <xs:element name="ParentObjectRefId" minOccurs="0">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>The GUID of the related parent object</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:RefIdTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:documentation />
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="StudentPersonal" />
                    <xs:enumeration value="StaffPersonal" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <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/teacher.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="sif:PersonInfo" minOccurs="0" />
      <xs:element name="SchoolEnrollmentList" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SchoolEnrollment" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SchoolName" minOccurs="0" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>Name of school/campus.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SchoolInfoRefId" minOccurs="0" nillable="true" type="sif:RefIdType">
                    <xs:annotation>
                      <xs:documentation>The ID (GUID) of the school. Provide both the SchoolInfo RefId and LocalId elements if possible. If not, one or the other must be provided.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SchoolLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
                    <xs:annotation>
                      <xs:documentation>The locally-defined identifier for this school. Provide both the LocalId and SchoolId elements if possible. If not, one or the other must be provided.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SchoolStateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType">
                    <xs:annotation>
                      <xs:documentation>The state or province defined identifier for this school.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="Student" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="StudentSchoolEnrollmentRefId" minOccurs="0" type="sif:RefIdType">
                          <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="StudentLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
                          <xs:annotation>
                            <xs:documentation>The locally-defined identifier for this Student.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Staff" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="StaffAssignmentRefId" minOccurs="0" type="sif:RefIdType">
                          <xs:annotation>
                            <xs:documentation>The ID (GUID) of the StaffAssignment object from which the enrollment information is derived.  </xs:documentation>
                          </xs:annotation>
                        </xs:element>
                        <xs:element name="StaffLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
                          <xs:annotation>
                            <xs:documentation>The locally-defined identifier for this Staff.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="EnrollmentList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Enrollment" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="TeachingGroupRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
                                <xs:annotation>
                                  <xs:documentation>GUID that identifies this Class as a Teaching Group.</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                              <xs:element name="SchoolCourseInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
                                <xs:annotation>
                                  <xs:documentation>GUID that identifies this Course for this class.</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                              <xs:element name="TimeTableSubjectRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
                                <xs:annotation>
                                  <xs:documentation>GUID that identifies this Subject/Offering for this class.</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                              <xs:element ref="sif:LocalId" minOccurs="0" />
                              <xs:element name="ShortName" minOccurs="0" nillable="true" type="xs:normalizedString">
                                <xs:annotation>
                                  <xs:documentation>Short free format label that describes the class. Should be the same as the ShortName in the TeachingGroup</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                              <xs:element name="SchoolYear" minOccurs="0" nillable="true" type="sif:SchoolYearType">
                                <xs:annotation>
                                  <xs:documentation>School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2009").</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                              <xs:element name="SubjectLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
                                <xs:annotation>
                                  <xs:documentation>The local subject/offering code for this class.</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                              <xs:element name="CourseLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
                                <xs:annotation>
                                  <xs:documentation>The local course code for this class.</xs:documentation>
                                </xs:annotation>
                              </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: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_ExtendedElementsKey38">
          <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 the enrollment.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SummaryEnrollmentInfo" type="sif:SummaryEnrollmentInfoType">
    <xs:unique name="SummaryEnrollmentInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>

</xs:schema>