<!--SIF Implementation Specification 2.3-7 (March 23, 2009)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />

  <!--Infrastructure Common Elements-->


  <!--SIF_Message-->

  <xs:complexType name="SIF_MessageType">
    <xs:choice>
      <xs:element ref="sif:SIF_Ack" />
      <xs:element ref="sif:SIF_Event" />
      <xs:element ref="sif:SIF_Provide" />
      <xs:element ref="sif:SIF_Provision" />
      <xs:element ref="sif:SIF_Register" />
      <xs:element ref="sif:SIF_Request" />
      <xs:element ref="sif:SIF_Response" />
      <xs:element ref="sif:SIF_Subscribe" />
      <xs:element ref="sif:SIF_SystemControl" />
      <xs:element ref="sif:SIF_Unprovide" />
      <xs:element ref="sif:SIF_Unregister" />
      <xs:element ref="sif:SIF_Unsubscribe" />
    </xs:choice>
    <!--<xs:attribute name="xmlns" use="optional" type="xs:anyURI" />-->
    <xs:attribute name="Version" use="required" type="sif:VersionType" />
  </xs:complexType>

  <xs:element name="SIF_Message" type="sif:SIF_MessageType" />


  <!--SIF_Header-->

  <xs:complexType name="SIF_HeaderType">
    <xs:sequence>
      <xs:element name="SIF_MsgId" type="sif:MsgIdType" />
      <xs:element name="SIF_Timestamp" type="xs:dateTime" />
      <xs:element name="SIF_Security" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_SecureChannel">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_AuthenticationLevel" />
                  <xs:element ref="sif:SIF_EncryptionLevel" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SourceId">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_DestinationId" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Header" type="sif:SIF_HeaderType" />


  <!--SIF_EncryptionLevel-->

  <xs:simpleType name="SIF_EncryptionLevelType">
    <xs:restriction base="xs:unsignedInt">
      <xs:enumeration value="0" />
      <xs:enumeration value="1" />
      <xs:enumeration value="2" />
      <xs:enumeration value="3" />
      <xs:enumeration value="4" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SIF_EncryptionLevel" type="sif:SIF_EncryptionLevelType" />


  <!--SIF_AuthenticationLevel-->

  <xs:simpleType name="SIF_AuthenticationLevelType">
    <xs:restriction base="xs:unsignedInt">
      <xs:enumeration value="0" />
      <xs:enumeration value="1" />
      <xs:enumeration value="2" />
      <xs:enumeration value="3" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SIF_AuthenticationLevel" type="sif:SIF_AuthenticationLevelType" />


  <!--SIF_Contexts-->

  <xs:complexType name="SIF_ContextsType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Context" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Contexts" type="sif:SIF_ContextsType" />


  <!--SIF_Context-->

  <xs:simpleType name="SIF_ContextType">
    <xs:restriction>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
        </xs:restriction>
      </xs:simpleType>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SIF_Context" type="sif:SIF_ContextType" />


  <!--SIF_Protocol-->

  <xs:complexType name="SIF_ProtocolType">
    <xs:sequence>
      <xs:element name="SIF_URL" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:anyURI">
            <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Property" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Name">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="SIF_Value">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="required">
      <xs:simpleType>
        <xs:union>
          <xs:simpleType>
            <xs:restriction base="sif:DefinedProtocolsType" />
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token" />
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="Secure" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Yes" />
          <xs:enumeration value="No" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SIF_Protocol" type="sif:SIF_ProtocolType" />


  <!--SIF_Status-->

  <xs:complexType name="SIF_StatusType">
    <xs:sequence>
      <xs:element name="SIF_Code" type="sif:InfrastructureStatusCodeType" />
      <xs:element name="SIF_Desc" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="1024" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Data" minOccurs="0">
        <xs:complexType>
          <xs:choice>
            <xs:element ref="sif:SIF_Message" />
            <xs:element name="SIF_AgentACL" type="sif:SIF_AgentACLInfrastructureType" />
            <xs:element name="SIF_ZoneStatus" type="sif:SIF_ZoneStatusInfrastructureType" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Status" type="sif:SIF_StatusType" />


  <!--SIF_Error-->

  <xs:complexType name="SIF_ErrorType">
    <xs:sequence>
      <xs:element name="SIF_Category" type="sif:InfrastructureErrorCategoryType" />
      <xs:element name="SIF_Code">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureXMLValidationErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureEncryptionErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureAuthenticationErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureAccessAndPermissionErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureRegistrationErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureProvisionErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureSubscriptionErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureRequestAndResponseErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureEventReportingAndProcessingErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureTransportErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureSystemErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureGenericMessageHandlingErrorType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:token" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Desc">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="1024" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_ExtendedDesc" minOccurs="0" type="xs:string" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Error" type="sif:SIF_ErrorType" />


  <!--SIF_Query-->

  <xs:complexType name="SIF_QueryType">
    <xs:sequence>
      <xs:element name="SIF_QueryObject">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Element" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString" />
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
        </xs:complexType>
      </xs:element>
      <xs:choice minOccurs="0">
        <xs:element name="SIF_ConditionGroup">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="SIF_Conditions" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="SIF_Condition" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="SIF_Element" type="xs:normalizedString" />
                          <xs:element name="SIF_Operator">
                            <xs:simpleType>
                              <xs:restriction base="xs:token">
                                <xs:enumeration value="EQ" />
                                <xs:enumeration value="LT" />
                                <xs:enumeration value="GT" />
                                <xs:enumeration value="LE" />
                                <xs:enumeration value="GE" />
                                <xs:enumeration value="NE" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SIF_Value" type="xs:string" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="Type" use="required">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="And" />
                        <xs:enumeration value="Or" />
                        <xs:enumeration value="None" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="Type" use="required">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="And" />
                  <xs:enumeration value="Or" />
                  <xs:enumeration value="None" />
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element name="SIF_Example" type="sif:SIF_ExampleObjectType" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Query" type="sif:SIF_QueryType" />


  <!--SIF_ExtendedQuery-->

  <xs:complexType name="SIF_ExtendedQueryType">
    <xs:sequence>
      <xs:element name="SIF_DestinationProvider" minOccurs="0" type="sif:SIF_RequestObjectNamesType" />
      <xs:element name="SIF_Select">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Element" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Alias" use="optional">
                      <xs:simpleType>
                        <xs:restriction base="xs:normalizedString">
                          <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="Distinct" use="required" type="xs:boolean" />
          <xs:attribute name="RowCount" use="required">
            <xs:simpleType>
              <xs:union>
                <xs:simpleType>
                  <xs:restriction base="xs:positiveInteger" />
                </xs:simpleType>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="All" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:union>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_From">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Join" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_JoinOn" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_LeftElement">
                          <xs:complexType>
                            <xs:simpleContent>
                              <xs:extension base="xs:normalizedString">
                                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
                              </xs:extension>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
                        <xs:element name="SIF_RightElement">
                          <xs:complexType>
                            <xs:simpleContent>
                              <xs:extension base="xs:normalizedString">
                                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
                              </xs:extension>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Inner" />
                      <xs:enumeration value="LeftOuter" />
                      <xs:enumeration value="RightOuter" />
                      <xs:enumeration value="FullOuter" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Where" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_ConditionGroup">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Conditions" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Condition" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="SIF_Element">
                                <xs:complexType>
                                  <xs:simpleContent>
                                    <xs:extension base="xs:normalizedString">
                                      <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
                                    </xs:extension>
                                  </xs:simpleContent>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="SIF_Operator">
                                <xs:simpleType>
                                  <xs:restriction base="xs:token">
                                    <xs:enumeration value="EQ" />
                                    <xs:enumeration value="LT" />
                                    <xs:enumeration value="GT" />
                                    <xs:enumeration value="LE" />
                                    <xs:enumeration value="GE" />
                                    <xs:enumeration value="NE" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="SIF_Value" type="xs:string" />
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                      <xs:attribute name="Type" use="required">
                        <xs:simpleType>
                          <xs:restriction base="xs:token">
                            <xs:enumeration value="And" />
                            <xs:enumeration value="Or" />
                            <xs:enumeration value="None" />
                          </xs:restriction>
                        </xs:simpleType>
                      </xs:attribute>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="And" />
                      <xs:enumeration value="Or" />
                      <xs:enumeration value="None" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_OrderBy" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Element" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
                    <xs:attribute name="Ordering" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Ascending" />
                          <xs:enumeration value="Descending" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_ExtendedQuery" type="sif:SIF_ExtendedQueryType" />


  <!--SIF_ExtendedQueryResults-->

  <xs:complexType name="SIF_ExtendedQueryResultsType">
    <xs:sequence>
      <xs:element name="SIF_ColumnHeaders">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Element" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
                    <xs:attribute name="Alias" use="optional">
                      <xs:simpleType>
                        <xs:restriction base="xs:normalizedString">
                          <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                    <!--<xs:attribute ref="xsi:type" use="optional" />-->
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Rows">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="R" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="C" maxOccurs="unbounded" type="sif:SelectedContentType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_ExtendedQueryResults" type="sif:SIF_ExtendedQueryResultsType" />


  <!--Infrastructure Messages-->


  <!--SIF_Ack-->

  <xs:complexType name="SIF_AckType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_OriginalSourceId" nillable="true" type="xs:token" />
      <xs:element name="SIF_OriginalMsgId" nillable="true" type="sif:MsgIdType" />
      <xs:choice>
        <xs:element ref="sif:SIF_Status" />
        <xs:element ref="sif:SIF_Error" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Ack" type="sif:SIF_AckType" />


  <!--SIF_Event-->

  <xs:complexType name="SIF_EventType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_ObjectData">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_EventObject">
              <xs:complexType>
                <xs:complexContent>
                  <xs:extension base="sif:SIF_EventObjectType">
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType" />
                    <xs:attribute name="Action" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Add" />
                          <xs:enumeration value="Delete" />
                          <xs:enumeration value="Change" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:complexContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Event" type="sif:SIF_EventType" />


  <!--SIF_Provide-->

  <xs:complexType name="SIF_ProvideType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean" />
            <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_ProvideObjectNamesType" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Provide" type="sif:SIF_ProvideType" />


  <!--SIF_Provision-->

  <xs:complexType name="SIF_ProvisionType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_ProvideObjects">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean" />
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_ProvideObjectNamesType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SubscribeObjects">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishAddObjects">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishChangeObjects">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishDeleteObjects">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RequestObjects">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean" />
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RespondObjects">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean" />
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Provision" type="sif:SIF_ProvisionType" />


  <!--SIF_Register-->

  <xs:complexType name="SIF_RegisterType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_Name">
        <xs:simpleType>
          <xs:restriction base="xs:normalizedString">
            <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionWithWildcardsType" />
      <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt" />
      <xs:element name="SIF_Mode">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Push" />
            <xs:enumeration value="Pull" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element ref="sif:SIF_Protocol" minOccurs="0" />
      <xs:element name="SIF_NodeVendor" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:normalizedString">
            <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_NodeVersion" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:normalizedString">
            <xs:maxLength value="32" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Application" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Vendor">
              <xs:simpleType>
                <xs:restriction base="xs:normalizedString">
                  <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="SIF_Product">
              <xs:simpleType>
                <xs:restriction base="xs:normalizedString">
                  <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="SIF_Version">
              <xs:simpleType>
                <xs:restriction base="xs:normalizedString">
                  <xs:maxLength value="32" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Register" type="sif:SIF_RegisterType" />


  <!--SIF_Request-->

  <xs:complexType name="SIF_RequestType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionWithWildcardsType" />
      <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt" />
      <xs:choice>
        <xs:element ref="sif:SIF_Query" />
        <xs:element ref="sif:SIF_ExtendedQuery" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Request" type="sif:SIF_RequestType" />


  <!--SIF_Response-->

  <xs:complexType name="SIF_ResponseType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_RequestMsgId" type="sif:MsgIdType" />
      <xs:element name="SIF_PacketNumber" type="xs:positiveInteger" />
      <xs:element name="SIF_MorePackets">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:choice>
        <xs:element ref="sif:SIF_Error" />
        <xs:element name="SIF_ObjectData" type="sif:SIF_ResponseObjectsType" />
        <xs:element ref="sif:SIF_ExtendedQueryResults" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Response" type="sif:SIF_ResponseType" />


  <!--SIF_Subscribe-->

  <xs:complexType name="SIF_SubscribeType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Subscribe" type="sif:SIF_SubscribeType" />


  <!--SIF_SystemControl-->

  <xs:complexType name="SIF_SystemControlType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_SystemControlData">
        <xs:complexType>
          <xs:choice>
            <xs:element ref="sif:SIF_Ping" />
            <xs:element ref="sif:SIF_Sleep" />
            <xs:element ref="sif:SIF_Wakeup" />
            <xs:element ref="sif:SIF_GetMessage" />
            <xs:element ref="sif:SIF_GetZoneStatus" />
            <xs:element ref="sif:SIF_GetAgentACL" />
            <xs:element ref="sif:SIF_CancelRequests" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_SystemControl" type="sif:SIF_SystemControlType" />


  <!--SIF_Ping-->

  <xs:complexType name="SIF_PingType" />

  <xs:element name="SIF_Ping" type="sif:SIF_PingType" />


  <!--SIF_Sleep-->

  <xs:complexType name="SIF_SleepType" />

  <xs:element name="SIF_Sleep" type="sif:SIF_SleepType" />


  <!--SIF_Wakeup-->

  <xs:complexType name="SIF_WakeupType" />

  <xs:element name="SIF_Wakeup" type="sif:SIF_WakeupType" />


  <!--SIF_GetMessage-->

  <xs:complexType name="SIF_GetMessageType" />

  <xs:element name="SIF_GetMessage" type="sif:SIF_GetMessageType" />


  <!--SIF_GetZoneStatus-->

  <xs:complexType name="SIF_GetZoneStatusType" />

  <xs:element name="SIF_GetZoneStatus" type="sif:SIF_GetZoneStatusType" />


  <!--SIF_GetAgentACL-->

  <xs:complexType name="SIF_GetAgentACLType" />

  <xs:element name="SIF_GetAgentACL" type="sif:SIF_GetAgentACLType" />


  <!--SIF_CancelRequests-->

  <xs:complexType name="SIF_CancelRequestsType">
    <xs:sequence>
      <xs:element name="SIF_NotificationType">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Standard" />
            <xs:enumeration value="None" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_RequestMsgIds">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_RequestMsgId" maxOccurs="unbounded" type="sif:MsgIdType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_CancelRequests" type="sif:SIF_CancelRequestsType" />


  <!--SIF_Unprovide-->

  <xs:complexType name="SIF_UnprovideType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_ProvideObjectNamesType" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Unprovide" type="sif:SIF_UnprovideType" />


  <!--SIF_Unregister-->

  <xs:complexType name="SIF_UnregisterType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Unregister" type="sif:SIF_UnregisterType" />


  <!--SIF_Unsubscribe-->

  <xs:complexType name="SIF_UnsubscribeType">
    <xs:sequence>
      <xs:element ref="sif:SIF_Header" />
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Unsubscribe" type="sif:SIF_UnsubscribeType" />


  <!--Infrastructure Data Objects-->


  <!--SIF_ZoneStatus-->

  <xs:complexType name="SIF_ZoneStatusType">
    <xs:sequence>
      <xs:element name="SIF_Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI" />
      <xs:element name="SIF_Vendor" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Name" minOccurs="0" type="xs:normalizedString" />
            <xs:element name="SIF_Product" minOccurs="0" type="xs:normalizedString" />
            <xs:element name="SIF_Version" minOccurs="0" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Providers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Provider" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean" />
                              <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Subscribers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Subscriber" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_AddPublishers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Publisher" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_ChangePublishers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Publisher" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_DeletePublishers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Publisher" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Responders" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Responder" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean" />
                              <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Requesters" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Requester" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean" />
                              <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SIFNodes" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_SIFNode" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Name" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI" />
                  <xs:element name="SIF_NodeVendor" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:normalizedString">
                        <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="SIF_NodeVersion" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:normalizedString">
                        <xs:maxLength value="32" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="SIF_Application" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Vendor" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:normalizedString">
                              <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="SIF_Product" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:normalizedString">
                              <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="SIF_Version" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:normalizedString">
                              <xs:maxLength value="32" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SIF_SourceId" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="SIF_Mode" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Push" />
                        <xs:enumeration value="Pull" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element ref="sif:SIF_Protocol" minOccurs="0" />
                  <xs:element name="SIF_VersionList" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Version" minOccurs="0" maxOccurs="unbounded" type="sif:VersionWithWildcardsType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element ref="sif:SIF_AuthenticationLevel" minOccurs="0" />
                  <xs:element ref="sif:SIF_EncryptionLevel" minOccurs="0" />
                  <xs:element name="SIF_MaxBufferSize" minOccurs="0" type="xs:unsignedInt" />
                  <xs:element name="SIF_Sleeping" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="No" />
                        <xs:enumeration value="Yes" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Agent" />
                      <xs:enumeration value="ZIS" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SupportedAuthentication" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_ProtocolName" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="X.509" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SupportedProtocols" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:SIF_Protocol" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SupportedVersions" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Version" minOccurs="0" maxOccurs="unbounded" type="sif:VersionType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_AdministrationURL" minOccurs="0" type="xs:anyURI" />
      <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
      <xs:element ref="sif:SIF_Metadata" minOccurs="0" />
      <xs:element ref="sif:SIF_ExtendedElements" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="ZoneId" use="required" type="xs:token" />
  </xs:complexType>

  <xs:element name="SIF_ZoneStatus" type="sif:SIF_ZoneStatusType">
    <xs:unique name="SIF_ZoneStatusKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@ZoneId" />
    </xs:unique>
  </xs:element>


  <!--SIF_ZoneStatusInfrastructure-->

  <xs:complexType name="SIF_ZoneStatusInfrastructureType">
    <xs:sequence>
      <xs:element name="SIF_Name" type="xs:normalizedString" />
      <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI" />
      <xs:element name="SIF_Vendor" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Name" type="xs:normalizedString" />
            <xs:element name="SIF_Product" type="xs:normalizedString" />
            <xs:element name="SIF_Version" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Providers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Provider" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="SIF_ExtendedQuerySupport" type="xs:boolean" />
                              <xs:element ref="sif:SIF_Contexts" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Subscribers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Subscriber" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="sif:SIF_Contexts" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_AddPublishers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Publisher" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="sif:SIF_Contexts" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_ChangePublishers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Publisher" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="sif:SIF_Contexts" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_DeletePublishers" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Publisher" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="sif:SIF_Contexts" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Responders" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Responder" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="SIF_ExtendedQuerySupport" type="xs:boolean" />
                              <xs:element ref="sif:SIF_Contexts" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Requesters" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Requester" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_ObjectList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Object" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="SIF_ExtendedQuerySupport" type="xs:boolean" />
                              <xs:element ref="sif:SIF_Contexts" />
                            </xs:sequence>
                            <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SIFNodes" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_SIFNode" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_Name" type="xs:normalizedString" />
                  <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI" />
                  <xs:element name="SIF_NodeVendor" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:normalizedString">
                        <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="SIF_NodeVersion" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:normalizedString">
                        <xs:maxLength value="32" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="SIF_Application" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Vendor">
                          <xs:simpleType>
                            <xs:restriction base="xs:normalizedString">
                              <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="SIF_Product">
                          <xs:simpleType>
                            <xs:restriction base="xs:normalizedString">
                              <xs:maxLength value="256" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="SIF_Version">
                          <xs:simpleType>
                            <xs:restriction base="xs:normalizedString">
                              <xs:maxLength value="32" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SIF_SourceId">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:maxLength value="64" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="SIF_Mode">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Push" />
                        <xs:enumeration value="Pull" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element ref="sif:SIF_Protocol" minOccurs="0" />
                  <xs:element name="SIF_VersionList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionWithWildcardsType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element ref="sif:SIF_AuthenticationLevel" minOccurs="0" />
                  <xs:element ref="sif:SIF_EncryptionLevel" minOccurs="0" />
                  <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt" />
                  <xs:element name="SIF_Sleeping">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="No" />
                        <xs:enumeration value="Yes" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Agent" />
                      <xs:enumeration value="ZIS" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SupportedAuthentication" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_ProtocolName" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="X.509" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SupportedProtocols">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:SIF_Protocol" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SupportedVersions">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_AdministrationURL" minOccurs="0" type="xs:anyURI" />
      <xs:element ref="sif:SIF_Contexts" />
      <xs:element ref="sif:SIF_Metadata" minOccurs="0" />
      <xs:element ref="sif:SIF_ExtendedElements" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="ZoneId" use="required" type="xs:token" />
  </xs:complexType>


  <!--SIF_AgentACL-->

  <xs:complexType name="SIF_AgentACLType">
    <xs:sequence>
      <xs:element name="SIF_ProvideAccess" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SubscribeAccess" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishAddAccess" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishChangeAccess" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishDeleteAccess" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RequestAccess" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RespondAccess" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element ref="sif:SIF_Metadata" minOccurs="0" />
      <xs:element ref="sif:SIF_ExtendedElements" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_AgentACL" type="sif:SIF_AgentACLType" />


  <!--SIF_AgentACLInfrastructure-->

  <xs:complexType name="SIF_AgentACLInfrastructureType">
    <xs:sequence>
      <xs:element name="SIF_ProvideAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SubscribeAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishAddAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishChangeAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishDeleteAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RequestAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RespondAccess">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Object" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:SIF_Contexts" />
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:ObjectNameType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element ref="sif:SIF_Metadata" minOccurs="0" />
      <xs:element ref="sif:SIF_ExtendedElements" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>


  <!--Data Model Common Elements-->


  <!--EnglishProficiency-->

  <xs:complexType name="EnglishProficiencyType">
    <xs:sequence>
      <xs:element name="Code" minOccurs="0" type="sif:NCES0585EnglishProficiencyType" />
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EnglishProficiency" type="sif:EnglishProficiencyType" />


  <!--LanguageList-->

  <xs:complexType name="LanguageListType">
    <xs:sequence>
      <xs:element name="Language" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NISOZ3953LanguageCodesType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
            <xs:element name="LanguageType" minOccurs="0" nillable="true" type="sif:NCES0327LanguageTypeType" />
            <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" />


  <!--PrimaryAssignment-->

  <xs:simpleType name="PrimaryAssignmentType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="PrimaryAssignment" type="sif:PrimaryAssignmentType" />


  <!--OtherNames-->

  <xs:complexType name="OtherNamesType">
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" 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:unique name="OtherNamesKey1">
      <xs:selector xpath="./sif:Name" />
      <xs:field xpath="@Type" />
    </xs:unique>
  </xs:element>


  <!--PlannedAssessmentParticipation-->

  <xs:complexType name="PlannedAssessmentParticipationType">
    <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 name="PlannedAssessmentParticipation" type="sif:PlannedAssessmentParticipationType" />


  <!--ExceptionalityCategories-->

  <xs:complexType name="ExceptionalityCategoriesType">
    <xs:sequence>
      <xs:element name="ExceptionalityCategory" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0768PrimaryDisabilityTypeType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="9999" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
            <xs:element name="ExceptionalityPriority" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Primary" />
                  <xs:enumeration value="Secondary" />
                  <xs:enumeration value="Tertiary" />
                  <xs:enumeration value="Additional" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ExceptionalityCategories" type="sif:ExceptionalityCategoriesType" />


  <!--ProgramStatus-->

  <xs:complexType name="ProgramStatusType">
    <xs:sequence>
      <xs:element name="Code" minOccurs="0">
        <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="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" />


  <!--ProgramType-->

  <xs:complexType name="ProgramTypeType">
    <xs:sequence>
      <xs:element name="Code" minOccurs="0">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="sif:NCES0274StudentFamilyProgramTypeType">
                <xs:enumeration value="0241" />
                <xs:enumeration value="0242" />
                <xs:enumeration value="0244" />
                <xs:enumeration value="0245" />
                <xs:enumeration value="0248" />
                <xs:enumeration value="0875" />
                <xs:enumeration value="0249" />
                <xs:enumeration value="0250" />
                <xs:enumeration value="0876" />
                <xs:enumeration value="0251" />
                <xs:enumeration value="0253" />
                <xs:enumeration value="0255" />
                <xs:enumeration value="0256" />
                <xs:enumeration value="2389" />
                <xs:enumeration value="2381" />
                <xs:enumeration value="0246" />
                <xs:enumeration value="0283" />
                <xs:enumeration value="0284" />
                <xs:enumeration value="2393" />
                <xs:enumeration value="0263" />
                <xs:enumeration value="0265" />
                <xs:enumeration value="0267" />
                <xs:enumeration value="0289" />
                <xs:enumeration value="0270" />
                <xs:enumeration value="0272" />
                <xs:enumeration value="0278" />
                <xs:enumeration value="9999" />
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:NCES0229ProgramTypeType">
                <xs:enumeration value="0300" />
                <xs:enumeration value="0400" />
                <xs:enumeration value="0800" />
                <xs:enumeration value="1300" />
                <xs:enumeration value="1400" />
                <xs:enumeration value="1800" />
                <xs:enumeration value="1900" />
                <xs:enumeration value="2200" />
                <xs:enumeration value="2300" />
                <xs:enumeration value="2400" />
                <xs:enumeration value="2900" />
                <xs:enumeration value="3000" />
                <xs:enumeration value="3100" />
                <xs:enumeration value="3200" />
              </xs:restriction>
            </xs:simpleType>
            <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="S007" />
                <xs:enumeration value="S008" />
                <xs:enumeration value="S009" />
                <xs:enumeration value="S010" />
                <xs:enumeration value="S011" />
                <xs:enumeration value="S012" />
                <xs:enumeration value="S013" />
                <xs:enumeration value="S014" />
                <xs:enumeration value="S015" />
                <xs:enumeration value="S016" />
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ProgramType" type="sif:ProgramTypeType" />


  <!--GraduationRequirement-->

  <xs:simpleType name="GraduationRequirementType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="GraduationRequirement" type="sif:GraduationRequirementType" />


  <!--SubjectAreaList-->

  <xs:complexType name="SubjectAreaListType">
    <xs:sequence>
      <xs:element ref="sif:SubjectArea" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SubjectAreaList" type="sif:SubjectAreaListType" />


  <!--TermSpan-->

  <xs:complexType name="TermSpanType">
    <xs:sequence>
      <xs:element name="Code" minOccurs="0" type="sif:NCES0266SessionTypeType" />
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="TermSpan" type="sif:TermSpanType" />


  <!--SchoolContactList-->

  <xs:complexType name="SchoolContactListType">
    <xs:sequence>
      <xs:element name="SchoolContact" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PublishInDirectory" minOccurs="0" nillable="true" type="sif:PublishInDirectoryType" />
            <xs:element ref="sif:ContactInfo" minOccurs="0" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SchoolContactList" type="sif:SchoolContactListType" />


  <!--SchoolURL-->

  <xs:simpleType name="SchoolURLType">
    <xs:restriction base="xs:anyURI" />
  </xs:simpleType>

  <xs:element name="SchoolURL" type="sif:SchoolURLType" />


  <!--LEAName-->

  <xs:simpleType name="LEANameType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="LEAName" type="sif:LEANameType" />


  <!--LastName-->

  <xs:simpleType name="LastNameType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="LastName" type="sif:LastNameType" />


  <!--FirstName-->

  <xs:simpleType name="FirstNameType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="FirstName" type="sif:FirstNameType" />


  <!--MiddleName-->

  <xs:simpleType name="MiddleNameType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="MiddleName" type="sif:MiddleNameType" />


  <!--SSN-->

  <xs:simpleType name="SSNType">
    <xs:restriction base="xs:token" />
  </xs:simpleType>

  <xs:element name="SSN" type="sif:SSNType" />


  <!--IDEA-->

  <xs:simpleType name="IDEAType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="IDEA" type="sif:IDEAType" />


  <!--Migrant-->

  <xs:simpleType name="MigrantType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Migrant" type="sif:MigrantType" />


  <!--Title1-->

  <xs:simpleType name="Title1Type">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Title1" type="sif:Title1Type" />


  <!--GiftedTalented-->

  <xs:simpleType name="GiftedTalentedType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="GiftedTalented" type="sif:GiftedTalentedType" />


  <!--EconomicDisadvantage-->

  <xs:simpleType name="EconomicDisadvantageType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="EconomicDisadvantage" type="sif:EconomicDisadvantageType" />


  <!--ELL-->

  <xs:simpleType name="ELLType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="ELL" type="sif:ELLType" />


  <!--Homeless-->

  <xs:simpleType name="HomelessType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Homeless" type="sif:HomelessType" />


  <!--Section504-->

  <xs:simpleType name="Section504Type">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Section504" type="sif:Section504Type" />


  <!--VocationalConcentrator-->

  <xs:simpleType name="VocationalConcentratorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="VocationalConcentrator" type="sif:VocationalConcentratorType" />


  <!--Immigrant-->

  <xs:simpleType name="ImmigrantType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Immigrant" type="sif:ImmigrantType" />


  <!--NeglectedDelinquent-->

  <xs:simpleType name="NeglectedDelinquentType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="NeglectedDelinquent" type="sif:NeglectedDelinquentType" />


  <!--CourseCode-->

  <xs:simpleType name="CourseCodeType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="CourseCode" type="sif:CourseCodeType" />


  <!--StateCourseCode-->

  <xs:simpleType name="StateCourseCodeType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="StateCourseCode" type="sif:StateCourseCodeType" />


  <!--DistrictCourseCode-->

  <xs:simpleType name="DistrictCourseCodeType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="DistrictCourseCode" type="sif:DistrictCourseCodeType" />


  <!--CourseTitle-->

  <xs:simpleType name="CourseTitleType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="CourseTitle" type="sif:CourseTitleType" />


  <!--IdentificationInfoList-->

  <xs:complexType name="IdentificationInfoListType">
    <xs:sequence>
      <xs:element ref="sif:IdentificationInfo" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="IdentificationInfoList" type="sif:IdentificationInfoListType" />


  <!--IdentificationInfo-->

  <xs:complexType name="IdentificationInfoType">
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Code" use="required">
          <xs:simpleType>
            <xs:restriction base="sif:NCES0147IdentificationSystemType">
              <xs:enumeration value="0175" />
              <xs:enumeration value="0264" />
              <xs:enumeration value="0276" />
              <xs:enumeration value="0764" />
              <xs:enumeration value="9999" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="IdentificationInfo" type="sif:IdentificationInfoType" />


  <!--CourseCredits-->

  <xs:complexType name="CourseCreditsType">
    <xs:simpleContent>
      <xs:extension base="sif:XSDecimalOrEmpty">
        <xs:attribute name="Type" use="required" type="sif:NCES0108CreditTypeEarnedType" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="CourseCredits" type="sif:CourseCreditsType" />


  <!--InstructionalLevel-->

  <xs:complexType name="InstructionalLevelType">
    <xs:sequence>
      <xs:element name="Code" minOccurs="0" type="sif:NCES0437InstructionalLevelType" />
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="InstructionalLevel" type="sif:InstructionalLevelType" />


  <!--AddressList-->

  <xs:complexType name="AddressListType">
    <xs:sequence>
      <xs:element name="Address" minOccurs="0" 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:unique name="AddressListKey1">
      <xs:selector xpath="./sif:Address" />
      <xs:field xpath="@Type" />
    </xs:unique>
  </xs:element>


  <!--Address-->

  <xs:complexType name="AddressType">
    <xs:sequence>
      <xs:element name="Street" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Line1" minOccurs="0" 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" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="County" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element ref="sif:StateProvince" minOccurs="0" />
      <xs:element ref="sif:Country" minOccurs="0" />
      <xs:element name="PostalCode" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="GridLocation" minOccurs="0" nillable="true" type="sif:GridLocationType" />
    </xs:sequence>
    <xs:attribute name="Type" use="required" type="sif:NCES0025AddressTypeType" />
  </xs:complexType>

  <xs:element name="Address" type="sif:AddressType" />


  <!--StateProvince-->

  <xs:simpleType name="StateProvinceType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="sif:USPSAbbreviationsType" />
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="sif:CanadaPostProvincesAndTerritoriesType" />
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:token" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="StateProvince" type="sif:StateProvinceType" />


  <!--Country-->

  <xs:simpleType name="CountryType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="sif:ISO31661EnglishCountryNamesAndCodeElementsType" />
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="sif:ISO31663CodeForFormerlyUsedNamesOfCountriesType" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="Country" type="sif:CountryType" />


  <!--CongressionalDistrict-->

  <xs:simpleType name="CongressionalDistrictType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:unsignedInt" />
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:token" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="CongressionalDistrict" type="sif:CongressionalDistrictType" />


  <!--ContactInfo-->

  <xs:complexType name="ContactInfoType">
    <xs:sequence>
      <xs:element name="Name" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Prefix" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="LastName" minOccurs="0" nillable="true" type="sif:LastNameType" />
            <xs:element name="FirstName" minOccurs="0" nillable="true" type="sif:FirstNameType" />
            <xs:element name="MiddleName" minOccurs="0" nillable="true" type="sif:MiddleNameType" />
            <xs:element name="Suffix" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="PreferredName" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="SortName" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="FullName" minOccurs="0" nillable="true" type="xs:normalizedString" />
          </xs:sequence>
          <xs:attribute name="Type" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="01" />
                <xs:enumeration value="02" />
                <xs:enumeration value="03" />
                <xs:enumeration value="04" />
                <xs:enumeration value="05" />
                <xs:enumeration value="07" />
                <xs:enumeration value="08" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <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:unique name="EmailListKey1">
          <xs:selector xpath="./sif:Email" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:unique name="PhoneNumberListKey1">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ContactInfo" type="sif:ContactInfoType" />


  <!--HispanicLatino-->

  <xs:simpleType name="HispanicLatinoType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="HispanicLatino" type="sif:HispanicLatinoType" />


  <!--Location-->

  <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:IdRefTypeOrEmpty">
              <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:enumeration value="LocationInfo" />
                  </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" />


  <!--RaceList-->

  <xs:complexType name="RaceListType">
    <xs:sequence>
      <xs:element name="Race" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0849RaceType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="A" />
                      <xs:enumeration value="H" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
            <xs:element name="Proportion" minOccurs="0" nillable="true" type="xs:decimal" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="RaceList" type="sif:RaceListType" />


  <!--Gender-->

  <xs:simpleType name="GenderType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="M" />
      <xs:enumeration value="F" />
      <xs:enumeration value="U" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Gender" type="sif:GenderType" />


  <!--BirthDate-->

  <xs:simpleType name="BirthDateType">
    <xs:restriction base="xs:date" />
  </xs:simpleType>

  <xs:element name="BirthDate" type="sif:BirthDateType" />


  <!--Demographics-->

  <xs:complexType name="DemographicsType">
    <xs:sequence>
      <xs:element name="RaceList" minOccurs="0" nillable="true" type="sif:RaceListType" />
      <xs:element name="HispanicLatino" minOccurs="0" nillable="true" type="sif:HispanicLatinoType" />
      <xs:element name="Gender" minOccurs="0" nillable="true" type="sif:GenderType" />
      <xs:element name="BirthDate" minOccurs="0" nillable="true" type="sif:BirthDateType" />
      <xs:element name="BirthDateVerification" minOccurs="0" nillable="true" type="sif:NCES0315BirthdateVerificationType" />
      <xs:element name="PlaceOfBirth" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="CountyOfBirth" 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" minOccurs="0" 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" minOccurs="0" 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="CitizenshipStatus" minOccurs="0" nillable="true" type="sif:NCES0322CitizenshipStatusType" />
      <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" minOccurs="0" type="sif:NCES0600DwellingArrangementType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MaritalStatus" minOccurs="0" nillable="true" type="sif:NCES0330MaritalStatusType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Demographics" type="sif:DemographicsType" />


  <!--EducationalLevel-->

  <xs:simpleType name="EducationalLevelType">
    <xs:restriction base="sif:NCES0332HighestLevelOfEducationCompletedType" />
  </xs:simpleType>

  <xs:element name="EducationalLevel" type="sif:EducationalLevelType" />


  <!--ElectronicIdList-->

  <xs:complexType name="ElectronicIdListType">
    <xs:sequence>
      <xs:element ref="sif:ElectronicId" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ElectronicIdList" type="sif:ElectronicIdListType" />


  <!--ElectronicId-->

  <xs:complexType name="ElectronicIdType">
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Barcode" />
              <xs:enumeration value="Magstripe" />
              <xs:enumeration value="PIN" />
              <xs:enumeration value="RFID" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="ElectronicId" type="sif:ElectronicIdType" />


  <!--EmailList-->

  <xs:complexType name="EmailListType">
    <xs:sequence>
      <xs:element name="Email" minOccurs="0" 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:unique name="EmailListKey2">
      <xs:selector xpath="./sif:Email" />
      <xs:field xpath="@Type" />
    </xs:unique>
  </xs:element>


  <!--Email-->

  <xs:complexType name="EmailType">
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Primary" />
              <xs:enumeration value="Alternate1" />
              <xs:enumeration value="Alternate2" />
              <xs:enumeration value="Alternate3" />
              <xs:enumeration value="Alternate4" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="Email" type="sif:EmailType" />


  <!--EntryDate-->

  <xs:simpleType name="EntryDateType">
    <xs:restriction base="xs:date" />
  </xs:simpleType>

  <xs:element name="EntryDate" type="sif:EntryDateType" />


  <!--ExitDate-->

  <xs:simpleType name="ExitDateType">
    <xs:restriction base="xs:date" />
  </xs:simpleType>

  <xs:element name="ExitDate" type="sif:ExitDateType" />


  <!--GradeLevel-->

  <xs:complexType name="GradeLevelType">
    <xs:sequence>
      <xs:element name="Code" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="PK" />
            <xs:enumeration value="KG" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
            <xs:enumeration value="04" />
            <xs:enumeration value="05" />
            <xs:enumeration value="06" />
            <xs:enumeration value="07" />
            <xs:enumeration value="08" />
            <xs:enumeration value="09" />
            <xs:enumeration value="10" />
            <xs:enumeration value="11" />
            <xs:enumeration value="12" />
            <xs:enumeration value="PG" />
            <xs:enumeration value="UN" />
            <xs:enumeration value="Other" />
            <xs:enumeration value="Unknown" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="GradeLevel" type="sif:GradeLevelType" />


  <!--GradeLevels-->

  <xs:complexType name="GradeLevelsType">
    <xs:sequence>
      <xs:element ref="sif:GradeLevel" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="GradeLevels" type="sif:GradeLevelsType" />


  <!--GraduationDate-->

  <xs:simpleType name="GraduationDateType">
    <xs:restriction base="sif:PartialDateType" />
  </xs:simpleType>

  <xs:element name="GraduationDate" type="sif:GraduationDateType" />


  <!--ProjectedGraduationYear-->

  <xs:simpleType name="ProjectedGraduationYearType">
    <xs:restriction base="xs:gYear" />
  </xs:simpleType>

  <xs:element name="ProjectedGraduationYear" type="sif:ProjectedGraduationYearType" />


  <!--OnTimeGraduationYear-->

  <xs:simpleType name="OnTimeGraduationYearType">
    <xs:restriction base="xs:gYear" />
  </xs:simpleType>

  <xs:element name="OnTimeGraduationYear" type="sif:OnTimeGraduationYearType" />


  <!--GridLocation-->

  <xs:complexType name="GridLocationType">
    <xs:sequence>
      <xs:element name="Latitude" minOccurs="0">
        <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" minOccurs="0">
        <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" />


  <!--HomeroomNumber-->

  <xs:simpleType name="HomeroomNumberType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="HomeroomNumber" type="sif:HomeroomNumberType" />


  <!--LocalId-->

  <xs:simpleType name="LocalIdType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="LocalId" type="sif:LocalIdType" />


  <!--MeetingTime-->

  <xs:complexType name="MeetingTimeType">
    <xs:sequence>
      <xs:element name="TimetableDay" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="TimetablePeriod" minOccurs="0" nillable="true" type="xs:normalizedString" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="MeetingTime" type="sif:MeetingTimeType" />


  <!--Name-->

  <xs:complexType name="NameType">
    <xs:complexContent>
      <xs:extension base="sif:BaseNameType">
        <xs:attribute name="Type" use="required">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="01" />
              <xs:enumeration value="02" />
              <xs:enumeration value="03" />
              <xs:enumeration value="04" />
              <xs:enumeration value="05" />
              <xs:enumeration value="07" />
              <xs:enumeration value="08" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:element name="Name" type="sif:NameType" />


  <!--NCESId-->

  <xs:simpleType name="NCESIdType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="NCESId" type="sif:NCESIdType" />


  <!--OperationalStatus-->

  <xs:simpleType name="OperationalStatusType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="sif:NCES0256SchoolStatusType" />
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="sif:NCES0032AgencyStatusType" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="OperationalStatus" type="sif:OperationalStatusType" />


  <!--OtherId-->

  <xs:complexType name="OtherIdType">
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required" type="sif:NCES0147IdentificationSystemType" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="OtherId" type="sif:OtherIdType" />


  <!--PhoneNumberList-->

  <xs:complexType name="PhoneNumberListType">
    <xs:sequence>
      <xs:element name="PhoneNumber" minOccurs="0" 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:unique name="PhoneNumberListKey2">
      <xs:selector xpath="./sif:PhoneNumber" />
      <xs:field xpath="@Type" />
    </xs:unique>
  </xs:element>


  <!--PhoneNumber-->

  <xs:complexType name="PhoneNumberType">
    <xs:sequence>
      <xs:element name="Number" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Extension" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ListedStatus" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Listed" />
            <xs:enumeration value="Unlisted" />
            <xs:enumeration value="Unknown" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="required" type="sif:NCES0280TelephoneNumberTypeType" />
  </xs:complexType>

  <xs:element name="PhoneNumber" type="sif:PhoneNumberType" />


  <!--Program-->

  <xs:complexType name="ProgramType">
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Foodservice" />
              <xs:enumeration value="CFDA" />
              <xs:enumeration value="NCES" />
              <xs:enumeration value="StateDOE" />
              <xs:enumeration value="Local" />
              <xs:enumeration value="Text" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="Program" type="sif:ProgramType" />


  <!--PublishInDirectory-->

  <xs:simpleType name="PublishInDirectoryType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="PublishInDirectory" type="sif:PublishInDirectoryType" />


  <!--Relationship-->

  <xs:complexType name="RelationshipType">
    <xs:sequence>
      <xs:element name="Code" minOccurs="0" type="sif:NCES0609RelationshipToStudentType" />
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Relationship" type="sif:RelationshipType" />


  <!--SchoolName-->

  <xs:simpleType name="SchoolNameType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="SchoolName" type="sif:SchoolNameType" />


  <!--SchoolYear-->

  <xs:simpleType name="SchoolYearType">
    <xs:restriction base="xs:gYear" />
  </xs:simpleType>

  <xs:element name="SchoolYear" type="sif:SchoolYearType" />


  <!--SIF_ExtendedElements-->

  <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:unique name="SIF_ExtendedElementsKey1">
      <xs:selector xpath="./sif:SIF_ExtendedElement" />
      <xs:field xpath="@Name" />
    </xs:unique>
  </xs:element>


  <!--SCEDCode-->

  <xs:complexType name="SCEDCodeType">
    <xs:sequence>
      <xs:element name="CourseDescription" minOccurs="0" type="sif:SCEDCourseTitlesType" />
      <xs:element name="CourseLevel" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="B" />
            <xs:enumeration value="G" />
            <xs:enumeration value="E" />
            <xs:enumeration value="H" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AvailableCredit" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:fractionDigits value="2" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SequenceNumber" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:unsignedInt">
            <xs:minInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="9" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SequenceLimit" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:unsignedInt">
            <xs:minInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="9" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SCEDCode" type="sif:SCEDCodeType" />


  <!--StateProvinceId-->

  <xs:simpleType name="StateProvinceIdType">
    <xs:restriction base="xs:normalizedString" />
  </xs:simpleType>

  <xs:element name="StateProvinceId" type="sif:StateProvinceIdType" />


  <!--SubjectArea-->

  <xs:complexType name="SubjectAreaType">
    <xs:sequence>
      <xs:element name="Code" minOccurs="0">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="sif:SCEDSecondaryCoursesType" />
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="sif:SCEDNonSecondaryCoursesType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SubjectArea" type="sif:SubjectAreaType" />


  <!--OtherCodeList-->

  <xs:complexType name="OtherCodeListType">
    <xs:sequence>
      <xs:element name="OtherCode" minOccurs="0" 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" />


  <!--MealStatus-->

  <xs:complexType name="MealStatusType">
    <xs:sequence>
      <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="SchoolYear" minOccurs="0" nillable="true" type="sif:SchoolYearType" />
    </xs:sequence>
    <xs:attribute name="Type" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Free" />
          <xs:enumeration value="Reduced" />
          <xs:enumeration value="None" />
          <xs:enumeration value="NA" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="MealStatus" type="sif:MealStatusType" />


  <!--EarnedStatus-->

  <xs:complexType name="EarnedStatusType">
    <xs:sequence>
      <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date" />
    </xs:sequence>
    <xs:attribute name="Type" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Yes" />
          <xs:enumeration value="No" />
          <xs:enumeration value="NA" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="EarnedStatus" type="sif:EarnedStatusType" />


  <!--MealType-->

  <xs:simpleType name="MealTypeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="FirstMeal" />
      <xs:enumeration value="SecondMeal" />
      <xs:enumeration value="StaffMeal" />
      <xs:enumeration value="AdultMeal" />
      <xs:enumeration value="AlaCarte" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="MealType" type="sif:MealTypeType" />


  <!--DataModelTaskForce-->


  <!--SIF_Metadata-->

  <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="RightsElements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:RightsElement" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="EducationFilter" minOccurs="0" nillable="true" type="sif:EducationFilterType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Metadata" type="sif:SIF_MetadataType" />


  <!--TimeElement-->

  <xs:complexType name="TimeElementType">
    <xs:sequence>
      <xs:element name="Type" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Code" minOccurs="0" type="xs:token" />
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Value" minOccurs="0" 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" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="Code" minOccurs="0" type="xs:token" />
                  <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="Value" minOccurs="0" 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" minOccurs="0" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="TimeElement" type="sif:TimeElementType" />


  <!--LifeCycle-->

  <xs:complexType name="LifeCycleType">
    <xs:sequence>
      <xs:element name="Created" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="DateTime" minOccurs="0" type="xs:dateTime" />
            <xs:element name="Creators" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Creator" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
                        <xs:element name="ID" minOccurs="0" 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" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="DateTime" minOccurs="0" 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" />


  <!--RightsElement-->

  <xs:complexType name="RightsElementType">
    <xs:sequence>
      <xs:element name="Cost" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="FeesForUse" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="FeeForUse" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="UseType" minOccurs="0" type="xs:string" />
                  <xs:element name="MeteringType" minOccurs="0" type="xs:token" />
                  <xs:element name="MeteringURL" minOccurs="0" nillable="true" type="xs:anyURI" />
                  <xs:element name="PerUseCharge" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CopyrightStatement" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="TermsOfUse" minOccurs="0" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="RightsElement" type="sif:RightsElementType" />


  <!--EducationFilter-->

  <xs:complexType name="EducationFilterType">
    <xs:sequence>
      <xs:element name="MediaTypes" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MediaType" minOccurs="0" maxOccurs="unbounded" type="xs:token" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
      <xs:element name="SubjectAreas" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:SubjectArea" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="InterestLevels" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="InterestLevel" minOccurs="0" maxOccurs="unbounded" type="sif:GradeLevelType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandardItems" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="BloomsTaxonomyLevels" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="BloomsTaxonomyLevel" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Knowledge" />
                  <xs:enumeration value="Comprehension" />
                  <xs:enumeration value="Application" />
                  <xs:enumeration value="Analysis" />
                  <xs:enumeration value="Synthesis" />
                  <xs:enumeration value="Evaluation" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MultipleIntelligences" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MultipleIntelligence" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Linguistic" />
                  <xs:enumeration value="Logical-Mathematical" />
                  <xs:enumeration value="Spatial" />
                  <xs:enumeration value="Musical" />
                  <xs:enumeration value="Bodily-Kinesthetic" />
                  <xs:enumeration value="Interpersonal" />
                  <xs:enumeration value="Intrapersonal" />
                  <xs:enumeration value="Naturalist" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="InstructionalStrategies" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="InstructionalStrategy" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Lecture" />
                  <xs:enumeration value="Online" />
                  <xs:enumeration value="Discussion" />
                  <xs:enumeration value="Cooperative Group" />
                  <xs:enumeration value="Scenario" />
                  <xs:enumeration value="Demonstration/Lab" />
                  <xs:enumeration value="Self-study" />
                  <xs:enumeration value="Problem-Based Learning" />
                  <xs:enumeration value="Project" />
                  <xs:enumeration value="Other" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EducationFilter" type="sif:EducationFilterType" />


  <!--SEAInfo-->

  <xs:complexType name="SEAInfoType">
    <xs:sequence>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
      <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
      <xs:element name="SEAName" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="SEAURL" minOccurs="0" nillable="true" type="xs:anyURI" />
      <xs:element name="CSSOContact" minOccurs="0" type="sif:ContactInfoType" />
      <xs:element name="SEAContactList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SEAContact" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="PublishInDirectory" minOccurs="0" nillable="true" type="sif:PublishInDirectoryType" />
                  <xs:element ref="sif:ContactInfo" minOccurs="0" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:unique name="PhoneNumberListKey3">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:unique name="AddressListKey2">
          <xs:selector xpath="./sif:Address" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="OperationalStatus" minOccurs="0" nillable="true" type="sif:OperationalStatusType" />
      <xs:element name="EDENInfo" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="FIPSStateCode" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:pattern value="[0-9]{2}|[A-Z]{2}" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="AgencyIdNumber" minOccurs="0" nillable="true" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey2">
          <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:complexType>

  <xs:element name="SEAInfo" type="sif:SEAInfoType">
    <xs:unique name="SEAInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentLEARelationship-->

  <xs:complexType name="StudentLEARelationshipType">
    <xs:sequence>
      <xs:element name="MembershipType" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Home" />
            <xs:enumeration value="Concurrent" />
            <xs:enumeration value="Summer" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="LEARelationshipType" minOccurs="0" type="sif:OrganizationRelationshipType" />
      <xs:element name="EntryDate" minOccurs="0" type="xs:date" />
      <xs:element name="EntryType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0619EntryTypeType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExitDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ExitType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0644ExitWithdrawalTypeType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExitStatus" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0643ExitWithdrawalStatusType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="NonResidentAttendReason" minOccurs="0" nillable="true" type="sif:NCES0599NonResidentAttendanceRationaleType" />
      <xs:element name="GradeLevel" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
      <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_ExtendedElementsKey3">
          <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="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="LEAInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="StudentLEARelationship" type="sif:StudentLEARelationshipType">
    <xs:unique name="StudentLEARelationshipKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--DataWarehouseWorkingGroup-->


  <!--AggregateStatisticInfo-->

  <xs:complexType name="AggregateStatisticInfoType">
    <xs:sequence>
      <xs:element name="StatisticName" minOccurs="0" type="xs:token" />
      <xs:element name="CalculationRule" minOccurs="0" nillable="true">
        <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="Description" />
                    <xs:enumeration value="Formula" />
                    <xs:enumeration value="URL" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ApprovalDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ExpirationDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ExclusionRules" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ExclusionRule" 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="SampleSize" />
                          <xs:enumeration value="Description" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Source" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="EffectiveDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="DiscontinueDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="Location" minOccurs="0" nillable="true">
        <xs:complexType>
          <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:IdRefTypeOrEmpty">
                    <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="required">
            <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:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="Measure" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Count" />
            <xs:enumeration value="Minimum" />
            <xs:enumeration value="Maximum" />
            <xs:enumeration value="Percent" />
            <xs:enumeration value="Mean" />
            <xs:enumeration value="Median" />
            <xs:enumeration value="Mode" />
            <xs:enumeration value="Sum" />
            <xs:enumeration value="StandardDeviation" />
            <xs:enumeration value="UnduplicatedCount" />
            <xs:enumeration value="FTE" />
            <xs:enumeration value="Other" />
          </xs:restriction>
        </xs:simpleType>
      </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:unique name="SIF_ExtendedElementsKey4">
          <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:complexType>

  <xs:element name="AggregateStatisticInfo" type="sif:AggregateStatisticInfoType">
    <xs:unique name="AggregateStatisticInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AggregateCharacteristicInfo-->

  <xs:complexType name="AggregateCharacteristicInfoType">
    <xs:sequence>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="Definition" minOccurs="0" type="xs:token" />
      <xs:element name="ElementName" minOccurs="0" nillable="true" type="xs:token" />
      <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_ExtendedElementsKey5">
          <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:complexType>

  <xs:element name="AggregateCharacteristicInfo" type="sif:AggregateCharacteristicInfoType">
    <xs:unique name="AggregateCharacteristicInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AggregateStatisticFact-->

  <xs:complexType name="AggregateStatisticFactType">
    <xs:sequence>
      <xs:element name="AggregateStatisticInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Characteristics" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AggregateCharacteristicInfoRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Excluded" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Value" minOccurs="0" type="xs:decimal" />
      <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_ExtendedElementsKey6">
          <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:complexType>

  <xs:element name="AggregateStatisticFact" type="sif:AggregateStatisticFactType">
    <xs:unique name="AggregateStatisticFactKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodServicesWorkingGroup-->


  <!--StudentMeal-->

  <xs:complexType name="StudentMealType">
    <xs:sequence>
      <xs:element name="MealStatus" minOccurs="0" nillable="true" type="sif:MealStatusType" />
      <xs:element name="HistoricalMealStatus" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:MealStatus" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LastBreakfastDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="LastLunchDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="Amounts" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Amount" minOccurs="0" maxOccurs="unbounded" type="sif:FSAmountType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey7">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="StudentMeal" type="sif:StudentMealType">
    <xs:unique name="StudentMealKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@StudentPersonalRefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceItem-->

  <xs:complexType name="FoodserviceItemType">
    <xs:sequence>
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ElectronicIdList" minOccurs="0" nillable="true" type="sif:ElectronicIdListType" />
      <xs:element name="ItemCategory" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <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_ExtendedElementsKey8">
          <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:complexType>

  <xs:element name="FoodserviceItem" type="sif:FoodserviceItemType">
    <xs:unique name="FoodserviceItemKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceItemUnit-->

  <xs:complexType name="FoodserviceItemUnitType">
    <xs:sequence>
      <xs:element name="FoodserviceItemRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Description" minOccurs="0" type="xs:string" />
      <xs:element name="MeasureDescriptionCode" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="GramWeight" minOccurs="0" type="xs:decimal" />
      <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_ExtendedElementsKey9">
          <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:complexType>

  <xs:element name="FoodserviceItemUnit" type="sif:FoodserviceItemUnitType">
    <xs:unique name="FoodserviceItemUnitKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceItemPortion-->

  <xs:complexType name="FoodserviceItemPortionType">
    <xs:sequence>
      <xs:element name="FoodserviceItemUnitRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="ItemPortionQuantity" minOccurs="0" type="xs:decimal" />
      <xs:element name="ItemPortionType" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Component" />
            <xs:enumeration value="Entree" />
            <xs:enumeration value="AlaCarte" />
            <xs:enumeration value="Bonus" />
            <xs:enumeration value="Combo" />
            <xs:enumeration value="NonFood" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <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_ExtendedElementsKey10">
          <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:complexType>

  <xs:element name="FoodserviceItemPortion" type="sif:FoodserviceItemPortionType">
    <xs:unique name="FoodserviceItemPortionKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceReimbursementRates-->

  <xs:complexType name="FoodserviceReimbursementRatesType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="StartDate" minOccurs="0" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="Agencies" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Agency" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="Rates" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Rate" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Value" minOccurs="0" type="xs:decimal" />
                              <xs:element ref="sif:MealStatus" minOccurs="0" />
                            </xs:sequence>
                            <xs:attribute name="SevereNeed" use="required">
                              <xs:simpleType>
                                <xs:restriction base="xs:token">
                                  <xs:enumeration value="Yes" />
                                  <xs:enumeration value="No" />
                                  <xs:enumeration value="NA" />
                                </xs:restriction>
                              </xs:simpleType>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Federal" />
                      <xs:enumeration value="State" />
                      <xs:enumeration value="Local" />
                      <xs:enumeration value="Other" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey11">
          <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:complexType>

  <xs:element name="FoodserviceReimbursementRates" type="sif:FoodserviceReimbursementRatesType">
    <xs:unique name="FoodserviceReimbursementRatesKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceMealPrices-->

  <xs:complexType name="FoodserviceMealPricesType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="Prices" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Price" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Value" minOccurs="0" type="sif:MonetaryAmountType" />
                  <xs:element ref="sif:MealStatus" minOccurs="0" />
                  <xs:element ref="sif:MealType" minOccurs="0" />
                  <xs:element ref="sif:GradeLevels" minOccurs="0" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey12">
          <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:complexType>

  <xs:element name="FoodserviceMealPrices" type="sif:FoodserviceMealPricesType">
    <xs:unique name="FoodserviceMealPricesKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StaffMeal-->

  <xs:complexType name="StaffMealType">
    <xs:sequence>
      <xs:element ref="sif:EarnedStatus" minOccurs="0" />
      <xs:element name="LastBreakfastDate" minOccurs="0" type="xs:date" />
      <xs:element name="LastLunchDate" minOccurs="0" type="xs:date" />
      <xs:element name="Amounts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Amount" minOccurs="0" maxOccurs="unbounded" type="sif:FSAmountType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey13">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="StaffPersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="StaffMeal" type="sif:StaffMealType">
    <xs:unique name="StaffMealKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@StaffPersonalRefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceTransaction-->

  <xs:complexType name="FoodserviceTransactionType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="TransactionDate" minOccurs="0" type="xs:date" />
      <xs:element name="TransactionTime" minOccurs="0" type="xs:time" />
      <xs:element name="TransactionTypes" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TransactionType" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Purchase" />
                  <xs:enumeration value="Prepayment" />
                  <xs:enumeration value="Refund" />
                  <xs:enumeration value="Repayment" />
                  <xs:enumeration value="Adjustment" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Customer" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MealStatus" minOccurs="0" nillable="true" type="sif:MealStatusType" />
            <xs:element name="EarnedStatus" minOccurs="0" nillable="true" type="sif:EarnedStatusType" />
          </xs:sequence>
          <xs:attribute name="SIF_RefId" use="required" type="sif:IdRefType" />
          <xs:attribute name="SIF_RefObject" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="StudentPersonal" />
                <xs:enumeration value="StaffPersonal" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="Amount" minOccurs="0" type="sif:FSAmountType" />
      <xs:element name="Tax" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="Voided" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </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:unique name="SIF_ExtendedElementsKey14">
          <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:complexType>

  <xs:element name="FoodserviceTransaction" type="sif:FoodserviceTransactionType">
    <xs:unique name="FoodserviceTransactionKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceTransactionDetails-->

  <xs:complexType name="FoodserviceTransactionDetailsType">
    <xs:sequence>
      <xs:element name="FoodserviceTransactionRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Amounts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Amount" minOccurs="0" maxOccurs="unbounded" type="sif:FSAmountType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <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_ExtendedElementsKey15">
          <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:complexType>

  <xs:element name="FoodserviceTransactionDetails" type="sif:FoodserviceTransactionDetailsType">
    <xs:unique name="FoodserviceTransactionDetailsKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceTransactionPayMethod-->

  <xs:complexType name="FoodserviceTransactionPayMethodType">
    <xs:sequence>
      <xs:element name="FoodserviceTransactionRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="TransactionPayMethods" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TransactionPayMethod" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Amounts" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Amount" minOccurs="0" maxOccurs="unbounded" type="sif:FSAmountType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Payment" />
                      <xs:enumeration value="Refund" />
                      <xs:enumeration value="Charge" />
                      <xs:enumeration value="Usage" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey16">
          <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:complexType>

  <xs:element name="FoodserviceTransactionPayMethod" type="sif:FoodserviceTransactionPayMethodType">
    <xs:unique name="FoodserviceTransactionPayMethodKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceSales-->

  <xs:complexType name="FoodserviceSalesType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Date" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="SalesAmounts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SalesAmount" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="sif:MonetaryAmountType">
                    <xs:attribute name="Type" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Cash" />
                          <xs:enumeration value="Account" />
                          <xs:enumeration value="Charged" />
                          <xs:enumeration value="Earned" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="AccountType" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="PrepaidCash" />
                          <xs:enumeration value="BreakfastCredit" />
                          <xs:enumeration value="LunchCredit" />
                          <xs:enumeration value="NA" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey17">
          <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:complexType>

  <xs:element name="FoodserviceSales" type="sif:FoodserviceSalesType">
    <xs:unique name="FoodserviceSalesKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceItemSales-->

  <xs:complexType name="FoodserviceItemSalesType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Date" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="ItemQuantities" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ItemQuantity" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Value" minOccurs="0" type="xs:decimal" />
                  <xs:element ref="sif:MealType" minOccurs="0" />
                  <xs:element ref="sif:GradeLevels" minOccurs="0" />
                  <xs:element name="Cost" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
                </xs:sequence>
                <xs:attribute name="FoodserviceItemPortionRefId" use="required" type="sif:IdRefType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey18">
          <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:complexType>

  <xs:element name="FoodserviceItemSales" type="sif:FoodserviceItemSalesType">
    <xs:unique name="FoodserviceItemSalesKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceMenuPlan-->

  <xs:complexType name="FoodserviceMenuPlanType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element ref="sif:GradeLevels" minOccurs="0" />
      <xs:element name="MenuPlanDate" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="ProjectedParticipation" minOccurs="0" type="xs:string" />
      <xs:element name="MenuPlanQuantities" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MenuPlanQuantity" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="sif:XSDecimalOrEmpty">
                    <xs:attribute name="FoodserviceItemPortionRefId" use="required" type="sif:IdRefType" />
                    <xs:attribute name="MenuCategory" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="ActualMeal" />
                          <xs:enumeration value="ProjectedMeal" />
                          <xs:enumeration value="ActualAlaCarte" />
                          <xs:enumeration value="ProjectedAlaCarte" />
                          <xs:enumeration value="Produced" />
                          <xs:enumeration value="LeftOver" />
                          <xs:enumeration value="Wasted" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey19">
          <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:complexType>

  <xs:element name="FoodserviceMenuPlan" type="sif:FoodserviceMenuPlanType">
    <xs:unique name="FoodserviceMenuPlanKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceMilkSales-->

  <xs:complexType name="FoodserviceMilkSalesType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Date" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="SaleQuantities" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SaleQuantity" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Value" minOccurs="0" type="xs:decimal" />
                  <xs:element ref="sif:MealStatus" minOccurs="0" />
                  <xs:element name="SaleUnit" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="ChargeToChild" minOccurs="0" type="sif:MonetaryAmountType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey20">
          <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:complexType>

  <xs:element name="FoodserviceMilkSales" type="sif:FoodserviceMilkSalesType">
    <xs:unique name="FoodserviceMilkSalesKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodservicePurchaseTransaction-->

  <xs:complexType name="FoodservicePurchaseTransactionType">
    <xs:sequence>
      <xs:element name="FoodserviceTransactionRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="PurchaseQuantities" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PurchaseQuantity" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:MealType" minOccurs="0" />
                  <xs:element name="Value" minOccurs="0" type="xs:decimal" />
                </xs:sequence>
                <xs:attribute name="FoodserviceItemPortionRefId" use="required" type="sif:IdRefType" />
                <xs:attribute name="Earned" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Yes" />
                      <xs:enumeration value="No" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey21">
          <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:complexType>

  <xs:element name="FoodservicePurchaseTransaction" type="sif:FoodservicePurchaseTransactionType">
    <xs:unique name="FoodservicePurchaseTransactionKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceStaffEnrollmentCount-->

  <xs:complexType name="FoodserviceStaffEnrollmentCountType">
    <xs:sequence>
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="Counts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Count" minOccurs="0" maxOccurs="unbounded" type="sif:FSCountType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey22">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="Date" use="required" type="xs:date" />
  </xs:complexType>

  <xs:element name="FoodserviceStaffEnrollmentCount" type="sif:FoodserviceStaffEnrollmentCountType">
    <xs:unique name="FoodserviceStaffEnrollmentCountKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@SchoolInfoRefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceStaffMealCounts-->

  <xs:complexType name="FoodserviceStaffMealCountsType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Date" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="Counts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Count" minOccurs="0" maxOccurs="unbounded" type="sif:FSCountType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey23">
          <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:complexType>

  <xs:element name="FoodserviceStaffMealCounts" type="sif:FoodserviceStaffMealCountsType">
    <xs:unique name="FoodserviceStaffMealCountsKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceStudentEnrollmentCount-->

  <xs:complexType name="FoodserviceStudentEnrollmentCountType">
    <xs:sequence>
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="Counts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Count" minOccurs="0" maxOccurs="unbounded" type="sif:FSCountType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey24">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="Date" use="required" type="xs:date" />
  </xs:complexType>

  <xs:element name="FoodserviceStudentEnrollmentCount" type="sif:FoodserviceStudentEnrollmentCountType">
    <xs:unique name="FoodserviceStudentEnrollmentCountKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@SchoolInfoRefId" />
    </xs:unique>
  </xs:element>


  <!--FoodserviceStudentMealCounts-->

  <xs:complexType name="FoodserviceStudentMealCountsType">
    <xs:sequence>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Date" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:Program" minOccurs="0" />
      <xs:element name="Counts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Count" minOccurs="0" maxOccurs="unbounded" type="sif:FSCountType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey25">
          <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:complexType>

  <xs:element name="FoodserviceStudentMealCounts" type="sif:FoodserviceStudentMealCountsType">
    <xs:unique name="FoodserviceStudentMealCountsKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentRecordExchangeTaskForce-->


  <!--StudentRecordExchange-->

  <xs:complexType name="StudentRecordExchangeType">
    <xs:sequence>
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
      <xs:element name="StudentPersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="Records" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentDemographicRecordRefId" minOccurs="0" type="sif:IdRefType" />
            <xs:element name="StudentAcademicRecordRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
            <xs:element name="StudentSpecialEducationRecordRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
            <xs:element name="OtherRecords" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="StudentRecordPackageRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey26">
          <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:complexType>

  <xs:element name="StudentRecordExchange" type="sif:StudentRecordExchangeType" />


  <!--StudentDemographicRecord-->

  <xs:complexType name="StudentDemographicRecordType">
    <xs:sequence>
      <xs:element name="ReportingDate" minOccurs="0" type="xs:date" />
      <xs:element name="StudentPersonalData" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
            <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
            <xs:element name="SSN" minOccurs="0" nillable="true" type="sif:SSNType" />
            <xs:element name="OtherIdList" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="OtherId" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:normalizedString">
                          <xs:attribute name="Type" use="required" type="sif:NCES0147IdentificationSystemType" />
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="Name" minOccurs="0" type="sif:NameOfRecordType" />
            <xs:element name="OtherNames" minOccurs="0" nillable="true" type="sif:OtherNamesType">
              <xs:unique name="OtherNamesKey2">
                <xs:selector xpath="./sif:Name" />
                <xs:field xpath="@Type" />
              </xs:unique>
            </xs:element>
            <xs:element name="DemographicsData" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="RaceList" minOccurs="0" nillable="true" type="sif:RaceListType" />
                  <xs:element name="Gender" minOccurs="0" nillable="true" type="sif:GenderType" />
                  <xs:element name="BirthDate" minOccurs="0" nillable="true" type="sif:BirthDateType" />
                  <xs:element name="EnglishProficiency" minOccurs="0" nillable="true" type="sif:EnglishProficiencyType" />
                  <xs:element name="LanguageList" minOccurs="0" nillable="true" type="sif:LanguageListType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
              <xs:unique name="AddressListKey3">
                <xs:selector xpath="./sif:Address" />
                <xs:field xpath="@Type" />
              </xs:unique>
            </xs:element>
            <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
              <xs:unique name="PhoneNumberListKey4">
                <xs:selector xpath="./sif:PhoneNumber" />
                <xs:field xpath="@Type" />
              </xs:unique>
            </xs:element>
            <xs:element name="IDEA" minOccurs="0" nillable="true" type="sif:IDEAType" />
            <xs:element name="Migrant" minOccurs="0" nillable="true" type="sif:MigrantType" />
            <xs:element name="Title1" minOccurs="0" nillable="true" type="sif:Title1Type" />
            <xs:element name="GiftedTalented" minOccurs="0" nillable="true" type="sif:GiftedTalentedType" />
            <xs:element name="EconomicDisadvantage" minOccurs="0" nillable="true" type="sif:EconomicDisadvantageType" />
            <xs:element name="ELL" minOccurs="0" nillable="true" type="sif:ELLType" />
            <xs:element name="Homeless" minOccurs="0" nillable="true" type="sif:HomelessType" />
            <xs:element name="Section504" minOccurs="0" nillable="true" type="sif:Section504Type" />
            <xs:element name="VocationalConcentrator" minOccurs="0" nillable="true" type="sif:VocationalConcentratorType" />
            <xs:element name="Immigrant" minOccurs="0" nillable="true" type="sif:ImmigrantType" />
            <xs:element name="NeglectedDelinquent" minOccurs="0" nillable="true" type="sif:NeglectedDelinquentType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StudentContactsSummary" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ParentGuardian1" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:Name" minOccurs="0" />
                  <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
                    <xs:unique name="PhoneNumberListKey5">
                      <xs:selector xpath="./sif:PhoneNumber" />
                      <xs:field xpath="@Type" />
                    </xs:unique>
                  </xs:element>
                  <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
                    <xs:unique name="AddressListKey4">
                      <xs:selector xpath="./sif:Address" />
                      <xs:field xpath="@Type" />
                    </xs:unique>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="ParentGuardian2" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:Name" minOccurs="0" />
                  <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
                    <xs:unique name="PhoneNumberListKey6">
                      <xs:selector xpath="./sif:PhoneNumber" />
                      <xs:field xpath="@Type" />
                    </xs:unique>
                  </xs:element>
                  <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
                    <xs:unique name="AddressListKey5">
                      <xs:selector xpath="./sif:Address" />
                      <xs:field xpath="@Type" />
                    </xs:unique>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey27">
          <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="SIF_RefId" use="required" type="sif:RefIdType" />
    <xs:attribute name="SIF_RefObject" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="StudentRecordExchange" />
          <xs:enumeration value="StudentPersonal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentDemographicRecord" type="sif:StudentDemographicRecordType">
    <xs:unique name="StudentDemographicRecordKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentAcademicRecord-->

  <xs:complexType name="StudentAcademicRecordType">
    <xs:sequence>
      <xs:element name="ReportingDate" minOccurs="0" type="xs:date" />
      <xs:element name="StudentSchoolEnrollmentData" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:GradeLevel" minOccurs="0" />
            <xs:element name="Advisor" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="StaffPersonalData" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element ref="sif:Name" minOccurs="0" />
                        <xs:element name="Title" minOccurs="0" nillable="true" type="xs:normalizedString" />
                        <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
                          <xs:unique name="AddressListKey6">
                            <xs:selector xpath="./sif:Address" />
                            <xs:field xpath="@Type" />
                          </xs:unique>
                        </xs:element>
                        <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
                          <xs:unique name="PhoneNumberListKey7">
                            <xs:selector xpath="./sif:PhoneNumber" />
                            <xs:field xpath="@Type" />
                          </xs:unique>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="Counselor" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="StaffPersonalData" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element ref="sif:Name" minOccurs="0" />
                        <xs:element name="Title" minOccurs="0" nillable="true" type="xs:normalizedString" />
                        <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
                          <xs:unique name="AddressListKey7">
                            <xs:selector xpath="./sif:Address" />
                            <xs:field xpath="@Type" />
                          </xs:unique>
                        </xs:element>
                        <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
                          <xs:unique name="PhoneNumberListKey8">
                            <xs:selector xpath="./sif:PhoneNumber" />
                            <xs:field xpath="@Type" />
                          </xs:unique>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="SchoolAttendedRefId" use="required" type="sif:IdRefType" />
        </xs:complexType>
      </xs:element>
      <xs:element name="DistrictEntryDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
      <xs:element name="SchoolAttendanceHistory" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SchoolAttended" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="LEAInfoData" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
                        <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
                        <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
                        <xs:element ref="sif:LEAName" minOccurs="0" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SchoolInfoData" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element ref="sif:LocalId" minOccurs="0" />
                        <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
                        <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
                        <xs:element ref="sif:SchoolName" minOccurs="0" />
                        <xs:element name="SchoolURL" minOccurs="0" nillable="true" type="sif:SchoolURLType" />
                        <xs:element name="SchoolContactList" minOccurs="0" nillable="true" type="sif:SchoolContactListType" />
                        <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
                          <xs:unique name="AddressListKey8">
                            <xs:selector xpath="./sif:Address" />
                            <xs:field xpath="@Type" />
                          </xs:unique>
                        </xs:element>
                        <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
                          <xs:unique name="PhoneNumberListKey9">
                            <xs:selector xpath="./sif:PhoneNumber" />
                            <xs:field xpath="@Type" />
                          </xs:unique>
                        </xs:element>
                        <xs:element name="IdentificationInfoList" minOccurs="0" nillable="true" type="sif:IdentificationInfoListType" />
                        <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="AccreditingBody" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="MarkingSystems" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="MarkValueInfoData" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Name" minOccurs="0" type="xs:string" />
                              <xs:element name="Percentage" minOccurs="0" nillable="true">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="Minimum" minOccurs="0" nillable="true" type="xs:decimal" />
                                    <xs:element name="Maximum" minOccurs="0" nillable="true" type="xs:decimal" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="Numeric" minOccurs="0" nillable="true">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="Precision" minOccurs="0" nillable="true" type="xs:unsignedInt" />
                                    <xs:element name="Scale" minOccurs="0" nillable="true" type="xs:unsignedInt" />
                                    <xs:element name="Low" minOccurs="0" nillable="true" type="xs:decimal" />
                                    <xs:element name="High" minOccurs="0" nillable="true" type="xs:decimal" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="Letter" minOccurs="0" nillable="true">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="ValidMark" minOccurs="0" maxOccurs="unbounded">
                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element name="Code" minOccurs="0" type="xs:token" />
                                          <xs:element name="NumericEquivalent" minOccurs="0" nillable="true" type="xs:decimal" />
                                          <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                                        </xs:sequence>
                                      </xs:complexType>
                                    </xs:element>
                                  </xs:sequence>
                                </xs:complexType>
                                <xs:unique name="LetterKey1">
                                  <xs:selector xpath="./sif:ValidMark" />
                                  <xs:field xpath="./sif:Code" />
                                </xs:unique>
                              </xs:element>
                              <xs:element name="Narrative" minOccurs="0" nillable="true">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="MaximumSize" minOccurs="0" nillable="true" type="xs:unsignedInt" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                            </xs:sequence>
                            <xs:attribute name="RefId" use="required" type="sif:RefIdType" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="RefId" use="required" type="sif:RefIdType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="EnrollmentHistory" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentSchoolEnrollmentData" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SchoolYear" minOccurs="0" nillable="true" type="sif:SchoolYearType" />
                  <xs:element name="EntryDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                  <xs:element name="ExitDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                </xs:sequence>
                <xs:attribute name="SchoolAttendedRefId" use="required" type="sif:IdRefType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CurrentCourseActivity" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TermInfoData" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SchoolYear" minOccurs="0" nillable="true" type="sif:SchoolYearType" />
                  <xs:element name="StartDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                  <xs:element name="EndDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                  <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                  <xs:element name="TermCode" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="Track" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="TermSpan" minOccurs="0" nillable="true" type="sif:TermSpanType" />
                </xs:sequence>
                <xs:attribute name="SchoolAttendedRefId" use="required" type="sif:IdRefType" />
              </xs:complexType>
            </xs:element>
            <xs:element name="Courses" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Course" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SchoolAttendedRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
                        <xs:element name="SchoolCourseInfoData" minOccurs="0">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="CourseCode" minOccurs="0" nillable="true" type="sif:CourseCodeType" />
                              <xs:element name="StateCourseCode" minOccurs="0" nillable="true" type="sif:StateCourseCodeType" />
                              <xs:element name="DistrictCourseCode" minOccurs="0" nillable="true" type="sif:DistrictCourseCodeType" />
                              <xs:element name="NationalCourseCode" minOccurs="0" nillable="true" type="xs:normalizedString" />
                              <xs:element name="SubjectAreaList" minOccurs="0" nillable="true" type="sif:SubjectAreaListType" />
                              <xs:element name="CourseTitle" minOccurs="0" nillable="true" type="sif:CourseTitleType" />
                              <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                              <xs:element name="InstructionalLevel" minOccurs="0" nillable="true" type="sif:InstructionalLevelType" />
                              <xs:element name="CoreAcademicCourse" minOccurs="0" nillable="true" type="xs:boolean" />
                              <xs:element name="GraduationRequirement" minOccurs="0" nillable="true" type="sif:GraduationRequirementType" />
                              <xs:element name="Department" minOccurs="0" nillable="true" type="xs:normalizedString" />
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                        <xs:element name="StartDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                        <xs:element name="EndDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                        <xs:element name="MarkingPeriod" minOccurs="0">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="TermInfoData" minOccurs="0" nillable="true">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="StartDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                                    <xs:element name="EndDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                                    <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                                    <xs:element name="TermCode" minOccurs="0" nillable="true" type="xs:normalizedString" />
                                    <xs:element name="Track" minOccurs="0" nillable="true" type="xs:normalizedString" />
                                    <xs:element name="TermSpan" minOccurs="0" nillable="true" type="sif:TermSpanType" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="GradeLevelWhenTaken" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
                              <xs:element name="MarkData" minOccurs="0" nillable="true">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="Percentage" minOccurs="0" nillable="true" type="xs:decimal" />
                                    <xs:element name="Numeric" minOccurs="0" nillable="true" type="xs:unsignedInt" />
                                    <xs:element name="Letter" minOccurs="0" nillable="true" type="xs:normalizedString" />
                                    <xs:element name="Narrative" minOccurs="0" nillable="true" type="xs:string" />
                                  </xs:sequence>
                                  <xs:attribute name="MarkValueInfoDataRefId" use="required" type="sif:IdRefType" />
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="CourseCreditsAttempted" minOccurs="0" nillable="true" type="xs:decimal" />
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CourseHistory" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Term" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="TermInfoData" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SchoolYear" minOccurs="0" nillable="true" type="sif:SchoolYearType" />
                        <xs:element name="StartDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                        <xs:element name="EndDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                        <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                        <xs:element name="TermCode" minOccurs="0" nillable="true" type="xs:normalizedString" />
                        <xs:element name="Track" minOccurs="0" nillable="true" type="xs:normalizedString" />
                        <xs:element name="TermSpan" minOccurs="0" nillable="true" type="sif:TermSpanType" />
                      </xs:sequence>
                      <xs:attribute name="SchoolAttendedRefId" use="required" type="sif:IdRefType" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Courses" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Course" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="SchoolAttendedRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
                              <xs:element name="SchoolCourseInfoData" minOccurs="0">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="CourseCode" minOccurs="0" nillable="true" type="sif:CourseCodeType" />
                                    <xs:element name="StateCourseCode" minOccurs="0" nillable="true" type="sif:StateCourseCodeType" />
                                    <xs:element name="DistrictCourseCode" minOccurs="0" nillable="true" type="sif:DistrictCourseCodeType" />
                                    <xs:element name="NationalCourseCode" minOccurs="0" nillable="true" type="xs:normalizedString" />
                                    <xs:element name="SubjectAreaList" minOccurs="0" nillable="true" type="sif:SubjectAreaListType" />
                                    <xs:element name="CourseTitle" minOccurs="0" nillable="true" type="sif:CourseTitleType" />
                                    <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                                    <xs:element name="InstructionalLevel" minOccurs="0" nillable="true" type="sif:InstructionalLevelType" />
                                    <xs:element name="CoreAcademicCourse" minOccurs="0" nillable="true" type="xs:boolean" />
                                    <xs:element name="GraduationRequirement" minOccurs="0" nillable="true" type="sif:GraduationRequirementType" />
                                    <xs:element name="Department" minOccurs="0" nillable="true" type="xs:normalizedString" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="StartDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                              <xs:element name="EndDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                              <xs:element name="MarkingPeriods" minOccurs="0">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="MarkingPeriod" minOccurs="0" maxOccurs="unbounded">
                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element name="SchoolAttendedRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
                                          <xs:element name="TermInfoData" minOccurs="0" nillable="true">
                                            <xs:complexType>
                                              <xs:sequence>
                                                <xs:element name="StartDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                                                <xs:element name="EndDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                                                <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                                                <xs:element name="TermCode" minOccurs="0" nillable="true" type="xs:normalizedString" />
                                                <xs:element name="Track" minOccurs="0" nillable="true" type="xs:normalizedString" />
                                                <xs:element name="TermSpan" minOccurs="0" nillable="true" type="sif:TermSpanType" />
                                              </xs:sequence>
                                            </xs:complexType>
                                          </xs:element>
                                          <xs:element name="GradeLevelWhenTaken" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
                                          <xs:element name="MarkData" minOccurs="0" nillable="true">
                                            <xs:complexType>
                                              <xs:sequence>
                                                <xs:element name="Percentage" minOccurs="0" nillable="true" type="xs:decimal" />
                                                <xs:element name="Numeric" minOccurs="0" nillable="true" type="xs:unsignedInt" />
                                                <xs:element name="Letter" minOccurs="0" nillable="true" type="xs:normalizedString" />
                                                <xs:element name="Narrative" minOccurs="0" nillable="true" type="xs:string" />
                                              </xs:sequence>
                                              <xs:attribute name="MarkValueInfoDataRefId" use="required" type="sif:IdRefType" />
                                            </xs:complexType>
                                          </xs:element>
                                          <xs:element name="CourseCreditsAttempted" minOccurs="0" nillable="true" type="xs:decimal" />
                                          <xs:element name="CourseCreditsEarned" minOccurs="0" nillable="true" type="xs:decimal" />
                                          <xs:element name="CreditType" minOccurs="0" nillable="true" type="sif:NCES0108CreditTypeEarnedType" />
                                          <xs:element name="ExcessiveAbsenceIndicator" minOccurs="0" nillable="true" type="xs:boolean" />
                                          <xs:element name="DaysAbsent" minOccurs="0" nillable="true" type="xs:decimal" />
                                          <xs:element name="DaysPresent" minOccurs="0" nillable="true" type="xs:decimal" />
                                        </xs:sequence>
                                      </xs:complexType>
                                    </xs:element>
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AcademicPerformanceHistory" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TermPerformance" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="TermInfoData" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SchoolYear" minOccurs="0" nillable="true" type="sif:SchoolYearType" />
                        <xs:element name="StartDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                        <xs:element name="EndDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                        <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                        <xs:element name="TermCode" minOccurs="0" nillable="true" type="xs:normalizedString" />
                        <xs:element name="Track" minOccurs="0" nillable="true" type="xs:normalizedString" />
                        <xs:element name="TermSpan" minOccurs="0" nillable="true" type="sif:TermSpanType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="GradeLevelWhenTaken" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
                  <xs:element name="CreditsAttempted" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="CreditsEarned" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="GPACreditsAttempted" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="GPACreditsEarned" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="GPAGradePoints" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="GPA" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="WeightedGPA" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="DaysAbsent" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="DaysPresent" minOccurs="0" nillable="true" type="xs:decimal" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AcademicPerformanceSummary" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TotalCreditsAttempted" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="TotalCreditsEarned" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="CumulativeGPACreditsEarned" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="CumulativeGradePoints" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="CumulativeGPA" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="GPAType" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="ClassRank" minOccurs="0" nillable="true" type="xs:unsignedInt" />
            <xs:element name="ClassTotalNumber" minOccurs="0" nillable="true" type="xs:unsignedInt" />
            <xs:element name="ClassRankingDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
            <xs:element name="ProjectedGraduationDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
            <xs:element name="GraduationDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
            <xs:element name="GraduationDiplomaType" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="AcademicTrack" minOccurs="0" nillable="true" type="sif:NCES0106CourseInstructionalLevelType" />
            <xs:element name="AcademicFoci" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="AcademicFocus" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Code" minOccurs="0" type="sif:NCES0229ProgramTypeType" />
                        <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="AcademicSubjects" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="AcademicSubject" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Code" minOccurs="0" type="sif:NCES0373PostsecondarySubjectMatterAreaType" />
                        <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AssessmentPerformanceHistory" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Assessment" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="AdministrationDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                  <xs:element name="Form" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="Level" minOccurs="0" nillable="true" type="xs:string" />
                  <xs:element name="StudentGradeLevelWhenAssessed" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
                  <xs:element name="SubtestCategory" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="TestScoreType" minOccurs="0" nillable="true" type="sif:NCES0056AssessmentReportingMethodType" />
                  <xs:element name="TestScore" minOccurs="0" nillable="true" type="xs:normalizedString" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AdditionalGraduationRequirementPerformanceHistory" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Requirement" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="Method" minOccurs="0" nillable="true" type="xs:string" />
                  <xs:element name="Status" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Met" />
                        <xs:enumeration value="Not Met" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="StatusDeterminationDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ActivityAwardHistory" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ActivityAward" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="InvolvementCode" minOccurs="0" nillable="true" type="sif:NCES0679ActivityInvolvementCodeType" />
                  <xs:element name="InvolvementBeginningDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                  <xs:element name="InvolvementEndingDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
                  <xs:element name="InvolvementAmount" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="HonorsInformationCode" minOccurs="0" nillable="true" type="sif:NCES0674HonorsTypeType" />
                  <xs:element name="HonorsDescription" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="DiplomaCredentialHonorsCode" minOccurs="0" nillable="true" type="sif:NCES0684DiplomaCredentialLevelAndHonorsType" />
                  <xs:element name="DiplomaCredentialHonorsDescription" minOccurs="0" nillable="true" type="xs:normalizedString" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey28">
          <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="SIF_RefId" use="required" type="sif:RefIdType" />
    <xs:attribute name="SIF_RefObject" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="StudentRecordExchange" />
          <xs:enumeration value="StudentPersonal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentAcademicRecord" type="sif:StudentAcademicRecordType">
    <xs:unique name="StudentAcademicRecordKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentSpecialEducationRecord-->

  <xs:complexType name="StudentSpecialEducationRecordType">
    <xs:sequence>
      <xs:element name="ReportingDate" minOccurs="0" type="xs:date" />
      <xs:element name="LEAInfoData" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
            <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
            <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
            <xs:element ref="sif:LEAName" minOccurs="0" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SchoolInfoData" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:LocalId" minOccurs="0" />
            <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
            <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
            <xs:element ref="sif:SchoolName" minOccurs="0" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StudentParticipationData" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:ProgramType" minOccurs="0" />
            <xs:element name="LEAInfoData" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
                  <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
                  <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
                  <xs:element ref="sif:LEAName" minOccurs="0" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="SchoolInfoData" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:LocalId" minOccurs="0" />
                  <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
                  <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
                  <xs:element ref="sif:SchoolName" minOccurs="0" />
                  <xs:element name="SchoolURL" minOccurs="0" nillable="true" type="sif:SchoolURLType" />
                  <xs:element name="SchoolContactList" minOccurs="0" nillable="true" type="sif:SchoolContactListType" />
                  <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
                    <xs:unique name="AddressListKey9">
                      <xs:selector xpath="./sif:Address" />
                      <xs:field xpath="@Type" />
                    </xs:unique>
                  </xs:element>
                  <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
                    <xs:unique name="PhoneNumberListKey10">
                      <xs:selector xpath="./sif:PhoneNumber" />
                      <xs:field xpath="@Type" />
                    </xs:unique>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="ReferralDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
            <xs:element name="ProgramStatus" minOccurs="0" nillable="true" type="sif:ProgramStatusType" />
            <xs:element name="EvaluationDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
            <xs:element name="ReevaluationDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
            <xs:element name="ExceptionalityCategories" minOccurs="0" nillable="true" type="sif:ExceptionalityCategoriesType" />
            <xs:element name="ProgramPlanDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
            <xs:element name="ProgramPlanEffectiveDate" minOccurs="0" nillable="true" type="sif:PartialDateType" />
            <xs:element name="PlannedAssessmentParticipation" minOccurs="0" nillable="true" type="sif:PlannedAssessmentParticipationType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey29">
          <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="SIF_RefId" use="required" type="sif:RefIdType" />
    <xs:attribute name="SIF_RefObject" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="StudentRecordExchange" />
          <xs:enumeration value="StudentPersonal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentSpecialEducationRecord" type="sif:StudentSpecialEducationRecordType">
    <xs:unique name="StudentSpecialEducationRecordKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentRecordPackage-->

  <xs:complexType name="StudentRecordPackageType">
    <xs:complexContent>
      <xs:extension base="sif:AbstractContentPackageType">
        <xs:attribute name="SIF_RefId" use="required" type="sif:RefIdType" />
        <xs:attribute name="SIF_RefObject" use="required">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="StudentRecordExchange" />
              <xs:enumeration value="StudentPersonal" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:element name="StudentRecordPackage" type="sif:StudentRecordPackageType" />


  <!--GradeBookWorkingGroup-->


  <!--MarkValueInfo-->

  <xs:complexType name="MarkValueInfoType">
    <xs:sequence>
      <xs:element ref="sif:SchoolYear" minOccurs="0" />
      <xs:element name="Name" minOccurs="0" type="xs:string" />
      <xs:element name="Percentage" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Minimum" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="Maximum" minOccurs="0" nillable="true" type="xs:decimal" />
          </xs:sequence>
          <xs:attribute name="IsAccepted" use="required" type="xs:boolean" />
        </xs:complexType>
      </xs:element>
      <xs:element name="Numeric" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Precision" minOccurs="0" nillable="true" type="xs:unsignedInt" />
            <xs:element name="Scale" minOccurs="0" nillable="true" type="xs:unsignedInt" />
            <xs:element name="Low" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="High" minOccurs="0" nillable="true" type="xs:decimal" />
          </xs:sequence>
          <xs:attribute name="IsAccepted" use="required" type="xs:boolean" />
        </xs:complexType>
      </xs:element>
      <xs:element name="Letter" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ValidMark" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Code" minOccurs="0" type="xs:token" />
                  <xs:element name="NumericEquivalent" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                </xs:sequence>
                <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:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="IsAccepted" use="required" type="xs:boolean" />
        </xs:complexType>
        <xs:unique name="LetterKey2">
          <xs:selector xpath="./sif:ValidMark" />
          <xs:field xpath="./sif:Code" />
        </xs:unique>
      </xs:element>
      <xs:element name="Narrative" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MaximumSize" minOccurs="0" nillable="true" type="xs:unsignedInt" />
          </xs:sequence>
          <xs:attribute name="IsAccepted" use="required" type="xs:boolean" />
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey30">
          <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="SchoolInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="MarkValueInfo" type="sif:MarkValueInfoType">
    <xs:unique name="MarkValueInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--MarkInfo-->

  <xs:complexType name="MarkInfoType">
    <xs:sequence>
      <xs:element ref="sif:SchoolYear" minOccurs="0" />
      <xs:element name="Description" minOccurs="0" type="xs:string" />
      <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_ExtendedElementsKey31">
          <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="MarkValueInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="MarkInfo" type="sif:MarkInfoType">
    <xs:unique name="MarkInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--SectionMarkInfo-->

  <xs:complexType name="SectionMarkInfoType">
    <xs:sequence>
      <xs:element name="TermMarkLists" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MarkInfoList" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="MarkInfoRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
                </xs:sequence>
                <xs:attribute name="TermInfoRefId" use="required" type="sif:IdRefType" />
                <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:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
        <xs:unique name="TermMarkListsKey1">
          <xs:selector xpath="./sif:MarkInfoList" />
          <xs:field xpath="@TermInfoRefId" />
        </xs:unique>
      </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:unique name="SIF_ExtendedElementsKey32">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="SectionInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="SectionMarkInfo" type="sif:SectionMarkInfoType">
    <xs:unique name="SectionMarkInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@SectionInfoRefId" />
      <xs:field xpath="@SchoolInfoRefId" />
    </xs:unique>
  </xs:element>


  <!--StudentSectionMarks-->

  <xs:complexType name="StudentSectionMarksType">
    <xs:sequence>
      <xs:element name="IsFinal" minOccurs="0" type="xs:boolean" />
      <xs:element name="MarkList" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Mark" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Percentage" minOccurs="0" nillable="true">
                    <xs:simpleType>
                      <xs:restriction base="xs:decimal">
                        <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                        <xs:maxInclusive value="100" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                        <xs:fractionDigits value="2" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Numeric" minOccurs="0" nillable="true" type="xs:decimal" />
                  <xs:element name="Letter" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="Narrative" minOccurs="0" nillable="true" type="xs:string" />
                </xs:sequence>
                <xs:attribute name="MarkInfoRefId" use="required" type="sif:IdRefType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey33">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SectionInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="TermInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="StudentSectionMarks" type="sif:StudentSectionMarksType">
    <xs:unique name="StudentSectionMarksKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@StudentPersonalRefId" />
      <xs:field xpath="@SectionInfoRefId" />
      <xs:field xpath="@TermInfoRefId" />
    </xs:unique>
  </xs:element>


  <!--GradingCategory-->

  <xs:complexType name="GradingCategoryType">
    <xs:sequence>
      <xs:element name="Description" minOccurs="0" type="xs:string" />
      <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_ExtendedElementsKey34">
          <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="SectionInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="TermInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="GradingCategory" type="sif:GradingCategoryType">
    <xs:unique name="GradingCategoryKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--GradingAssignment-->

  <xs:complexType name="GradingAssignmentType">
    <xs:sequence>
      <xs:element name="Description" minOccurs="0" type="xs:string" />
      <xs:element name="PointsPossible" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="CreateDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="DueDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="Weight" minOccurs="0" nillable="true" type="xs:decimal" />
      <xs:element name="DetailedDescription" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:URIOrBinaryTypeOrEmpty">
              <xs:attribute name="Type" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="URL" />
                    <xs:enumeration value="PDF" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey35">
          <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="SectionInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="TermInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="GradingCategoryRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="GradingAssignment" type="sif:GradingAssignmentType">
    <xs:unique name="GradingAssignmentKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--GradingAssignmentScore-->

  <xs:complexType name="GradingAssignmentScoreType">
    <xs:sequence>
      <xs:element name="ScorePoints" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="ScorePercent" minOccurs="0" nillable="true" type="xs:decimal" />
      <xs:element name="ScoreLetter" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="ScoreDescription" minOccurs="0" nillable="true" type="xs:string" />
      <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_ExtendedElementsKey36">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SectionInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="GradingAssignmentRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="GradingAssignmentScore" type="sif:GradingAssignmentScoreType">
    <xs:unique name="GradingAssignmentScoreKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@StudentPersonalRefId" />
      <xs:field xpath="@GradingAssignmentRefId" />
    </xs:unique>
  </xs:element>


  <!--StudentPeriodAttendance-->

  <xs:complexType name="StudentPeriodAttendanceType">
    <xs:sequence>
      <xs:element name="TimetablePeriod" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="TimeIn" minOccurs="0" nillable="true" type="xs:time" />
      <xs:element name="TimeOut" minOccurs="0" nillable="true" type="xs:time" />
      <xs:element name="AttendanceCode" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:token">
              <xs:attribute name="AttendanceCodeInfoRefId" use="required" type="sif:IdRefType" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="AuditInfo" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CreationUser" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="UserId" minOccurs="0" type="xs:normalizedString" />
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Office Staff" />
                      <xs:enumeration value="School Admin" />
                      <xs:enumeration value="Parent" />
                      <xs:enumeration value="Nurse" />
                      <xs:enumeration value="Teacher" />
                      <xs:enumeration value="Other" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
            <xs:element name="CreationDateTime" minOccurs="0" type="xs:dateTime" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AttendanceComment" minOccurs="0" nillable="true" type="xs:string" />
      <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_ExtendedElementsKey37">
          <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="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SectionInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="Date" use="required" type="xs:date" />
  </xs:complexType>

  <xs:element name="StudentPeriodAttendance" type="sif:StudentPeriodAttendanceType">
    <xs:unique name="StudentPeriodAttendanceKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--OfficialStudentPeriodAttendance-->

  <xs:complexType name="OfficialStudentPeriodAttendanceType">
    <xs:complexContent>
      <xs:extension base="sif:StudentPeriodAttendanceType" />
    </xs:complexContent>
  </xs:complexType>

  <xs:element name="OfficialStudentPeriodAttendance" type="sif:OfficialStudentPeriodAttendanceType" />


  <!--StudentGrade-->

  <xs:complexType name="StudentGradeType">
    <xs:sequence>
      <xs:element name="StudentPersonalRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="SectionInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element ref="sif:SchoolYear" minOccurs="0" />
      <xs:element name="Grade" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Percentage" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="0.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="100.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="Numeric" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="OutOf" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="Low" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="High" minOccurs="0" nillable="true" type="xs:decimal" />
            <xs:element name="Letter" minOccurs="0" nillable="true" type="xs:token" />
            <xs:element name="Narrative" minOccurs="0" nillable="true" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey38">
          <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:complexType>

  <xs:element name="StudentGrade" type="sif:StudentGradeType">
    <xs:unique name="StudentGradeKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--HumanResourcesFinancialsWorkingGroup-->


  <!--Billing-->

  <xs:complexType name="BillingType">
    <xs:sequence>
      <xs:element name="BilledEntity" minOccurs="0">
        <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="StudentPersonal" />
                    <xs:enumeration value="StaffPersonal" />
                    <xs:enumeration value="VendorInfo" />
                    <xs:enumeration value="Purchasing" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="BillingDate" minOccurs="0" type="xs:date" />
      <xs:element name="TransactionDescription" minOccurs="0" type="xs:string" />
      <xs:element name="BilledAmount" minOccurs="0" type="sif:MonetaryAmountType" />
      <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_ExtendedElementsKey39">
          <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:complexType>

  <xs:element name="Billing" type="sif:BillingType">
    <xs:unique name="BillingKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--Payment-->

  <xs:complexType name="PaymentType">
    <xs:sequence>
      <xs:element name="ReceivedDate" minOccurs="0" type="xs:date" />
      <xs:element name="ReceivedAmount" minOccurs="0" type="sif:MonetaryAmountType" />
      <xs:element name="ReceivedTransactionId" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="TransactionDescription" minOccurs="0" nillable="true" type="xs:string" />
      <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_ExtendedElementsKey40">
          <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="BillingRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="Payment" type="sif:PaymentType">
    <xs:unique name="PaymentKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--EmployeeAssignment-->

  <xs:complexType name="EmployeeAssignmentType">
    <xs:sequence>
      <xs:element name="Description" minOccurs="0" type="xs:string" />
      <xs:element name="PrimaryAssignment" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="LocationInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="JobStartDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="JobEndDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="JobFTE" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:fractionDigits value="2" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="JobClassification" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0557JobClassificationType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ProgramType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0229ProgramTypeType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="FundingSource" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0222ProgramFundingSourceType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey41">
          <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="EmployeePersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="EmployeeAssignment" type="sif:EmployeeAssignmentType">
    <xs:unique name="EmployeeAssignmentKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--EmployeeContract-->

  <xs:complexType name="EmployeeContractType">
    <xs:sequence>
      <xs:element name="BaseSalary" minOccurs="0" type="sif:MonetaryAmountType" />
      <xs:element name="ContractStartDate" minOccurs="0" type="xs:date" />
      <xs:element name="ContractEndDate" minOccurs="0" type="xs:date" />
      <xs:element name="ContractTerm" minOccurs="0" nillable="true" type="sif:NCES0468ContractualTermType" />
      <xs:element name="ContractDays" minOccurs="0" nillable="true" type="xs:decimal" />
      <xs:element name="AssignmentDays" minOccurs="0" nillable="true" type="xs:decimal" />
      <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_ExtendedElementsKey42">
          <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="EmployeePersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="EmployeeContract" type="sif:EmployeeContractType">
    <xs:unique name="EmployeeContractKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--EmploymentRecord-->

  <xs:complexType name="EmploymentRecordType">
    <xs:sequence>
      <xs:element name="LEAInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Active" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="FullTimeStatus" minOccurs="0" nillable="true" type="sif:NCES0476FullTimeStatusType" />
      <xs:element name="HireDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="TerminationDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="TotalYearsExperience" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="PositionTitle" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="PositionNumber" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="SeniorityDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="TenureDate" minOccurs="0" nillable="true" type="xs:date" />
      <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_ExtendedElementsKey43">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="SIF_RefId" use="optional" type="sif:IdRefType" />
    <xs:attribute name="SIF_RefObject" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="EmployeePersonal" />
          <xs:enumeration value="StaffPersonal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="EmploymentRecord" type="sif:EmploymentRecordType">
    <xs:unique name="EmploymentRecordKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@SIF_RefId" />
      <xs:field xpath="@SIF_RefObject" />
    </xs:unique>
  </xs:element>


  <!--EmployeePersonal-->

  <xs:complexType name="EmployeePersonalType">
    <xs:sequence>
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="OtherIdList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="OtherId" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Type" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="SSN" />
                          <xs:enumeration value="State" />
                          <xs:enumeration value="Local" />
                          <xs:enumeration value="Other" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element ref="sif:Name" minOccurs="0" />
      <xs:element name="Demographics" minOccurs="0" nillable="true" type="sif:DemographicsType" />
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:unique name="AddressListKey10">
          <xs:selector xpath="./sif:Address" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:unique name="PhoneNumberListKey11">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:unique name="EmailListKey3">
          <xs:selector xpath="./sif:Email" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </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:unique name="SIF_ExtendedElementsKey44">
          <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:complexType>

  <xs:element name="EmployeePersonal" type="sif:EmployeePersonalType">
    <xs:unique name="EmployeePersonalKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--EmployeePicture-->

  <xs:complexType name="EmployeePictureType">
    <xs:sequence>
      <xs:element name="PictureSource" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:URIOrBinaryTypeOrEmpty">
              <xs:attribute name="Type" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="URL" />
                    <xs:enumeration value="JPEG" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey45">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="EmployeePersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="EmployeePicture" type="sif:EmployeePictureType">
    <xs:unique name="EmployeePictureKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@EmployeePersonalRefId" />
    </xs:unique>
  </xs:element>


  <!--FinancialAnnual-->

  <xs:complexType name="FinancialAnnualType">
    <xs:sequence>
      <xs:element name="ReportDate" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:StateProvinceId" minOccurs="0" />
      <xs:element name="FiscalYear" minOccurs="0" type="xs:gYear" />
      <xs:element name="AnnualItems" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AnnualItem" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="AccountType" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Revenue" />
                        <xs:enumeration value="Expenditure" />
                        <xs:enumeration value="Other" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="FundType" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="General" />
                        <xs:enumeration value="Special" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
                  <xs:element name="ExpenditureArea" minOccurs="0" nillable="true">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Elementary" />
                        <xs:enumeration value="Secondary" />
                        <xs:enumeration value="Federal" />
                        <xs:enumeration value="Other" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Function" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="Object" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="InstructionalProgram" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="Amount" minOccurs="0" type="xs:decimal" />
                  <xs:element name="SpecialAmountType" minOccurs="0" nillable="true">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="1" />
                        <xs:enumeration value="2" />
                        <xs:enumeration value="3" />
                        <xs:enumeration value="4" />
                        <xs:enumeration value="5" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="GLAmountType" minOccurs="0" nillable="true">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="1" />
                        <xs:enumeration value="2" />
                        <xs:enumeration value="3" />
                        <xs:enumeration value="4" />
                        <xs:enumeration value="5" />
                        <xs:enumeration value="6" />
                        <xs:enumeration value="7" />
                        <xs:enumeration value="8" />
                        <xs:enumeration value="9" />
                        <xs:enumeration value="10" />
                        <xs:enumeration value="11" />
                        <xs:enumeration value="12" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey46">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="FinancialAnnual" type="sif:FinancialAnnualType" />


  <!--FinancialBudget-->

  <xs:complexType name="FinancialBudgetType">
    <xs:sequence>
      <xs:element name="ReportDate" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:StateProvinceId" minOccurs="0" />
      <xs:element name="FiscalYear" minOccurs="0" type="xs:gYear" />
      <xs:element name="BudgetAccounts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="BudgetAccount" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="AccountClass" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Revenue" />
                        <xs:enumeration value="Expenditure" />
                        <xs:enumeration value="Other" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="FundBreakdown" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="FunctionBreakdown" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="ObjectBreakdown" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="BudgetAmount" minOccurs="0" type="xs:unsignedInt" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey47">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="FinancialBudget" type="sif:FinancialBudgetType" />


  <!--TimeWorked-->

  <xs:complexType name="TimeWorkedType">
    <xs:sequence>
      <xs:element name="EmployeePersonalRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="LocationInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="JobFunction" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0568FunctionTypeType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="RegularHours" minOccurs="0" type="xs:decimal" />
      <xs:element name="OvertimeHours" minOccurs="0" type="xs:decimal" />
      <xs:element name="PayPeriod" minOccurs="0" type="xs:normalizedString" />
      <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_ExtendedElementsKey48">
          <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:complexType>

  <xs:element name="TimeWorked" type="sif:TimeWorkedType">
    <xs:unique name="TimeWorkedKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--VendorInfo-->

  <xs:complexType name="VendorInfoType">
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="ContactInfo" minOccurs="0" nillable="true" type="sif:ContactInfoType" />
      <xs:element name="CustomerId" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="EmployeePersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="Send1099" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="FederalTaxId" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:normalizedString">
              <xs:attribute name="Code" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="EIN" />
                    <xs:enumeration value="SSNO" />
                    <xs:enumeration value="ITIN" />
                    <xs:enumeration value="ATIN" />
                    <xs:enumeration value="OTHER" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey49">
          <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:complexType>

  <xs:element name="VendorInfo" type="sif:VendorInfoType">
    <xs:unique name="VendorInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--W4-->

  <xs:complexType name="W4Type">
    <xs:sequence>
      <xs:element name="W4Date" minOccurs="0" type="xs:date" />
      <xs:element name="MaritalStatusRate" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Married" />
            <xs:enumeration value="Single" />
            <xs:enumeration value="MarriedSingleRate" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FederalAllowancesNumber" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="StateAllowancesNumber" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element ref="sif:StateProvince" minOccurs="0" />
      <xs:element name="Exempt" minOccurs="0" type="xs:boolean" />
      <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_ExtendedElementsKey50">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="EmployeePersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="W4" type="sif:W4Type">
    <xs:unique name="W4Key1">
      <xs:selector xpath="." />
      <xs:field xpath="@EmployeePersonalRefId" />
    </xs:unique>
  </xs:element>


  <!--EmployeeWage-->

  <xs:complexType name="EmployeeWageType">
    <xs:sequence>
      <xs:element name="PayRates" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PayRate" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Amount" minOccurs="0" type="sif:MonetaryAmountType" />
                  <xs:element name="Percentage" minOccurs="0" type="xs:decimal" />
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="P" />
                      <xs:enumeration value="H" />
                      <xs:enumeration value="D" />
                      <xs:enumeration value="X" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey51">
          <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="EmployeePersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="EmployeeWage" type="sif:EmployeeWageType">
    <xs:unique name="EmployeeWageKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--LocationInfo-->

  <xs:complexType name="LocationInfoType">
    <xs:sequence>
      <xs:element name="SiteCategory" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="IdentificationInfoList" minOccurs="0" nillable="true" type="sif:IdentificationInfoListType" />
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
      <xs:element name="LEAInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="OtherLEAs" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LEAInfoRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ParentLocationInfo" 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="LocationInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="SchoolInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:unique name="AddressListKey11">
          <xs:selector xpath="./sif:Address" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:unique name="PhoneNumberListKey12">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </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:unique name="SIF_ExtendedElementsKey52">
          <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="LocationType" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="School" />
          <xs:enumeration value="NonSchool" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LocationInfo" type="sif:LocationInfoType">
    <xs:unique name="LocationInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--Purchasing-->

  <xs:complexType name="PurchasingType">
    <xs:sequence>
      <xs:element name="FormType" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="PO" />
            <xs:enumeration value="REQ" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FormNumber" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="FiscalYearRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="VendorInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="LocationInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="EmployeePersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="PurchasingItems" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PurchasingItem" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="ItemNumber" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="ItemDescription" minOccurs="0" type="xs:string" />
                  <xs:element name="Quantity" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="UnitCost" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
                  <xs:element name="ExpenseAccounts" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="ExpenseAccount" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="AccountCode" minOccurs="0" type="xs:token" />
                              <xs:element name="Amount" minOccurs="0" type="sif:MonetaryAmountType" />
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey53">
          <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:complexType>

  <xs:element name="Purchasing" type="sif:PurchasingType">
    <xs:unique name="PurchasingKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AccountingPeriod-->

  <xs:complexType name="AccountingPeriodType">
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="FiscalYearRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="StartDate" minOccurs="0" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" type="xs:date" />
      <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_ExtendedElementsKey54">
          <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:complexType>

  <xs:element name="AccountingPeriod" type="sif:AccountingPeriodType">
    <xs:unique name="AccountingPeriodKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FinancialAccount-->

  <xs:complexType name="FinancialAccountType">
    <xs:sequence>
      <xs:element name="AccountNumber" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="FinancialClassRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="CreationDate" minOccurs="0" type="xs:date" />
      <xs:element name="CreationTime" minOccurs="0" type="xs:time" />
      <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_ExtendedElementsKey55">
          <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:complexType>

  <xs:element name="FinancialAccount" type="sif:FinancialAccountType">
    <xs:unique name="FinancialAccountKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FinancialAccountAccountingPeriodLocationInfo-->

  <xs:complexType name="FinancialAccountAccountingPeriodLocationInfoType">
    <xs:sequence>
      <xs:element name="FinancialAccountRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="AccountingPeriodRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="LocationInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <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_ExtendedElementsKey56">
          <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:complexType>

  <xs:element name="FinancialAccountAccountingPeriodLocationInfo" type="sif:FinancialAccountAccountingPeriodLocationInfoType">
    <xs:unique name="FinancialAccountAccountingPeriodLocationInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FinancialClass-->

  <xs:complexType name="FinancialClassType">
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="ClassType" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Asset" />
            <xs:enumeration value="Liability" />
            <xs:enumeration value="Revenue" />
            <xs:enumeration value="Expense" />
          </xs:restriction>
        </xs:simpleType>
      </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:unique name="SIF_ExtendedElementsKey57">
          <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:complexType>

  <xs:element name="FinancialClass" type="sif:FinancialClassType">
    <xs:unique name="FinancialClassKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FinancialIncomeStatement-->

  <xs:complexType name="FinancialIncomeStatementType">
    <xs:sequence>
      <xs:element name="GenerationDate" minOccurs="0" type="xs:date" />
      <xs:element name="GenerationTime" minOccurs="0" type="xs:time" />
      <xs:element name="LocationInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="Period" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StartDate" minOccurs="0" type="xs:date" />
            <xs:element name="EndDate" minOccurs="0" type="xs:date" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Amounts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Amount" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="sif:MonetaryAmountType">
                    <xs:attribute name="FinancialAccountAccountingPeriodLocationInfoRefId" use="required" type="sif:IdRefType" />
                    <xs:attribute name="FinancialClassRefId" use="required" type="sif:IdRefType" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Program" minOccurs="0" nillable="true" type="sif:ProgramType" />
      <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_ExtendedElementsKey58">
          <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:complexType>

  <xs:element name="FinancialIncomeStatement" type="sif:FinancialIncomeStatementType">
    <xs:unique name="FinancialIncomeStatementKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FinancialTransaction-->

  <xs:complexType name="FinancialTransactionType">
    <xs:sequence>
      <xs:element name="TransactionDate" minOccurs="0" type="xs:date" />
      <xs:element name="TransactionTime" minOccurs="0" type="xs:time" />
      <xs:element name="Amounts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Amount" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="sif:MonetaryAmountType">
                    <xs:attribute name="FinancialAccountAccountingPeriodLocationInfoRefId" use="required" type="sif:IdRefType" />
                    <xs:attribute name="Type" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Debit" />
                          <xs:enumeration value="Credit" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Program" minOccurs="0" nillable="true" type="sif:ProgramType" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <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_ExtendedElementsKey59">
          <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:complexType>

  <xs:element name="FinancialTransaction" type="sif:FinancialTransactionType">
    <xs:unique name="FinancialTransactionKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--FiscalYear-->

  <xs:complexType name="FiscalYearType">
    <xs:sequence>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="StartDate" minOccurs="0" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" type="xs:date" />
      <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_ExtendedElementsKey60">
          <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:complexType>

  <xs:element name="FiscalYear" type="sif:FiscalYearType">
    <xs:unique name="FiscalYearKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--ProfessionalDevelopmentWorkingGroup-->


  <!--ActivityProvider-->

  <xs:complexType name="ActivityProviderType">
    <xs:sequence>
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType" />
      <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_ExtendedElementsKey61">
          <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:complexType>

  <xs:element name="ActivityProvider" type="sif:ActivityProviderType">
    <xs:unique name="ActivityProviderKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--EmployeeCredit-->

  <xs:complexType name="EmployeeCreditType">
    <xs:sequence>
      <xs:element name="EndDate" minOccurs="0" type="xs:date" />
      <xs:element name="Earned" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSDecimalOrEmpty">
              <xs:attribute name="Type" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Hours" />
                    <xs:enumeration value="Credits" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey62">
          <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="EmployeePersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="ProfessionalDevelopmentActivitiesRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="EmployeeCredit" type="sif:EmployeeCreditType">
    <xs:unique name="EmployeeCreditKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--EmployeeRecertification-->

  <xs:complexType name="EmployeeRecertificationType">
    <xs:sequence>
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="SSN" minOccurs="0" nillable="true" type="sif:SSNType" />
      <xs:element ref="sif:Name" minOccurs="0" />
      <xs:element name="Demographics" minOccurs="0" nillable="true" type="sif:DemographicsType" />
      <xs:element name="ActivityName" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="ActivityType" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Course" />
            <xs:enumeration value="Activity" />
            <xs:enumeration value="Other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ActivityHours" minOccurs="0" type="xs:decimal" />
      <xs:element name="Earned" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSDecimalOrEmpty">
              <xs:attribute name="Type" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Hours" />
                    <xs:enumeration value="Credits" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="DateFrom" minOccurs="0" type="xs:date" />
      <xs:element name="DateTo" minOccurs="0" type="xs:date" />
      <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_ExtendedElementsKey63">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EmployeeRecertification" type="sif:EmployeeRecertificationType" />


  <!--EmployeeCredential-->

  <xs:complexType name="EmployeeCredentialType">
    <xs:sequence>
      <xs:element name="ReportDate" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:SchoolYear" minOccurs="0" />
      <xs:element ref="sif:StateProvinceId" minOccurs="0" />
      <xs:element name="SSN" minOccurs="0" type="xs:normalizedString" />
      <xs:element ref="sif:Name" minOccurs="0" />
      <xs:element name="Demographics" minOccurs="0" nillable="true" type="sif:DemographicsType" />
      <xs:element name="Race" minOccurs="0" type="sif:NCES0849RaceType" />
      <xs:element name="Hispanic" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Certifications" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Certification" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Description" minOccurs="0" type="xs:string" />
                  <xs:element name="AreaAuthorized" minOccurs="0" nillable="true" type="sif:NCES0421TeachingFieldOrAreaAuthorizedType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Salary" minOccurs="0" type="sif:MonetaryAmountType" />
      <xs:element name="Status" minOccurs="0" type="sif:NCES0613EmploymentStatusType" />
      <xs:element name="Leave" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="TotalYears" minOccurs="0" type="xs:decimal" />
      <xs:element name="UnitYears" minOccurs="0" type="xs:decimal" />
      <xs:element name="Education" minOccurs="0" type="sif:NCES0395TeachingCredentialBasisType" />
      <xs:element name="TeachingCredentialType" minOccurs="0" maxOccurs="unbounded" type="sif:NCES0394TeachingCredentialTypeType" />
      <xs:element name="TerminationCode" minOccurs="0" nillable="true" type="sif:NCES0434EmploymentSeparationReasonType" />
      <xs:element name="BackgroundChecks" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="BackgroundCheck" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Type" minOccurs="0" type="sif:NCES0401BackgroundCheckTypeType" />
                  <xs:element name="Date" minOccurs="0" type="xs:date" />
                  <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="Assignments" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Assignment" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
                  <xs:element ref="sif:GradeLevels" minOccurs="0" />
                  <xs:element name="JobFunction" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Code" minOccurs="0" type="sif:NCES0568FunctionTypeType" />
                        <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="FTE" minOccurs="0" nillable="true" type="xs:decimal" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey64">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EmployeeCredential" type="sif:EmployeeCredentialType" />


  <!--ProfessionalDevelopmentActivities-->

  <xs:complexType name="ProfessionalDevelopmentActivitiesType">
    <xs:sequence>
      <xs:element name="ProfessionalDevelopmentProgramRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="LearningStandardItems" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="StartDate" minOccurs="0" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" type="xs:date" />
      <xs:element name="Description" minOccurs="0" type="xs:string" />
      <xs:element name="ClockHours" minOccurs="0" type="xs:decimal" />
      <xs:element name="Credits" minOccurs="0" nillable="true" type="xs:decimal" />
      <xs:element name="Stipend" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
      <xs:element name="FundingSource" minOccurs="0" nillable="true" type="xs:string" />
      <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_ExtendedElementsKey65">
          <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="ActivityProviderRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="ProfessionalDevelopmentActivities" type="sif:ProfessionalDevelopmentActivitiesType">
    <xs:unique name="ProfessionalDevelopmentActivitiesKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--ProfessionalDevelopmentProgram-->

  <xs:complexType name="ProfessionalDevelopmentProgramType">
    <xs:sequence>
      <xs:element name="LearningStandardItems" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LocalProgramId" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ProgramName" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="ProgramType" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="FundingSource" minOccurs="0" nillable="true" type="xs:string" />
      <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_ExtendedElementsKey66">
          <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:complexType>

  <xs:element name="ProfessionalDevelopmentProgram" type="sif:ProfessionalDevelopmentProgramType">
    <xs:unique name="ProfessionalDevelopmentProgramKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--ProfessionalDevelopmentRegistration-->

  <xs:complexType name="ProfessionalDevelopmentRegistrationType">
    <xs:sequence>
      <xs:element name="RegistrationStatus" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Registered" />
            <xs:enumeration value="Withdrawn" />
            <xs:enumeration value="Complete" />
            <xs:enumeration value="Incomplete" />
            <xs:enumeration value="In Progress" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ProfessionalDevelopmentActivityRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="ProfessionalDevelopmentProgramRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="PaidAmount" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
      <xs:element name="Stipend" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
      <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_ExtendedElementsKey67">
          <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="EmployeePersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="ProfessionalDevelopmentRegistration" type="sif:ProfessionalDevelopmentRegistrationType">
    <xs:unique name="ProfessionalDevelopmentRegistrationKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--SpecialProgramsWorkingGroup-->


  <!--StudentParticipation-->

  <xs:complexType name="StudentParticipationType">
    <xs:sequence>
      <xs:element name="StudentParticipationAsOfDate" minOccurs="0" type="xs:date" />
      <xs:element ref="sif:ProgramType" minOccurs="0" />
      <xs:element name="ProgramFundingSources" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ProgramFundingSource" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Code" minOccurs="0">
                    <xs:simpleType>
                      <xs:union>
                        <xs:simpleType>
                          <xs:restriction base="sif:NCES0222ProgramFundingSourceType">
                            <xs:enumeration value="0797" />
                            <xs:enumeration value="0617" />
                            <xs:enumeration value="0622" />
                            <xs:enumeration value="0654" />
                            <xs:enumeration value="9999" />
                          </xs:restriction>
                        </xs:simpleType>
                        <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="S007" />
                            <xs:enumeration value="S008" />
                            <xs:enumeration value="S009" />
                            <xs:enumeration value="S010" />
                            <xs:enumeration value="S011" />
                            <xs:enumeration value="S012" />
                            <xs:enumeration value="S013" />
                            <xs:enumeration value="S014" />
                            <xs:enumeration value="S015" />
                            <xs:enumeration value="S016" />
                            <xs:enumeration value="S017" />
                            <xs:enumeration value="S018" />
                            <xs:enumeration value="S019" />
                            <xs:enumeration value="S020" />
                            <xs:enumeration value="S021" />
                            <xs:enumeration value="S022" />
                            <xs:enumeration value="S023" />
                            <xs:enumeration value="S024" />
                            <xs:enumeration value="S025" />
                            <xs:enumeration value="S026" />
                          </xs:restriction>
                        </xs:simpleType>
                      </xs:union>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ManagingPublicAgency" 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="LEAInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ManagingSchool" 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="SchoolInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="PartCTransitionMeetingNotHeldReasons" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PartCTransitionMeetingNotHeldReason" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Code" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="S001" />
                        <xs:enumeration value="S002" />
                        <xs:enumeration value="S003" />
                        <xs:enumeration value="S004" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PartCTransitionMeetingDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="PartCTransitionMeetingOutcomes" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PartCTransitionMeetingOutcome" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Code" minOccurs="0">
                    <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:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReferralDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ReferralSource" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0792IdentificationProcedureType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ProgramStatus" minOccurs="0" nillable="true" type="sif:ProgramStatusType" />
      <xs:element name="GiftedEligibilityCriteria" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="EvaluationParentalConsentDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="EvaluationDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="EvaluationExtensionDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ExtensionComments" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="ReevaluationDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ExceptionalityCategories" minOccurs="0" nillable="true" type="sif:ExceptionalityCategoriesType" />
      <xs:element name="ProgramEligibilityDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ProgramPlanType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0806IndividualizedProgramTypeType" />
                  </xs:simpleType>
                  <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:restriction>
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ProgramPlanDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ProgramPlanEffectiveDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="NOREPDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="PlacementParentalConsentDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ProgramPlacementDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="LeastRestrictiveEnvironment" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0307ServiceSettingType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0798EarlyChildhoodProgramSettingType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0804EarlyChildhoodSpecialEducationSettingType">
                      <xs:enumeration value="2191" />
                      <xs:enumeration value="2190" />
                      <xs:enumeration value="2187" />
                      <xs:enumeration value="2188" />
                      <xs:enumeration value="2184" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExtendedSchoolYear" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="ExtendedDay" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="ProgramAvailability" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0211ProgramAvailabilityType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PrivateNotPlacedByPublic" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="ProgramReviewDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="FBADate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="BIPDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ProgramExitDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ProgramExitReason" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0815ProgramExitReasonType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="S001" />
                      <xs:enumeration value="S002" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ProjectedExitDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ProjectedExitReason" minOccurs="0" nillable="true">
        <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:element name="PlannedAssessmentParticipation" minOccurs="0" nillable="true" type="sif:PlannedAssessmentParticipationType" />
      <xs:element name="TransitionPlanning" minOccurs="0" nillable="true">
        <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:element name="StudentSpecialEducationFTE" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:fractionDigits value="2" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="EntryPerson" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ParticipationContact" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <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_ExtendedElementsKey68">
          <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="StudentPersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="StudentParticipation" type="sif:StudentParticipationType">
    <xs:unique name="StudentParticipationKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentPlacement-->

  <xs:complexType name="StudentPlacementType">
    <xs:sequence>
      <xs:element name="StudentPlacementAsOfDate" minOccurs="0" type="xs:date" />
      <xs:element name="Service" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0273StudentSupportServiceTypeType">
                      <xs:enumeration value="0290" />
                      <xs:enumeration value="0291" />
                      <xs:enumeration value="0292" />
                      <xs:enumeration value="0293" />
                      <xs:enumeration value="0295" />
                      <xs:enumeration value="0334" />
                      <xs:enumeration value="0297" />
                      <xs:enumeration value="0298" />
                      <xs:enumeration value="0299" />
                      <xs:enumeration value="0333" />
                      <xs:enumeration value="0302" />
                      <xs:enumeration value="0303" />
                      <xs:enumeration value="0304" />
                      <xs:enumeration value="0332" />
                      <xs:enumeration value="0305" />
                      <xs:enumeration value="0306" />
                      <xs:enumeration value="0308" />
                      <xs:enumeration value="0335" />
                      <xs:enumeration value="0336" />
                      <xs:enumeration value="0309" />
                      <xs:enumeration value="0310" />
                      <xs:enumeration value="0311" />
                      <xs:enumeration value="0312" />
                      <xs:enumeration value="0313" />
                      <xs:enumeration value="0331" />
                      <xs:enumeration value="0314" />
                      <xs:enumeration value="0315" />
                      <xs:enumeration value="0318" />
                      <xs:enumeration value="0319" />
                      <xs:enumeration value="0320" />
                      <xs:enumeration value="0294" />
                      <xs:enumeration value="0337" />
                      <xs:enumeration value="0321" />
                      <xs:enumeration value="0322" />
                      <xs:enumeration value="0323" />
                      <xs:enumeration value="0324" />
                      <xs:enumeration value="0325" />
                      <xs:enumeration value="0327" />
                      <xs:enumeration value="0329" />
                      <xs:enumeration value="0330" />
                      <xs:enumeration value="9999" />
                    </xs:restriction>
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0289TransitionalSupportServiceTypeType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:EDENHomelessEducationalSupportServicesAndActivitiesTypeOfServicesReceivedType">
                      <xs:enumeration value="TUT" />
                      <xs:enumeration value="EE" />
                      <xs:enumeration value="PD" />
                      <xs:enumeration value="MEDREF" />
                      <xs:enumeration value="TRANS" />
                      <xs:enumeration value="ECPGM" />
                      <xs:enumeration value="ASST" />
                      <xs:enumeration value="BASSUM" />
                      <xs:enumeration value="RECS" />
                      <xs:enumeration value="PARENT" />
                      <xs:enumeration value="COORD" />
                      <xs:enumeration value="COUNS" />
                      <xs:enumeration value="DOMV" />
                      <xs:enumeration value="CLOTH" />
                      <xs:enumeration value="SUPPLY" />
                      <xs:enumeration value="OTHREF" />
                      <xs:enumeration value="EMER" />
                      <xs:enumeration value="OTHER" />
                    </xs:restriction>
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:EDENMigrantStudentsServedMigrantServiceTypeType">
                      <xs:enumeration value="COS" />
                      <xs:enumeration value="AIS" />
                      <xs:enumeration value="RI" />
                      <xs:enumeration value="MI" />
                      <xs:enumeration value="HSCA" />
                      <xs:enumeration value="ANYSS" />
                      <xs:enumeration value="CS" />
                      <xs:enumeration value="ARS" />
                    </xs:restriction>
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:EDENLEPProgramTypeOfServicesReceivedType">
                      <xs:enumeration value="BILING" />
                      <xs:enumeration value="DUALLANG" />
                      <xs:enumeration value="TWOIMM" />
                      <xs:enumeration value="TRANSBIL" />
                      <xs:enumeration value="DEVBIL" />
                      <xs:enumeration value="HERITAGE" />
                      <xs:enumeration value="SHELENGL" />
                      <xs:enumeration value="STRUCIMM" />
                      <xs:enumeration value="SDAIE" />
                      <xs:enumeration value="CONTENTESL" />
                      <xs:enumeration value="PULLESL" />
                      <xs:enumeration value="OTHER" />
                    </xs:restriction>
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:EDENStudentsInNeglectedOrDelinquentProgramsNeglectedOrDelinquentServicesReceivedType">
                      <xs:enumeration value="TS" />
                      <xs:enumeration value="AS" />
                      <xs:enumeration value="DP" />
                      <xs:enumeration value="ASC" />
                      <xs:enumeration value="JT" />
                    </xs:restriction>
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:StudentPlacementTitleIServicesType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:StudentPlacementOtherServicesType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:StudentPlacementOtherTypesOfTransportationType" />
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ServiceCategory" minOccurs="0" nillable="true">
        <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="S999" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ServiceFundingSources" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ServiceFundingSource" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Code" minOccurs="0">
                    <xs:simpleType>
                      <xs:union>
                        <xs:simpleType>
                          <xs:restriction base="sif:NCES0222ProgramFundingSourceType">
                            <xs:enumeration value="0797" />
                            <xs:enumeration value="0617" />
                            <xs:enumeration value="0622" />
                            <xs:enumeration value="0654" />
                            <xs:enumeration value="9999" />
                          </xs:restriction>
                        </xs:simpleType>
                        <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="S007" />
                            <xs:enumeration value="S008" />
                            <xs:enumeration value="S009" />
                            <xs:enumeration value="S010" />
                            <xs:enumeration value="S011" />
                            <xs:enumeration value="S012" />
                            <xs:enumeration value="S013" />
                            <xs:enumeration value="S014" />
                            <xs:enumeration value="S015" />
                            <xs:enumeration value="S016" />
                            <xs:enumeration value="S017" />
                            <xs:enumeration value="S018" />
                            <xs:enumeration value="S019" />
                            <xs:enumeration value="S020" />
                            <xs:enumeration value="S021" />
                            <xs:enumeration value="S022" />
                            <xs:enumeration value="S023" />
                            <xs:enumeration value="S024" />
                            <xs:enumeration value="S025" />
                            <xs:enumeration value="S026" />
                          </xs:restriction>
                        </xs:simpleType>
                      </xs:union>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ServicingPublicAgency" 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="LEAInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ServicingSchool" 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="SchoolInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="SchoolWhereServiceDelivered" 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="SchoolInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ServiceProviderType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0557JobClassificationType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AgencyType" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ServiceProviderName" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ServiceSetting" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0307ServiceSettingType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0798EarlyChildhoodProgramSettingType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0804EarlyChildhoodSpecialEducationSettingType" />
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="WhenServiceProvided" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0211ProgramAvailabilityType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LatestStartDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="FrequencyTime" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <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="S007" />
                  <xs:enumeration value="S999" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="DirectTime" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSDecimalOrEmpty">
              <xs:attribute name="UnitOfMeasure" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Minutes" />
                    <xs:enumeration value="Hours" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="IndirectTime" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSDecimalOrEmpty">
              <xs:attribute name="UnitOfMeasure" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Minutes" />
                    <xs:enumeration value="Hours" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="TotalServiceDuration" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSDecimalOrEmpty">
              <xs:attribute name="UnitOfMeasure" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Minutes" />
                    <xs:enumeration value="Hours" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="IncludedInSpecialEducationFTE" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="SpecialNeedsTransportation" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="AssistiveTechnology" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="EntryPerson" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <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_ExtendedElementsKey69">
          <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="StudentParticipationRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="StudentPlacement" type="sif:StudentPlacementType">
    <xs:unique name="StudentPlacementKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--TestAccommodation-->

  <xs:complexType name="TestAccommodationType">
    <xs:sequence>
      <xs:element name="StudentPersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="Name" minOccurs="0" nillable="true" type="sif:NameType" />
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="StateDistrictId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="LEAInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="StateSchoolId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element ref="sif:GradeLevel" minOccurs="0" />
      <xs:element name="AssessmentRegistrationRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="TestAdministration" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="TestSubjectArea" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="TestGradeLevel" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="TestAdministrationDateRange" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="PlannedTestAdministrationDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="TestType" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="S001" />
            <xs:enumeration value="S002" />
            <xs:enumeration value="9999" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AuthorizedActual" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="S001" />
            <xs:enumeration value="S002" />
            <xs:enumeration value="S999" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ActualTestAdministrationDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="StudentProgramAccommodations" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentProgramAccommodation" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="StudentParticipationRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
                  <xs:element name="StudentProgramType" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Code" minOccurs="0" type="xs:token" />
                        <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Accommodations" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Accommodation" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Code" minOccurs="0">
                                <xs:simpleType>
                                  <xs:union>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationTestMaterialType" />
                                    </xs:simpleType>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationTestAdministrationType" />
                                    </xs:simpleType>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationStudentEquipmentAndTechnologyType" />
                                    </xs:simpleType>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationTestResponseType" />
                                    </xs:simpleType>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationSchedulingType" />
                                    </xs:simpleType>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationSettingType" />
                                    </xs:simpleType>
                                    <xs:simpleType>
                                      <xs:restriction base="xs:token">
                                        <xs:enumeration value="9999" />
                                      </xs:restriction>
                                    </xs:simpleType>
                                  </xs:union>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                              <xs:element name="AccommodationCategory" minOccurs="0" nillable="true">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="Code" minOccurs="0">
                                      <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="S999" />
                                        </xs:restriction>
                                      </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="SpecialMaterials" minOccurs="0" type="xs:boolean" />
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey70">
          <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:complexType>

  <xs:element name="TestAccommodation" type="sif:TestAccommodationType">
    <xs:unique name="TestAccommodationKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AssessmentWorkingGroup-->


  <!--Assessment-->

  <xs:complexType name="AssessmentType">
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="AssessmentId" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="AssessmentPackageRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="AssessmentDescriptors" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AssessmentDescriptor" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0067AssessmentTypeType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Statewide" />
                      <xs:enumeration value="Formative" />
                      <xs:enumeration value="Local Summative" />
                      <xs:enumeration value="Diagnostic" />
                      <xs:enumeration value="Benchmark" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey71">
          <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:complexType>

  <xs:element name="Assessment" type="sif:AssessmentType">
    <xs:unique name="AssessmentKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AssessmentItem-->

  <xs:complexType name="AssessmentItemType">
    <xs:sequence>
      <xs:element name="ItemLabel" minOccurs="0" type="xs:token" />
      <xs:element name="ItemName" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="LearningStandardItems" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Stimulus" minOccurs="0" nillable="true" type="sif:AbstractContentElementType" />
      <xs:element name="Stem" minOccurs="0" nillable="true" type="sif:AbstractContentElementType" />
      <xs:element name="ResponseChoices" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Choice" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="ChoiceLabel" minOccurs="0" nillable="true" type="xs:normalizedString" />
                  <xs:element name="ChoiceContent" minOccurs="0" type="sif:AbstractContentElementType" />
                  <xs:element name="CreditValue" minOccurs="0" nillable="true" type="xs:float" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey72">
          <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="AssessmentFormRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="ResponseType" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="multiple-choice" />
          <xs:enumeration value="multiple-multiple choice" />
          <xs:enumeration value="true-false" />
          <xs:enumeration value="fill-in-the-blank" />
          <xs:enumeration value="short-answer" />
          <xs:enumeration value="essay" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="AssessmentItem" type="sif:AssessmentItemType">
    <xs:unique name="AssessmentItemKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--ItemCharacteristics-->

  <xs:complexType name="ItemCharacteristicsType">
    <xs:sequence>
      <xs:element name="Descriptive" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PValue" minOccurs="0" nillable="true" type="xs:float" />
            <xs:element name="SampleSize" minOccurs="0" nillable="true" type="xs:integer" />
            <xs:element name="PointBiserial" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="-1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="Biserial" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="-1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="DiscriminationIndex" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="DifferentialItemAnalysis" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CMH" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="-1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="MH" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="-1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="1.00" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ResponseChoicePattern" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Choice" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="ChoiceLabel" minOccurs="0" type="xs:token" />
                  <xs:element name="Responses" minOccurs="0" type="xs:integer" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey73">
          <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="AssessmentItemRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="AssessmentFormRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="ItemCharacteristics" type="sif:ItemCharacteristicsType">
    <xs:unique name="ItemCharacteristicsKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AssessmentSubTest-->

  <xs:complexType name="AssessmentSubTestType">
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="ScoreRange" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Minimum" minOccurs="0" nillable="true" type="xs:token" />
            <xs:element name="Maximum" minOccurs="0" nillable="true" type="xs:token" />
          </xs:sequence>
          <xs:attribute name="ScoreMetric" use="required" type="sif:NCES0056AssessmentReportingMethodType" />
        </xs:complexType>
      </xs:element>
      <xs:element name="PerformanceLevels" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PerformanceLevel" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="CutScores" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="LowerCut" minOccurs="0" nillable="true" type="xs:token" />
                        <xs:element name="UpperCut" minOccurs="0" nillable="true" type="xs:token" />
                      </xs:sequence>
                      <xs:attribute name="ScoreMetric" use="required" type="sif:NCES0056AssessmentReportingMethodType" />
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="LevelName" use="required" type="xs:token" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SubjectArea" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
      <xs:element name="AssessmentSubTestRefIds" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AssessmentSubTestRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SubTestTier" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="LearningStandardItemRefIds" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey74">
          <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:complexType>

  <xs:element name="AssessmentSubTest" type="sif:AssessmentSubTestType">
    <xs:unique name="AssessmentSubTestKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AssessmentAdministration-->

  <xs:complexType name="AssessmentAdministrationType">
    <xs:sequence>
      <xs:element name="AdministrationName" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="SpecialConditions" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SpecialCondition" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="Code" use="required" type="xs:token" />
                    <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:unique name="SpecialConditionsKey1">
          <xs:selector xpath="./sif:SpecialCondition" />
          <xs:field xpath="@Code" />
        </xs:unique>
      </xs:element>
      <xs:element name="AdministrationDateTime" minOccurs="0" type="xs:dateTime" />
      <xs:element name="StartDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
      <xs:element name="FinishDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
      <xs:element name="DueDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
      <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType" />
      <xs:element name="StaffPersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="LEAInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="SchoolInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <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_ExtendedElementsKey75">
          <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="AssessmentFormRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="AssessmentAdministration" type="sif:AssessmentAdministrationType">
    <xs:unique name="AssessmentAdministrationKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AssessmentForm-->

  <xs:complexType name="AssessmentFormType">
    <xs:sequence>
      <xs:element name="AssessmentType" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="standard" />
            <xs:enumeration value="alternate" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FormName" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="FormNumbers" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="FormNumber" minOccurs="0" maxOccurs="unbounded" type="xs:token" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Level" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="Period" minOccurs="0" nillable="true" type="xs:token" />
      <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
      <xs:element name="AssessmentSubTestRefIds" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AssessmentSubTestRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey76">
          <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="AssessmentRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="AssessmentForm" type="sif:AssessmentFormType">
    <xs:unique name="AssessmentFormKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AssessmentRegistration-->

  <xs:complexType name="AssessmentRegistrationType">
    <xs:sequence>
      <xs:element name="CreationDateTime" minOccurs="0" type="xs:dateTime" />
      <xs:element name="StudentSpecialConditions" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentSpecialCondition" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Code" use="required" type="xs:token" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StudentGradeLevel" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
      <xs:element name="AssessmentGradeLevel" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
      <xs:element name="AssessmentStudentSnapshot" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="RaceList" minOccurs="0" nillable="true" type="sif:RaceListType" />
            <xs:element name="HispanicLatino" minOccurs="0" nillable="true" type="sif:HispanicLatinoType" />
            <xs:element name="Gender" minOccurs="0" nillable="true" type="sif:GenderType" />
            <xs:element name="BirthDate" minOccurs="0" nillable="true" type="sif:BirthDateType" />
            <xs:element name="Title1" minOccurs="0" nillable="true" type="sif:Title1Type" />
            <xs:element name="ELL" minOccurs="0" nillable="true" type="sif:ELLType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LEAInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="SchoolInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="StaffPersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="SectionInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <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_ExtendedElementsKey77">
          <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="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="AssessmentAdministrationRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="AssessmentRegistration" type="sif:AssessmentRegistrationType">
    <xs:unique name="AssessmentRegistrationKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentResponseSet-->

  <xs:complexType name="StudentResponseSetType">
    <xs:sequence>
      <xs:element name="Items" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Response" minOccurs="0" type="xs:string" />
                  <xs:element name="ResponseLocation" minOccurs="0" nillable="true" type="xs:anyURI" />
                  <xs:element name="ResponseStatus" minOccurs="0" nillable="true">
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Correct" />
                        <xs:enumeration value="Incorrect" />
                        <xs:enumeration value="Complete" />
                        <xs:enumeration value="PartiallyComplete" />
                        <xs:enumeration value="Viewed" />
                        <xs:enumeration value="NotViewed" />
                        <xs:enumeration value="NotAnswered" />
                        <xs:enumeration value="Attempted" />
                        <xs:enumeration value="Incomplete" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="ResponseTime" minOccurs="0" nillable="true" type="xs:duration" />
                  <xs:element name="ItemNumber" minOccurs="0" nillable="true" type="xs:token" />
                  <xs:element name="ItemName" minOccurs="0" nillable="true" type="xs:token" />
                  <xs:element name="DiagnosticStatement" minOccurs="0" nillable="true" type="xs:string" />
                  <xs:element name="NumberOfAttempts" minOccurs="0" nillable="true" type="xs:unsignedInt" />
                </xs:sequence>
                <xs:attribute name="AssessmentItemRefId" use="optional" type="sif:IdRefType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey78">
          <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="AssessmentAdministrationRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="AssessmentRegistrationRefId" use="optional" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="StudentResponseSet" type="sif:StudentResponseSetType">
    <xs:unique name="StudentResponseSetKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentScoreSet-->

  <xs:complexType name="StudentScoreSetType">
    <xs:sequence>
      <xs:element name="Scores" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Score" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="ScoreValue" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="DiagnosticStatement" minOccurs="0" nillable="true" type="xs:string" />
                </xs:sequence>
                <xs:attribute name="AssessmentSubTestRefId" use="required" type="sif:IdRefType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey79">
          <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="ScoreMetric" use="required" type="sif:NCES0056AssessmentReportingMethodType" />
    <xs:attribute name="AssessmentAdministrationRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="AssessmentRegistrationRefId" use="optional" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="StudentScoreSet" type="sif:StudentScoreSetType">
    <xs:unique name="StudentScoreSetKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--AssessmentPackage-->

  <xs:complexType name="AssessmentPackageType">
    <xs:sequence>
      <xs:element name="XMLData" minOccurs="0" nillable="true">
        <xs:complexType>
<xs:sequence>
  <xs:any processContents="lax" xmlns:xs="http://www.w3.org/2001/XMLSchema"  minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="Description" use="optional" type="xs:token" /></xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey80">
          <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:complexType>

  <xs:element name="AssessmentPackage" type="sif:AssessmentPackageType">
    <xs:unique name="AssessmentPackageKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--InstructionalServicesTaskForce-->


  <!--LearningStandardDocument-->

  <xs:complexType name="LearningStandardDocumentType">
    <xs:sequence>
      <xs:element name="Title" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="Source" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="National" />
            <xs:enumeration value="State" />
            <xs:enumeration value="Regional" />
            <xs:enumeration value="District" />
            <xs:enumeration value="Site" />
            <xs:enumeration value="Classroom" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Organizations" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Organization" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Authors" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Author" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="OrganizationContactPoint" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="SubjectAreas" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:SubjectArea" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="DocumentStatus" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Draft" />
            <xs:enumeration value="Adopted" />
            <xs:enumeration value="Archived" />
            <xs:enumeration value="Unknown" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="DocumentDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="LocalAdoptionDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="LocalArchiveDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="EndOfLifeDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="Copyright" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Date" minOccurs="0" nillable="true" type="xs:date" />
            <xs:element name="Holder" minOccurs="0" nillable="true" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
      <xs:element name="RepositoryDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="LearningStandardItemRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="RelatedLearningStandards" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardDocumentRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey81">
          <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 ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="LearningStandardDocument" type="sif:LearningStandardDocumentType">
    <xs:unique name="LearningStandardDocumentKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--LearningStandardItem-->

  <xs:complexType name="LearningStandardItemType">
    <xs:sequence>
      <xs:element name="StandardSettingBody" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:Country" minOccurs="0" />
            <xs:element name="StateProvince" minOccurs="0" nillable="true" type="sif:StateProvinceType" />
            <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
            <xs:element name="SettingBodyName" minOccurs="0" nillable="true" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StandardHierarchyLevel" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Number" minOccurs="0" type="xs:unsignedInt" />
            <xs:element name="Description" minOccurs="0" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PredecessorItems" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StatementCodes" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StatementCode" minOccurs="0" maxOccurs="unbounded" type="xs:token" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Statements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Statement" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element ref="sif:GradeLevels" minOccurs="0" />
      <xs:element name="SubjectArea" minOccurs="0" nillable="true" type="sif:SubjectAreaType" />
      <xs:element name="StandardIdentifier" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="YearCreated" minOccurs="0" type="xs:gYear" />
            <xs:element ref="sif:SubjectArea" minOccurs="0" />
            <xs:element name="StandardNumber" minOccurs="0" type="xs:normalizedString" />
            <xs:element ref="sif:GradeLevels" minOccurs="0" />
            <xs:element name="Benchmark" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="GradeLevel" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
            <xs:element name="IndicatorNumber" minOccurs="0" nillable="true" type="xs:normalizedString" />
            <xs:element name="AlternateIdentificationCodes" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="AlternateIdentificationCode" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="Organization" minOccurs="0" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandardDocumentRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="RelatedLearningStandardItems" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="sif:IdRefTypeOrEmpty">
                    <xs:attribute name="RelationshipType" use="required">
                      <xs:simpleType>
                        <xs:union>
                          <xs:simpleType>
                            <xs:restriction base="sif:LearningStandardItemRelationshipTypesType" />
                          </xs:simpleType>
                          <xs:simpleType>
                            <xs:restriction base="xs:token" />
                          </xs:simpleType>
                        </xs:union>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey82">
          <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 ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="LearningStandardItem" type="sif:LearningStandardItemType">
    <xs:unique name="LearningStandardItemKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--CurriculumStructure-->

  <xs:complexType name="CurriculumStructureType">
    <xs:sequence>
      <xs:element name="Titles" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Title" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="SubjectArea" minOccurs="0" nillable="true" type="sif:SubjectAreaType" />
      <xs:element name="CurriculumHierarchyLevel" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Number" minOccurs="0" type="xs:unsignedInt" />
            <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
            <xs:element name="Description" minOccurs="0" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PredecessorObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CurriculumStructureRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningObjectives" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningObjective" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ComponentObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ComponentObject" minOccurs="0" maxOccurs="unbounded">
              <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="CurriculumStructure" />
                          <xs:enumeration value="Lesson" />
                          <xs:enumeration value="Activity" />
                          <xs:enumeration value="Assessment" />
                          <xs:enumeration value="LearningResource" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandards" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey83">
          <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 ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="CurriculumStructure" type="sif:CurriculumStructureType">
    <xs:unique name="CurriculumStructureKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--Lesson-->

  <xs:complexType name="LessonType">
    <xs:sequence>
      <xs:element name="SourceObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SourceObject" minOccurs="0" maxOccurs="unbounded">
              <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="Assessment" />
                          <xs:enumeration value="LearningResource" />
                          <xs:enumeration value="Activity" />
                          <xs:enumeration value="Lesson" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CurriculumStructures" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CurriculumStructureRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SubjectArea" minOccurs="0" nillable="true" type="sif:SubjectAreaType" />
      <xs:element name="Title" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Duration" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSUnsignedIntOrEmpty">
              <xs:attribute name="Units" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="week" />
                    <xs:enumeration value="day" />
                    <xs:enumeration value="hour" />
                    <xs:enumeration value="minute" />
                    <xs:enumeration value="second" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="Procedure" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="Strategies" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Strategy" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningObjectives" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningObjective" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SupportingActivities" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ActivityRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandards" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningResources" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningResourceRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LessonSources" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LessonSource" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Author" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Name" minOccurs="0" nillable="true" type="sif:NameType" />
                        <xs:element name="Organization" minOccurs="0" nillable="true" type="xs:normalizedString" />
                        <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType" />
                        <xs:element name="Email" minOccurs="0" nillable="true" type="sif:EmailType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey84">
          <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 ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="Lesson" type="sif:LessonType">
    <xs:unique name="LessonKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--Activity-->

  <xs:complexType name="ActivityType">
    <xs:sequence>
      <xs:element name="TechnicalRequirements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TechnicalRequirement" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="EssentialMaterials" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="EssentialMaterial" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Title" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="Preamble" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="LearningObjectives" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningObjective" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandards" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SubjectArea" minOccurs="0" nillable="true" type="sif:SubjectAreaType" />
      <xs:element name="Prerequisites" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Prerequisite" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Students" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentPersonalRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SourceObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SourceObject" minOccurs="0" maxOccurs="unbounded">
              <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="Assessment" />
                          <xs:enumeration value="LearningResource" />
                          <xs:enumeration value="Activity" />
                          <xs:enumeration value="Lesson" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Points" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="ActivityTime" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CreationDate" minOccurs="0" type="xs:date" />
            <xs:element name="Duration" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="sif:XSUnsignedIntOrEmpty">
                    <xs:attribute name="Units" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="week" />
                          <xs:enumeration value="day" />
                          <xs:enumeration value="hour" />
                          <xs:enumeration value="minute" />
                          <xs:enumeration value="second" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date" />
            <xs:element name="FinishDate" 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="AssessmentRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="MaxAttemptsAllowed" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="ActivityWeight" minOccurs="0" nillable="true" type="xs:decimal" />
      <xs:element name="Evaluation" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
          </xs:sequence>
          <xs:attribute name="EvaluationType" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="Inline" />
                <xs:enumeration value="RefId" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningResources" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningResourceRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey85">
          <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 ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="Activity" type="sif:ActivityType">
    <xs:unique name="ActivityKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--Assignment-->

  <xs:complexType name="AssignmentType">
    <xs:sequence>
      <xs:element name="Students" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentPersonalRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StaffPersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="TechnicalRequirements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TechnicalRequirement" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="EssentialMaterials" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="EssentialMaterial" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Title" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="Preamble" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="LearningObjectives" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningObjective" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandards" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Prerequisites" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Prerequisite" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SourceObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SourceObject" minOccurs="0" maxOccurs="unbounded">
              <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="Assessment" />
                          <xs:enumeration value="LearningResource" />
                          <xs:enumeration value="Activity" />
                          <xs:enumeration value="Lesson" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AssignmentTime" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CreationDate" minOccurs="0" nillable="true" type="xs:date" />
            <xs:element name="Duration" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="sif:XSDecimalOrEmpty">
                    <xs:attribute name="Units" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="week" />
                          <xs:enumeration value="day" />
                          <xs:enumeration value="hour" />
                          <xs:enumeration value="minute" />
                          <xs:enumeration value="second" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="StartDate" minOccurs="0" type="xs:date" />
            <xs:element name="StartTime" minOccurs="0" nillable="true" type="xs:time" />
            <xs:element name="DueDate" minOccurs="0" type="xs:date" />
            <xs:element name="DueTime" minOccurs="0" nillable="true" type="xs:time" />
            <xs:element name="AdministrationDate" minOccurs="0" nillable="true" type="xs:date" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MaxAttemptsAllowed" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="AddToGradeBookFlag" minOccurs="0" nillable="true" type="xs:boolean" />
      <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_ExtendedElementsKey86">
          <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 ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="Assignment" type="sif:AssignmentType">
    <xs:unique name="AssignmentKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--LearningResource-->

  <xs:complexType name="LearningResourceType">
    <xs:sequence>
      <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Author" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="Contacts" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Contact" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" minOccurs="0" nillable="true" type="sif:NameType" />
                  <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="Email" minOccurs="0" nillable="true" type="sif:EmailType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Location" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="ReferenceType" use="required" type="xs:token" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Status" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
      <xs:element name="SubjectAreas" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="sif:SubjectArea" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MediaTypes" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MediaType" minOccurs="0" maxOccurs="unbounded" type="xs:token" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="UseAgreement" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="AgreementDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="Approvals" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Approval" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Organization" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="Date" minOccurs="0" type="xs:date" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Evaluations" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Evaluation" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                  <xs:element name="Date" minOccurs="0" nillable="true" type="xs:date" />
                  <xs:element name="Name" minOccurs="0" nillable="true" type="sif:NameType" />
                </xs:sequence>
                <xs:attribute name="RefId" use="required" type="sif:RefIdType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Components" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Component" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" minOccurs="0" type="xs:normalizedString" />
                  <xs:element name="Reference" minOccurs="0" type="xs:string" />
                  <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                  <xs:element name="Strategies" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Strategy" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="AssociatedObjects" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="AssociatedObject" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:simpleContent>
                              <xs:extension base="sif:IdRefTypeOrEmpty">
                                <xs:attribute name="SIF_RefObject" use="required" type="sif:ObjectNameType" />
                              </xs:extension>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandards" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningResourcePackageRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <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_ExtendedElementsKey87">
          <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 ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="LearningResource" type="sif:LearningResourceType">
    <xs:unique name="LearningResourceKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--LearningResourcePackage-->

  <xs:complexType name="LearningResourcePackageType">
    <xs:complexContent>
      <xs:extension base="sif:AbstractContentPackageType" />
    </xs:complexContent>
  </xs:complexType>

  <xs:element name="LearningResourcePackage" type="sif:LearningResourcePackageType" />


  <!--LibraryAutomationWorkingGroup-->


  <!--LibraryPatronStatus-->

  <xs:complexType name="LibraryPatronStatusType">
    <xs:sequence>
      <xs:element ref="sif:ElectronicIdList" minOccurs="0" />
      <xs:element name="TransactionList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Transaction" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="ItemInfo" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Title" minOccurs="0" type="xs:string" />
                        <xs:element name="Author" minOccurs="0" nillable="true" type="xs:string" />
                        <xs:element name="ElectronicId" minOccurs="0" nillable="true" type="sif:ElectronicIdType" />
                        <xs:element name="CallNumber" minOccurs="0" nillable="true" type="xs:string" />
                        <xs:element name="Price" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
                      </xs:sequence>
                      <xs:attribute name="Type" use="required">
                        <xs:simpleType>
                          <xs:restriction base="xs:token">
                            <xs:enumeration value="Asset" />
                            <xs:enumeration value="LibraryMaterial" />
                            <xs:enumeration value="Media" />
                            <xs:enumeration value="Textbook" />
                          </xs:restriction>
                        </xs:simpleType>
                      </xs:attribute>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="CheckoutInfo" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="ReturnBy" minOccurs="0" type="xs:dateTime" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="FineInfoList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="FineInfo" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Assessed" minOccurs="0" type="xs:dateTime" />
                              <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
                              <xs:element name="Amount" minOccurs="0" type="sif:MonetaryAmountType" />
                              <xs:element name="Reference" minOccurs="0" nillable="true" type="xs:string" />
                            </xs:sequence>
                            <xs:attribute name="Type" use="required">
                              <xs:simpleType>
                                <xs:restriction base="xs:token">
                                  <xs:enumeration value="Damaged" />
                                  <xs:enumeration value="Lost" />
                                  <xs:enumeration value="Overdue" />
                                  <xs:enumeration value="Refund" />
                                  <xs:enumeration value="Other" />
                                </xs:restriction>
                              </xs:simpleType>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="HoldInfoList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="HoldInfo" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="DatePlaced" minOccurs="0" type="xs:date" />
                              <xs:element name="DateNeeded" minOccurs="0" nillable="true" type="xs:date" />
                              <xs:element name="MadeAvailable" minOccurs="0" nillable="true" type="xs:date" />
                              <xs:element name="Expires" minOccurs="0" nillable="true" type="xs:date" />
                            </xs:sequence>
                            <xs:attribute name="Type" use="required">
                              <xs:simpleType>
                                <xs:restriction base="xs:token">
                                  <xs:enumeration value="Ready" />
                                  <xs:enumeration value="NotReady" />
                                </xs:restriction>
                              </xs:simpleType>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MessageList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Message" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Sent" minOccurs="0" nillable="true" type="xs:dateTime" />
                  <xs:element name="Text" minOccurs="0" type="xs:string" />
                </xs:sequence>
                <xs:attribute name="Priority" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="Low" />
                      <xs:enumeration value="Normal" />
                      <xs:enumeration value="Urgent" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="NumberOfCheckouts" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="NumberOfOverdues" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="NumberOfFines" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="FineAmount" minOccurs="0" type="sif:MonetaryAmountType" />
      <xs:element name="NumberOfRefunds" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="RefundAmount" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
      <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_ExtendedElementsKey88">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="LibraryType" use="required" type="xs:string" />
    <xs:attribute name="SIF_RefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SIF_RefObject" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="StudentPersonal" />
          <xs:enumeration value="StaffPersonal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LibraryPatronStatus" type="sif:LibraryPatronStatusType">
    <xs:unique name="LibraryPatronStatusKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@SIF_RefId" />
      <xs:field xpath="@SIF_RefObject" />
    </xs:unique>
  </xs:element>


  <!--StudentInformationSystemsWorkingGroup-->


  <!--StudentActivityInfo-->

  <xs:complexType name="StudentActivityInfoType">
    <xs:sequence>
      <xs:element name="Title" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="StudentActivityType" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0679ActivityInvolvementCodeType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StudentActivityLevel" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
      <xs:element name="CurricularStatus" minOccurs="0" nillable="true" type="sif:NCES0024ActivityTypeType" />
      <xs:element name="Location" minOccurs="0" nillable="true" type="sif:LocationType" />
      <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_ExtendedElementsKey89">
          <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:complexType>

  <xs:element name="StudentActivityInfo" type="sif:StudentActivityInfoType">
    <xs:unique name="StudentActivityInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentActivityParticipation-->

  <xs:complexType name="StudentActivityParticipationType">
    <xs:sequence>
      <xs:element name="ParticipationComment" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="Role" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="RecognitionList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Recognition" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:token">
                    <xs:attribute name="Code" use="required" type="sif:NCES0674HonorsTypeType" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey90">
          <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="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="StudentActivityInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="StudentActivityParticipation" type="sif:StudentActivityParticipationType">
    <xs:unique name="StudentActivityParticipationKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--DisciplineIncident-->

  <xs:complexType name="DisciplineIncidentType">
    <xs:sequence>
      <xs:element name="AgencyReporting" minOccurs="0">
        <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="SchoolInfo" />
                    <xs:enumeration value="LEAInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="IncidentNumber" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="IncidentDate" minOccurs="0" type="xs:date" />
      <xs:element name="IncidentTime" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSTimeOrEmpty">
              <xs:attribute name="Type" use="required" type="sif:SAFETYTimeType" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="IncidentLocation" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="Type" use="required" type="sif:NCES1040IncidentLocationType" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="IncidentLocationRefId" 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="SchoolInfo" />
                    <xs:enumeration value="LocationInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="IncidentCost" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="IncidentReporter" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Name" minOccurs="0" nillable="true" type="sif:NameType" />
            <xs:element name="SIF_RefId" 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="StudentPersonal" />
                          <xs:enumeration value="StaffPersonal" />
                          <xs:enumeration value="EmployeePersonal" />
                          <xs:enumeration value="StudentContact" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="Type" use="required" type="sif:NCES1043ReporterDescriptionType" />
        </xs:complexType>
      </xs:element>
      <xs:element name="RelatedToList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="RelatedTo" minOccurs="0" maxOccurs="unbounded" type="sif:NCES1048SecondaryIncidentBehaviorType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="WeaponTypeList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="WeaponType" minOccurs="0" maxOccurs="unbounded" type="sif:NCES1045WeaponTypeType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="IncidentCategory" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES1049IncidentCodeType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="OffenderList" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Offender" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="sif:Name" minOccurs="0" />
                  <xs:element name="SIF_RefId" 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="StudentPersonal" />
                                <xs:enumeration value="StaffPersonal" />
                                <xs:enumeration value="EmployeePersonal" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Injury" minOccurs="0" type="sif:NCES1046IncidentInjuryType" />
                  <xs:element name="ManifestationDetermination" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="MeetingHeld" minOccurs="0" nillable="true">
                          <xs:simpleType>
                            <xs:restriction base="xs:token">
                              <xs:enumeration value="Yes" />
                              <xs:enumeration value="No" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="MeetingDate" minOccurs="0" nillable="true" type="xs:date" />
                        <xs:element name="DueToDisability" minOccurs="0" nillable="true">
                          <xs:simpleType>
                            <xs:restriction base="xs:token">
                              <xs:enumeration value="Yes" />
                              <xs:enumeration value="No" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="ActionList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Action" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Code" minOccurs="0" type="sif:NCES1054DisciplinaryActionType" />
                              <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                              <xs:element name="StartDate" minOccurs="0" type="xs:date" />
                              <xs:element name="EndDate" minOccurs="0" type="xs:date" />
                              <xs:element name="Duration" minOccurs="0" type="xs:decimal" />
                              <xs:element name="ZeroTolerance" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:token">
                                    <xs:enumeration value="Yes" />
                                    <xs:enumeration value="No" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="FullYearExpulsion" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:token">
                                    <xs:enumeration value="Yes" />
                                    <xs:enumeration value="No" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="ShortenedExpulsion" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:token">
                                    <xs:enumeration value="Yes" />
                                    <xs:enumeration value="No" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="PoliceNotification" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:token">
                                    <xs:enumeration value="Yes" />
                                    <xs:enumeration value="No" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="Arrest" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:token">
                                    <xs:enumeration value="Yes" />
                                    <xs:enumeration value="No" />
                                    <xs:enumeration value="Pending" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="AlternativeEducation" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:token">
                                    <xs:enumeration value="Yes" />
                                    <xs:enumeration value="No" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required" type="sif:NCES1043ReporterDescriptionType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="VictimList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Victim" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Name" minOccurs="0" nillable="true" type="sif:NameType" />
                  <xs:element name="SIF_RefId" 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="StudentPersonal" />
                                <xs:enumeration value="StaffPersonal" />
                                <xs:enumeration value="EmployeePersonal" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Injury" minOccurs="0" type="sif:NCES1046IncidentInjuryType" />
                </xs:sequence>
                <xs:attribute name="Type" use="required" type="sif:NCES1043ReporterDescriptionType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey91">
          <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="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="DisciplineIncident" type="sif:DisciplineIncidentType">
    <xs:unique name="DisciplineIncidentKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--CalendarSummary-->

  <xs:complexType name="CalendarSummaryType">
    <xs:sequence>
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="DaysInSession" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="FirstInstructionDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="LastInstructionDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="GraduationDate" minOccurs="0" nillable="true" type="sif:GraduationDateType" />
      <xs:element name="InstructionalMinutes" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="MinutesPerDay" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
      <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_ExtendedElementsKey92">
          <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="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="CalendarSummary" type="sif:CalendarSummaryType">
    <xs:unique name="CalendarSummaryKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--CalendarDate-->

  <xs:complexType name="CalendarDateType">
    <xs:sequence>
      <xs:element name="CalendarDateType" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0084CalendarEventType" />
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="INST" />
                      <xs:enumeration value="MKUP" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CalendarDateNumber" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="StudentAttendance" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountsTowardAttendance" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="AttendanceValue" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:fractionDigits value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="TeacherAttendance" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountsTowardAttendance" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="AttendanceValue" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:fractionDigits value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AdministratorAttendance" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountsTowardAttendance" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="AttendanceValue" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:decimal">
                  <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:maxInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                  <xs:fractionDigits value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey93">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Date" use="required" type="xs:date" />
    <xs:attribute name="CalendarSummaryRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="CalendarDate" type="sif:CalendarDateType">
    <xs:unique name="CalendarDateKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@Date" />
      <xs:field xpath="@CalendarSummaryRefId" />
    </xs:unique>
  </xs:element>


  <!--StudentAttendanceSummary-->

  <xs:complexType name="StudentAttendanceSummaryType">
    <xs:sequence>
      <xs:element name="StartDate" minOccurs="0" type="xs:date" />
      <xs:element name="StartDay" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="EndDate" minOccurs="0" type="xs:date" />
      <xs:element name="EndDay" minOccurs="0" type="xs:unsignedInt" />
      <xs:element name="Resident" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
            <xs:enumeration value="Unknown" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FTE" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:fractionDigits value="2" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="DaysAttended" minOccurs="0" type="xs:decimal" />
      <xs:element name="ExcusedAbsences" minOccurs="0" type="xs:decimal" />
      <xs:element name="UnexcusedAbsences" minOccurs="0" type="xs:decimal" />
      <xs:element name="DaysTardy" minOccurs="0" nillable="true" type="xs:decimal" />
      <xs:element name="DaysInMembership" minOccurs="0" type="xs:decimal" />
      <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_ExtendedElementsKey94">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="StudentAttendanceSummary" type="sif:StudentAttendanceSummaryType">
    <xs:unique name="StudentAttendanceSummaryKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@StudentPersonalRefId" />
      <xs:field xpath="@SchoolInfoRefId" />
      <xs:field xpath="@SchoolYear" />
      <xs:field xpath="./sif:StartDate" />
      <xs:field xpath="./sif:EndDate" />
    </xs:unique>
  </xs:element>


  <!--AttendanceCodeInfo-->

  <xs:complexType name="AttendanceCodeInfoType">
    <xs:sequence>
      <xs:element name="AttendanceCode" minOccurs="0" type="xs:token" />
      <xs:element name="AttendanceType" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Absent" />
            <xs:enumeration value="Tardy" />
            <xs:enumeration value="EarlyDeparture" />
            <xs:enumeration value="Partial" />
            <xs:enumeration value="Present" />
            <xs:enumeration value="Other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AttendanceStatus" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Excused" />
            <xs:enumeration value="Unexcused" />
            <xs:enumeration value="Unknown" />
            <xs:enumeration value="NA" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="AbsenceValue" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:fractionDigits value="3" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="UsedForDailyAttendance" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="UsedForPeriodAttendance" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </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:unique name="SIF_ExtendedElementsKey95">
          <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="SchoolInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="AttendanceCodeInfo" type="sif:AttendanceCodeInfoType">
    <xs:unique name="AttendanceCodeInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--RoomInfo-->

  <xs:complexType name="RoomInfoType">
    <xs:sequence>
      <xs:element name="RoomNumber" minOccurs="0" type="xs:token" />
      <xs:element name="StaffList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StaffPersonalRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="Building" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="HomeroomNumber" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="Size" minOccurs="0" nillable="true" type="xs:decimal" />
      <xs:element name="Capacity" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <xs:element name="PhoneNumber" minOccurs="0" nillable="true" type="sif:PhoneNumberType" />
      <xs:element name="RoomTypeRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <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_ExtendedElementsKey96">
          <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="SchoolInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="RoomInfo" type="sif:RoomInfoType">
    <xs:unique name="RoomInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--RoomType-->

  <xs:complexType name="RoomTypeType">
    <xs:sequence>
      <xs:element name="Description" minOccurs="0" type="xs:normalizedString" />
      <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_ExtendedElementsKey97">
          <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="SchoolInfoRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="RoomType" type="sif:RoomTypeType">
    <xs:unique name="RoomTypeKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--SchoolCourseInfo-->

  <xs:complexType name="SchoolCourseInfoType">
    <xs:sequence>
      <xs:element ref="sif:CourseCode" minOccurs="0" />
      <xs:element name="StateCourseCode" minOccurs="0" nillable="true" type="sif:StateCourseCodeType" />
      <xs:element name="DistrictCourseCode" minOccurs="0" nillable="true" type="sif:DistrictCourseCodeType" />
      <xs:element name="SubjectAreaList" minOccurs="0" nillable="true" type="sif:SubjectAreaListType" />
      <xs:element ref="sif:CourseTitle" minOccurs="0" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="InstructionalLevel" minOccurs="0" nillable="true" type="sif:InstructionalLevelType" />
      <xs:element name="CourseCredits" minOccurs="0" nillable="true" type="sif:CourseCreditsType" />
      <xs:element name="CoreAcademicCourse" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="GraduationRequirement" minOccurs="0" nillable="true" type="sif:GraduationRequirementType" />
      <xs:element name="Department" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="SCEDCode" minOccurs="0" nillable="true" type="sif:SCEDCodeType" />
      <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_ExtendedElementsKey98">
          <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="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="SchoolCourseInfo" type="sif:SchoolCourseInfoType">
    <xs:unique name="SchoolCourseInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--SchoolInfo-->

  <xs:complexType name="SchoolInfoType">
    <xs:sequence>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="NCESId" minOccurs="0" nillable="true" type="sif:NCESIdType" />
      <xs:element name="SchoolName" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="LEAInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <xs:element name="OtherLEA" 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="LEAInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="SchoolType" minOccurs="0" nillable="true" type="sif:NCES0031SchoolLevelType" />
      <xs:element name="SchoolFocusList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SchoolFocus" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Regular" />
                  <xs:enumeration value="SpecialEd" />
                  <xs:enumeration value="Vocational" />
                  <xs:enumeration value="Alternative" />
                  <xs:enumeration value="Magnet" />
                  <xs:enumeration value="Charter" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SchoolURL" minOccurs="0" nillable="true" type="sif:SchoolURLType" />
      <xs:element name="PrincipalInfo" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ContactName" minOccurs="0" type="xs:normalizedString" />
            <xs:element name="ContactTitle" minOccurs="0" nillable="true" type="xs:normalizedString" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SchoolContactList" minOccurs="0" nillable="true" type="sif:SchoolContactListType" />
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:unique name="AddressListKey12">
          <xs:selector xpath="./sif:Address" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:unique name="PhoneNumberListKey13">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="IdentificationInfoList" minOccurs="0" nillable="true" type="sif:IdentificationInfoListType" />
      <xs:element name="SessionType" minOccurs="0" nillable="true" type="sif:NCES0266SessionTypeType" />
      <xs:element name="GradeLevels" minOccurs="0" nillable="true" type="sif:GradeLevelsType" />
      <xs:element name="Title1Status" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Targeted" />
            <xs:enumeration value="SchoolWide" />
            <xs:enumeration value="NA" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OperationalStatus" minOccurs="0" nillable="true" type="sif:OperationalStatusType" />
      <xs:element name="CongressionalDistrict" minOccurs="0" nillable="true" type="sif:CongressionalDistrictType" />
      <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_ExtendedElementsKey99">
          <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:complexType>

  <xs:element name="SchoolInfo" type="sif:SchoolInfoType">
    <xs:unique name="SchoolInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--SectionInfo-->

  <xs:complexType name="SectionInfoType">
    <xs:sequence>
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ScheduleInfoList" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ScheduleInfo" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="TeacherList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="StaffPersonalRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SectionRoomList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="RoomInfoRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="MeetingTimeList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element ref="sif:MeetingTime" minOccurs="0" maxOccurs="unbounded" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="TermInfoRefId" use="required" type="sif:IdRefType" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MediumOfInstruction" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0209MediumOfInstructionType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LanguageOfInstruction" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NISOZ3953LanguageCodesType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LocationOfInstruction" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0171ReceivingLocationOfInstructionServiceType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SummerSchool" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SchoolCourseInfoOverride" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CourseCode" minOccurs="0" nillable="true" type="sif:CourseCodeType" />
            <xs:element name="StateCourseCode" minOccurs="0" nillable="true" type="sif:StateCourseCodeType" />
            <xs:element name="DistrictCourseCode" minOccurs="0" nillable="true" type="sif:DistrictCourseCodeType" />
            <xs:element name="SubjectArea" minOccurs="0" nillable="true" type="sif:SubjectAreaType" />
            <xs:element name="CourseTitle" minOccurs="0" nillable="true" type="sif:CourseTitleType" />
            <xs:element name="InstructionalLevel" minOccurs="0" nillable="true" type="sif:InstructionalLevelType" />
            <xs:element name="CourseCredits" minOccurs="0" nillable="true" type="sif:CourseCreditsType" />
          </xs:sequence>
          <xs:attribute name="Override" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="Yes" />
                <xs:enumeration value="No" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </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:unique name="SIF_ExtendedElementsKey100">
          <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="SchoolCourseInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="SectionInfo" type="sif:SectionInfoType">
    <xs:unique name="SectionInfoKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StaffPersonal-->

  <xs:complexType name="StaffPersonalType">
    <xs:sequence>
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="ElectronicIdList" minOccurs="0" nillable="true" type="sif:ElectronicIdListType" />
      <xs:element name="OtherIdList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="OtherId" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Type" use="required">
                      <xs:simpleType>
                        <xs:restriction base="sif:NCES0147IdentificationSystemType">
                          <xs:enumeration value="0328" />
                          <xs:enumeration value="0164" />
                          <xs:enumeration value="0339" />
                          <xs:enumeration value="9999" />
                          <xs:enumeration value="0222" />
                          <xs:enumeration value="0154" />
                          <xs:enumeration value="0399" />
                          <xs:enumeration value="0004" />
                          <xs:enumeration value="0113" />
                          <xs:enumeration value="5013" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Name" minOccurs="0" type="sif:NameOfRecordType" />
      <xs:element name="OtherNames" minOccurs="0" nillable="true" type="sif:OtherNamesType">
        <xs:unique name="OtherNamesKey3">
          <xs:selector xpath="./sif:Name" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="Demographics" minOccurs="0" nillable="true" type="sif:DemographicsType" />
      <xs:element name="Title" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:unique name="AddressListKey13">
          <xs:selector xpath="./sif:Address" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:unique name="PhoneNumberListKey14">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:unique name="EmailListKey4">
          <xs:selector xpath="./sif:Email" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="EmployeePersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType" />
      <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_ExtendedElementsKey101">
          <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:complexType>

  <xs:element name="StaffPersonal" type="sif:StaffPersonalType">
    <xs:unique name="StaffPersonalKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentContact-->

  <xs:complexType name="StudentContactType">
    <xs:sequence>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
      <xs:element name="OtherIdList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="OtherId" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Type" use="required">
                      <xs:simpleType>
                        <xs:restriction base="sif:NCES0147IdentificationSystemType">
                          <xs:enumeration value="0328" />
                          <xs:enumeration value="0164" />
                          <xs:enumeration value="0339" />
                          <xs:enumeration value="9999" />
                          <xs:enumeration value="0222" />
                          <xs:enumeration value="0154" />
                          <xs:enumeration value="0399" />
                          <xs:enumeration value="0004" />
                          <xs:enumeration value="0113" />
                          <xs:enumeration value="5013" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Name" minOccurs="0" type="sif:NameOfRecordType" />
      <xs:element name="OtherNames" minOccurs="0" nillable="true" type="sif:OtherNamesType">
        <xs:unique name="OtherNamesKey4">
          <xs:selector xpath="./sif:Name" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </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:unique name="AddressListKey14">
          <xs:selector xpath="./sif:Address" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:unique name="PhoneNumberListKey15">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:unique name="EmailListKey5">
          <xs:selector xpath="./sif:Email" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="Relationship" minOccurs="0" nillable="true" type="sif:RelationshipType" />
      <xs:element name="EmployerType" minOccurs="0" nillable="true" type="sif:NCES0614EmployerTypeType" />
      <xs:element name="EducationalLevel" minOccurs="0" nillable="true" type="sif:EducationalLevelType" />
      <xs:element name="ContactFlags" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ParentLegalGuardian" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PickupRights" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="LivesWith" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="AccessToRecords" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="EmergencyContact" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="HasCustody" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="DisciplinaryContact" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PrimaryCareProvider" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ContactSequence" minOccurs="0" nillable="true" type="xs:unsignedInt" />
      <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_ExtendedElementsKey102">
          <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="StudentPersonalRefId" use="required" type="sif:IdRefType" />
  </xs:complexType>

  <xs:element name="StudentContact" type="sif:StudentContactType">
    <xs:unique name="StudentContactKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentDailyAttendance-->

  <xs:complexType name="StudentDailyAttendanceType">
    <xs:sequence>
      <xs:element name="AttendanceCodeInfoRefId" minOccurs="0" type="sif:IdRefType" />
      <xs:element name="TimeIn" minOccurs="0" nillable="true" type="xs:time" />
      <xs:element name="TimeOut" minOccurs="0" nillable="true" type="xs:time" />
      <xs:element name="AttendanceNote" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <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_ExtendedElementsKey103">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="Date" use="required" type="xs:date" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="StudentDailyAttendance" type="sif:StudentDailyAttendanceType">
    <xs:unique name="StudentDailyAttendanceKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@StudentPersonalRefId" />
      <xs:field xpath="@SchoolInfoRefId" />
      <xs:field xpath="@Date" />
    </xs:unique>
  </xs:element>


  <!--StudentPersonal-->

  <xs:complexType name="StudentPersonalType">
    <xs:sequence>
      <xs:element name="AlertMessages" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AlertMessage" 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="Legal" />
                          <xs:enumeration value="Discipline" />
                          <xs:enumeration value="Educational" />
                          <xs:enumeration value="Other" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MedicalAlertMessages" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MedicalAlertMessage" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="Severity" use="required">
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Low" />
                          <xs:enumeration value="Moderate" />
                          <xs:enumeration value="High" />
                          <xs:enumeration value="Severe" />
                          <xs:enumeration value="Unknown" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element ref="sif:LocalId" minOccurs="0" />
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType" />
      <xs:element name="ElectronicIdList" minOccurs="0" nillable="true" type="sif:ElectronicIdListType" />
      <xs:element name="OtherIdList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="OtherId" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Type" use="required">
                      <xs:simpleType>
                        <xs:restriction base="sif:NCES0147IdentificationSystemType">
                          <xs:enumeration value="0164" />
                          <xs:enumeration value="0339" />
                          <xs:enumeration value="0338" />
                          <xs:enumeration value="0879" />
                          <xs:enumeration value="9999" />
                          <xs:enumeration value="0222" />
                          <xs:enumeration value="0764" />
                          <xs:enumeration value="0154" />
                          <xs:enumeration value="0004" />
                          <xs:enumeration value="0113" />
                          <xs:enumeration value="5013" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Name" minOccurs="0" type="sif:NameOfRecordType" />
      <xs:element name="OtherNames" minOccurs="0" nillable="true" type="sif:OtherNamesType">
        <xs:unique name="OtherNamesKey5">
          <xs:selector xpath="./sif:Name" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </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:unique name="AddressListKey15">
          <xs:selector xpath="./sif:Address" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:unique name="PhoneNumberListKey16">
          <xs:selector xpath="./sif:PhoneNumber" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:unique name="EmailListKey6">
          <xs:selector xpath="./sif:Email" />
          <xs:field xpath="@Type" />
        </xs:unique>
      </xs:element>
      <xs:element name="ProjectedGraduationYear" minOccurs="0" nillable="true" type="sif:ProjectedGraduationYearType" />
      <xs:element name="OnTimeGraduationYear" minOccurs="0" nillable="true" type="sif:OnTimeGraduationYearType" />
      <xs:element name="GraduationDate" minOccurs="0" nillable="true" type="sif:GraduationDateType" />
      <xs:element name="MostRecent" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SchoolLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
            <xs:element name="HomeroomLocalId" minOccurs="0" nillable="true" type="sif:LocalIdType" />
            <xs:element name="GradeLevel" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AcceptableUsePolicy" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="IDEA" minOccurs="0" nillable="true" type="sif:IDEAType" />
      <xs:element name="Migrant" minOccurs="0" nillable="true" type="sif:MigrantType" />
      <xs:element name="Title1" minOccurs="0" nillable="true" type="sif:Title1Type" />
      <xs:element name="GiftedTalented" minOccurs="0" nillable="true" type="sif:GiftedTalentedType" />
      <xs:element name="EconomicDisadvantage" minOccurs="0" nillable="true" type="sif:EconomicDisadvantageType" />
      <xs:element name="ELL" minOccurs="0" nillable="true" type="sif:ELLType" />
      <xs:element name="Homeless" minOccurs="0" nillable="true" type="sif:HomelessType" />
      <xs:element name="Section504" minOccurs="0" nillable="true" type="sif:Section504Type" />
      <xs:element name="VocationalConcentrator" minOccurs="0" nillable="true" type="sif:VocationalConcentratorType" />
      <xs:element name="Immigrant" minOccurs="0" nillable="true" type="sif:ImmigrantType" />
      <xs:element name="NeglectedDelinquent" minOccurs="0" nillable="true" type="sif:NeglectedDelinquentType" />
      <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_ExtendedElementsKey104">
          <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:complexType>

  <xs:element name="StudentPersonal" type="sif:StudentPersonalType">
    <xs:unique name="StudentPersonalKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>


  <!--StudentPicture-->

  <xs:complexType name="StudentPictureType">
    <xs:sequence>
      <xs:element name="PictureSource" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:URIOrBinaryTypeOrEmpty">
              <xs:attribute name="Type" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="URL" />
                    <xs:enumeration value="JPEG" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="OKToPublish" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </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:unique name="SIF_ExtendedElementsKey105">
          <xs:selector xpath="./sif:SIF_ExtendedElement" />
          <xs:field xpath="@Name" />
        </xs:unique>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType" />
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType" />
  </xs:complexType>

  <xs:element name="StudentPicture" type="sif:StudentPictureType">
    <xs:unique name="StudentPictureKey1">
      <xs:selector xpath="." />
      <xs:field xpath="@StudentPersonalRefId" />
    </xs:unique>
  </xs:element>


  <!--StudentSchoolEnrollment-->

  <xs:complexType name="StudentSchoolEnrollmentType">
    <xs:sequence>
      <xs:element name="EntryDate" minOccurs="0" type="xs:date" />
      <xs:element name="EntryType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0619EntryTypeType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GradeLevel" minOccurs="0" nillable="true" type="sif:GradeLevelType" />
      <xs:element name="Homeroom" 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="RoomInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Advisor" 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="StaffPersonal" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Counselor" 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="StaffPersonal" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Calendar" 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="CalendarSummary" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExitDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="ExitStatus" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0643ExitWithdrawalStatusType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExitType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0644ExitWithdrawalTypeType" />
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="RecordClosureReason" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="SchoolExit" />
            <xs:enumeration value="TimeDependentDataChange" />
            <xs:enumeration value="EndOfYear" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="PromotionInfo" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PromotionStatus" minOccurs="0" nillable="true">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Promoted" />
                  <xs:enumeration value="Demoted" />
                  <xs