<!--
		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="TimeTableSubjectType">
    <xs:annotation>
      <xs:documentation>
        This purpose of this object is to define and communicate the subject or distinct piece of curriculum that needs to be scheduled by the time table generator.  This is a new object proposed to meet SIF-AU needs.  Reviews of the existing specifications identified two relevant objects – SchoolCourseInfo, defined in SIF US 2.2 specification and SchoolGroup, defined within the SIF UK 1.1 specification.  These objects appear to have some similar context but seem overly complex considering that Australian requirements, which are limited to the Student Administration System or Curriculum Delivery System providing base information to the Time Tabling application about what curriculum offerings are being proposed.

        When this data is sent in a Request/Response only those subjects that are relevant to be scheduled (or active), should be sent to the TimeTabling application.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SubjectLocalId" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>SubjectLocalID - Distinct piece of curriculum that is to be scheduled.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AcademicYear" minOccurs="0" nillable="true" type="sif:YearLevelType">
        <xs:annotation>
          <xs:documentation>Subject Year Level.  Either AcademicYear or AcademicYearRange must be provided.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AcademicYearRange" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Start" type="sif:YearLevelType">
              <xs:annotation>
                <xs:documentation>Lowest year in range.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="End" type="sif:YearLevelType">
              <xs:annotation>
                <xs:documentation>Highest year in range</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CourseLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>Local Course Id, if associated with a Course.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolCourseInfoRefId" minOccurs="0" nillable="true" type="sif:RefIdType">
        <xs:annotation>
          <xs:documentation>The GUID of the SchoolCourseInfo object.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Faculty" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Faculty</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SubjectShortName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>SubjectShortName</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SubjectLongName" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>SubjectLongName</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SubjectType" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Core or Elective or ?</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ProposedMaxClassSize" minOccurs="0" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Suggested maximum class size for this subject.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ProposedMinClassSize" minOccurs="0" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Suggested minimum class size for this subject.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>Optional the GUID of the SchoolInfo Object  if this object is known in the zone.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>Optional Local School Id</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Semester" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Semester, Term, or Quarter subject offered.</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., "2007").
      </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType">
        <xs:annotation>
          <xs:documentation>Any other codes this subject is known by; eg VASS code for VCE in Vic.</xs:documentation>
        </xs:annotation>
      </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:key name="SIF_ExtendedElementsKey33">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:key>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>GUID that identifies this TimeTableSubject.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="TimeTableSubject" type="sif:TimeTableSubjectType">
    <xs:key name="TimeTableSubjectKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:key>
  </xs:element>

</xs:schema>