<!--
		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="ReportManifestType">
    <xs:sequence>
      <xs:element name="SIF_Version" minOccurs="0" type="sif:VersionWithWildcardsType" />
      <xs:element name="SIF_MaxBufferSize" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="ReceivingAuthority" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="ReportAuthorityInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReportName" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="ReportingPeriod" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="BeginReportDate" minOccurs="0" nillable="true" type="xs:date" />
            <xs:element name="EndReportDate" minOccurs="0" nillable="true" type="xs:date" />
            <xs:element name="BeginSubmitDate" minOccurs="0" nillable="true" type="xs:date" />
            <xs:element name="EndSubmitDate" minOccurs="0" nillable="true" type="xs:date" />
            <xs:element name="DueDate" minOccurs="0" nillable="true" type="xs:date" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReportDefinitionSource" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="Type" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="URL" />
                    <xs:enumeration value="Embedded" />
                    <xs:enumeration value="Base64Binary" />
                    <xs:enumeration value="SIF_Query" />
                    <xs:enumeration value="SIF_ExtendedQuery" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
              <xs:attribute name="QueryLanguage" use="required" type="xs:token" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReportFormatList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ReportFormat" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="Type" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="URL" />
                          <xs:enumeration value="Embedded" />
                          <xs:enumeration value="Base64Binary" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="ContentType" use="required" type="xs:normalizedString" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:choice>
        <xs:element name="SIF_QueryGroup" minOccurs="0" nillable="true">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="sif:SIF_Query" minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="SIF_ExtendedQuery" minOccurs="0" nillable="true" type="sif:SIF_ExtendedQueryDataModelType" />
      </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:unique name="SIF_ExtendedElementsKey47">
          <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:attribute name="ReportAuthorityInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="ReportManifest" type="sif:ReportManifestType">
    <xs:unique name="ReportManifestKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>

</xs:schema>