<!--
		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:simpleType name="LocalIdType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="LocalId" type="sif:LocalIdType" />

  <xs:complexType name="LocationType">
    <xs:sequence>
      <xs:element name="LocationName" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="LocationRefId" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefType">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="SchoolInfo" />
                    <xs:enumeration value="LEAInfo" />
                    <xs:enumeration value="RoomInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="optional">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Classroom" />
          <xs:enumeration value="School" />
          <xs:enumeration value="District" />
          <xs:enumeration value="Campus" />
          <xs:enumeration value="IntermediateUnit" />
          <xs:enumeration value="StateEducationAgency" />
          <xs:enumeration value="NonInstructionalSpace" />
          <xs:enumeration value="AthleticVenue" />
          <xs:enumeration value="Other" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="Location" type="sif:LocationType" />

  <xs:simpleType name="StateProvinceIdType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="StateProvinceId" type="sif:StateProvinceIdType" />

  <xs:complexType name="AttendanceCodeType">
    <xs:sequence>
      <xs:element name="Code" type="sif:AUCodeSetsAttendanceCodeType" />
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="AttendanceCode" type="sif:AttendanceCodeType" />

  <xs:complexType name="YearLevelType">
    <xs:sequence>
      <xs:element name="Code" type="sif:AUCodeSetsYearLevelCodeType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="YearLevel" type="sif:YearLevelType" />

  <xs:complexType name="PersonInfoType">
    <xs:sequence>
      <xs:element name="Name" type="sif:NameOfRecordType" />
      <xs:element name="OtherNames" minOccurs="0" nillable="true" type="sif:OtherNamesType">
        <xs:key name="OtherNamesKey1">
          <xs:selector xpath="./sif:Name" />
          <xs:field xpath="@Type" />
        </xs:key>
      </xs:element>
      <xs:element name="Demographics" minOccurs="0" nillable="true" type="sif:DemographicsType" />
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:key name="AddressListKey1">
          <xs:selector xpath="./sif:Address" />
          <xs:field xpath="@Type" />
          <xs:field xpath="@Role" />
        </xs:key>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:key name="PhoneNumberListKey1">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:key>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:key name="EmailListKey1">
          <xs:selector xpath="./sif:Email" />
          <xs:field xpath="@Type" />
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="PersonInfo" type="sif:PersonInfoType" />

  <xs:complexType name="YearLevelsType">
    <xs:sequence>
      <xs:element ref="sif:YearLevel" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="YearLevels" type="sif:YearLevelsType" />

  <xs:simpleType name="SchoolURLType">
    <xs:restriction base="xs:anyURI" />
  </xs:simpleType>

  <xs:element name="SchoolURL" type="sif:SchoolURLType" />

  <xs:complexType name="PrincipalInfoType">
    <xs:sequence>
      <xs:element name="ContactName" type="sif:NameOfRecordType" />
      <xs:element name="ContactTitle" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:key name="PhoneNumberListKey2">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:key>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:key name="EmailListKey2">
          <xs:selector xpath="./sif:Email" />
          <xs:field xpath="@Type" />
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="PrincipalInfo" type="sif:PrincipalInfoType" />

  <xs:complexType name="SchoolContactListType">
    <xs:sequence>
      <xs:element name="SchoolContact" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PublishInDirectory" minOccurs="0" nillable="true" type="sif:PublishInDirectoryType" />
            <xs:element ref="sif:ContactInfo" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SchoolContactList" type="sif:SchoolContactListType" />

  <xs:simpleType name="PublishInDirectoryType">
    <xs:restriction base="sif:AUCodeSetsYesOrNoCategoryType" />
  </xs:simpleType>

  <xs:element name="PublishInDirectory" type="sif:PublishInDirectoryType" />

  <xs:complexType name="ContactInfoType">
    <xs:sequence>
      <xs:element ref="sif:Name" />
      <xs:element name="PositionTitle" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="Role" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType" />
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:key name="EmailListKey3">
          <xs:selector xpath="./sif:Email" />
          <xs:field xpath="@Type" />
        </xs:key>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:key name="PhoneNumberListKey3">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ContactInfo" type="sif:ContactInfoType" />

  <xs:complexType name="AddressType">
    <xs:sequence>
      <xs:element name="Street">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Line1" type="xs:normalizedString" />
            <xs:element name="Line2" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="Line3" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="Complex" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="StreetNumber" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="StreetPrefix" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="StreetName" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="StreetType" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="StreetSuffix" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="ApartmentType" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="ApartmentNumberPrefix" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="ApartmentNumber" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="ApartmentNumberSuffix" minOccurs="0" nillable="true" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="City" type="xs:normalizedString" />
      <xs:element name="StateProvince" minOccurs="0" nillable="true" type="sif:StateProvinceType" />
      <xs:element name="Country" minOccurs="0" nillable="true" type="sif:CountryType" />
      <xs:element name="PostalCode" type="xs:normalizedString" />
      <xs:element name="GridLocation" minOccurs="0" nillable="true" type="sif:GridLocationType" />
      <xs:element name="MapReference" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="XCoordinate" type="xs:normalizedString" />
            <xs:element name="YCoordinate" type="xs:normalizedString" />
          </xs:sequence>
          <xs:attribute name="Type" use="required" type="xs:normalizedString" />
        </xs:complexType>
      </xs:element>
      <xs:element name="RadioContact" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="Community" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
      <xs:element name="AddressGlobalUID" minOccurs="0" nillable="true" type="sif:GUIDType" />
    </xs:sequence>
    <xs:attribute name="Type" use="required" type="sif:AUCodeSetsAddressTypeType" />
    <xs:attribute name="Role" use="required" type="sif:AUCodeSetsAddressRoleType" />
  </xs:complexType>

  <xs:element name="Address" type="sif:AddressType" />

  <xs:complexType name="AddressListType">
    <xs:sequence>
      <xs:element name="Address" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="sif:AddressType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="AddressList" type="sif:AddressListType">
    <xs:key name="AddressListKey2">
      <xs:selector xpath="./sif:Address" />
      <xs:field xpath="@Type" />
      <xs:field xpath="@Role" />
    </xs:key>
  </xs:element>

  <xs:complexType name="EmailListType">
    <xs:sequence>
      <xs:element name="Email" maxOccurs="unbounded">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:EmailType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EmailList" type="sif:EmailListType">
    <xs:key name="EmailListKey4">
      <xs:selector xpath="./sif:Email" />
      <xs:field xpath="@Type" />
    </xs:key>
  </xs:element>

  <xs:complexType name="EmailType">
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required" type="sif:AUCodeSetsEmailTypeType" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="Email" type="sif:EmailType" />

  <xs:complexType name="PhoneNumberListType">
    <xs:sequence>
      <xs:element name="PhoneNumber" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="sif:PhoneNumberType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="PhoneNumberList" type="sif:PhoneNumberListType">
    <xs:key name="PhoneNumberListKey4">
      <xs:selector xpath="./sif:PhoneNumber" />
      <xs:field xpath="@Type" />
    </xs:key>
  </xs:element>

  <xs:complexType name="PhoneNumberType">
    <xs:sequence>
      <xs:element name="Number" type="xs:normalizedString" />
      <xs:element name="Extension" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ListedStatus" minOccurs="0" nillable="true" type="sif:AUCodeSetsYesOrNoCategoryType" />
    </xs:sequence>
    <xs:attribute name="Type" use="required" type="sif:AUCodeSetsTelephoneNumberTypeType" />
  </xs:complexType>

  <xs:element name="PhoneNumber" type="sif:PhoneNumberType" />

  <xs:simpleType name="CountryType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="sif:AUCodeSetsStandardAustralianClassificationOfCountriesSACCType" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="Country" type="sif:CountryType" />

  <xs:complexType name="GridLocationType">
    <xs:sequence>
      <xs:element name="Latitude">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="-90" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="90" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Longitude">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="-180" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="180" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="GridLocation" type="sif:GridLocationType" />

  <xs:simpleType name="OperationalStatusType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="sif:AUCodeSetsOperationalStatusType" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="OperationalStatus" type="sif:OperationalStatusType" />

  <xs:simpleType name="StateProvinceType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="sif:AUCodeSetsStateTerritoryCodeType" />
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:token" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="StateProvince" type="sif:StateProvinceType" />

  <xs:simpleType name="SchoolYearType">
    <xs:restriction base="xs:gYear" />
  </xs:simpleType>

  <xs:element name="SchoolYear" type="sif:SchoolYearType" />

  <xs:complexType name="ElectronicIdListType">
    <xs:sequence>
      <xs:element ref="sif:ElectronicId" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ElectronicIdList" type="sif:ElectronicIdListType" />

  <xs:complexType name="ElectronicIdType">
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required" type="sif:AUCodeSetsElectronicIdTypeType" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="ElectronicId" type="sif:ElectronicIdType" />

  <xs:complexType name="OtherNamesType">
    <xs:sequence>
      <xs:element name="Name" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="sif:OtherNameType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="OtherNames" type="sif:OtherNamesType">
    <xs:key name="OtherNamesKey2">
      <xs:selector xpath="./sif:Name" />
      <xs:field xpath="@Type" />
    </xs:key>
  </xs:element>

  <xs:complexType name="DemographicsType">
    <xs:sequence>
      <xs:element name="IndigenousStatus" minOccurs="0" nillable="true" type="sif:AUCodeSetsIndigenousStatusType" />
      <xs:element name="Sex" minOccurs="0" nillable="true" type="sif:AUCodeSetsSexCodeType" />
      <xs:element name="BirthDate" minOccurs="0" nillable="true" type="sif:BirthDateType" />
      <xs:element name="BirthDateVerification" minOccurs="0" nillable="true" type="sif:AUCodeSetsBirthdateVerificationType" />
      <xs:element name="PlaceOfBirth" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="StateOfBirth" minOccurs="0" nillable="true" type="sif:StateProvinceType" />
      <xs:element name="CountryOfBirth" minOccurs="0" nillable="true" type="sif:CountryType" />
      <xs:element name="CountriesOfCitizenship" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountryOfCitizenship" maxOccurs="unbounded" type="sif:CountryType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CountriesOfResidency" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountryOfResidency" maxOccurs="unbounded" type="sif:CountryType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CountryArrivalDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="AustralianCitizenshipStatus" minOccurs="0" nillable="true" type="sif:AUCodeSetsAustralianCitizenshipStatusType" />
      <xs:element name="EnglishProficiency" minOccurs="0" nillable="true" type="sif:EnglishProficiencyType" />
      <xs:element name="LanguageList" minOccurs="0" nillable="true" type="sif:LanguageListType" />
      <xs:element name="DwellingArrangement" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" type="sif:AUCodeSetsDwellingArrangementType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Religion" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" type="sif:AUCodeSetsAustralianStandardClassificationOfReligiousGroupsASCRGType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReligiousEventList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ReligiousEvent" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Type" type="xs:normalizedString" />
                  <xs:element name="Date" type="xs:date" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReligiousRegion" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="PermanentResident" minOccurs="0" nillable="true" type="sif:AUCodeSetsPermanentResidentStatusType" />
      <xs:element name="VisaSubClass" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="sif:AUCodeSetsVisaSubClassType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="VisaStatisticalCode" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="VisaExpiryDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ImmunisationCertificateStatus" minOccurs="0" nillable="true" type="sif:AUCodeSetsImmunisationCertificateStatusType" />
      <xs:element name="CulturalBackground" minOccurs="0" nillable="true" type="sif:AUCodeSetsAustralianStandardClassificationOfCulturalAndEthnicGroupsASCCEGType" />
      <xs:element name="MaritalStatus" minOccurs="0" nillable="true" type="sif:AUCodeSetsMaritalStatusAIHWType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Demographics" type="sif:DemographicsType" />

  <xs:complexType name="EnglishProficiencyType">
    <xs:sequence>
      <xs:element name="Code" type="sif:AUCodeSetsEnglishProficiencyType" />
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EnglishProficiency" type="sif:EnglishProficiencyType" />

  <xs:complexType name="LanguageListType">
    <xs:sequence>
      <xs:element name="Language" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" type="sif:AUCodeSetsAustralianStandardClassificationOfLanguagesASCLType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
            <xs:element name="LanguageType" minOccurs="0" nillable="true" type="sif:AUCodeSetsLanguageTypeType" />
            <xs:element name="Dialect" minOccurs="0" nillable="true" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="LanguageList" type="sif:LanguageListType" />

  <xs:simpleType name="BirthDateType">
    <xs:restriction base="xs:date" />
  </xs:simpleType>

  <xs:element name="BirthDate" type="sif:BirthDateType" />

  <xs:simpleType name="ProjectedGraduationYearType">
    <xs:restriction base="xs:gYear" />
  </xs:simpleType>

  <xs:element name="ProjectedGraduationYear" type="sif:ProjectedGraduationYearType" />

  <xs:simpleType name="OnTimeGraduationYearType">
    <xs:restriction base="xs:gYear" />
  </xs:simpleType>

  <xs:element name="OnTimeGraduationYear" type="sif:OnTimeGraduationYearType" />

  <xs:complexType name="RelationshipType">
    <xs:sequence>
      <xs:element name="Code" type="sif:AUCodeSetsRelationshipToStudentType" />
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Relationship" type="sif:RelationshipType" />

  <xs:simpleType name="EducationalLevelType">
    <xs:restriction base="sif:AUCodeSetsSchoolEducationLevelTypeType" />
  </xs:simpleType>

  <xs:element name="EducationalLevel" type="sif:EducationalLevelType" />

  <xs:simpleType name="GraduationDateType">
    <xs:restriction base="sif:PartialDateType" />
  </xs:simpleType>

  <xs:element name="GraduationDate" type="sif:GraduationDateType" />

  <xs:complexType name="NameType">
    <xs:complexContent>
      <xs:extension base="sif:BaseNameType">
        <xs:attribute name="Type" use="required" type="sif:AUCodeSetsNameUsageTypeType" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:element name="Name" type="sif:NameType" />

  <xs:simpleType name="HomeroomNumberType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="HomeroomNumber" type="sif:HomeroomNumberType" />

  <xs:complexType name="TimeElementType">
    <xs:sequence>
      <xs:element name="Type" type="xs:normalizedString" />
      <xs:element name="Code" type="xs:token" />
      <xs:element name="Name" type="xs:normalizedString" />
      <xs:element name="Value" type="xs:normalizedString" />
      <xs:element name="StartDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
      <xs:element name="EndDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
      <xs:element name="SpanGaps" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SpanGap" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Type" type="xs:normalizedString" />
                  <xs:element name="Code" type="xs:token" />
                  <xs:element name="Name" type="xs:normalizedString" />
                  <xs:element name="Value" type="xs:normalizedString" />
                  <xs:element name="StartDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
                  <xs:element name="EndDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="IsCurrent" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="TimeElement" type="sif:TimeElementType" />

  <xs:complexType name="LifeCycleType">
    <xs:sequence>
      <xs:element name="Created" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="DateTime" type="xs:dateTime" />
            <xs:element name="Creators" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Creator" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Name" type="xs:normalizedString" />
                        <xs:element name="ID" type="xs:normalizedString" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ModificationHistory" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Modified" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="By" type="xs:normalizedString" />
                  <xs:element name="DateTime" type="xs:dateTime" />
                  <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="TimeElements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:TimeElement" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="LifeCycle" type="sif:LifeCycleType" />

  <xs:complexType name="OtherCodeListType">
    <xs:sequence>
      <xs:element name="OtherCode" maxOccurs="unbounded">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:token">
              <xs:attribute name="Codeset" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="StateProvince" />
                    <xs:enumeration value="Local" />
                    <xs:enumeration value="Other" />
                    <xs:enumeration value="Text" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="OtherCodeList" type="sif:OtherCodeListType" />

  <xs:complexType name="ProgramStatusType">
    <xs:sequence>
      <xs:element name="Code">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="S001" />
            <xs:enumeration value="S002" />
            <xs:enumeration value="S003" />
            <xs:enumeration value="S004" />
            <xs:enumeration value="S005" />
            <xs:enumeration value="S006" />
            <xs:enumeration value="9999" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ProgramStatus" type="sif:ProgramStatusType" />

  <xs:complexType name="SubjectAreaListType">
    <xs:sequence>
      <xs:element ref="sif:SubjectArea" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SubjectAreaList" type="sif:SubjectAreaListType" />

  <xs:complexType name="SubjectAreaType">
    <xs:sequence>
      <xs:element name="Code" type="xs:normalizedString" />
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SubjectArea" type="sif:SubjectAreaType" />

  <xs:complexType name="ACStrandSubjectAreaType">
    <xs:sequence>
      <xs:element name="ACStrand" type="sif:AUCodeSetsACStrandType" />
      <xs:element name="SubjectArea" minOccurs="0" nillable="true" type="sif:SubjectAreaType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ACStrandSubjectArea" type="sif:ACStrandSubjectAreaType" />

  <xs:complexType name="EducationFilterType">
    <xs:sequence>
      <xs:element name="LearningStandardItems" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EducationFilter" type="sif:EducationFilterType" />

  <xs:complexType name="SIF_MetadataType">
    <xs:sequence>
      <xs:element name="TimeElements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:TimeElement" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LifeCycle" minOccurs="0" nillable="true" type="sif:LifeCycleType" />
      <xs:element name="EducationFilter" minOccurs="0" nillable="true" type="sif:EducationFilterType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Metadata" type="sif:SIF_MetadataType" />

  <xs:complexType name="SIF_ExtendedElementsType">
    <xs:sequence>
      <xs:element name="SIF_ExtendedElement" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="sif:ExtendedContentType">
              <xs:attribute name="Name" use="required" type="xs:normalizedString" />
              <!--<xs:attribute ref="xsi:type" use="optional" />-->
              <xs:attribute name="SIF_Action" use="optional">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_ExtendedElements" type="sif:SIF_ExtendedElementsType">
    <xs:key name="SIF_ExtendedElementsKey1">
      <xs:selector xpath="./sif:SIF_ExtendedElement" />
      <xs:field xpath="@Name" />
    </xs:key>
  </xs:element>

</xs:schema>