<!--
		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="CalendarDateType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating>Low</privacyRating>
      </xs:appinfo>
      <xs:documentation>This object defines information related to a school calendar day in a given school calendar year. If both CalendarDate and CalendarSummary objects are supported, there must be an instance of this object for each date between CalendarSummary StartDate and EndDate, inclusive.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Date" minOccurs="0" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>A specific school day that occurs within the school year.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CalendarSummaryRefId" minOccurs="0" nillable="true" type="IdRefType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>The ID (GUID) of the calendar summary in which this calendar date is.</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 for which this calendar information is being reported.</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 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="CalendarDateType" minOccurs="0" type="CalendarDateInfoType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Calendar date type information.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CalendarDateNumber" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Order in which the calendar date falls within the school calendar.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StudentAttendance" minOccurs="0" nillable="true" type="AttendanceInfoType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Information describing how the day relates to student attendance.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TeacherAttendance" minOccurs="0" nillable="true" type="AttendanceInfoType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Information describing how the day relates to teacher attendance.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AdministratorAttendance" minOccurs="0" nillable="true" type="AttendanceInfoType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation>Information describing how the day relates to administrator attendance.</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>Low</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>Low</privacyRating>
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="CalendarDateRefId" use="required" type="IdRefType">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating>Low</privacyRating>
        </xs:appinfo>
        <xs:documentation>An ID (GUID) for this day date of the calendar information that is being reported. This GUID would be used to form a REST URL.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="CalendarDate" type="CalendarDateType">
    <xs:unique name="CalendarDateKey1">
      <xs:selector xpath="./CalendarDate" />
      <xs:field xpath="@CalendarDateRefId" />
    </xs:unique>
  </xs:element>

  <xs:complexType name="CalendarDateCollectionType">
    <xs:sequence>
      <xs:element name="CalendarDate" type="CalendarDateType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="CalendarDates" type="CalendarDateCollectionType" />

</xs:schema>