<!--SIF Implementation Specification 2.1-6 (July 25, 2008)-->
<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 name="SIF_Ack" type="sif:SIF_AckType" />
      <xs:element name="SIF_Event" type="sif:SIF_EventType" />
      <xs:element name="SIF_Provide" type="sif:SIF_ProvideType" />
      <xs:element name="SIF_Provision" type="sif:SIF_ProvisionType" />
      <xs:element name="SIF_Register" type="sif:SIF_RegisterType" />
      <xs:element name="SIF_Request" type="sif:SIF_RequestType" />
      <xs:element name="SIF_Response" type="sif:SIF_ResponseType" />
      <xs:element name="SIF_Subscribe" type="sif:SIF_SubscribeType" />
      <xs:element name="SIF_SystemControl" type="sif:SIF_SystemControlType" />
      <xs:element name="SIF_Unprovide" type="sif:SIF_UnprovideType" />
      <xs:element name="SIF_Unregister" type="sif:SIF_UnregisterType" />
      <xs:element name="SIF_Unsubscribe" type="sif:SIF_UnsubscribeType" />
    </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 name="SIF_AuthenticationLevel" type="sif:SIF_AuthenticationLevelType" />
                  <xs:element name="SIF_EncryptionLevel" type="sif:SIF_EncryptionLevelType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
    </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 name="SIF_Context" maxOccurs="unbounded" type="sif:SIF_ContextType" />
    </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 name="SIF_Message" type="sif:SIF_MessageType" />
            <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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <xs:element name="SIF_OriginalSourceId" nillable="true" type="xs:token" />
      <xs:element name="SIF_OriginalMsgId" nillable="true" type="sif:MsgIdType" />
      <xs:choice>
        <xs:element name="SIF_Status" type="sif:SIF_StatusType" />
        <xs:element name="SIF_Error" type="sif:SIF_ErrorType" />
      </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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean" />
            <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
          </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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <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 name="SIF_Protocol" minOccurs="0" type="sif:SIF_ProtocolType" />
      <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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionWithWildcardsType" />
      <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt" />
      <xs:choice>
        <xs:element name="SIF_Query" type="sif:SIF_QueryType" />
        <xs:element name="SIF_ExtendedQuery" type="sif:SIF_ExtendedQueryType" />
      </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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <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 name="SIF_Error" type="sif:SIF_ErrorType" />
        <xs:element name="SIF_ObjectData" type="sif:SIF_ResponseObjectsType" />
        <xs:element name="SIF_ExtendedQueryResults" type="sif:SIF_ExtendedQueryResultsType" />
      </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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
          </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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <xs:element name="SIF_SystemControlData">
        <xs:complexType>
          <xs:choice>
            <xs:element name="SIF_Ping" type="sif:SIF_PingType" />
            <xs:element name="SIF_Sleep" type="sif:SIF_SleepType" />
            <xs:element name="SIF_Wakeup" type="sif:SIF_WakeupType" />
            <xs:element name="SIF_GetMessage" type="sif:SIF_GetMessageType" />
            <xs:element name="SIF_GetZoneStatus" type="sif:SIF_GetZoneStatusType" />
            <xs:element name="SIF_GetAgentACL" type="sif:SIF_GetAgentACLType" />
            <xs:element name="SIF_CancelRequests" type="sif:SIF_CancelRequestsType" />
          </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 name="SIF_Header" type="sif:SIF_HeaderType" />
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
          </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 name="SIF_Header" type="sif:SIF_HeaderType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Unregister" type="sif:SIF_UnregisterType" />


  <!--SIF_Unsubscribe-->

  <xs:complexType name="SIF_UnsubscribeType">
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType" />
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
          </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Protocol" minOccurs="0" type="sif:SIF_ProtocolType" />
                  <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 name="SIF_AuthenticationLevel" minOccurs="0" type="sif:SIF_AuthenticationLevelType" />
                  <xs:element name="SIF_EncryptionLevel" minOccurs="0" type="sif:SIF_EncryptionLevelType" />
                  <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 name="SIF_Protocol" minOccurs="0" maxOccurs="unbounded" type="sif:SIF_ProtocolType" />
          </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
      <xs:element name="SIF_Metadata" minOccurs="0" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="ZoneId" use="required" type="xs:token" />
  </xs:complexType>

  <xs:element name="SIF_ZoneStatus" type="sif:SIF_ZoneStatusType" />


  <!--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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                            </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 name="SIF_Protocol" minOccurs="0" type="sif:SIF_ProtocolType" />
                  <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 name="SIF_AuthenticationLevel" minOccurs="0" type="sif:SIF_AuthenticationLevelType" />
                  <xs:element name="SIF_EncryptionLevel" minOccurs="0" type="sif:SIF_EncryptionLevelType" />
                  <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 name="SIF_Protocol" maxOccurs="unbounded" type="sif:SIF_ProtocolType" />
          </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
      <xs:element name="SIF_Metadata" minOccurs="0" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" type="sif:SIF_ExtendedElementsType" />
    </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType" />
                </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_Metadata" minOccurs="0" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" type="sif:SIF_ExtendedElementsType" />
    </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                </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 name="SIF_Contexts" type="sif:SIF_ContextsType" />
                </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_Metadata" minOccurs="0" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" type="sif:SIF_ExtendedElementsType" />
    </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" />


  <!--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 name="SubjectArea" minOccurs="0" maxOccurs="unbounded" type="sif:SubjectAreaType" />
    </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 name="ContactInfo" minOccurs="0" type="sif:ContactInfoType" />
          </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 name="IdentificationInfo" minOccurs="0" maxOccurs="unbounded" type="sif:IdentificationInfoType" />
    </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" />


  <!--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 name="StateProvince" minOccurs="0" type="sif:StateProvinceType" />
      <xs:element name="Country" minOccurs="0" type="sif:CountryType" />
      <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:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType" />
    </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" />


  <!--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" type="sif:NCES0849RaceType" />
            <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 name="ElectronicId" minOccurs="0" maxOccurs="unbounded" type="sif:ElectronicIdType" />
    </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" />


  <!--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 name="GradeLevel" minOccurs="0" maxOccurs="unbounded" type="sif:GradeLevelType" />
    </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" />


  <!--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" />


  <!--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:el