<!--
		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="SIF_ReportObjectType">
    <xs:annotation>
      <xs:documentation>
        This object is an envelope used to send other data objects, typically reports, to authorities such as state departments
        of education, district offices, other schools, etc. It is also used to signal a data collector agent that a report is
        compiled and ready to be requested. SIF_ReportObject contains a data object, which is either complete or partial (a
        partial data object is one that contains a subset of the elements for the data object). One or a series of
        SIF_ReportObjects contained within one or a series of related SIF_Response messages makes up a complete report.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice>
        <xs:element name="ReportInfo" minOccurs="0" nillable="true">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="CalculationDate" type="xs:date">
                <xs:annotation>
                  <xs:documentation>The date on which the report was calculated.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SubmissionNumber" type="xs:positiveInteger">
                <xs:annotation>
                  <xs:documentation>A number that identifies the submission; beginning at 1 and incremented each time a submission is done for a particular report; used to indicate resubmission(s).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SubmissionReason">
                <xs:annotation>
                  <xs:documentation>Reason for the report submission.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Initial" />
                    <xs:enumeration value="Correction" />
                    <xs:enumeration value="Revision" />
                    <xs:enumeration value="Addition" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="ReportSubmitterInfo" minOccurs="0" nillable="true">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="SIF_RefId" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:annotation>
                          <xs:documentation>If the submitter is described by another SIF data object such as a SchoolInfo or LEAInfo instance, this element references that object by RefId.</xs:documentation>
                        </xs:annotation>
                        <xs:simpleContent>
                          <xs:extension base="sif:IdRefType">
                            <xs:attribute name="SIF_RefObject" use="required">
                              <xs:annotation>
                                <xs:documentation>The name of a SIF data object. When used in the context of ReportSubmitterInfo, this attribute must have one of the following values.</xs:documentation>
                              </xs:annotation>
                              <xs:simpleType>
                                <xs:restriction base="xs:token">
                                  <xs:enumeration value="LEAInfo">
                                    <xs:annotation>
                                      <xs:documentation>The submitter of the SIF_ReportObject is the district or other agency referenced by a LEAInfo object</xs:documentation>
                                    </xs:annotation>
                                  </xs:enumeration>
                                  <xs:enumeration value="SchoolInfo">
                                    <xs:annotation>
                                      <xs:documentation>The submitter of the SIF_ReportObject is the school referenced by a SchoolInfo object</xs:documentation>
                                    </xs:annotation>
                                  </xs:enumeration>
                                </xs:restriction>
                              </xs:simpleType>
                            </xs:attribute>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SubmitterName" type="xs:normalizedString">
                      <xs:annotation>
                        <xs:documentation>Name of the report submitter.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SubmitterDepartment" minOccurs="0" nillable="true" type="xs:normalizedString">
                      <xs:annotation>
                        <xs:documentation>Department, office, or subdivision of the agency submitting the report.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ContactInfo" minOccurs="0" nillable="true" type="sif:ContactInfoType">
                      <xs:annotation>
                        <xs:documentation>Information on the contact person in this agency submitting the report.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType" />
                    <xs:element name="PhoneNumber" minOccurs="0" nillable="true" type="sif:PhoneNumberType" />
                    <xs:element name="SubmitterNotes" minOccurs="0" nillable="true" type="xs:string">
                      <xs:annotation>
                        <xs:documentation>Optional notes for the report authority, such as information about a district's reporting policies and procedures, instructions for contacting the district for technical support, etc.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
            </xs:sequence>
            <xs:attribute name="ReportManifestRefId" use="required" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>The report manifest corresponding to this report.</xs:documentation>
              </xs:annotation>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element name="ReportData" minOccurs="0" nillable="true" type="sif:ReportDataObjectType">
          <xs:annotation>
            <xs:documentation>
          Container element for the report content; one valid SIF object can occur as a child here. This element is conditional.
          This element or ReportInfo or SIF_ExtendedQueryResults is included but never at the same time.
          See examples of the usage of the object below.
        </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="SIF_ExtendedQueryResults" minOccurs="0" nillable="true" type="sif:SIF_ExtendedQueryResultsType">
          <xs:annotation>
            <xs:documentation>
          The report content resulting from a SIF_ExtendedQuery-based report.  This element is conditional.
          This element or ReportInfo or ReportData is included but never at the same time.
        </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:choice>
      <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_ExtendedElementsKey49">
          <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>The ID (GUID) that uniquely identifies this instance of a report.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SIF_ReportObject" type="sif:SIF_ReportObjectType">
    <xs:key name="SIF_ReportObjectKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:key>
  </xs:element>

</xs:schema>