<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="http://www.w3.org/2001/xml.xsd" />

  <!--Infrastructure Common Elements-->


  <!--SIF_Message-->

  <xs:complexType name="SIF_MessageType">
    <xs:annotation>
      <xs:documentation>Contains one of the SIF message types.</xs:documentation>
    </xs:annotation>
    <xs:choice>
      <xs:element name="SIF_Ack" type="sif:SIF_AckType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Event" type="sif:SIF_EventType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Provide" type="sif:SIF_ProvideType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Provision" type="sif:SIF_ProvisionType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Register" type="sif:SIF_RegisterType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Request" type="sif:SIF_RequestType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Response" type="sif:SIF_ResponseType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Subscribe" type="sif:SIF_SubscribeType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_SystemControl" type="sif:SIF_SystemControlType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Unprovide" type="sif:SIF_UnprovideType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Unregister" type="sif:SIF_UnregisterType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Unsubscribe" type="sif:SIF_UnsubscribeType">
        <xs:annotation>
          <xs:documentation>Contains one of the SIF message types.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
    <!--<xs:attribute name="xmlns" use="optional" type="xs:anyURI">
  <xs:annotation>
    <xs:documentation>
              The xmlns attribute specifies the XML namespace for SIF messages.
              For this version of the specification, the value of this attribute MUST be http://www.sifinfo.org/infrastructure/2.x. This XML namespace value will remain the same until the next major release of SIF (3.0).
            </xs:documentation>
  </xs:annotation>
</xs:attribute>-->
    <xs:attribute name="Version" use="required" type="sif:VersionType">
      <xs:annotation>
        <xs:documentation>
              The version of the SIF Implementation Specification that defines this message's XML structure.
              For this version of the specification, the value of this attribute is 2.0.
              This attribute can be used by ZIS and agent implementations to choose schema files to
              validate the message's XML.
            </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SIF_Message" type="sif:SIF_MessageType" />


  <!--SIF_Header-->

  <xs:complexType name="SIF_HeaderType">
    <xs:annotation>
      <xs:documentation>Header information associated with a message.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_MsgId" type="sif:MsgIdType">
        <xs:annotation>
          <xs:documentation>SIF_MsgId is a globally unique message identifier from the Agent or ZIS that sends out the message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Timestamp" type="xs:dateTime">
        <xs:annotation>
          <xs:documentation>Timestamp of when the message was sent.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <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:annotation>
                      <xs:documentation>The minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_EncryptionLevel" type="sif:SIF_EncryptionLevelType">
                    <xs:annotation>
                      <xs:documentation>The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SourceId" type="xs:token">
        <xs:annotation>
          <xs:documentation>The SIF_SourceId is the ID of the originator of the message. Each source needs to have a zone unique case-sensitive identifier.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_DestinationId" minOccurs="0" type="xs:token">
        <xs:annotation>
          <xs:documentation>This element represents the ID of the recipient of the message and may be present as follows:</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType">
        <xs:annotation>
          <xs:documentation>
              Contains each SIF Context that applies to the message.  If omitted, the applicable context is SIF_Default.
              SIF_Context is repeatable for SIF_Events, not repeatable for SIF_Request or SIF_Response.
            </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Header" type="sif:SIF_HeaderType" />


  <!--SIF_EncryptionLevel-->

  <xs:simpleType name="SIF_EncryptionLevelType">
    <xs:annotation>
      <xs:documentation>The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:unsignedInt">
      <xs:annotation>
        <xs:documentation>The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents.</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="0">
        <xs:annotation>
          <xs:documentation>No encryption required</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Symmetric key length of at least 40 bits is to be used</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Symmetric key length of at least 56 bits is to be used</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Symmetric key length of at least 80 bits is to be used</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Symmetric key length of at least 128 bits is to be used</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SIF_EncryptionLevel" type="sif:SIF_EncryptionLevelType" />


  <!--SIF_AuthenticationLevel-->

  <xs:simpleType name="SIF_AuthenticationLevelType">
    <xs:annotation>
      <xs:documentation>The minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:unsignedInt">
      <xs:annotation>
        <xs:documentation>The minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents.</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="0">
        <xs:annotation>
          <xs:documentation>No authentication required and a valid certificate does not need to be presented.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>A valid certificate must be presented.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>
                A valid certificate from a trusted certificate
                authority must be presented.
              </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>
                A valid certificate from a trusted certificate
                authority must be presented and the CN field of the certificate's
                Subject entry must match the host sending the certificate.
              </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SIF_AuthenticationLevel" type="sif:SIF_AuthenticationLevelType" />


  <!--SIF_Contexts-->

  <xs:complexType name="SIF_ContextsType">
    <xs:annotation>
      <xs:documentation>
              A list of SIF contexts that applies to a message or operation.  Typically where used as an optional element,
              the omission of this element implies the SIF_Default context applies.
            </xs:documentation>
    </xs:annotation>
    <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:annotation>
      <xs:documentation>The name of a SIF Context that applies to a message or operation.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>The name of a SIF Context that applies to a message or operation.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SIF_Context" type="sif:SIF_ContextType" />


  <!--SIF_Protocol-->

  <xs:complexType name="SIF_ProtocolType">
    <xs:annotation>
      <xs:documentation>Contains protocol information for contacting a ZIS or Agent.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice>
        <xs:element name="SIF_URL" type="xs:anyURI">
          <xs:annotation>
            <xs:documentation>This element is required if the protocol is HTTPS or HTTP. 
            It contains the https or http URL for contacting the agent.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="SIF_Property" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="SIF_Name" type="xs:token">
                <xs:annotation>
                  <xs:documentation>
              Property name.
            </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SIF_Value" type="xs:string">
                <xs:annotation>
                  <xs:documentation>
              Property value.
            </xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Type" use="required">
      <xs:annotation>
        <xs:documentation>The type of protocol to use (HTTPS, HTTP or an implementation-defined protocol).</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union>
          <xs:annotation>
            <xs:documentation>The type of protocol to use (HTTPS, HTTP or an implementation-defined protocol).</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="sif:DefinedProtocolsType" />
          </xs:simpleType>
          <xs:annotation>
            <xs:documentation>The type of protocol to use (HTTPS, HTTP or an implementation-defined protocol).</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:token" />
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="Secure" use="required">
      <xs:annotation>
        <xs:documentation>Whether the protocol provides a secure channel.</xs:documentation>
      </xs:annotation>
      <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:annotation>
      <xs:documentation>This element is used to signal a successful response.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Code" type="sif:InfrastructureStatusCodeType" />
      <xs:element name="SIF_Desc" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>
              An optional textual description/equivalent of SIF_Code.
            </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Data" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
              Optional element to hold data related to a successful operation.  This data is currently limited
              to a SIF_Message returned by the ZIS in response to a Pull-Mode Agent's SIF_GetMessage,
              SIF_AgentACL returned by the ZIS in response to SIF_Register and SIF_GetAgentACL,
              and SIF_ZoneStatus returned by the ZIS in response to SIF_GetZoneStatus.
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice>
            <xs:element name="SIF_Message" type="sif:SIF_MessageType">
              <xs:annotation>
                <xs:documentation>
              Optional element to hold data related to a successful operation.  This data is currently limited
              to a SIF_Message returned by the ZIS in response to a Pull-Mode Agent's SIF_GetMessage,
              SIF_AgentACL returned by the ZIS in response to SIF_Register and SIF_GetAgentACL,
              and SIF_ZoneStatus returned by the ZIS in response to SIF_GetZoneStatus.
            </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_AgentACL" type="sif:SIF_AgentACLInfrastructureType">
              <xs:annotation>
                <xs:documentation>
              Optional element to hold data related to a successful operation.  This data is currently limited
              to a SIF_Message returned by the ZIS in response to a Pull-Mode Agent's SIF_GetMessage,
              SIF_AgentACL returned by the ZIS in response to SIF_Register and SIF_GetAgentACL,
              and SIF_ZoneStatus returned by the ZIS in response to SIF_GetZoneStatus.
            </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_ZoneStatus" type="sif:SIF_ZoneStatusInfrastructureType">
              <xs:annotation>
                <xs:documentation>
              Optional element to hold data related to a successful operation.  This data is currently limited
              to a SIF_Message returned by the ZIS in response to a Pull-Mode Agent's SIF_GetMessage,
              SIF_AgentACL returned by the ZIS in response to SIF_Register and SIF_GetAgentACL,
              and SIF_ZoneStatus returned by the ZIS in response to SIF_GetZoneStatus.
            </xs:documentation>
              </xs:annotation>
            </xs:element>
          </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:annotation>
      <xs:documentation>This element is used to signal an unsuccessful response.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Category" type="sif:InfrastructureErrorCategoryType" />
      <xs:element name="SIF_Code">
        <xs:annotation>
          <xs:documentation>
              See Error Codes.
            </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureXMLValidationErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureEncryptionErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureAuthenticationErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureAccessAndPermissionErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureRegistrationErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureProvisionErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureSubscriptionErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureRequestAndResponseErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureEventReportingAndProcessingErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureTransportErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureSystemErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:InfrastructureGenericMessageHandlingErrorType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>
              See Error Codes.
            </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:token" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Desc" type="xs:string">
        <xs:annotation>
          <xs:documentation>A simple, easy to understand, description of the error. The primary consumer of this message is the application user. Example: "Unable to open database."</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_ExtendedDesc" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>An optional error description that is more complete and technical in nature. It is to be used as a diagnostic message in trouble-shooting procedures. Example: "The 'Students' table is opened in exclusive mode by user 'ADM1' (dbm.cpp, line 300)."</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Error" type="sif:SIF_ErrorType" />


  <!--SIF_Query-->

  <xs:complexType name="SIF_QueryType">
    <xs:annotation>
      <xs:documentation>SIF's default query mechanism.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_QueryObject">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Element" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Individual elements/attributes being requested of matching object.  See SIF_Element Syntax below. 
						If specified, only the elements/attributes requested are returned in the SIF_Response (with any parent elements/attributes); 
						otherwise, all elements supported by the provider's object are returned.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
            <xs:annotation>
              <xs:documentation>The actual name of the object that is being queried for.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </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:annotation>
                              <xs:documentation>This is the element/attribute being queried.  See below for syntax.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SIF_Operator">
                            <xs:annotation>
                              <xs:documentation>The comparison operator for the condition.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                              <xs:restriction base="xs:token">
                                <xs:enumeration value="EQ">
                                  <xs:annotation>
                                    <xs:documentation>Equals</xs:documentation>
                                  </xs:annotation>
                                </xs:enumeration>
                                <xs:enumeration value="LT">
                                  <xs:annotation>
                                    <xs:documentation>Less Than</xs:documentation>
                                  </xs:annotation>
                                </xs:enumeration>
                                <xs:enumeration value="GT">
                                  <xs:annotation>
                                    <xs:documentation>Greater Than</xs:documentation>
                                  </xs:annotation>
                                </xs:enumeration>
                                <xs:enumeration value="LE">
                                  <xs:annotation>
                                    <xs:documentation>Less Than Or Equals</xs:documentation>
                                  </xs:annotation>
                                </xs:enumeration>
                                <xs:enumeration value="GE">
                                  <xs:annotation>
                                    <xs:documentation>Greater Than Or Equals</xs:documentation>
                                  </xs:annotation>
                                </xs:enumeration>
                                <xs:enumeration value="NE">
                                  <xs:annotation>
                                    <xs:documentation>Not Equals</xs:documentation>
                                  </xs:annotation>
                                </xs:enumeration>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SIF_Value" type="xs:string">
                            <xs:annotation>
                              <xs:documentation>SIF_Value is the data that is used to compare with the value of the element or attribute.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="Type" use="required">
                    <xs:annotation>
                      <xs:documentation>
								The boolean operator for joining conditions (SIF_Condition elements) within this element.  Note that None should be used if there
								is only one SIF_Condition element.
							</xs:documentation>
                    </xs:annotation>
                    <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:annotation>
                <xs:documentation>
								The Boolean operator for joining conditions (SIF_Conditions elements) within this element.  Note that None should be used if there is only one
								SIF_Conditions element.
							</xs:documentation>
              </xs:annotation>
              <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">
          <xs:annotation>
            <xs:documentation>
							An example SIF object that serves as a template for matching objects.  There is an implied EQ operator
							for every element/attribute value present and an implied And group of all resulting conditions.  Currently
							this is an experimental feature and limited to use with StudentLocator; wider use may be considered in future
							versions of this specification.
						</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice>
              <xs:element name="StudentLocator" type="sif:StudentLocatorType">
                <xs:annotation>
                  <xs:documentation>
							An example SIF object that serves as a template for matching objects.  There is an implied EQ operator
							for every element/attribute value present and an implied And group of all resulting conditions.  Currently
							this is an experimental feature and limited to use with StudentLocator; wider use may be considered in future
							versions of this specification.
						</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:choice>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Query" type="sif:SIF_QueryType" />


  <!--SIF_ExtendedQuery-->

  <xs:complexType name="SIF_ExtendedQueryType">
    <xs:annotation>
      <xs:documentation>SIF's default query mechanism for SIF_Request, SIF_Query, has several limitations that limit its usefulness when creating reporting applications
						that process data from a SIF zone.  SIF_Query is limited to matching only one object type per query, requiring applications to
						manually join together results as needed for reporting and general data processing.  SIF_ExtendedQuery is designed to allow for joins on
						object identifiers/RefIds and to allow retrieval of data in a row/column fashion similar to SQL.  Each returned column may contain hierarchical XML elements/objects.
						While envisioned as the primary mechanism for SIF-based ReportManifests, Providers and Responders in a Zone may support SIF_ExtendedQuery
							in addition to SIF_Query.  Support for SIF_ExtendedQuery can be declared in and retrieved from the Zone is various Infrastructure
							messages and objects.
						</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_DestinationProvider" minOccurs="0" type="sif:SIF_RequestObjectNamesType">
        <xs:annotation>
          <xs:documentation>
              If no SIF_DestinationId applies to the request and this element is supplied, the Requester specifies that the
              extended query be routed to the Provider on record for the given object name.  If this element is omitted and no SIF_DestinationId
              applies to the request, the ZIS routes the request to the Provider on record for the object name in SIF_From.
            </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Select">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Element" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>Indicates the element/attribute to return as a column.  Contents can be left empty to return the whole object specified in ObjectName,
						or * can be designated to return all attributes and immediate child elements of the object specified in ObjectName, or 
							SIF_Element Syntax can be specified, relative to the object specified in ObjectName.  Requested attributes
							are to be returned as the text value of the corresponding attribute, elements as a copy of the XML element itself including attributes if they exist.
					</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Alias" use="optional" type="xs:normalizedString">
                      <xs:annotation>
                        <xs:documentation>Optional caption for the column.</xs:documentation>
                      </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                      <xs:annotation>
                        <xs:documentation>The name of the object from which to retrieve element/attributes.</xs:documentation>
                      </xs:annotation>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="Distinct" use="required" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Specifies whether query results should return all rows (false) or just distinct ones (true).  Rows are distinct if
						at least one column differs between them.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="RowCount" use="required">
            <xs:annotation>
              <xs:documentation>The maximum number of rows to return.  If All, return all rows, otherwise return the top rows up to the maximum
						row count indicated.
					</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:union>
                <xs:annotation>
                  <xs:documentation>The maximum number of rows to return.  If All, return all rows, otherwise return the top rows up to the maximum
						row count indicated.
					</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:positiveInteger" />
                </xs:simpleType>
                <xs:annotation>
                  <xs:documentation>The maximum number of rows to return.  If All, return all rows, otherwise return the top rows up to the maximum
						row count indicated.
					</xs:documentation>
                </xs:annotation>
                <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:annotation>
                            <xs:documentation>Specifies the left-side element/attribute on which to constrain the join.  Currently only support for keys/RefIds/RefId references is required.</xs:documentation>
                          </xs:annotation>
                          <xs:complexType>
                            <xs:simpleContent>
                              <xs:extension base="xs:normalizedString">
                                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                                  <xs:annotation>
                                    <xs:documentation>Name of the object that contains the element/attribute.</xs:documentation>
                                  </xs:annotation>
                                </xs:attribute>
                              </xs:extension>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
                        <xs:element name="SIF_RightElement">
                          <xs:annotation>
                            <xs:documentation>Specifies right left-side element/attribute on which to constrain the join.  Currently only support for keys/RefIds/RefId references is required.</xs:documentation>
                          </xs:annotation>
                          <xs:complexType>
                            <xs:simpleContent>
                              <xs:extension base="xs:normalizedString">
                                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                                  <xs:annotation>
                                    <xs:documentation>Name of the object that contains the element/attribute.</xs:documentation>
                                  </xs:annotation>
                                </xs:attribute>
                              </xs:extension>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:annotation>
                    <xs:documentation>Type of relational join.</xs:documentation>
                  </xs:annotation>
                  <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:annotation>
              <xs:documentation>The name of the object to query.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </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:annotation>
                                  <xs:documentation>This is the element/attribute being queried.</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                  <xs:simpleContent>
                                    <xs:extension base="xs:normalizedString">
                                      <xs:attribute name="ObjectName" use="required" />
                                    </xs:extension>
                                  </xs:simpleContent>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="SIF_Operator">
                                <xs:annotation>
                                  <xs:documentation>The comparison operator for the condition.</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                  <xs:restriction base="xs:token">
                                    <xs:enumeration value="EQ">
                                      <xs:annotation>
                                        <xs:documentation>Equals</xs:documentation>
                                      </xs:annotation>
                                    </xs:enumeration>
                                    <xs:enumeration value="LT">
                                      <xs:annotation>
                                        <xs:documentation>Less Than</xs:documentation>
                                      </xs:annotation>
                                    </xs:enumeration>
                                    <xs:enumeration value="GT">
                                      <xs:annotation>
                                        <xs:documentation>Greater Than</xs:documentation>
                                      </xs:annotation>
                                    </xs:enumeration>
                                    <xs:enumeration value="LE">
                                      <xs:annotation>
                                        <xs:documentation>Less Than Or Equals</xs:documentation>
                                      </xs:annotation>
                                    </xs:enumeration>
                                    <xs:enumeration value="GE">
                                      <xs:annotation>
                                        <xs:documentation>Greater Than Or Equals</xs:documentation>
                                      </xs:annotation>
                                    </xs:enumeration>
                                    <xs:enumeration value="NE">
                                      <xs:annotation>
                                        <xs:documentation>Not Equals</xs:documentation>
                                      </xs:annotation>
                                    </xs:enumeration>
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="SIF_Value" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>SIF_Value is the data that is used to compare with the value of the element or attribute.</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                      <xs:attribute name="Type" use="required">
                        <xs:annotation>
                          <xs:documentation>
								The boolean operator for joining conditions (SIF_Condition elements) within this element.  Note that None should be used if there
								is only one SIF_Condition element.
							</xs:documentation>
                        </xs:annotation>
                        <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:annotation>
                    <xs:documentation>
								The Boolean operator for joining conditions (SIF_Conditions elements) within this element.  Note that None should be used if there is only one
								SIF_Conditions element.
							</xs:documentation>
                  </xs:annotation>
                  <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:annotation>
                <xs:documentation>
							Indicates the element/attribute by which to sort.
						</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                      <xs:annotation>
                        <xs:documentation>The name of the object containing the element/attribute.</xs:documentation>
                      </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="Ordering" use="required">
                      <xs:annotation>
                        <xs:documentation>Whether to order the element/attribute in ascending or descending order.</xs:documentation>
                      </xs:annotation>
                      <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:annotation>
      <xs:documentation>
              This element provides a wrapper for data returned in response to a SIF_ExtendedQuery.  Used in SIF_Response
              and SIF_ReportObject.
            </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_ColumnHeaders">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Element" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>The element/attribute specified for the column in SIF_ExtendedQuery.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                      <xs:annotation>
                        <xs:documentation>The object in which the element/attribute occurs.</xs:documentation>
                      </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="Alias" use="optional" type="xs:normalizedString">
                      <xs:annotation>
                        <xs:documentation>The caption for the column, if specified in SIF_ExtendedQuery.
					</xs:documentation>
                      </xs:annotation>
                    </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:ExtendedContentType">
                    <xs:annotation>
                      <xs:documentation>
              Contains the value of each column specified in SIF_ExtendedQuery/SIF_Select.  
							The order of the columns must correspond to the order of the elements as requested in SIF_ExtendedQuery.
							Note the number of columns may be expanded from the requested columns if * is indicated
							one or more times in the SIF_Select clause.
            </xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </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:annotation>
      <xs:documentation>This message is used as an acknowledgement to an infrastructure message.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_OriginalSourceId" nillable="true" type="xs:token">
        <xs:annotation>
          <xs:documentation>The SIF_SourceId of the infrastructure message for which the SIF_Ack serves as a response.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_OriginalMsgId" nillable="true" type="sif:MsgIdType">
        <xs:annotation>
          <xs:documentation>The SIF_MsgId of the infrastructure message for which the SIF_Ack message serves as a response.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:choice>
        <xs:element name="SIF_Status" type="sif:SIF_StatusType">
          <xs:annotation>
            <xs:documentation>This element is used to signal a successful response.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="SIF_Error" type="sif:SIF_ErrorType">
          <xs:annotation>
            <xs:documentation>This element is used to signal an unsuccessful response.</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Ack" type="sif:SIF_AckType" />


  <!--SIF_Event-->

  <xs:complexType name="SIF_EventType">
    <xs:annotation>
      <xs:documentation>SIF_Event is used to deliver event objects as defined in SIF.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_ObjectData">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_EventObject">
              <xs:complexType>
                <xs:annotation>
                  <xs:documentation>Contains the actual object (partial or whole) that is being added, changed or deleted.</xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                  <xs:extension base="sif:SIF_EventObjectType">
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                      <xs:annotation>
                        <xs:documentation>This is the name of the object being added, changed or deleted.</xs:documentation>
                      </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="Action" use="required">
                      <xs:annotation>
                        <xs:documentation>This is the action associated with the object that is being conveyed by this SIF_Event.</xs:documentation>
                      </xs:annotation>
                      <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:annotation>
      <xs:documentation>The SIF_Provide message is used for advertising the provision of data objects.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_ExtendedQuerySupport" minOccurs="0" type="xs:boolean">
              <xs:annotation>
                <xs:documentation>Whether or not the Agent supports SIF_ExtendedQuery for this object.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType">
              <xs:annotation>
                <xs:documentation>The contexts in which the object is being provided; if omitted, the context is SIF_Default.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_ProvideObjectNamesType">
            <xs:annotation>
              <xs:documentation>The actual name of the object that is being provided.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </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:annotation>
      <xs:documentation>
			Once registered, this message allows an agent to announce to the ZIS the functionality the agent will provide.
			The ZIS compares the functionality to its access control list and either returns a failure or a success.  Upon success,
			the ZIS performs an atomic update of its provide/subscribe database entries for the agent to match the objects listed in this message and atomically
			updates other stored settings for the agent.
			A ZIS must not allow an agent to perform operations that it did not successfully announce.  Agents should be aware that if the access control
			list changes after a successful SIF_Provision, some operations may still be rejected with access control errors.
		</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <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:annotation>
                      <xs:documentation>Whether or not SIF_ExtendedQuery is supported with regard to this object.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>
			Applicable contexts for stated object support.  If omitted, the context defaults to SIF_Default.
		</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_ProvideObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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:annotation>
                      <xs:documentation>
							Applicable contexts for stated object support.  If omitted, the context defaults to SIF_Default.
						</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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:annotation>
                      <xs:documentation>
							Applicable contexts for stated object support.  If omitted, the context defaults to SIF_Default.
						</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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:annotation>
                      <xs:documentation>
							Applicable contexts for stated object support.  If omitted, the context defaults to SIF_Default.
						</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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:annotation>
                      <xs:documentation>
							Applicable contexts for stated object support.  If omitted, the context defaults to SIF_Default.
						</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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:annotation>
                      <xs:documentation>
							Optionally specify whether or not SIF_ExtendedQuery may be sent in requests for this object.
						</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>
							Applicable contexts for stated object support.  If omitted, the context defaults to SIF_Default.
						</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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:annotation>
                      <xs:documentation>
			Whether or not SIF_ExtendedQuery is supported with regard to this object.
		</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType">
                    <xs:annotation>
                      <xs:documentation>
							Applicable contexts for stated object support.  If omitted, the context defaults to SIF_Default.
						</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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:annotation>
      <xs:documentation>SIF_Register is the message for registering an agent with a ZIS.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Name" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>This is the descriptive name of the agent that is registering (i.e. Ramsey Media Center).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionWithWildcardsType">
        <xs:annotation>
          <xs:documentation>Specifies which SIF Specification version(s) the agent supports. If the ZIS cannot communicate in this format, it should reject the request.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Specifies the maximum size of a packet to be returned by the ZIS. The ZIS may return packets smaller than, or equal to, the maximum value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Mode">
        <xs:annotation>
          <xs:documentation>Specifies the communication mode (Pull or Push) as chosen by the message sender.</xs:documentation>
        </xs:annotation>
        <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:annotation>
          <xs:documentation>If SIF_Mode is Push, SIF_Protocol contains protocol information for contacting the agent in Push mode. A Pull-mode agent does not need to send SIF_Protocol; if received, a ZIS ignores it.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_NodeVendor" minOccurs="0" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The vendor of the SIF agent.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_NodeVersion" minOccurs="0" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The agent version number.  The format of this field is undefined, but it should
						match the format used in the agent's conformance statement, if the agent is SIF Certified.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Application" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Vendor" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The name of the company of the product that this agent supports.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Product" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The name of the product that this agent supports.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Version" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The version of the product. This field is informative only.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>HTTP URL referencing an icon for graphical representation of the application/agent.
Should range from 16x16 pixels to 128x128 pixels and be of an image MIME type commonly supported by Web browsers (e.g. PNG, JPEG, GIF).  
Agents may optionally follow the more restrictive guidelines at [FAVICON].</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Register" type="sif:SIF_RegisterType" />


  <!--SIF_Request-->

  <xs:complexType name="SIF_RequestType">
    <xs:annotation>
      <xs:documentation>SIF_Request is used to request information in SIF data objects from other SIF nodes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionWithWildcardsType">
        <xs:annotation>
          <xs:documentation>Specifies which SIF Specification version should be used when returning the response data; wildcards are allowed.
						The responding agent SHOULD return data using the highest version it supports 
						that falls within the specified versions.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Specifies the maximum size of a response packet to be returned to the requester. 
The responder may return packets smaller than, or equal to, the maximum value. 
To guarantee delivery of response packets, requesting agents must not specify a SIF_MaxBufferSize greater than its registered SIF_Register/SIF_MaxBufferSize.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:choice>
        <xs:element name="SIF_Query" type="sif:SIF_QueryType">
          <xs:annotation>
            <xs:documentation>Either SIF_Query or SIF_ExtendedQuery must be specified, which contain the criteria to be used to match response objects.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <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:annotation>
      <xs:documentation>SIF_Response is used to respond to a SIF_Request message.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message. The SIF_DestinationId needs to be the SIF_SourceId of the original SIF_Request message being processed.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_RequestMsgId" type="sif:MsgIdType">
        <xs:annotation>
          <xs:documentation>This is the message ID of the SIF_Request message being processed. It provides a unique match between a SIF_Response and a previous SIF_Request. Since the ID of each message from an agent is unique, the receiver of a SIF_Response message will be able to relate the SIF_Response to a SIF_Request that it sent out previously.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_PacketNumber" type="xs:positiveInteger">
        <xs:annotation>
          <xs:documentation>This element represents the index of the SIF_Response message in the sequence of packets that make up a complete response. Its value must be in the range of 1 through n, with n equal to the total number of packets that make up a response.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_MorePackets">
        <xs:annotation>
          <xs:documentation>This element provides an indication as to whether there are more packets besides this one to make up a complete response.</xs:documentation>
        </xs:annotation>
        <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:annotation>
            <xs:documentation>The responder returns SIF_Error, SIF_ObjectData or SIF_ExtendedQueryResults.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="SIF_ObjectData" type="sif:SIF_ResponseObjectsType">
          <xs:annotation>
            <xs:documentation>The SIF_ObjectData element contains the data objects matching the supplied criteria in the SIF_Request message if the
						SIF_Request contained SIF_Query.  If the SIF_Request contained SIF_ExtendedQuery, include SIF_ExtendedQueryResults.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="SIF_ExtendedQueryResults" type="sif:SIF_ExtendedQueryResultsType">
          <xs:annotation>
            <xs:documentation>This element contains the elements requested by SIF_ExtendedQuery in SIF_Request.</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Response" type="sif:SIF_ResponseType" />


  <!--SIF_Subscribe-->

  <xs:complexType name="SIF_SubscribeType">
    <xs:annotation>
      <xs:documentation>This message is used to subscribe to event objects that are contained in this message.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType">
              <xs:annotation>
                <xs:documentation>The contexts to which the subscription applies; if omitted, the context is SIF_Default.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
            <xs:annotation>
              <xs:documentation>The actual name of the object that is being subscribed to. All valid SIF_Events for this object will be routed to the subscriber.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </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:annotation>
      <xs:documentation>This message is designed to control the flow of data an agent and ZIS or vice-versa, and to synchronously
retrieve data available from the ZIS.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_SystemControlData">
        <xs:annotation>
          <xs:documentation>This element holds the sub-message being sent.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice>
            <xs:element name="SIF_Ping" type="sif:SIF_PingType">
              <xs:annotation>
                <xs:documentation>This element holds the sub-message being sent.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Sleep" type="sif:SIF_SleepType">
              <xs:annotation>
                <xs:documentation>This element holds the sub-message being sent.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Wakeup" type="sif:SIF_WakeupType">
              <xs:annotation>
                <xs:documentation>This element holds the sub-message being sent.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_GetMessage" type="sif:SIF_GetMessageType">
              <xs:annotation>
                <xs:documentation>This element holds the sub-message being sent.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_GetZoneStatus" type="sif:SIF_GetZoneStatusType">
              <xs:annotation>
                <xs:documentation>This element holds the sub-message being sent.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_GetAgentACL" type="sif:SIF_GetAgentACLType">
              <xs:annotation>
                <xs:documentation>This element holds the sub-message being sent.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </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:annotation>
      <xs:documentation>This sub-message detects if an a Push-Mode Agent or ZIS is ready to receive and process messages.</xs:documentation>
    </xs:annotation>
  </xs:complexType>

  <xs:element name="SIF_Ping" type="sif:SIF_PingType" />


  <!--SIF_Sleep-->

  <xs:complexType name="SIF_SleepType">
    <xs:annotation>
      <xs:documentation>This sub-message tells a receiver not to send any more messages to the sender.</xs:documentation>
    </xs:annotation>
  </xs:complexType>

  <xs:element name="SIF_Sleep" type="sif:SIF_SleepType" />


  <!--SIF_Wakeup-->

  <xs:complexType name="SIF_WakeupType">
    <xs:annotation>
      <xs:documentation>This message tells a receiver that the sender is able to process messages.</xs:documentation>
    </xs:annotation>
  </xs:complexType>

  <xs:element name="SIF_Wakeup" type="sif:SIF_WakeupType" />


  <!--SIF_GetMessage-->

  <xs:complexType name="SIF_GetMessageType">
    <xs:annotation>
      <xs:documentation>This message tells the ZIS to return the first available message to the agent, subject to Selective Message Blocking.</xs:documentation>
    </xs:annotation>
  </xs:complexType>

  <xs:element name="SIF_GetMessage" type="sif:SIF_GetMessageType" />


  <!--SIF_GetZoneStatus-->

  <xs:complexType name="SIF_GetZoneStatusType">
    <xs:annotation>
      <xs:documentation>This message tells the ZIS to return the current SIF_ZoneStatus in a SIF_Ack.</xs:documentation>
    </xs:annotation>
  </xs:complexType>

  <xs:element name="SIF_GetZoneStatus" type="sif:SIF_GetZoneStatusType" />


  <!--SIF_GetAgentACL-->

  <xs:complexType name="SIF_GetAgentACLType">
    <xs:annotation>
      <xs:documentation>This message tells the ZIS to return the Agent's ACL permissions in a SIF_Ack.</xs:documentation>
    </xs:annotation>
  </xs:complexType>

  <xs:element name="SIF_GetAgentACL" type="sif:SIF_GetAgentACLType" />


  <!--SIF_Unprovide-->

  <xs:complexType name="SIF_UnprovideType">
    <xs:annotation>
      <xs:documentation>This message performs the opposite function of SIF_Provide.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType">
              <xs:annotation>
                <xs:documentation>
	The contexts from which the object is being removed; if omitted, the context is SIF_Default.
</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_ProvideObjectNamesType">
            <xs:annotation>
              <xs:documentation>The actual name of the object that is being removed.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </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:annotation>
      <xs:documentation>This message is used to unregister an agent from a Zone.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information contained in the message.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Unregister" type="sif:SIF_UnregisterType" />


  <!--SIF_Unsubscribe-->

  <xs:complexType name="SIF_UnsubscribeType">
    <xs:annotation>
      <xs:documentation>This message is used to unsubscribe to SIF_Events.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Header" type="sif:SIF_HeaderType">
        <xs:annotation>
          <xs:documentation>Header information associated with this message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Object" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Contexts" minOccurs="0" type="sif:SIF_ContextsType">
              <xs:annotation>
                <xs:documentation>
	The applicable contexts; if omitted, the context is SIF_Default.
</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
            <xs:annotation>
              <xs:documentation>The actual name of the object from which the agent should be unsubscribed. Events pertaining to this object published after successful unsubscription will no longer be queued for delivery to the agent. Events already queued for delivery to the agent prior to unsubscription will be delivered.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </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:annotation>
      <xs:documentation>
	The SIF_ZoneStatus object is an object that is implicitly provided by all Zone Integration Servers to provide
	information about the ZIS. Zone Integration Servers MUST provide this object.
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Name" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The descriptive name for the zone.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>
	HTTP URL referencing an icon for graphical representation of the ZIS/Zone.
	Should range from 16x16 pixels to 128x128 pixels and be of an image MIME type commonly supported by Web browsers (e.g. PNG, JPEG, GIF).
	Agents may optionally follow the more restrictive guidelines at [FAVICON].
</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Vendor" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Name" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The name of the company that wrote the ZIS.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Product" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The product name assigned by the vendor to identify this ZIS.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Version" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The version of the vendor's product—not necessarily the SIF version.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being provided by this SIF node.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that is providing objects. This is the agent or ZIS identifier that would appear in the SIF_SourceId field of any SIF_Header created by the SIF node.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being subscribed to by this SIF node.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that is subscribing to the object events. This is the agent or ZIS identifier that would appear in the SIF_SourceId field of any SIF_Header created by the SIF node.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being published by this agent.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can publish the SIF_Event. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being published by this agent.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can publish the SIF_Event. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being published by this agent.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can publish the SIF_Event. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can respond. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being requested by this agent.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can request an object. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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:annotation>
                      <xs:documentation>The descriptive name of the SIF node (i.e. Ramsey Food Services).</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI">
                    <xs:annotation>
                      <xs:documentation>
	HTTP URL referencing an icon for graphical representation of the application/agent.
	Should range from 16x16 pixels to 128x128 pixels and be of an image MIME type commonly supported by Web browsers (e.g. PNG, JPEG, GIF).
	Agents may optionally follow the more restrictive guidelines at [FAVICON].
</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_NodeVendor" minOccurs="0" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>The vendor of the SIF agent.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_NodeVersion" minOccurs="0" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>
	The agent version number.  The format of this field is undefined, but it should
	match the format used in the agent's conformance statement, if the agent is SIF Certified.
</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Application" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Vendor" type="xs:normalizedString">
                          <xs:annotation>
                            <xs:documentation>The name of the company of the product that this agent supports.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                        <xs:element name="SIF_Product" type="xs:normalizedString">
                          <xs:annotation>
                            <xs:documentation>The name of the product that this agent supports.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                        <xs:element name="SIF_Version" type="xs:normalizedString">
                          <xs:annotation>
                            <xs:documentation>The version of the product. This field is informative only.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SIF_SourceId" type="xs:token">
                    <xs:annotation>
                      <xs:documentation>The agent or ZIS identifier. This is the same value that the SIF node would place in any SIF_Header that it would create.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Mode">
                    <xs:annotation>
                      <xs:documentation>Specifies the communication mode (Pull or Push) as chosen by the message sender.</xs:documentation>
                    </xs:annotation>
                    <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:annotation>
                      <xs:documentation>Describes the currently active protocol that the SIF node is using to communicate with the ZIS.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_VersionList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionWithWildcardsType">
                          <xs:annotation>
                            <xs:documentation>This is the version or versions of the SIF Specification that the SIF node uses. For agents, this information was communicated when the SIF node registered with the ZIS.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SIF_AuthenticationLevel" minOccurs="0" type="sif:SIF_AuthenticationLevelType">
                    <xs:annotation>
                      <xs:documentation>This is the level of authentication that the SIF node supports when it wants to communicate via a secure channel.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_EncryptionLevel" minOccurs="0" type="sif:SIF_EncryptionLevelType">
                    <xs:annotation>
                      <xs:documentation>This is the level of encryption that the SIF node supports when it wants to communicate via a secure channel.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt">
                    <xs:annotation>
                      <xs:documentation>Specifies that the ZIS should never send packets larger than this value. Query responses from other providers are controlled by the SIF_MaxBufferSize attribute in the SIF_Request message.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Sleeping">
                    <xs:annotation>
                      <xs:documentation>This element shows whether the SIF node is ready to process messages.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="No">
                          <xs:annotation>
                            <xs:documentation>The SIF node is ready to process messages</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Yes">
                          <xs:annotation>
                            <xs:documentation>The SIF node is sleeping and cannot process messages</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:annotation>
                    <xs:documentation>
	The type of the node registered with the ZIS.  Note that ZIS is forward-looking and not used currently; all information about this
	Zone/ZIS is contained outside SIF_SIFNodes.
</xs:documentation>
                  </xs:annotation>
                  <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:annotation>
                <xs:documentation>Describes a particular authentication protocol supported.</xs:documentation>
              </xs:annotation>
              <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:annotation>
                <xs:documentation>Lists a specific SIF Implementation Specification version.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_AdministrationURL" minOccurs="0" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>Should a ZIS vendor provide an administration interface for the zone via a URL, the ZIS can make the URL available in SIF_ZoneStatus. Agent administrators can use the URL to access zone administration features, should they have permission to do so.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <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:annotation>
        <xs:documentation>
	The identifier for this Zone.
	It is the same as the SIF_SourceId that the ZIS would place in any SIF_Header that it creates.
</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SIF_ZoneStatus" type="sif:SIF_ZoneStatusType" />


  <!--SIF_ZoneStatusInfrastructure-->

  <xs:complexType name="SIF_ZoneStatusInfrastructureType">
    <xs:annotation>
      <xs:documentation>
	The SIF_ZoneStatus object is an object that is implicitly provided by all Zone Integration Servers to provide
	information about the ZIS. Zone Integration Servers MUST provide this object.
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Name" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The descriptive name for the zone.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>
	HTTP URL referencing an icon for graphical representation of the ZIS/Zone.
	Should range from 16x16 pixels to 128x128 pixels and be of an image MIME type commonly supported by Web browsers (e.g. PNG, JPEG, GIF).
	Agents may optionally follow the more restrictive guidelines at [FAVICON].
</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Vendor" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Name" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The name of the company that wrote the ZIS.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Product" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The product name assigned by the vendor to identify this ZIS.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SIF_Version" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The version of the vendor's product—not necessarily the SIF version.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being provided by this SIF node.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that is providing objects. This is the agent or ZIS identifier that would appear in the SIF_SourceId field of any SIF_Header created by the SIF node.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being subscribed to by this SIF node.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that is subscribing to the object events. This is the agent or ZIS identifier that would appear in the SIF_SourceId field of any SIF_Header created by the SIF node.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being published by this agent.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can publish the SIF_Event. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being published by this agent.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can publish the SIF_Event. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being published by this agent.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can publish the SIF_Event. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can respond. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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="xs:NCName">
                              <xs:annotation>
                                <xs:documentation>The name of the object being requested by this agent.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="SourceId" use="required" type="xs:token">
                  <xs:annotation>
                    <xs:documentation>The identifier of the SIF node that can request an object. This is the agent identifier that would appear in the SIF_SourceId field of any SIF_Header created by the agent.</xs:documentation>
                  </xs:annotation>
                </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:annotation>
                      <xs:documentation>The descriptive name of the SIF node (i.e. Ramsey Food Services).</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Icon" minOccurs="0" type="xs:anyURI">
                    <xs:annotation>
                      <xs:documentation>
	HTTP URL referencing an icon for graphical representation of the application/agent.
	Should range from 16x16 pixels to 128x128 pixels and be of an image MIME type commonly supported by Web browsers (e.g. PNG, JPEG, GIF).
	Agents may optionally follow the more restrictive guidelines at [FAVICON].
</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_NodeVendor" minOccurs="0" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>The vendor of the SIF agent.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_NodeVersion" minOccurs="0" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>
	The agent version number.  The format of this field is undefined, but it should
	match the format used in the agent's conformance statement, if the agent is SIF Certified.
</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Application" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Vendor" type="xs:normalizedString">
                          <xs:annotation>
                            <xs:documentation>The name of the company of the product that this agent supports.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                        <xs:element name="SIF_Product" type="xs:normalizedString">
                          <xs:annotation>
                            <xs:documentation>The name of the product that this agent supports.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                        <xs:element name="SIF_Version" type="xs:normalizedString">
                          <xs:annotation>
                            <xs:documentation>The version of the product. This field is informative only.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SIF_SourceId" type="xs:token">
                    <xs:annotation>
                      <xs:documentation>The agent or ZIS identifier. This is the same value that the SIF node would place in any SIF_Header that it would create.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Mode">
                    <xs:annotation>
                      <xs:documentation>Specifies the communication mode (Pull or Push) as chosen by the message sender.</xs:documentation>
                    </xs:annotation>
                    <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:annotation>
                      <xs:documentation>Describes the currently active protocol that the SIF node is using to communicate with the ZIS.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_VersionList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SIF_Version" maxOccurs="unbounded" type="sif:VersionWithWildcardsType">
                          <xs:annotation>
                            <xs:documentation>This is the version or versions of the SIF Specification that the SIF node uses. For agents, this information was communicated when the SIF node registered with the ZIS.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SIF_AuthenticationLevel" minOccurs="0" type="sif:SIF_AuthenticationLevelType">
                    <xs:annotation>
                      <xs:documentation>This is the level of authentication that the SIF node supports when it wants to communicate via a secure channel.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_EncryptionLevel" minOccurs="0" type="sif:SIF_EncryptionLevelType">
                    <xs:annotation>
                      <xs:documentation>This is the level of encryption that the SIF node supports when it wants to communicate via a secure channel.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt">
                    <xs:annotation>
                      <xs:documentation>Specifies that the ZIS should never send packets larger than this value. Query responses from other providers are controlled by the SIF_MaxBufferSize attribute in the SIF_Request message.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SIF_Sleeping">
                    <xs:annotation>
                      <xs:documentation>This element shows whether the SIF node is ready to process messages.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="No">
                          <xs:annotation>
                            <xs:documentation>The SIF node is ready to process messages</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Yes">
                          <xs:annotation>
                            <xs:documentation>The SIF node is sleeping and cannot process messages</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Type" use="required">
                  <xs:annotation>
                    <xs:documentation>
	The type of the node registered with the ZIS.  Note that ZIS is forward-looking and not used currently; all information about this
	Zone/ZIS is contained outside SIF_SIFNodes.
</xs:documentation>
                  </xs:annotation>
                  <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:annotation>
                <xs:documentation>Describes a particular authentication protocol supported.</xs:documentation>
              </xs:annotation>
              <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:annotation>
                <xs:documentation>Lists a specific SIF Implementation Specification version.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_AdministrationURL" minOccurs="0" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>Should a ZIS vendor provide an administration interface for the zone via a URL, the ZIS can make the URL available in SIF_ZoneStatus. Agent administrators can use the URL to access zone administration features, should they have permission to do so.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <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:annotation>
        <xs:documentation>
	The identifier for this Zone.
	It is the same as the SIF_SourceId that the ZIS would place in any SIF_Header that it creates.
</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>


  <!--SIF_AgentACL-->

  <xs:complexType name="SIF_AgentACLType">
    <xs:annotation>
      <xs:documentation>This object provides an Agent its access control list (ACL) settings in the Zone.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_ProvideAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_ProvideObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SubscribeAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishAddAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishChangeAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishDeleteAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RequestAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RespondAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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:annotation>
      <xs:documentation>This object provides an Agent its access control list (ACL) settings in the Zone.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_ProvideAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_ProvideObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_SubscribeAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishAddAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishChangeAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_PublishDeleteAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_SubscribeObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RequestAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_RespondAccess">
        <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:annotation>
                      <xs:documentation>List of contexts in which rights for the given action/object apply.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                  <xs:annotation>
                    <xs:documentation>The name of each object.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </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-->


  <!--SIF_ExtendedElements-->

  <xs:complexType name="SIF_ExtendedElementsType">
    <xs:annotation>
      <xs:documentation>Allows an agent to include data not yet defined within a SIF data object as name/value pairs.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_ExtendedElement" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>A name/value pair, the name being contained in the Name attribute, the value being the element content.</xs:documentation>
          </xs:annotation>
          <xs:complexContent>
            <xs:extension base="sif:ExtendedContentType">
              <xs:attribute name="Name" use="required" type="xs:normalizedString">
                <xs:annotation>
                  <xs:documentation>The name of the extended element. As it is possible that names for extended elements may collide from agent to agent, it is recommended that the names of extended elements be configurable in an agent, or that agents use URIs for the names of extended elements.</xs:documentation>
                </xs:annotation>
              </xs:attribute>
              <!--<xs:attribute ref="xsi:type" use="optional" />-->
              <xs:attribute name="SIF_Action" use="optional">
                <xs:annotation>
                  <xs:documentation>
	In a Change event, this flag can be used to indicate an element has been deleted from the parent list container.  At a minimum the key for the list must also be present.
</xs:documentation>
                </xs:annotation>
                <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" />


  <!--ElectronicIdList-->

  <xs:complexType name="ElectronicIdListType">
    <xs:annotation>
      <xs:documentation>A list of electronic identifiers associated with an entity.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="ElectronicId" maxOccurs="unbounded" type="sif:ElectronicIdType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ElectronicIdList" type="sif:ElectronicIdListType" />


  <!--ElectronicId-->

  <xs:complexType name="ElectronicIdType">
    <xs:annotation>
      <xs:documentation>
	Common element used to specify entity identifiers that are read by electronic equipment. It is used in objects such
	as StudentPersonal, StaffPersonal, and LibraryPatronStatus.
</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required">
          <xs:annotation>
            <xs:documentation>Electronic ID type.</xs:documentation>
          </xs:annotation>
          <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" />


  <!--IdentificationInfoList-->

  <xs:complexType name="IdentificationInfoListType">
    <xs:sequence>
      <xs:element name="IdentificationInfo" maxOccurs="unbounded" type="sif:IdentificationInfoType">
        <xs:annotation>
          <xs:documentation>Other identification information associated with a school or LEA.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="IdentificationInfoList" type="sif:IdentificationInfoListType" />


  <!--IdentificationInfo-->

  <xs:complexType name="IdentificationInfoType">
    <xs:annotation>
      <xs:documentation>Other identification information associated with a school or LEA.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Code" use="required">
          <xs:annotation>
            <xs:documentation>Code indicating which identification system is used.</xs:documentation>
          </xs:annotation>
          <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" />


  <!--ContactInfo-->

  <xs:complexType name="ContactInfoType">
    <xs:annotation>
      <xs:documentation>Common element used to supply information for a contact person at a school, LEA, or other institution.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Name">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Prefix" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>A prefix associated with the name like Mr., Ms., etc.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="LastName" minOccurs="0" nillable="true" type="sif:LastNameType">
              <xs:annotation>
                <xs:documentation>The last name.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="FirstName" minOccurs="0" nillable="true" type="sif:FirstNameType">
              <xs:annotation>
                <xs:documentation>The first name.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="MiddleName" minOccurs="0" nillable="true" type="sif:MiddleNameType">
              <xs:annotation>
                <xs:documentation>The middle name or initial.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Suffix" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Generation of suffix like II, Jr., etc.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="PreferredName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>This is a name that the person prefers to be called by.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SortName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>This is the name to be used for sorting purposes.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="FullName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>
	A free text field for the complete name.  Mandatory if LastName and FirstName are omitted.
</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="Type" use="required">
            <xs:annotation>
              <xs:documentation>
	Code that specifies what type of name this is.  If unsure, use 04.
</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="01">
                  <xs:annotation>
                    <xs:documentation>Given Name (Name at Birth)</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="02">
                  <xs:annotation>
                    <xs:documentation>Current Legal</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="03">
                  <xs:annotation>
                    <xs:documentation>Alias</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="04">
                  <xs:annotation>
                    <xs:documentation>Name of Record</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="05">
                  <xs:annotation>
                    <xs:documentation>Previous Name (sometimes called Maiden Name of Female Persons)</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="07">
                  <xs:annotation>
                    <xs:documentation>Married Name</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="08">
                  <xs:annotation>
                    <xs:documentation>Professional Name</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="PositionTitle" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The contact person's position title.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Role" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Role played by this contact in this instance.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType">
        <xs:annotation>
          <xs:documentation>Address of the contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:annotation>
          <xs:documentation>List of Email elements.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:annotation>
          <xs:documentation>List of PhoneNumber elements.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ContactInfo" type="sif:ContactInfoType" />


  <!--SchoolURL-->

  <xs:simpleType name="SchoolURLType">
    <xs:annotation>
      <xs:documentation>URL for a school.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:anyURI">
      <xs:annotation>
        <xs:documentation>URL for a school.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SchoolURL" type="sif:SchoolURLType" />


  <!--LocalId-->

  <xs:simpleType name="LocalIdType">
    <xs:annotation>
      <xs:documentation>
	This is a common element used to define the locally assigned identifier associated with an entity. It is used in
	StudentPersonal, StaffPersonal, SchoolInfo, and other objects.
</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>
	This is a common element used to define the locally assigned identifier associated with an entity. It is used in
	StudentPersonal, StaffPersonal, SchoolInfo, and other objects.
</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="LocalId" type="sif:LocalIdType" />


  <!--SchoolYear-->

  <xs:simpleType name="SchoolYearType">
    <xs:annotation>
      <xs:documentation>School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2004" for the 2003-04 school year).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:gYear">
      <xs:annotation>
        <xs:documentation>School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2004" for the 2003-04 school year).</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SchoolYear" type="sif:SchoolYearType" />


  <!--LastName-->

  <xs:simpleType name="LastNameType">
    <xs:annotation>
      <xs:documentation>A person's last name.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>A person's last name.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="LastName" type="sif:LastNameType" />


  <!--FirstName-->

  <xs:simpleType name="FirstNameType">
    <xs:annotation>
      <xs:documentation>A person's first name.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>A person's first name.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="FirstName" type="sif:FirstNameType" />


  <!--MiddleName-->

  <xs:simpleType name="MiddleNameType">
    <xs:annotation>
      <xs:documentation>A person's middle name or initial.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>A person's middle name or initial.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="MiddleName" type="sif:MiddleNameType" />


  <!--Address-->

  <xs:complexType name="AddressType">
    <xs:annotation>
      <xs:documentation>This element contains address data, some of which is defined by the BS7666 International Address and Geographic Location Specification.  Other elements are present for historical reasons.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date person began using this address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date person stopped using this address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BS7666" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PAON">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>Dwelling name, or at least a general description of the location in lieu of having any other information. This is required when no other PAON information is provided.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="StartNumber" minOccurs="0" nillable="true" />
                  <xs:element name="StartNumberSuffix" minOccurs="0" nillable="true" />
                  <xs:element name="EndNumber" minOccurs="0" nillable="true" />
                  <xs:element name="EndNumberSuffix" minOccurs="0" nillable="true" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="SAON" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>Sub-dwelling name, or other descriptive information in lieu of having any other information.  This is required when no other SAON data is provided.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="StartNumber" minOccurs="0" nillable="true" />
                  <xs:element name="StartNumberSuffix" minOccurs="0" nillable="true" />
                  <xs:element name="EndNumber" minOccurs="0" nillable="true" />
                  <xs:element name="EndNumberSuffix" minOccurs="0" nillable="true" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="Street" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The name of the street.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Locality" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The locality name refers to a neighbourhood, suburb, district, village, estate, settlement, or parish that may form part of a town, or stand in its own right within the context of an administrative area.  Where an industrial estate contains streets it is defined as a locality in its own right.  At least one of Locality, Town, or AdministrativeArea must be specified.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Town" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The city name refers to a city or town that is not an adminstrative area, a suburb of an administrative area that does not form part of another town or a London district. At least one of Locality, Town, or AdministrativeArea must be specified.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AdministrativeArea" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The administrative area is a geographic area that may be the highest level local administrative area, and may be a county or a unitary authority, an island or island group, or London. At least one of Locality, Town, or AdministrativeArea must be specified</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="PostTown" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Post Office usually assigns these based on Sorting Office.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="PostCode" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The code allocated by the Post Office to identify a group of postal delivery points.  Valid Postcode formats are: A9 9AA  A99 9AA  AA9 9AA  AA99 9AA  A9A 9AA  AA9A 9AA  Plus BFPO 999</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="UniquePropertyReferenceNumber" minOccurs="0" nillable="true" type="xs:integer">
              <xs:annotation>
                <xs:documentation>The unique Property and Land Reference Number (UPRN) for this address. Numeric: 1 to 12 digits.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="UniqueStreetReferenceNumber" minOccurs="0" nillable="true" type="xs:integer">
              <xs:annotation>
                <xs:documentation>The unique Property Street Reference Number (USRN) for this address.  Numeric: 1 to 8 digits.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Country" minOccurs="0" nillable="true" type="sif:CountryType">
        <xs:annotation>
          <xs:documentation>Country where physical address is located, if known.  Usually this is going to be 'GBR' but could be elsewhere if associated with the military, etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LocationContext" minOccurs="0" nillable="true" type="sif:LocationContextType">
        <xs:annotation>
          <xs:documentation>The physical location of an address in terms of Census District, LA Electoral Ward, Parliamentary Constituency, and other defining location-centric characteristics.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GridLocation" minOccurs="0" nillable="true" type="sif:GridLocationType">
        <xs:annotation>
          <xs:documentation>The physical property location coordinates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineAddress" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Line1" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Address line 1.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Line2" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Address line 2.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Line3" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Address line 3.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Line4" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Address line 4.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Line5" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Address line 5.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="PostalCode" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The postal or zip code associated with an address. Note that addresses specified using LineAddress elements may be from any country.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="required">
      <xs:annotation>
        <xs:documentation>Code that defines the address type.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Current" />
          <xs:enumeration value="Mailing" />
          <xs:enumeration value="Transportation" />
          <xs:enumeration value="Previous" />
          <xs:enumeration value="Other" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="Address" type="sif:AddressType" />


  <!--AddressList-->

  <xs:complexType name="AddressListType">
    <xs:annotation>
      <xs:documentation>A list of Address elements.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Address" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="sif:AddressType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:annotation>
                  <xs:documentation>In a Change event, this flag can be used to indicate an element has been deleted from the parent list container. At a minimum the key for the list must also be present.</xs:documentation>
                </xs:annotation>
                <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" />


  <!--ContactList-->

  <xs:complexType name="ContactListType">
    <xs:annotation>
      <xs:documentation>A list of contact persons associated with a school or LA.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Contact" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PositionTitle" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The contact person's position title within the school or LA.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Role" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Role played by this contact in the school or LA.  Any descriptive text is allowed here.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="PublishInDirectory" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Indicates whether or not this contact's information should be published in a directory of school or LA information.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="SIF_RefId" use="required" type="sif:IdRefType">
            <xs:annotation>
              <xs:documentation>The ID (GUID) of the person listed as a contact. Note that this is any person listed as a contact through either a ContactPersonal, WorkforcePersonal, or even a LearnerPersonal record.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="SIF_RefObject" use="required">
            <xs:annotation>
              <xs:documentation>The object type being referred to. </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="WorkforcePersonal" />
                <xs:enumeration value="ContactPersonal" />
                <xs:enumeration value="LearnerPersonal" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ContactList" type="sif:ContactListType" />


  <!--Country-->

  <xs:simpleType name="CountryType">
    <xs:annotation>
      <xs:documentation>The 3-character alphabetic country code defined by ISO 3166-1.  Given this code all other code and name information can be obtained directly from the standard.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="sif:teachernetNationStatesAndCountriesType">
      <xs:annotation>
        <xs:documentation>The 3-character alphabetic country code defined by ISO 3166-1.  Given this code all other code and name information can be obtained directly from the standard.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Country" type="sif:CountryType" />


  <!--Demographics-->

  <xs:complexType name="DemographicsType">
    <xs:annotation>
      <xs:documentation>Demographic information about a learner, contact, workforce member, etc. This element occurs within objects such as LearnerPersonal, LearnerContact, etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="EthnicityList" minOccurs="0" nillable="true" type="sif:EthnicityListType">
        <xs:annotation>
          <xs:documentation>A list of the person's ethnicities by proportion.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Gender" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Person's gender.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="M">
              <xs:annotation>
                <xs:documentation>Male</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="F">
              <xs:annotation>
                <xs:documentation>Female</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="BirthDate" type="xs:date">
        <xs:annotation>
          <xs:documentation>The person's date of birth.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BirthDateVerification" minOccurs="0" nillable="true" type="sif:UKBirthDateVerificationLevelType">
        <xs:annotation>
          <xs:documentation>Means by which the person's birth date was validated.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PlaceOfBirth" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The person's place of birth--like village, town, city etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CountyOfBirth" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The county in which the person was born.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CountryOfBirth" minOccurs="0" nillable="true" type="sif:CountryType">
        <xs:annotation>
          <xs:documentation>The individual's country of birth.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CountriesOfCitizenship" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountryOfCitizenship" maxOccurs="unbounded" type="sif:CountryType">
              <xs:annotation>
                <xs:documentation>The country of legal nationality (i.e. the country which issued the individual's passport).</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CountriesOfResidency" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountryOfResidency" maxOccurs="unbounded" type="sif:CountryType">
              <xs:annotation>
                <xs:documentation>A person's country of residence.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CountryArrivalDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date the person first arrived in the UK.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EnglishProficiency" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="EALSteps" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Based on QCA Steps. (England)</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="S1">
                    <xs:annotation>
                      <xs:documentation>Step 1</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="S2">
                    <xs:annotation>
                      <xs:documentation>Step 2</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="1T">
                    <xs:annotation>
                      <xs:documentation>Level 1 Threshold</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="1S">
                    <xs:annotation>
                      <xs:documentation>Level 1 Secure</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="EALAcquisition" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Based on a differing scale from QCA Steps. (Wales)</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="A">
                    <xs:annotation>
                      <xs:documentation>New to English</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="B">
                    <xs:annotation>
                      <xs:documentation>Early Acquisition</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="C">
                    <xs:annotation>
                      <xs:documentation>Developing Competence</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="D">
                    <xs:annotation>
                      <xs:documentation>Compentent</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="E">
                    <xs:annotation>
                      <xs:documentation>Fluent</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="0">
                    <xs:annotation>
                      <xs:documentation>Not applicable</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LanguageList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Language" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Code" type="sif:teachernetLanguagesType">
                    <xs:annotation>
                      <xs:documentation>This is the code that specifies the person's language.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="Fluent" minOccurs="0" nillable="true">
                    <xs:annotation>
                      <xs:documentation>Indicates that the person is fluent in this language.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Yes" />
                        <xs:enumeration value="No" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="TypeList">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Type" maxOccurs="unbounded">
                          <xs:annotation>
                            <xs:documentation>A typification of the language. i.e. how is this language used?  ??? Serco: not in CTF and will not be supported.</xs:documentation>
                          </xs:annotation>
                          <xs:simpleType>
                            <xs:restriction base="xs:token">
                              <xs:enumeration value="C">
                                <xs:annotation>
                                  <xs:documentation>Correspondence Language</xs:documentation>
                                </xs:annotation>
                              </xs:enumeration>
                              <xs:enumeration value="F">
                                <xs:annotation>
                                  <xs:documentation>First Language</xs:documentation>
                                </xs:annotation>
                              </xs:enumeration>
                              <xs:enumeration value="M">
                                <xs:annotation>
                                  <xs:documentation>Multiple First Language</xs:documentation>
                                </xs:annotation>
                              </xs:enumeration>
                              <xs:enumeration value="H">
                                <xs:annotation>
                                  <xs:documentation>Home</xs:documentation>
                                </xs:annotation>
                              </xs:enumeration>
                              <xs:enumeration value="T">
                                <xs:annotation>
                                  <xs:documentation>Tuition</xs:documentation>
                                </xs:annotation>
                              </xs:enumeration>
                              <xs:enumeration value="S">
                                <xs:annotation>
                                  <xs:documentation>Second Language</xs:documentation>
                                </xs:annotation>
                              </xs:enumeration>
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Source" minOccurs="0" nillable="true" type="sif:UKSourceCodeType">
                    <xs:annotation>
                      <xs:documentation>Source of data on use of the specified language.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="Study" minOccurs="0" nillable="true">
                    <xs:annotation>
                      <xs:documentation>The level in which the learner is taught this language at school.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:union>
                        <xs:annotation>
                          <xs:documentation>The level in which the learner is taught this language at school.</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                          <xs:restriction base="sif:UKLanguageStudyWalesType" />
                        </xs:simpleType>
                      </xs:union>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="StudyOther" minOccurs="0" nillable="true">
                    <xs:annotation>
                      <xs:documentation>Indicates whether the learner studies subjects in this language at school separate from studying the language itself.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Yes" />
                        <xs:enumeration value="No" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MaritalStatus" minOccurs="0" nillable="true" type="sif:UKMaritalStatusType">
        <xs:annotation>
          <xs:documentation>The person's marital status.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="NonUKSystemImmigrant" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates the learner has recently arrived from a non-English or other common UK language system. (Wales)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Refugee" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indates the person's refugee/asylum seeker status as defined by the United Nations (Aritcle 1 of the 1951 Refugee Convention).</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Religion" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AffiliationCode" type="sif:UKReligiousAffiliationType">
              <xs:annotation>
                <xs:documentation>Person's religious faith.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EducationStatus" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Indicates whether the person is actively attending religious education classes.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="A">
                    <xs:annotation>
                      <xs:documentation>Attends</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="W">
                    <xs:annotation>
                      <xs:documentation>Withdrawn</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="CollectiveWorshipStatus" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Indicates whether the person is participating in religious collective worship.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="A">
                    <xs:annotation>
                      <xs:documentation>Attends</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="W">
                    <xs:annotation>
                      <xs:documentation>Withdrawn</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="Source" minOccurs="0" nillable="true" type="sif:UKSourceCodeType">
              <xs:annotation>
                <xs:documentation>Source of person's religious affiliation code.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Traveller" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" type="sif:UKTravellerGypsyCodeType">
              <xs:annotation>
                <xs:documentation>Code to identify type of traveller/gypsy.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Source" type="sif:UKSourceCodeType">
              <xs:annotation>
                <xs:documentation>Source of individual's recorded traveller/gypsy code.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Demographics" type="sif:DemographicsType" />


  <!--Email-->

  <xs:complexType name="EmailType">
    <xs:annotation>
      <xs:documentation>This element represents an e-mail address of one of a number of types.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required">
          <xs:annotation>
            <xs:documentation>This attribute specifies the type of e-mail address.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Business" />
              <xs:enumeration value="Personal" />
              <xs:enumeration value="School" />
              <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" />


  <!--EmailList-->

  <xs:complexType name="EmailListType">
    <xs:annotation>
      <xs:documentation>A list of e-mail addresses associated with an individual.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Email" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EmailList" type="sif:EmailListType" />


  <!--EstablishmentId-->

  <xs:simpleType name="EstablishmentIdType">
    <xs:annotation>
      <xs:documentation>The DfES assigned identifier for a school or other educational establishment.  The list of all known Establishment ID's is extensive and available online.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="sif:teachernetEstablishmentIdType">
      <xs:annotation>
        <xs:documentation>The DfES assigned identifier for a school or other educational establishment.  The list of all known Establishment ID's is extensive and available online.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="EstablishmentId" type="sif:EstablishmentIdType" />


  <!--EthnicityList-->

  <xs:complexType name="EthnicityListType">
    <xs:sequence>
      <xs:element name="Ethnicity" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code">
              <xs:annotation>
                <xs:documentation>The general ethnic category which reflects the individual's recognition of his or her community or with which the individual most identifies.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token" />
              </xs:simpleType>
            </xs:element>
            <xs:element name="Source" type="sif:UKSourceCodeType">
              <xs:annotation>
                <xs:documentation>Source of inidividual's recorded ethnic code.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EthnicityList" type="sif:EthnicityListType" />


  <!--GridLocation-->

  <xs:complexType name="GridLocationType">
    <xs:annotation>
      <xs:documentation>This element contains a map location. The GridLocation element is utilised within other objects and elements.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="PropertyEasting" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Easting coordinate for mapping an address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PropertyNorthing" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Northing coordinate for mapping an address. Required when PropertyEasting is also specified.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Latitude" minOccurs="0" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Geographical coordinate.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Longitude" minOccurs="0" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Geographical coordinate. Required when Latitude is also specified.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="GridLocation" type="sif:GridLocationType" />


  <!--LAId-->

  <xs:simpleType name="LAIdType">
    <xs:annotation>
      <xs:documentation>The 3-digit number assigned to the LA by the DfES.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="sif:teachernetLAIdType">
      <xs:annotation>
        <xs:documentation>The 3-digit number assigned to the LA by the DfES.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="LAId" type="sif:LAIdType" />


  <!--LAName-->

  <xs:simpleType name="LANameType">
    <xs:annotation>
      <xs:documentation>The official name of the LA.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="sif:teachernetLANameType">
      <xs:annotation>
        <xs:documentation>The official name of the LA.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="LAName" type="sif:LANameType" />


  <!--LocationContext-->

  <xs:complexType name="LocationContextType">
    <xs:annotation>
      <xs:documentation>The physical location of an address in terms of Census District, LA Electoral Ward, Parliamentary Constituency, and other defining location-centric characteristics.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="CensusDistrict" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>National Population Census Enumeration District.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="WardCode" type="sif:ONSWardCodeType">
        <xs:annotation>
          <xs:documentation>ONS Ward Code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="WardName" type="sif:ONSWardNameType">
        <xs:annotation>
          <xs:documentation>ONS Ward Name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ConstituencyCode" minOccurs="0" nillable="true" type="sif:ONSParliamentaryConstituencyCodeType">
        <xs:annotation>
          <xs:documentation>ONS Parliamentary Constituency Code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ConstituencyName" minOccurs="0" nillable="true" type="sif:ONSParliamentaryConstituencyNameType">
        <xs:annotation>
          <xs:documentation>ONS Parliamentary Constituency Name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Parish" minOccurs="0" nillable="true" type="sif:ONSParishCouncilNameType">
        <xs:annotation>
          <xs:documentation>ONS Parish Council Name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ChurchOfEnglandDiocese" minOccurs="0" nillable="true" type="sif:teachernetChurchOfEnglandDioceseType">
        <xs:annotation>
          <xs:documentation>Church of England Diocese</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ChurchOfEnglandParish" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Church of England Parish</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="RomanCatholicDiocese" minOccurs="0" nillable="true" type="sif:teachernetRomanCatholicDioceseType">
        <xs:annotation>
          <xs:documentation>Roman Catholic Diocese</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="RomanCatholicParish" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Roman Catholic Parish</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LSCouncilCode" minOccurs="0" nillable="true" type="sif:teachernetLearningAndSkillsCouncilAreaCodeType">
        <xs:annotation>
          <xs:documentation>Learning and Skills Council area code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CatchmentArea" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>School catchment area description</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="LocationContext" type="sif:LocationContextType" />


  <!--Name-->

  <xs:complexType name="NameType">
    <xs:annotation>
      <xs:documentation>The Name element defines name information for a person and occurs within the PersonalInformation element.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Title" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>A title or prefix associated with the name.  If any of: Mr, Mrs, Ms, Miss, Rev, Fr, Dr, Prof, Hon, Sir, Lord, Lady - these must be as shown, otherwise free text.  Note that title is not applicable to learners.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FamilyName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Full legal family name. That part of the person's name which is used to describe family, clan, tribal group, or marital association.  Note that this element is always required.  However, when associated with a contact it may not be possible to know the family name in which case you should add the available information to the FullName element.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GivenName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Full given name (forename) of the person.  Note that this element is always required.  However, when associated with a contact it may not be possible to know the given name in which case you should add the available information to the FullName element.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="MiddleNames" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>All other given or middle names, each separated with a single space character.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FamilyNameFirst" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>An indicator used to identify the naming conventions used by some predominantly non-European, ethnic or language groups and related to the display nature of a name.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="PreferredFamilyName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The family name preferred most by the person (as written).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PreferredFamilyNameFirst" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>An indicator used to identify the naming conventions used by some predominantly non-European, ethnic or language groups and related to the display nature of a name.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="PreferredGivenName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The given name preferred most by the person (as written).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Suffix" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Textual suffix like PHD, JP, BSc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FullName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>A free text field for the complete name for display purposes. If this is associated with a ContactPersonal record and the FamilyName and GivenName are not both specified, then this becomes mandatory.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="required">
      <xs:annotation>
        <xs:documentation>Code that specifies what type of name this is.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="B">
            <xs:annotation>
              <xs:documentation>Birth name</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="C">
            <xs:annotation>
              <xs:documentation>Current Legal name</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="A">
            <xs:annotation>
              <xs:documentation>Alias / Alternative</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="R">
            <xs:annotation>
              <xs:documentation>Name of Record</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="F">
            <xs:annotation>
              <xs:documentation>Former Name</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="M">
            <xs:annotation>
              <xs:documentation>Married Name</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="P">
            <xs:annotation>
              <xs:documentation>Professional Name</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="Name" type="sif:NameType" />


  <!--NCYearGroup-->

  <xs:simpleType name="NCYearGroupType">
    <xs:annotation>
      <xs:documentation>Code representing a National Curriculum Year Group.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="sif:UKNCYearGroupType">
      <xs:annotation>
        <xs:documentation>Code representing a National Curriculum Year Group.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="NCYearGroup" type="sif:NCYearGroupType" />


  <!--NCYearGroupList-->

  <xs:complexType name="NCYearGroupListType">
    <xs:annotation>
      <xs:documentation>This is a common element used to specify a collection of supported National Curriculum Year Groups. It is used in SchoolInfo and assessment-related objects.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="NCYearGroup" maxOccurs="unbounded" type="sif:NCYearGroupType">
        <xs:annotation>
          <xs:documentation>Code representing a National Curriculum year group.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="NCYearGroupList" type="sif:NCYearGroupListType" />


  <!--PersonalInformation-->

  <xs:complexType name="PersonalInformationType">
    <xs:annotation>
      <xs:documentation>This element contains basic personal and demographic information related to a person.  This element is part of all &amp;quot;personal&amp;quot; objects, including LearnerPersonal, WorkforcePersonal, and ContactPersonal.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Name" type="sif:NameType">
        <xs:annotation>
          <xs:documentation>Name information for this person.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherNames" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Name" maxOccurs="unbounded" type="sif:NameType">
              <xs:annotation>
                <xs:documentation>Another name associated with this person.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Demographics" minOccurs="0" nillable="true" type="sif:DemographicsType">
        <xs:annotation>
          <xs:documentation>This element contains demographic data.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Email" minOccurs="0" nillable="true" type="sif:EmailType">
        <xs:annotation>
          <xs:documentation>The person's preferred e-mail address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherEmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:annotation>
          <xs:documentation>The person's other e-mail address(es).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType">
        <xs:annotation>
          <xs:documentation>The person's current physical address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherAddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:annotation>
          <xs:documentation>The person's other address(es).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PhoneNumber" minOccurs="0" nillable="true" type="sif:PhoneNumberType">
        <xs:annotation>
          <xs:documentation>The person's preferred phone number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherPhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:annotation>
          <xs:documentation>The person's other phone number(s).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ElectronicIdList" minOccurs="0" nillable="true" type="sif:ElectronicIdListType">
        <xs:annotation>
          <xs:documentation>Electronic identifier(s) associated with this person.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherIdList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="OtherId" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>An &amp;quot;other&amp;quot; identifier associated with this person.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Type" use="required" type="xs:normalizedString">
                      <xs:annotation>
                        <xs:documentation>Text that describes the type of this other ID.</xs:documentation>
                      </xs:annotation>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="PersonalInformation" type="sif:PersonalInformationType" />


  <!--PhoneNumber-->

  <xs:complexType name="PhoneNumberType">
    <xs:annotation>
      <xs:documentation>This element represents a phone number and occurs within objects such as LearnerPersonal, WorkforcePersonal, etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Number" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Phone number. Validation:  0-9 and a leading '+' (for international calls).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Extension" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Phone number extension.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ListedStatus" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates whether or not the phone number is available to the public.</xs:documentation>
        </xs:annotation>
        <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:UKPhoneTypeType">
      <xs:annotation>
        <xs:documentation>Code that specifies the phone number type.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="PhoneNumber" type="sif:PhoneNumberType" />


  <!--PhoneNumberList-->

  <xs:complexType name="PhoneNumberListType">
    <xs:annotation>
      <xs:documentation>Lists phone numbers associated with an entity.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="PhoneNumber" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="sif:PhoneNumberType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:annotation>
                  <xs:documentation>In a Change event, this flag can be used to indicate an element has been deleted from the parent list container. At a minimum the key for the list must also be present.</xs:documentation>
                </xs:annotation>
                <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" />


  <!--SchoolURN-->

  <xs:simpleType name="SchoolURNType">
    <xs:annotation>
      <xs:documentation>The alternate DfES assigned identifier for a school or other educational establishment.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="sif:teachernetEstablishmentIdType">
      <xs:annotation>
        <xs:documentation>The alternate DfES assigned identifier for a school or other educational establishment.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SchoolURN" type="sif:SchoolURNType" />


  <!--SubjectAreaList-->

  <xs:complexType name="SubjectAreaListType">
    <xs:annotation>
      <xs:documentation>A list of subject areas.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SubjectArea" maxOccurs="unbounded" type="sif:UKGeneralSubjectType">
        <xs:annotation>
          <xs:documentation>Subject matter.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SubjectAreaList" type="sif:SubjectAreaListType" />


  <!--DataModelTaskForce-->


  <!--SIF_Metadata-->

  <xs:complexType name="SIF_MetadataType">
    <xs:annotation>
      <xs:documentation>A commonly defined container for metadata elements defined within SIF.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="TimeElements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TimeElement" minOccurs="0" maxOccurs="unbounded" type="sif:TimeElementType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LifeCycle" minOccurs="0" nillable="true" type="sif:LifeCycleType" />
      <xs:element name="RightsElements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="RightsElement" minOccurs="0" maxOccurs="unbounded" type="sif:RightsElementType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_Metadata" type="sif:SIF_MetadataType" />


  <!--TimeElement-->

  <xs:complexType name="TimeElementType">
    <xs:annotation>
      <xs:documentation>A common metadata element designed to contain time data, both self-defined and by type.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Type" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>
		This element is designed to contain the time period attached to an object.
		Very long periods (school year, quarter, etc.) and very small periods (second, millisecond, etc.) can be defined.
		This element provides a scoping description of the time metadata enclosed.
	</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Code" type="xs:token">
        <xs:annotation>
          <xs:documentation>
							This element provides a place for the application to send structured data (code values, unique identifier, timestamps).
							This code value can, depending upon the use case agreement between agents, be used to qualify the data in the </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>
							Contains a human-readable description of the value in </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Value" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Contains the human-readable value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StartDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
      <xs:element name="EndDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
      <xs:element name="SpanGaps" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SpanGap" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Type" type="xs:normalizedString" />
                  <xs:element name="Code" type="xs:token" />
                  <xs:element name="Name" type="xs:normalizedString" />
                  <xs:element name="Value" type="xs:normalizedString" />
                  <xs:element name="StartDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
                  <xs:element name="EndDateTime" minOccurs="0" nillable="true" type="xs:dateTime" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="IsCurrent" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>
							This element allows for the system to tag an object as being explicitly current.
							Although the baseline assumption in SIF is that objects are always current (default value is typically </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="TimeElement" type="sif:TimeElementType" />


  <!--LifeCycle-->

  <xs:complexType name="LifeCycleType">
    <xs:annotation>
      <xs:documentation>
								This common metadata element describes the life cycle of the object it represents, based on the IEEE LOM LifeCycle element [LOM].
							</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Created" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="DateTime" type="xs:dateTime" />
            <xs:element name="Creators" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Creator" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Name" type="xs:normalizedString">
                          <xs:annotation>
                            <xs:documentation>
							Human-readable name of the data's creator. If the object contains system-generated data,
							the name should identify the creating service or application.
						</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                        <xs:element name="ID" type="xs:normalizedString">
                          <xs:annotation>
                            <xs:documentation>Unique identifier of the creator.  An email address or URI could be used here.</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ModificationHistory" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Modified" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="By" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>Identifier of the system or person that modified the data.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="DateTime" type="xs:dateTime">
                    <xs:annotation>
                      <xs:documentation>The date/time the modification occurred.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>Human readable description of the data modifications.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="TimeElements" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TimeElement" minOccurs="0" maxOccurs="unbounded" type="sif:TimeElementType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="LifeCycle" type="sif:LifeCycleType" />


  <!--RightsElement-->

  <xs:complexType name="RightsElementType">
    <xs:annotation>
      <xs:documentation>
								A common metadata element designed to carry any intellectual property or copyright information, based on the IEEE LOM Rights element [LOM].
							</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Cost" minOccurs="0" nillable="true" type="xs:boolean" />
      <xs:element name="FeesForUse" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="FeeForUse" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="UseType" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>
							A description of the fee structure for this resource.
							Some resources may be licensed differently depending upon their context.
							For example, a content provider might charge one fee structure for resources used in the classroom and a separate fee for those
							resources available to parents from home.
						</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="MeteringType" type="xs:token" />
                  <xs:element name="MeteringURL" minOccurs="0" nillable="true" type="xs:anyURI" />
                  <xs:element name="PerUseCharge" minOccurs="0" nillable="true" type="sif:MonetaryAmountType" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CopyrightStatement" minOccurs="0" nillable="true" type="xs:string" />
      <xs:element name="TermsOfUse" minOccurs="0" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="RightsElement" type="sif:RightsElementType" />


  <!--SIFUK-->


  <!--ContactPersonal-->

  <xs:complexType name="ContactPersonalType">
    <xs:annotation>
      <xs:documentation>This object describes any person created as a contact at a school, LEA, or other institution, or associated with a Learner or other Workforce person.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="PersonalInformation" type="sif:PersonalInformationType">
        <xs:annotation>
          <xs:documentation>Name, demographic, address, email, and phone information for a person acting as a contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of a person referenced as a contact. Note that this GUID may be the same GUID assigned to a LearnerPersonal and/or WorkforcePersonal object record.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="ContactPersonal" type="sif:ContactPersonalType" />


  <!--LAInfo-->

  <xs:complexType name="LAInfoType">
    <xs:annotation>
      <xs:documentation>This object contains information about a Local Authority (LA).  Compare with US/Canada object: LEAInfo</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="LAId" type="sif:LAIdType">
        <xs:annotation>
          <xs:documentation>The 3-digit LA number assigned by DfES.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LAName" type="sif:LANameType">
        <xs:annotation>
          <xs:documentation>The LA's short name to be used for reporting purposes. Normally, the word &amp;quot;Council&amp;quot; should not be included.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LAFullName" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The LA's full name.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LAURL" minOccurs="0" nillable="true" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>URL for the main LA website.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LAAddress" minOccurs="0" nillable="true" type="sif:AddressType">
        <xs:annotation>
          <xs:documentation>The LA's main address information.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:annotation>
          <xs:documentation>A list of the LA's other addresses, if any.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LAPhoneNumber" minOccurs="0" nillable="true" type="sif:PhoneNumberType">
        <xs:annotation>
          <xs:documentation>The LA's primary phone number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:annotation>
          <xs:documentation>A list of the LA's other phone number(s).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LAContactList" minOccurs="0" nillable="true" type="sif:ContactListType">
        <xs:annotation>
          <xs:documentation>A list of contacts within the LA.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The GUID of the LA whose information this is.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LAInfo" type="sif:LAInfoType" />


  <!--LearnerAttendanceSummary-->

  <xs:complexType name="LearnerAttendanceSummaryType">
    <xs:annotation>
      <xs:documentation>This object provides a summary of a learner's daily attendance and membership information for a given school during the time period between the StartDate and EndDate, inclusive. As such, there may be multiple instances of this object for a learner in a school over the course of an academic school year.  Note that sessions are defined by each school and in most cases is two but can be any number in the range 1-10.  Compare with US/Canada object: StudentAttendanceSummary</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SchoolYear" type="sif:SchoolYearType">
        <xs:annotation>
          <xs:documentation>School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006/07 school year).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StartDate" type="xs:date">
        <xs:annotation>
          <xs:documentation>Starting date of this attendance reporting period.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EndDate" type="xs:date">
        <xs:annotation>
          <xs:documentation>Ending date of this attendance reporting period.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ReasonsList">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Reason" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Code">
                    <xs:annotation>
                      <xs:documentation>The attendance code.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:union>
                        <xs:annotation>
                          <xs:documentation>The attendance code.</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                          <xs:restriction base="sif:UKAttendanceCodesEnglandType" />
                        </xs:simpleType>
                        <xs:annotation>
                          <xs:documentation>The attendance code.</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                          <xs:restriction base="sif:UKAttendanceCodesWalesType" />
                        </xs:simpleType>
                      </xs:union>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Type">
                    <xs:annotation>
                      <xs:documentation>The attendance code type.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Absent" />
                        <xs:enumeration value="EarlyDeparture" />
                        <xs:enumeration value="Late" />
                        <xs:enumeration value="Partial" />
                        <xs:enumeration value="Present" />
                        <xs:enumeration value="Other" />
                        <xs:enumeration value="NA" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Status">
                    <xs:annotation>
                      <xs:documentation>The authorised status of the attendance code.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Authorised" />
                        <xs:enumeration value="Unauthorised" />
                        <xs:enumeration value="Unknown" />
                        <xs:enumeration value="NA" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Total" type="xs:unsignedInt">
                    <xs:annotation>
                      <xs:documentation>The total number of sessions attributed to this reason between StartDate and EndDate for the specified reason.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SessionsAttendedTotal" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The number of sessions the learner attended school when school was in session between the StartDate and EndDate, inclusive.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SessionsPossible" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The number of sessions the learner was present plus the number of sessions the learner was absent (authorised and unauthorised) when school was in session during the period between the StartDate and EndDate, inclusive.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AuthorisedAbsences" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The number of sessions the learner was absent from school with a valid excuse when school was in session between the StartDate and EndDate, inclusive. Note that ts column can be derived from Reason Status.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UnauthorisedAbsences" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The number of sessions the learner was absent from school without a valid excuse when school was in session between the StartDate and EndDate, inclusive.  Note that this column can be derived from Reason Status.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AlternativeTuitionHours" minOccurs="0" nillable="true" type="sif:UKTuitionHoursType">
        <xs:annotation>
          <xs:documentation>Number of Alternative Tuition (whole) hours attended between the StartDate and EndDate, inclusive.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="LearnerPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the learner for whom this attendance information is being reported.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the school for which this attendance information is being reported.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LearnerAttendanceSummary" type="sif:LearnerAttendanceSummaryType" />


  <!--LearnerContact-->

  <xs:complexType name="LearnerContactType">
    <xs:annotation>
      <xs:documentation>This object contains information related to a contact person for a learner.  Compare with US/Canada object: StudentContact</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Relationship" type="sif:UKRelationshipType">
        <xs:annotation>
          <xs:documentation>Defines the relationship of the contact to the learner.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>The locally-assigned identifier for this contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ContactFlags">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ParentLegalGuardian" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does the individual have parental or legal guardianship responsibility for the learner?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PickupRights" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does the contact have pickup rights?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="LivesWith" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does the learner live with this contact?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="AddressDisclosure" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Can address information be disclosed?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="EmailCommunication" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does the contact prefer written communcation via email?  Otherwise, postal mail will be used.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="EmergencyContact" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Should this contact be notified in case of emergency?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="DisciplinaryContact" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Is this person to be contacted in case of disciplinary action?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="HomeDuringDay" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Is the contact at home during normal daytime hours?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="MemberOfArmedForces" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Is this person a member of the armed forces?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PrimaryCareProvider" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does this person provide daily living or personal assistance to the learner?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="RequiresInterpreter" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Does the contact need a translator or interpreter?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="TransferAddress" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Should this contact be transferred with the Learner if and when the Learner moves?</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ContactSequence" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Number (1-10) indicating the order in which the person should be contacted.  Note that 2 or more contacts may have the same value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ContactSequenceSource" minOccurs="0" nillable="true" type="sif:UKSourceCodeType">
        <xs:annotation>
          <xs:documentation>Indicates the person who provided the contact sequence order.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="LearnerPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the learner whose contact this is.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ContactPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of this contact.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LearnerContact" type="sif:LearnerContactType" />


  <!--LearnerExclusion-->

  <xs:complexType name="LearnerExclusionType">
    <xs:annotation>
      <xs:documentation>This object contains information related to a learner being excluded from one or more sessions of school.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Category">
        <xs:annotation>
          <xs:documentation>Exclusion category.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="FIXD">
              <xs:annotation>
                <xs:documentation>Fixed</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PERM">
              <xs:annotation>
                <xs:documentation>Permanent</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LNCH">
              <xs:annotation>
                <xs:documentation>Lunchtime</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Reason">
        <xs:annotation>
          <xs:documentation>Reason for exclusion.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>Reason for exclusion.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:UKExclusionReasonEnglandType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>Reason for exclusion.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:UKExclusionReasonWalesType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="StartDate" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date exclusion takes effect irrespective of any review or appeal. Normally this will not be the same as Date of Leaving (exitDate) and it should be noted that the learner will remain on the schools's roll for a period after this start date.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StartSession" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Session to begin exclusion, starting with 1 for the first session of the day. In most cases there are two sessions per day but this is not always the case.  Validation: Number between 1 and 10.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date exclusion concludes.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ActualSessions" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Total number of sessions for which the exclusion is in effect. For lunchtime exclusions, each lunchtime for which the exclusion applies is one session. For fixed term and permanent exclusions, this is one session during the school day. For exclusions that are followed by reinstatement the actual, not the planned number of sessions should be recorded. (Exclusion sessions are used only to calculate the total allowable in a term or academic year and are not the same as an attendance session.)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Appeal" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Is there an appeal against permanent exclusion?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AppealDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date for appeal against permanent exclusion.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AppealResult" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>The result of the appeal against permanent exclusion.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="R">
              <xs:annotation>
                <xs:documentation>Reinstatement</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E">
              <xs:annotation>
                <xs:documentation>Exclusion stands</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="O">
              <xs:annotation>
                <xs:documentation>Reinstatement would be appropriate but not in best interest of learner given other circumstances</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ReinstatementDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date learner was reinstated, if appropriate.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="HeadTeacherNotificationDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date head teacher notified parents, school LA, and home LA (if different) of exclusion.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GovernorMeetingDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date of Governors' meeting with respect to exclusion.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="HearingNoticeOfAppealDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date of exclusion hearing/expiration of notice of appeal.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of this exclusion.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LearnerPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the excluded learner.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LearnerExclusion" type="sif:LearnerExclusionType" />


  <!--LearnerGroupEnrolment-->

  <xs:complexType name="LearnerGroupEnrolmentType">
    <xs:annotation>
      <xs:documentation>This object contains information about a learner's enrolment in a course (teaching group) or other (class, homeroom or registration) group.  Compare with US/Canada object: StudentSectionEnrollment</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SchoolYear" type="sif:SchoolYearType">
        <xs:annotation>
          <xs:documentation>School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006/07 school year). Where a group membership is valid across multiple years, the current year at the time of publication will be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EntryDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date from when this enrolment is valid.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExitDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date on which the learner's enrolment ends or has ended.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that uniquely identifies this LearnerGroupEnrolment entity.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LearnerPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the learner to whom the enrolment information applies.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolGroupRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the group in which this learner is enroled.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LearnerGroupEnrolment" type="sif:LearnerGroupEnrolmentType" />


  <!--LearnerPersonal-->

  <xs:complexType name="LearnerPersonalType">
    <xs:annotation>
      <xs:documentation>This object contains personal information related to a learner.  Compare with US/Canada object: StudentPersonal</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>The locally-assigned identifier for this learner. This can be the internal pupil number or any other number as determined by the publishing agent.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AlertMsgList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AlertMsg" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>This is an alert message that is associated with the person.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Type" use="required">
                      <xs:annotation>
                        <xs:documentation>This attribute specifies what type of alert message this is.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Legal" />
                          <xs:enumeration value="Discipline" />
                          <xs:enumeration value="Educational" />
                          <xs:enumeration value="Other" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MedicalAlertMsgList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MedicalAlertMsg" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>Medical alert associated with the person.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Severity" use="required">
                      <xs:annotation>
                        <xs:documentation>The level of severity of this medical alert.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Low" />
                          <xs:enumeration value="Moderate" />
                          <xs:enumeration value="High" />
                          <xs:enumeration value="Severe" />
                          <xs:enumeration value="Unknown" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PersonalInformation" type="sif:PersonalInformationType">
        <xs:annotation>
          <xs:documentation>Personal name, demographic, address, email, and phone information for this learner.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UIPI" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Unique Internal Pupil Number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UPN" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Unique Pupil Number (UPN) allocated to each learner in maintained schools in England and Wales. It is an identifier for use in the educational context during a child's school career only and subject to Data Protection restrictions.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UPNAllocationDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date UPN was allocated by the LA.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FormerUPNList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="UPN" maxOccurs="unbounded" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>A former UPN assigned to the pupil whilst at a school (eg temporary UPN was allocated when the pupil was first admitted to the school but subsequently replaced by the permanent UPN being retrieved from a previous school).</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ULN" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Unique Learner Number (ULN), a 10-digit number where zero is not allowed as the leading digit.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FamilyStructure" minOccurs="0" nillable="true" type="sif:UKFamilyStructureType">
        <xs:annotation>
          <xs:documentation>Indicates type of family structure learner is living in.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="InCare">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Current">
              <xs:annotation>
                <xs:documentation>Indicates if the learner is &amp;quot;looked after&amp;quot; currently.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="Type" minOccurs="0" nillable="true" type="sif:UKInCareTypeType">
              <xs:annotation>
                <xs:documentation>Type of care the learner is in (eg fostering, children's home).</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="LAId" type="sif:LAIdType">
              <xs:annotation>
                <xs:documentation>The 'originating' authority where the learner was originally placed in public care and which looks after the child for the purposes of the Children Act 1989.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AtCurrentSchool" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Indicates if the learner has ever been in care while at this school.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PersonalEducationPlan" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Indicates if the learner in care has a personal education plan.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ConnexionsAgreement" minOccurs="0" nillable="true" type="sif:UKConnexionsAgreementType">
        <xs:annotation>
          <xs:documentation>Indicates if parents have consented to allow learner data to be shared with Connexions (Middle, Secondary and Special Schools only).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ChildProtectionRegister" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="isRegistered">
              <xs:annotation>
                <xs:documentation>Indicates if the learner has been registered on the Child Protection Register.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                  <xs:enumeration value="Unknown" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="LAId" minOccurs="0" nillable="true" type="sif:LAIdType">
              <xs:annotation>
                <xs:documentation>The LA in which the learner was registered for protection.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SiblingRegistered" minOccurs="0" nillable="true">
              <xs:annotation>
                <xs:documentation>Indicates if the learner has a sibling that is also on the Child Protection Register.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Yes" />
                  <xs:enumeration value="No" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GiftedTalented" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Learner qualifies for Gifted/Talented status.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="HomeLA" minOccurs="0" nillable="true" type="sif:LAIdType">
        <xs:annotation>
          <xs:documentation>The LA in which the learner lives but not necessarily the one in which they attend school.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LearnerIdentity" minOccurs="0" nillable="true" type="sif:UKLearnerIdentityType">
        <xs:annotation>
          <xs:documentation>Classification of national identity. (Wales)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Pregnant" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Learner is pregnant.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SiblingList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Sibling" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="LearnerPersonalRefId" type="sif:IdRefType">
                    <xs:annotation>
                      <xs:documentation>The ID (GUID) of the LearnerPersonal record for this sibling.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="UIPI" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>The Unique Internal Pupil Number for a sibling of this learner.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="UniformAllowance" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Learner is paid a uniform allowance.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="CurrentSchoolEnrolment" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LAId" type="sif:LAIdType">
              <xs:annotation>
                <xs:documentation>The DfES assigned number for the LA in which the learner is currently enroled with respect to their current or current main (home) school.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EstablishmentId" type="sif:EstablishmentIdType">
              <xs:annotation>
                <xs:documentation>The DfES assigned number for the school or establishment in which the learner is currently enroled with respect to their current or current main (home) school.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="NCYearGroup" type="sif:NCYearGroupType">
              <xs:annotation>
                <xs:documentation>The current or most recent National Curriculum Year Group of the learner in the LA.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="LearnerSchoolEnrolmentRefId" use="required" type="sif:IdRefType">
            <xs:annotation>
              <xs:documentation>The ID (GUID) of the LearnerSchoolEnrolment record associated with this learner that is also designated as the current or current main enrolment.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="PreviousEstablishmentList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PreviousEstablishment" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="EstablishmentId" minOccurs="0" nillable="true" type="sif:EstablishmentIdType">
                    <xs:annotation>
                      <xs:documentation>Establishment Number for this school</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="EstablishmentName" minOccurs="0" nillable="true" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>School's name as indicated on the Annual Schools Census.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="LAId" minOccurs="0" nillable="true" type="sif:LAIdType">
                    <xs:annotation>
                      <xs:documentation>The 3-digit LA number assigned by DfES.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="EntryDate" minOccurs="0" nillable="true" type="xs:date">
                    <xs:annotation>
                      <xs:documentation>The date the learner entered this school or establishment.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="ExitDate" minOccurs="0" nillable="true" type="xs:date">
                    <xs:annotation>
                      <xs:documentation>The date the learner exited this school or establishment.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="ExitType" minOccurs="0" nillable="true" type="sif:UKLeavingReasonType">
                    <xs:annotation>
                      <xs:documentation>Code indicating the type of exit from this school or establishment.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="LastSchool" minOccurs="0" nillable="true">
                    <xs:annotation>
                      <xs:documentation>An indication of whether the described school or establishment was the last establishment the learner attended. Note that it is possible that more than one establishment can be marked as LastSchool when a learner is enroled in more than one school simultaneously.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="Yes" />
                        <xs:enumeration value="No" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the learner. Note that this GUID may be the same one assigned to this person when this person is either a contact (ContactPersonal) or a member of the workforce (WorkforcePersonal).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LearnerPersonal" type="sif:LearnerPersonalType" />


  <!--LearnerSchoolEnrolment-->

  <xs:complexType name="LearnerSchoolEnrolmentType">
    <xs:annotation>
      <xs:documentation>This object defines information related to a learner's enrolment.  Compare with US/Canada object: StudentSchoolEnrollment</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="EntryDate" type="xs:date">
        <xs:annotation>
          <xs:documentation>The date from when this enrolment is valid.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="NCYearGroupActual" type="sif:NCYearGroupType">
        <xs:annotation>
          <xs:documentation>The year group in which the learner is taught for the majority of their time, regardless of their chronological age.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ClassType" minOccurs="0" nillable="true" type="sif:UKClassTypeType">
        <xs:annotation>
          <xs:documentation>Indicates if the learner is in a nursery class. Must be set to 'O'  if age on August 31 is &gt;= 6.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExitDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>The ending date of this enrolment. If the learner has exited before the end of the school year, ExitDate must have a value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExitType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" type="sif:UKLeavingReasonType">
              <xs:annotation>
                <xs:documentation>Code indicating the type of exit for this enrolment.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Destination" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Code" type="sif:UKLeavingDestinationType">
                    <xs:annotation>
                      <xs:documentation>Code indicating the destination type.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="LAId" minOccurs="0" nillable="true" type="sif:LAIdType">
                    <xs:annotation>
                      <xs:documentation>The LA number for destination school or college.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="EstablishmentId" minOccurs="0" nillable="true" type="sif:EstablishmentIdType">
                    <xs:annotation>
                      <xs:documentation>The DfES number for destination school or college.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="Name" minOccurs="0" nillable="true" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>Name of institution/employer of learner's destination.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Sessions" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Number of learner sessions (half days) per week.  A maximum of 10 is possible per week.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FTPTStatus" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>An indication of whether the learner is enroled only part time.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Boarder" minOccurs="0" nillable="true" type="sif:UKBoarderTypeType">
        <xs:annotation>
          <xs:documentation>Indicates whether the learner is a boarder at the school or not.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FreeSchoolMilkEligible" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates whether the learner is eligible for free school milk. (Wales)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FreeSchoolMealEligible" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates if learner is eligible for free school meal (pursuant to known guidelines).</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FreeSchoolMealReviewDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Review date for learner's free school meal eligibility. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="FreeSchoolMealClaimed" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates if the learner has taken or claimed a free school lunch today.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FreeTransportEligible" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates if the learner is eligible for free school transport.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FreeTransportReviewDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Review date for learner's free transportation eligibility.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UsualModeOfTravel" minOccurs="0" nillable="true" type="sif:UKUsualModeOfTravelType">
        <xs:annotation>
          <xs:documentation>The usual mode of travel normally used by the learner for the greater part (in distance) of the journey to and from school.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AlternativeTuition" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Category" type="sif:UKTuitionCategoryType">
              <xs:annotation>
                <xs:documentation>Reason for alternative tuition.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="StartDate" type="xs:date">
              <xs:annotation>
                <xs:documentation>Beginning date for alternative tuition.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date">
              <xs:annotation>
                <xs:documentation>End date for alternative tuition.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="TotalHours" minOccurs="0" nillable="true" type="xs:unsignedInt">
              <xs:annotation>
                <xs:documentation>The total number of hours provided for with the tuition.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ProvisionType" type="sif:UKAlternativeProvisionTypeType">
              <xs:annotation>
                <xs:documentation>Alternative tuition provision type.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that uniquely identifies a particular enrolment.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LearnerPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the learner to whom this information is linked.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the school to which this enrolment applies.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MembershipType" use="required" type="sif:UKLearnerEnrolmentStatusType">
      <xs:annotation>
        <xs:documentation>The type of this enrolment as it relates to the school identified by SchoolInfoRefId.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="TimeFrame" use="required">
      <xs:annotation>
        <xs:documentation>The timeframe of the enrolment based on the SIF_Date in the SIF_Header of the message. For events, it is determined as of the date the event is generated. For requests and responses, it is calculated based on the date of the request.  This information is key to SIF agents for determining current enrolment applicability.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Current" />
          <xs:enumeration value="Historical" />
          <xs:enumeration value="Future" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType">
      <xs:annotation>
        <xs:documentation>School year for which this enrolment is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006/07 school year).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LearnerSchoolEnrolment" type="sif:LearnerSchoolEnrolmentType" />


  <!--LearnerSpecialNeeds-->

  <xs:complexType name="LearnerSpecialNeedsType">
    <xs:annotation>
      <xs:documentation>This object contains information about a learner's special education needs (SEN) where provisioned within a school.  Learner's with no special educational needs will not have this object defined.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="UnitMember" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Is this learner with special education needs (SEN) in a mainstream school a member of an SEN Unit (sometimes called special class)?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ResoucedProvisionMember" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Is this learner with special education needs (SEN) in a mainstream school a member of a resourced provision?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="NextReviewDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date of learner's next SEN review.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ProvisionList">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Provision" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="StartDate" type="xs:date">
                    <xs:annotation>
                      <xs:documentation>Date when learner was placed on the current SEN stage.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date">
                    <xs:annotation>
                      <xs:documentation>Date when learner finished this SEN stage.  Assumed to be current unless a date in the past is specified here.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SENTypeList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="SENType" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:annotation>
                              <xs:documentation>The code for a Special Educational Need (type) for this learner. </xs:documentation>
                            </xs:annotation>
                            <xs:simpleContent>
                              <xs:extension base="sif:UKSENTypeType">
                                <xs:attribute name="Ranking" use="required" type="xs:unsignedInt">
                                  <xs:annotation>
                                    <xs:documentation>A value (starting at 1) indicating the order of significance of special educational need in relation to other SEN types listed here.</xs:documentation>
                                  </xs:annotation>
                                </xs:attribute>
                              </xs:extension>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="Code" use="required" type="sif:UKSENProvisionType">
                  <xs:annotation>
                    <xs:documentation>The code representing this provision.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AdviceAndAssessmentLevel" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Level of provision for Advice and Assessment. (Wales)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>Level of provision for Advice and Assessment. (Wales)</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:UKAdviceAndAssessmentWalesType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="GroupingAndSupportLevel" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Level of provision for Grouping and Support. (Wales)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>Level of provision for Grouping and Support. (Wales)</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:UKGroupingAndSupportWalesType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SpecialisedResourcesLevel" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Level of provision for Specialised Resources. (Wales)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>Level of provision for Specialised Resources. (Wales)</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:UKSpecialisedResourcesWalesType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="TeachingMethodsLevel" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Level of provision for Curriculum and Teaching Methods. (Wales)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>Level of provision for Curriculum and Teaching Methods. (Wales)</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:UKCurriculumAndTeachingMethodsWalesType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="EmbeddedBasicSkillsSupport" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Provision of Embedded Basic Skills support beyond the attainment of formal qualification.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>Provision of Embedded Basic Skills support beyond the attainment of formal qualification.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:UKBasicSkillsSupportWalesType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="LiteracyLevelStart" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Level of literacy at start of this SEN stage. (Wales)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LiteracyLevelEnd" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Level of literacy achieved by the end of this SEN stage. (Wales)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="NumeracyLevelStart" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Level of numeracy at start of this SEN stage. (Wales)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="NumeracyLevelEnd" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Level of numeracy achieved by the end of this SEN stage. (Wales)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="NationalCurriculumList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="NationalCurriculum" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Modification">
                    <xs:annotation>
                      <xs:documentation>How is the National Curriculum used for this learner?</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:token">
                        <xs:enumeration value="M">
                          <xs:annotation>
                            <xs:documentation>Modified</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="N">
                          <xs:annotation>
                            <xs:documentation>Disapplied</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="Subject" type="sif:UKGeneralSubjectType">
              <xs:annotation>
                <xs:documentation>National Curriculum subject(s) for which modification or disapplication applies.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MedicalFlag" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Is there medical information on this Learner?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ParamedicalSupport" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Type of therapy needed by Learner.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="P">
              <xs:annotation>
                <xs:documentation>Physiotherapy</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S">
              <xs:annotation>
                <xs:documentation>Speech Therapy</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="O">
              <xs:annotation>
                <xs:documentation>Occupational Therapy</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="MedicalNotes" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Summary of learner's medical condition.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="LearnerPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the learner with special educational needs.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that uniquely identifies the school provisioned to work with the learner's special needs.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="LearnerSpecialNeeds" type="sif:LearnerSpecialNeedsType" />


  <!--PersonPicture-->

  <xs:complexType name="PersonPictureType">
    <xs:annotation>
      <xs:documentation>This object either contains or references a person's picture.  Compare with US/Canada objects: StudentPicture and EmployeePicture</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_RefObjectList" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_RefObject">
              <xs:annotation>
                <xs:documentation>The name of a &amp;quot;personal&amp;quot; object that can be requested for this person using the specified PersonRefId.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="ContactPersonal" />
                  <xs:enumeration value="LearnerPersonal" />
                  <xs:enumeration value="WorkforcePersonal" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SchoolYear" type="sif:SchoolYearType">
        <xs:annotation>
          <xs:documentation>School year for which this picture is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006/07 school year).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PictureSource">
        <xs:annotation>
          <xs:documentation>This element defines the picture. If the Type attribute is URL, this is the location of the picture in [JPEG] format; if Type is JPEG, this is the [JPEG] image data encoded using the Base64 Content-Transfer-Encoding defined in Section 6.8 of [RFC 2045].</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token" />
        </xs:simpleType>
      </xs:element>
      <xs:element name="OKToPublish" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Can the picture be published?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="PersonRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>This is the GUID of the person whose picture this is.  It is important to note that using the same GUID a person may have a LearnerPersonal record, a WorkforcePersonal record, and a ContactPersonal record all at the same time.  This same picture is applicable regardless of the associated object type(s).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="PersonPicture" type="sif:PersonPictureType" />


  <!--SchoolGroupType-->

  <xs:complexType name="SchoolGroupTypeType">
    <xs:annotation>
      <xs:documentation>This object describes a high-level course or class grouping organised and/or taught within a school or establishment.  Note that not all courses are based upon a subject area.  One such course is &amp;quot;Class Group&amp;quot; which is the same as a homeroom or registration group.  Compare with US/Canada object: SchoolCourseInfo</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Code" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The school defined local code for the group (or course).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Title" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Title associated with this group.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Textual description for the group.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SubjectAreaList" minOccurs="0" nillable="true" type="sif:SubjectAreaListType">
        <xs:annotation>
          <xs:documentation>Subject matter areas taught as part of the course, if any.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The GUID that uniquely identifies a school course.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that references the school or establishment where the course is offered or the registration group exists.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType">
      <xs:annotation>
        <xs:documentation>School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006/07 school year). Where a group membership is valid across multiple years, the current year at the time of publication will be used.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="GroupType" use="required">
      <xs:annotation>
        <xs:documentation>The group type.  Teaching groups are used to teach subjects while other groups are organised for various other reasons.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="G">
            <xs:annotation>
              <xs:documentation>Generic Group</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="R">
            <xs:annotation>
              <xs:documentation>Registration/Class Group</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="T">
            <xs:annotation>
              <xs:documentation>Teaching (course) Group</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SchoolGroupType" type="sif:SchoolGroupTypeType" />


  <!--SchoolGroup-->

  <xs:complexType name="SchoolGroupType">
    <xs:annotation>
      <xs:documentation>This object describes a specific group and includes resource and time tabling information.  All groups are based upon a SchoolGroupType record. However, there are courses which are not based upon any subject area and likewise may not have any teachers or other staff assigned.  Compare with US/Canada object:  SectionInfo</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="LocalId" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>The locally-assigned (unique) identifier for this group.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GroupName" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The name associated with this group for display purposes.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>A textual description.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ParentSchoolGroupRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>The parent group associated with this group, if any.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ScheduleInfoList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ScheduleInfo" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="TeacherList" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Teacher" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Role" minOccurs="0" nillable="true" type="sif:UKGroupRoleType">
                                <xs:annotation>
                                  <xs:documentation>The role associated with this person in the context of this group.</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                            </xs:sequence>
                            <xs:attribute name="WorkforcePersonalRefId" use="required" type="sif:IdRefType">
                              <xs:annotation>
                                <xs:documentation>The ID (GUID) of a teacher, staff member, or other employee participating in a non-learner capacity within this group.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="TermInfoRefId" use="required" type="sif:IdRefType">
                  <xs:annotation>
                    <xs:documentation>The ID (GUID) of the term to which this schedule information relates.</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that uniquely identifies this group entity.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolGroupTypeRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that identifies a course upon which this group is centered. Note that this element is mandatory when GroupType is associated with a course (teaching group).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType">
      <xs:annotation>
        <xs:documentation>School year for which the group is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006/07 school year). Where a group membership is valid across multiple years, the current year at the time of publication will be used.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SchoolGroup" type="sif:SchoolGroupType" />


  <!--SchoolInfo-->

  <xs:complexType name="SchoolInfoType">
    <xs:annotation>
      <xs:documentation>This object contains basic information about a school or other educational establishment.  Compare with US/Canada object with the same name.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>An ID assigned by the publishing agent for this school or establishment. This may be set to any value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EstablishmentId" type="sif:EstablishmentIdType">
        <xs:annotation>
          <xs:documentation>DfES Establishment Number for this school.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LAId" type="sif:LAIdType">
        <xs:annotation>
          <xs:documentation>The 3-digit LA number assigned by DfES.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolName" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>School's name as indicated on the Annual Schools Census.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolFullName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>School's full name as stated in the Instrument of Government.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="URN" minOccurs="0" nillable="true" type="sif:SchoolURNType">
        <xs:annotation>
          <xs:documentation>School Unique Reference Number.  This number is an alternate to the Establishment Number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolURL" minOccurs="0" nillable="true" type="sif:SchoolURLType">
        <xs:annotation>
          <xs:documentation>URL for the school.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolAddress" minOccurs="0" nillable="true" type="sif:AddressType">
        <xs:annotation>
          <xs:documentation>The school's published address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AddressList" minOccurs="0" nillable="true" type="sif:AddressListType">
        <xs:annotation>
          <xs:documentation>Other addresses associated with the school.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolPhoneNumber" minOccurs="0" nillable="true" type="sif:PhoneNumberType">
        <xs:annotation>
          <xs:documentation>The main phone number for this school/establishment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherPhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:annotation>
          <xs:documentation>A list of the school's phone numbers.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolEmail" minOccurs="0" nillable="true" type="sif:EmailType">
        <xs:annotation>
          <xs:documentation>School's email address for general correspondence.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolContactList" minOccurs="0" nillable="true" type="sif:ContactListType">
        <xs:annotation>
          <xs:documentation>A list of contacts at the school.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="HeadTeacherInfo" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ContactName" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The name of the head Teacher.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ContactTitle" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The official title of the Head Teacher.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Phase" minOccurs="0" nillable="true" type="sif:UKPhaseTypeType">
        <xs:annotation>
          <xs:documentation>The high level code indicating the level of the educational institution.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolType" minOccurs="0" nillable="true" type="sif:UKSchoolTypesType">
        <xs:annotation>
          <xs:documentation>An indication of the level of the educational institution.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Governance" minOccurs="0" nillable="true" type="sif:UKGovernanceTypeType">
        <xs:annotation>
          <xs:documentation>Governance afforded to this school.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Intake" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Intake type.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="COMP">
              <xs:annotation>
                <xs:documentation>Comprehensive</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SEL1">
              <xs:annotation>
                <xs:documentation>Selective (Grammar)</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SEL2">
              <xs:annotation>
                <xs:documentation>Secondary Modern</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SEL3">
              <xs:annotation>
                <xs:documentation>Selective (Technical)</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SEL4">
              <xs:annotation>
                <xs:documentation>Religious School</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="NCYearGroupList" minOccurs="0" nillable="true" type="sif:NCYearGroupListType">
        <xs:annotation>
          <xs:documentation>Collection of National Curriculum Year Groups offered in this school or establishment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GenderOfEntry" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Gender of learners allowed for entry to school.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="C">
              <xs:annotation>
                <xs:documentation>Coeducational</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="F">
              <xs:annotation>
                <xs:documentation>Female only</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="M">
              <xs:annotation>
                <xs:documentation>Male only</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="GenderSixthForm" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Gender of learners allowed for entry to Sixth Form.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="C">
              <xs:annotation>
                <xs:documentation>Coeducational</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="F">
              <xs:annotation>
                <xs:documentation>Female only</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="M">
              <xs:annotation>
                <xs:documentation>Male only</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="blank = HighestNCYear less than 12" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Boarders" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates whether the school supports boarders or not.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SessionsPerDay" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The number of sessions in the usual school day (usually two).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Nursery" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates whether the school maintains a nursery class or not. Must be NO if Phase is set to MP, MS or SY. Must be YES if Phase is set to NY or EY.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Special" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates whether the school has a special class/unit or not.  Must be Yes if Phase = SP.  Any details will be stored in the associated SchoolInfoDetail object.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="IdentificationInfoList" minOccurs="0" nillable="true" type="sif:IdentificationInfoListType">
        <xs:annotation>
          <xs:documentation>Other identification information associated with a school, such as the locally-defined code/identifier, etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OperationalStatus" minOccurs="0" nillable="true" type="sif:UKOperationalStatusType">
        <xs:annotation>
          <xs:documentation>Operational condition of a school.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The GUID that identifies this school.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LAInfoRefId" use="optional" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) assigned to the LA of which this school is a member.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SchoolInfo" type="sif:SchoolInfoType" />


  <!--TermInfo-->

  <xs:complexType name="TermInfoType">
    <xs:annotation>
      <xs:documentation>This object provides information about a term; i.e., a reportable period of time.  Compare with US/Canada object: TermInfo</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SchoolYear" type="sif:SchoolYearType">
        <xs:annotation>
          <xs:documentation>School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006/07 school year). Where a group membership is valid across multiple years, the current year at the time of publication will be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StartDate" type="xs:date">
        <xs:annotation>
          <xs:documentation>Starting date of the term.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EndDate" type="xs:date">
        <xs:annotation>
          <xs:documentation>Ending date of the term (CCYYMMDD).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Text-based description of the term.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TermCode" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Locally-defined code. Use 'AUT', 'SPR', or 'SUM' for a 3 term year. Otherwise specify the term number within the year.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TermsPerYear" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>The number of terms in a given year (3-6).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="MarkingTerm" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Does this TermInfo represent a marking period?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SchedulingTerm" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Does this TermInfo represent a scheduling term?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AttendanceTerm" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Does this TermInfo represent an attendance term?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Yes" />
            <xs:enumeration value="No" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that uniquely identifies this TermInfo entity.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that identifies the school where the term is used.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="TermInfo" type="sif:TermInfoType" />


  <!--WorkforcePersonal-->

  <xs:complexType name="WorkforcePersonalType">
    <xs:annotation>
      <xs:documentation>This object contains key personal information relating to a workforce member, who might be a teacher or other employee of the school or LA.  Compare with US/Canada objects: EmployeePersonal and StaffPersonal</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="LocalId" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>The locally-assigned identifier for this workforce member.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AlertMsgList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="AlertMsg" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>This is an alert message that is associated with the person.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Type" use="required">
                      <xs:annotation>
                        <xs:documentation>This attribute specifies what type of alert message this is.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Legal" />
                          <xs:enumeration value="Discipline" />
                          <xs:enumeration value="Educational" />
                          <xs:enumeration value="Other" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MedicalAlertMsgList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MedicalAlertMsg" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>Medical alert associated with the person.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:normalizedString">
                    <xs:attribute name="Severity" use="required">
                      <xs:annotation>
                        <xs:documentation>The level of severity of this medical alert.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="Low" />
                          <xs:enumeration value="Moderate" />
                          <xs:enumeration value="High" />
                          <xs:enumeration value="Severe" />
                          <xs:enumeration value="Unknown" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PersonalInformation" type="sif:PersonalInformationType">
        <xs:annotation>
          <xs:documentation>Personal name, demographic, address, email, and phone information for this person.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TeacherNumber" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The DfES Teacher Reference number. For those who have one this is a unique number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="NINumber" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>National Insurance Number. Do not specify temporary numbers. Format:  AAnnnnnnA</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CurrentAssignmentList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CurrentAssignment" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="LAId" minOccurs="0" nillable="true" type="sif:LAIdType">
                    <xs:annotation>
                      <xs:documentation>The DfES assigned number for the LA in which the workforce member is working, if associated.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="EstablishmentId" minOccurs="0" nillable="true" type="sif:EstablishmentIdType">
                    <xs:annotation>
                      <xs:documentation>The DfES assigned number for the school or establishment in which the workforce member is working.  Note that the school may not necessarily be in the same LA listed as the LAId.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="Posts" minOccurs="0" nillable="true" />
                  <xs:element name="Post" maxOccurs="unbounded" type="sif:UKAssignmentPostType">
                    <xs:annotation>
                      <xs:documentation>The post assigned to the workforce member in the context of the school or LA.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the workforce member.  Note that the same GUID may be assigned to this person when they are also a learner (via LearnerPersonal) and/or a contact (via ContactPersonal).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="WorkforcePersonal" type="sif:WorkforcePersonalType" />


  <!--VerticalReportingTaskForce-->


  <!--ReportManifest-->

  <xs:complexType name="ReportManifestType">
    <xs:annotation>
      <xs:documentation>
								This object provides a way to define a report within a SIF zone. It contains metadata about the report. This object
								represents a mutual agreement between senders and receivers of the report.
							</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_Version" type="sif:VersionWithWildcardsType">
        <xs:annotation>
          <xs:documentation>
								Specifies which SIF Specification version should be used when returning the report data; wildcards are allowed.  When a wildcard is specified,
								the responding agent SHOULD attempt to return the report data in the version specified by SIF_Message/@Version,
								if that version matches the wildcard version.  If not, the responding agent can return the data in any version it chooses that matches the wildcard version.
							</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_MaxBufferSize" type="xs:unsignedInt">
        <xs:annotation>
          <xs:documentation>Specifies the maximum size of a packet to be returned to the report authority.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ReceivingAuthority" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>The GUID of the authority for whom the report is intended, usually the same authority that defines this manifest.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefType">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:documentation>The name of the object referenced.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="ReportAuthorityInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReportName" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The authority's accepted name for the report.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The description for the report.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ReportingPeriod" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="BeginReportDate" minOccurs="0" nillable="true" type="xs:date">
              <xs:annotation>
                <xs:documentation>The first date for which the report contains information.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EndReportDate" minOccurs="0" nillable="true" type="xs:date">
              <xs:annotation>
                <xs:documentation>The last date for which the report contains information. May be the same as BeginReportDate for snapshot-type reports.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="BeginSubmitDate" minOccurs="0" nillable="true" type="xs:date">
              <xs:annotation>
                <xs:documentation>The first date on which the report may be submitted to the authority.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EndSubmitDate" minOccurs="0" nillable="true" type="xs:date">
              <xs:annotation>
                <xs:documentation>The last date on which the report may be submitted to the authority.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DueDate" minOccurs="0" nillable="true" type="xs:date">
              <xs:annotation>
                <xs:documentation>The official due date of the report.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReportDefinitionSource">
        <xs:annotation>
          <xs:documentation>
								Indicates where the report definition can be found.
								If Type is Embedded or Base64Binary, this element's value contains the report definition.  If Type is
								URL, this element's value is the location of the external definition.  A Type value of SIF_Query
								indicates that the SIF_QueryGroup element contains the definition.
							</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="Type" use="required">
                <xs:annotation>
                  <xs:documentation>This attribute indicates the source of the report definition.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="URL" />
                    <xs:enumeration value="Embedded" />
                    <xs:enumeration value="Base64Binary" />
                    <xs:enumeration value="SIF_Query" />
                    <xs:enumeration value="SIF_ExtendedQuery" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
              <xs:attribute name="QueryLanguage" use="required" type="xs:token">
                <xs:annotation>
                  <xs:documentation>
								The vendor-defined query language used in the report definition (e.g. SQL, ExampleObject,
								Description, com.vendor.format, etc.).  If the Type attribute is SIF_Query, then QueryLanguage should also be SIF_Query.
								If the Type attribute is SIF_ExtendedQuery, then QueryLanguage should also be SIF_ExtendedQuery.
							</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReportFormatList" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ReportFormat" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>A third-party format that describes the visual representation of the report data.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="Type" use="required">
                      <xs:annotation>
                        <xs:documentation>This attribute indicates the encoding of the format reference.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="URL" />
                          <xs:enumeration value="Embedded" />
                          <xs:enumeration value="Base64Binary" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="ContentType" use="required" type="xs:normalizedString">
                      <xs:annotation>
                        <xs:documentation>
								The vendor-defined content type (e.g. com.vendor.format, PDF, etc.
							</xs:documentation>
                      </xs:annotation>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_QueryGroup" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Query" maxOccurs="unbounded" type="sif:SIF_QueryType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_ExtendedQuery" minOccurs="0" nillable="true" type="sif:SIF_ExtendedQueryType">
        <xs:annotation>
          <xs:documentation>
									Query criteria for extracting the report information if ReportDefinitionSource/@Type
									is SIF_ExtendedQuery.
								</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The unique identifier for this report manifest.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ReportAuthorityInfoRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>ID (GUID) of the authority providing this manifest.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="ReportManifest" type="sif:ReportManifestType" />


  <!--ReportAuthorityInfo-->

  <xs:complexType name="ReportAuthorityInfoType">
    <xs:annotation>
      <xs:documentation>
								This object contains information on authorities that provide ReportManifest objects and/or collect SIF_ReportObject
								objects, such as state departments of education, regional service agencies, or other report collecting agencies.
							</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="AuthorityName" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Name of the agency/report authority.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AuthorityId" type="xs:token">
        <xs:annotation>
          <xs:documentation>The zone unique case-sensitive identifier for the authority. This will be the contents of the SIF_SourceId element in the header of requests for reports.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AuthorityDepartment" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Department, office, or subdivision of the agency/report authority.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AuthorityLevel">
        <xs:annotation>
          <xs:documentation>Level of the authority.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Federal" />
            <xs:enumeration value="State" />
            <xs:enumeration value="RSA" />
            <xs:enumeration value="LEA" />
            <xs:enumeration value="School" />
            <xs:enumeration value="Other" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ContactInfo" minOccurs="0" nillable="true" type="sif:ContactInfoType">
        <xs:annotation>
          <xs:documentation>Information on the contact person in this agency.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType" />
      <xs:element name="PhoneNumber" minOccurs="0" nillable="true" type="sif:PhoneNumberType" />
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The unique identifier for this agency/report authority.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="ReportAuthorityInfo" type="sif:ReportAuthorityInfoType" />


  <!--SIF_ReportObject-->

  <xs:complexType name="SIF_ReportObjectType">
    <xs:annotation>
      <xs:documentation>
								This object is an envelope used to send other data objects, typically reports, to authorities such as state departments
								of education, district offices, other schools, etc. It is also used to signal a data collector agent that a report is
								compiled and ready to be requested. SIF_ReportObject contains a data object, which is either complete or partial (a
								partial data object is one that contains a subset of the elements for the data object). One or a series of
								SIF_ReportObjects contained within one or a series of related SIF_Response messages makes up a complete report.
							</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="ReportInfo" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CalculationDate" type="xs:date">
              <xs:annotation>
                <xs:documentation>The date on which the report was calculated.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SubmissionNumber" type="xs:positiveInteger">
              <xs:annotation>
                <xs:documentation>A number that identifies the submission; beginning at 1 and incremented each time a submission is done for a particular report; used to indicate resubmission(s).</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SubmissionReason">
              <xs:annotation>
                <xs:documentation>Reason for the report submission.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Initial" />
                  <xs:enumeration value="Correction" />
                  <xs:enumeration value="Revision" />
                  <xs:enumeration value="Addition" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="ReportSubmitterInfo" minOccurs="0" nillable="true">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="SIF_RefId" minOccurs="0" nillable="true">
                    <xs:complexType>
                      <xs:annotation>
                        <xs:documentation>If the submitter is described by another SIF data object such as a SchoolInfo or LEAInfo instance, this element references that object by RefId.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleContent>
                        <xs:extension base="sif:IdRefType">
                          <xs:attribute name="SIF_RefObject" use="required">
                            <xs:annotation>
                              <xs:documentation>The name of a SIF data object. When used in the context of ReportSubmitterInfo, this attribute must have one of the following values.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                              <xs:restriction base="xs:token">
                                <xs:enumeration value="LEAInfo">
                                  <xs:annotation>
                                    <xs:documentation>The submitter of the SIF_ReportObject is the district or other agency referenced by a LEAInfo object</xs:documentation>
                                  </xs:annotation>
                                </xs:enumeration>
                                <xs:enumeration value="SchoolInfo">
                                  <xs:annotation>
                                    <xs:documentation>The submitter of the SIF_ReportObject is the school referenced by a SchoolInfo object</xs:documentation>
                                  </xs:annotation>
                                </xs:enumeration>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="SubmitterName" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>Name of the report submitter.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="SubmitterDepartment" minOccurs="0" nillable="true" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>Department, office, or subdivision of the agency submitting the report.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="ContactInfo" minOccurs="0" nillable="true" type="sif:ContactInfoType">
                    <xs:annotation>
                      <xs:documentation>Information on the contact person in this agency submitting the report.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType" />
                  <xs:element name="PhoneNumber" minOccurs="0" nillable="true" type="sif:PhoneNumberType" />
                  <xs:element name="SubmitterNotes" minOccurs="0" nillable="true" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>Optional notes for the report authority, such as information about a district's reporting policies and procedures, instructions for contacting the district for technical support, etc.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string" />
          </xs:sequence>
          <xs:attribute name="ReportManifestRefId" use="required" type="sif:IdRefType">
            <xs:annotation>
              <xs:documentation>The report manifest corresponding to this report.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="ReportData" minOccurs="0" nillable="true" type="sif:ReportDataObjectType">
        <xs:annotation>
          <xs:documentation>
									Container element for the report content; one valid SIF object can occur as a child here. This element is conditional.
									This element or ReportInfo or SIF_ExtendedQueryResults is included but never at the same time.
									See examples of the usage of the object below.
								</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_ExtendedQueryResults" minOccurs="0" nillable="true" type="sif:SIF_ExtendedQueryResultsType">
        <xs:annotation>
          <xs:documentation>
									The report content resulting from a SIF_ExtendedQuery-based report.  This element is conditional.
									This element or ReportInfo or ReportData is included but never at the same time.
								</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that uniquely identifies this instance of a report.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SIF_ReportObject" type="sif:SIF_ReportObjectType" />


  <!--InfrastructureWorkingGroup-->


  <!--SIF_LogEntry-->

  <xs:complexType name="SIF_LogEntryType">
    <xs:annotation>
      <xs:documentation>
								This object captures an occurrence within a SIF node (ZIS or agent)—error, warning or information—for storage in an optionally provided zone log.
								SIF_LogEntry Adds are reported and are used to post new log entries to the provider of the log.
								Of course, subscribing agents may also filter incoming Adds as part of their own logging mechanism.
								Any Change or Delete SIF_Events should be ignored at the agent level, but should be routed by the
								ZIS (though this should not be necessary). Use of the log is optional and voluntary, except where noted as mandatory in this specification.
								Nodes may post as much or as little log data as required with the expectation that if there is a provider of SIF_LogEntry that the logged entries be available
								for a provider-defined amount of time subject to provider-defined restrictions on the quantity of data
								logged by any given node.
							</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_LogEntryHeader">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Header" type="sif:SIF_HeaderType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_OriginalHeader" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_Header" type="sif:SIF_HeaderType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Category" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>A SIF_LogEntry category. May be omitted for informational-type postings, where typically a textual description will suffice.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="1">
              <xs:annotation>
                <xs:documentation>Success</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="2">
              <xs:annotation>
                <xs:documentation>Data Issues with Success Result</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="3">
              <xs:annotation>
                <xs:documentation>Data Issues with Failure Result</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="4">
              <xs:annotation>
                <xs:documentation>Error Conditions</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_Code" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>A SIF_LogEntry code with regard to SIF_Category above. May be omitted for informational-type postings, where typically a textual description will suffice. If a SIF_Code is included, SIF_Category must be included as well.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>A SIF_LogEntry code with regard to SIF_Category above. May be omitted for informational-type postings, where typically a textual description will suffice. If a SIF_Code is included, SIF_Category must be included as well.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:SIF_LogEntrySuccessCategoryType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>A SIF_LogEntry code with regard to SIF_Category above. May be omitted for informational-type postings, where typically a textual description will suffice. If a SIF_Code is included, SIF_Category must be included as well.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:SIF_LogEntryDataIssuesWithSuccessResultType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>A SIF_LogEntry code with regard to SIF_Category above. May be omitted for informational-type postings, where typically a textual description will suffice. If a SIF_Code is included, SIF_Category must be included as well.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:SIF_LogEntryDataIssuesWithFailureResultType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>A SIF_LogEntry code with regard to SIF_Category above. May be omitted for informational-type postings, where typically a textual description will suffice. If a SIF_Code is included, SIF_Category must be included as well.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:SIF_LogEntryAgentErrorConditionType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>A SIF_LogEntry code with regard to SIF_Category above. May be omitted for informational-type postings, where typically a textual description will suffice. If a SIF_Code is included, SIF_Category must be included as well.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:SIF_LogEntryZISErrorConditionType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SIF_ApplicationCode" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>
								An error code specific to the application posting the entry.
								Can be used by vendors to query log entries for errors specific to their applications.
								If a SIF_ApplicationCode is included, SIF_Category must be included as well;
								i.e., application-specific error codes should fall within one of the defined log entry categories.
							</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Desc" type="xs:string">
        <xs:annotation>
          <xs:documentation>A textual description of the error.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_ExtendedDesc" minOccurs="0" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Any extended error description.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_LogObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SIF_LogObject" maxOccurs="unbounded">
              <xs:complexType>
                <xs:annotation>
                  <xs:documentation>Any SIF data objects to which this log entry may apply.</xs:documentation>
                </xs:annotation>
                <xs:complexContent>
                  <xs:extension base="sif:SIF_ResponseObjectType">
                    <xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType">
                      <xs:annotation>
                        <xs:documentation>The name of the SIF object referenced (e.g. StudentPersonal).</xs:documentation>
                      </xs:annotation>
                    </xs:attribute>
                  </xs:extension>
                </xs:complexContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="Source" use="required">
      <xs:annotation>
        <xs:documentation>The SIF node that logged this entry.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Agent" />
          <xs:enumeration value="ZIS" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="LogLevel" use="required">
      <xs:annotation>
        <xs:documentation>The level of the log entry herein described.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Info" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="SIF_LogEntry" type="sif:SIF_LogEntryType" />

  <xs:simpleType name="InfrastructureStatusCodeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0" />
      <xs:enumeration value="1" />
      <xs:enumeration value="2" />
      <xs:enumeration value="3" />
      <xs:enumeration value="7" />
      <xs:enumeration value="8" />
      <xs:enumeration value="9" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureErrorCategoryType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0">
        <xs:annotation>
          <xs:documentation>Unknown (This should NEVER be used if possible)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>XML Validation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Encryption</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Authentication</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Access and Permissions</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="5">
        <xs:annotation>
          <xs:documentation>Registration</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>Provision</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="7">
        <xs:annotation>
          <xs:documentation>Subscription</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="8">
        <xs:annotation>
          <xs:documentation>Request and Response</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="9">
        <xs:annotation>
          <xs:documentation>Event Reporting and Processing</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="10">
        <xs:annotation>
          <xs:documentation>Transport</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="11">
        <xs:annotation>
          <xs:documentation>System (OS, Database, Vendor localized, etc.)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="12">
        <xs:annotation>
          <xs:documentation>Generic Message Handling</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="13">
        <xs:annotation>
          <xs:documentation>SMB Handling</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureXMLValidationErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Message is not well-formed</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Generic validation error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Invalid value for element/attribute</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>Missing mandatory element/attribute</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureEncryptionErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureAuthenticationErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Generic authentication error (with signature)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Missing sender's certificate</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Invalid certificate</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="5">
        <xs:annotation>
          <xs:documentation>Sender's certificate is not trusted</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>Expired certificate</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="7">
        <xs:annotation>
          <xs:documentation>Invalid signature</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="8">
        <xs:annotation>
          <xs:documentation>Invalid encryption algorithm (only accepts MD4)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="9">
        <xs:annotation>
          <xs:documentation>Missing public key of the receiver (when decrypting message)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="10">
        <xs:annotation>
          <xs:documentation>Missing receiver's private key (when decrypting message)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureAccessAndPermissionErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>No permission to register</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>No permission to provide this object</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>No permission to subscribe to this SIF_Event</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="5">
        <xs:annotation>
          <xs:documentation>No permission to request this object</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>No permission to respond to this object request</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="7">
        <xs:annotation>
          <xs:documentation>No permission to publish SIF_Event</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="8">
        <xs:annotation>
          <xs:documentation>No permission to administer policies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="9">
        <xs:annotation>
          <xs:documentation>SIF_SourceId is not registered</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="10">
        <xs:annotation>
          <xs:documentation>No permission to publish SIF_Event Add</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="11">
        <xs:annotation>
          <xs:documentation>No permission to publish SIF_Event Change</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="12">
        <xs:annotation>
          <xs:documentation>No permission to publish SIF_Event Delete</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureRegistrationErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>The SIF_SourceId is invalid</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Requested transport protocol is unsupported</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Requested SIF_Version(s) not supported.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>Requested SIF_MaxBufferSize is too small</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="7">
        <xs:annotation>
          <xs:documentation>ZIS requires a secure transport</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="9">
        <xs:annotation>
          <xs:documentation>Agent is registered for push mode (returned when a push-mode agent sends a SIF_GetMessage).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureProvisionErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Invalid object</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Object already has a provider (SIF_Provide message)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureSubscriptionErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Invalid object</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureRequestAndResponseErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Invalid object</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>No provider</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="7">
        <xs:annotation>
          <xs:documentation>Responder does not support requested SIF_Version</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="8">
        <xs:annotation>
          <xs:documentation>Responder does not support requested SIF_MaxBufferSize</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="9">
        <xs:annotation>
          <xs:documentation>Unsupported query in request</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="10">
        <xs:annotation>
          <xs:documentation>Invalid SIF_RequestMsgId specified in SIF_Response</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="11">
        <xs:annotation>
          <xs:documentation>SIF_Response is larger than requested SIF_MaxBufferSize</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="12">
        <xs:annotation>
          <xs:documentation>SIF_PacketNumber is invalid in SIF_Response</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="13">
        <xs:annotation>
          <xs:documentation>SIF_Response does not match any SIF_Version from SIF_Request</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="14">
        <xs:annotation>
          <xs:documentation>SIF_DestinationId does not match SIF_SourceId from SIF_Request</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="15">
        <xs:annotation>
          <xs:documentation>No support for SIF_ExtendedQuery</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureEventReportingAndProcessingErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Invalid event</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureTransportErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Requested protocol is not supported</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Secure channel requested and no secure path exists</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Unable to establish connection</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureSystemErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureGenericMessageHandlingErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Message not supported</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Version not supported</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Context not supported</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="5">
        <xs:annotation>
          <xs:documentation>Protocol error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>No such message (as identified by SIF_OriginalMsgId)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="7">
        <xs:annotation>
          <xs:documentation>Multiple contexts not supported</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfrastructureSMBErrorType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Generic error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>SMB can only be invoked during a SIF_Event acknowledgement</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Final SIF_Ack expected from Push-Mode Agent</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Incorrect SIF_MsgId in final SIF_Ack</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SIF_LogEntrySuccessCategoryType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Success</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SIF_LogEntryDataIssuesWithSuccessResultType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Data was changed to complete request successfully</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Data was added to complete request successfully</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SIF_LogEntryDataIssuesWithFailureResultType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Insufficient information in message</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Cannot process change due to business rule</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Related information unavailable</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SIF_LogEntryAgentErrorConditionType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>An exception has occurred in the agent (generic error)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SIF_LogEntryZISErrorConditionType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>An exception has occurred in the ZIS (generic error)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Message could not be delivered due to buffer size limitations</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Message could not be delivered due to minimum security requirements</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Message could not be delivered due to destination agent not supporting SIF_Version</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="5">
        <xs:annotation>
          <xs:documentation>Message could not be delivered due to SIF_Response validation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAbsenceCategoryType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="MAT">
        <xs:annotation>
          <xs:documentation>Maternity /Paternity leave</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTH">
        <xs:annotation>
          <xs:documentation>Other paid authorised absence, e.g. compassionate leave</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PUB">
        <xs:annotation>
          <xs:documentation>Paid absence for public duties</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SEC">
        <xs:annotation>
          <xs:documentation>Secondment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SIC">
        <xs:annotation>
          <xs:documentation>Sickness</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TRN">
        <xs:annotation>
          <xs:documentation>Training</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="UNA">
        <xs:annotation>
          <xs:documentation>Unauthorised absence</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="UNP">
        <xs:annotation>
          <xs:documentation>Unpaid, authorised absence</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAdditionalPaymentTypeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="LIN">
        <xs:annotation>
          <xs:documentation>Inner London Weighting (Support Staff)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LOT">
        <xs:annotation>
          <xs:documentation>Outer London Weighting (Support Staff)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LFR">
        <xs:annotation>
          <xs:documentation>London Fringe Weighting (Support Staff)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MAL">
        <xs:annotation>
          <xs:documentation>Management Allowances</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TLR">
        <xs:annotation>
          <xs:documentation>Teaching and Learning Responsibility Payments</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RAR">
        <xs:annotation>
          <xs:documentation>Recruitment and Retention </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SEN">
        <xs:annotation>
          <xs:documentation>SEN Allowances</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ACT">
        <xs:annotation>
          <xs:documentation>Acting</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RES">
        <xs:annotation>
          <xs:documentation>Residential duties</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="INS">
        <xs:annotation>
          <xs:documentation>INSET</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OOS">
        <xs:annotation>
          <xs:documentation>Out of School Activities</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RCP">
        <xs:annotation>
          <xs:documentation>Recruitment Incentive (Pay)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RCC">
        <xs:annotation>
          <xs:documentation>Recruitment Incentive (One Off Payment)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RCA">
        <xs:annotation>
          <xs:documentation>Recruitment Incentive (Other)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WEL">
        <xs:annotation>
          <xs:documentation>Welcome Back</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="GTC">
        <xs:annotation>
          <xs:documentation>GTC subscription </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="UQT">
        <xs:annotation>
          <xs:documentation>Unqualified Teachers</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTH">
        <xs:annotation>
          <xs:documentation>Other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAdmissionsAptitudeCodeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="PE">
        <xs:annotation>
          <xs:documentation>Physical Education or Sport</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PA">
        <xs:annotation>
          <xs:documentation>Performing Arts</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VA">
        <xs:annotation>
          <xs:documentation>Visual Arts</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ML">
        <xs:annotation>
          <xs:documentation>Modern Foreign Languages</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DT">
        <xs:annotation>
          <xs:documentation>Design Technology or IT</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OT">
        <xs:annotation>
          <xs:documentation>Other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAdmissionsOfferStatusType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="O">
        <xs:annotation>
          <xs:documentation>Offer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N">
        <xs:annotation>
          <xs:documentation>No offer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W">
        <xs:annotation>
          <xs:documentation>Withdraw Previous Offer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D">
        <xs:annotation>
          <xs:documentation>Discard (higher preference offered)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAdmissionsNotifyMethodType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="O">
        <xs:annotation>
          <xs:documentation>Online</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="E">
        <xs:annotation>
          <xs:documentation>Email</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T">
        <xs:annotation>
          <xs:documentation>SMS/Text message</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L">
        <xs:annotation>
          <xs:documentation>Letter</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAdmissionsPrebandCategoryType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1A">
        <xs:annotation>
          <xs:documentation>Band 1A (Highest)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1B">
        <xs:annotation>
          <xs:documentation>Band 1B</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2A">
        <xs:annotation>
          <xs:documentation>Band 2A</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2B">
        <xs:annotation>
          <xs:documentation>Band 2B</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Band 3 (Lowest)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="U">
        <xs:annotation>
          <xs:documentation>Band Unknown</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAdmissionsReasonCodeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="DIST">
        <xs:annotation>
          <xs:documentation>Distance</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SIBL">
        <xs:annotation>
          <xs:documentation>Sibling</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MEDL">
        <xs:annotation>
          <xs:documentation>Medical</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RLGN">
        <xs:annotation>
          <xs:documentation>Religion</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CTCH">
        <xs:annotation>
          <xs:documentation>Catchment Area</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FEED">
        <xs:annotation>
          <xs:documentation>Feeder School</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TRAV">
        <xs:annotation>
          <xs:documentation>Travelling Time</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SSEX">
        <xs:annotation>
          <xs:documentation>Single Sex School</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="COED">
        <xs:annotation>
          <xs:documentation>Coeducational School</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="APTD">
        <xs:annotation>
          <xs:documentation>Aptitude</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SOCL">
        <xs:annotation>
          <xs:documentation>Social Reasons</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHR">
        <xs:annotation>
          <xs:documentation>Other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKADTFileStatusTypeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Prime">
        <xs:annotation>
          <xs:documentation>These files contain completely new data and should be considered the complete application for the student.  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Change">
        <xs:annotation>
          <xs:documentation>A 'Change' value means that all data previously supplied (apart from the Application Reference) are to be deleted and only the data in the change file to be used for pupils in the file.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Withdrawal">
        <xs:annotation>
          <xs:documentation>These files advise the  LA or Own Admission Authority school that an application should be noted as withdrawn for a pupil who moves away from the LA during the admissions process.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Suspended">
        <xs:annotation>
          <xs:documentation>This is a precautionary status, as it is not known when it might be used.  These records should go to suspense, as it is not possible to know what to do with them if the condition cannot be determined.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Late">
        <xs:annotation>
          <xs:documentation>The records in this file type are considered as late by the Home LAs criteria.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAdviceAndAssessmentWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="AA1">
        <xs:annotation>
          <xs:documentation>School based assessment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AA2">
        <xs:annotation>
          <xs:documentation>External advice/assessment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AA3">
        <xs:annotation>
          <xs:documentation>Specialised assessments</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AA4">
        <xs:annotation>
          <xs:documentation>Multu-agency assessments</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAlternativeProvisionTypeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="HSP">
        <xs:annotation>
          <xs:documentation>Hospital</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="IND">
        <xs:annotation>
          <xs:documentation>Independent School</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NMS">
        <xs:annotation>
          <xs:documentation>Non-maintained Special School</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NOT">
        <xs:annotation>
          <xs:documentation>Not a School</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAssessmentResultTypeEnglandType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="E">
        <xs:annotation>
          <xs:documentation>Estimate</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="I">
        <xs:annotation>
          <xs:documentation>Interim</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P">
        <xs:annotation>
          <xs:documentation>Provisional (subject to regrading/appeal)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R">
        <xs:annotation>
          <xs:documentation>Result</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T">
        <xs:annotation>
          <xs:documentation>Target</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAssessmentResultTypeWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="D">
        <xs:annotation>
          <xs:documentation>Pupils who have been disapplied under sections 365-367 of the 1996 Education Act</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W">
        <xs:annotation>
          <xs:documentation>Pupils who are working towards level 1.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Level 1</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Level 2</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Level 3</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Level 4</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="5">
        <xs:annotation>
          <xs:documentation>Level 5</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>Level 6</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="7">
        <xs:annotation>
          <xs:documentation>Level 7</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="8">
        <xs:annotation>
          <xs:documentation>Level 8</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="E">
        <xs:annotation>
          <xs:documentation>Pupils who have demonstrated exceptional performance.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N">
        <xs:annotation>
          <xs:documentation>Pupils who have not been awarded a level for reasons other than disapplication.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAssignmentPostType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="ADMC">
        <xs:annotation>
          <xs:documentation>Administrator / Clerk </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ADVT">
        <xs:annotation>
          <xs:documentation>Advisory teacher (unattached)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ARTD">
        <xs:annotation>
          <xs:documentation>Art &amp;/or Design Technician</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ASHT">
        <xs:annotation>
          <xs:documentation>Assistant head</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ATTN">
        <xs:annotation>
          <xs:documentation>Attendance Officer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BILN">
        <xs:annotation>
          <xs:documentation>Bilingual Support Assistant</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BURS">
        <xs:annotation>
          <xs:documentation>Bursar</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BUSS">
        <xs:annotation>
          <xs:documentation>Business Manager</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CTKR">
        <xs:annotation>
          <xs:documentation>Caretaker</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TCHR">
        <xs:annotation>
          <xs:documentation>Classroom Teacher</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CLNR">
        <xs:annotation>
          <xs:documentation>Cleaner</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CXPA">
        <xs:annotation>
          <xs:documentation>Connexions Personal Adviser</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="COOK">
        <xs:annotation>
          <xs:documentation>Cook</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="COVR">
        <xs:annotation>
          <xs:documentation>Cover Supervisor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CART">
        <xs:annotation>
          <xs:documentation>Creative Arts Specialist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DATA">
        <xs:annotation>
          <xs:documentation>Data Manager / Analyst</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DPHT">
        <xs:annotation>
          <xs:documentation>Deputy head</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EDWO">
        <xs:annotation>
          <xs:documentation>Education Welfare Officer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EPSY">
        <xs:annotation>
          <xs:documentation>Educational Psychologist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ESCT">
        <xs:annotation>
          <xs:documentation>Escort</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="INVG">
        <xs:annotation>
          <xs:documentation>Exam Invigilator</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EXAM">
        <xs:annotation>
          <xs:documentation>Examinations Officer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FINC">
        <xs:annotation>
          <xs:documentation>Finance Officer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HDTR">
        <xs:annotation>
          <xs:documentation>Head teacher</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HDYR">
        <xs:annotation>
          <xs:documentation>Head of Year</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HDPT">
        <xs:annotation>
          <xs:documentation>Head of Department</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HDHO">
        <xs:annotation>
          <xs:documentation>Head of House</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HLTA">
        <xs:annotation>
          <xs:documentation>Higher Level Teaching Assistant</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HSLO">
        <xs:annotation>
          <xs:documentation>Home-School Liaison Officer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ICTM">
        <xs:annotation>
          <xs:documentation>ICT Network Manager</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ICTT">
        <xs:annotation>
          <xs:documentation>ICT Technician</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="INST">
        <xs:annotation>
          <xs:documentation>Instructor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LANG">
        <xs:annotation>
          <xs:documentation>Language support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SPLY">
        <xs:annotation>
          <xs:documentation>LEA Supply Pool</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LRNM">
        <xs:annotation>
          <xs:documentation>Learning Manager</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LMEN">
        <xs:annotation>
          <xs:documentation>Learning Mentor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LSEN">
        <xs:annotation>
          <xs:documentation>Learning Support Assistant (for SEN pupils)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LIBR">
        <xs:annotation>
          <xs:documentation>Librarian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LITR">
        <xs:annotation>
          <xs:documentation>Literacy Worker</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MIDA">
        <xs:annotation>
          <xs:documentation>Midday Assistant</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MIDS">
        <xs:annotation>
          <xs:documentation>Midday Supervisor</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MINS">
        <xs:annotation>
          <xs:documentation>Minority ethnic support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MISC">
        <xs:annotation>
          <xs:documentation>Miscellaneous Teaching Service for the LEA</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MUSS">
        <xs:annotation>
          <xs:documentation>Music Specialist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MUSC">
        <xs:annotation>
          <xs:documentation>Music tuition (include peripatetic)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NURS">
        <xs:annotation>
          <xs:documentation>Nurse</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NNSE">
        <xs:annotation>
          <xs:documentation>Nursery Nurse </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OMAN">
        <xs:annotation>
          <xs:documentation>Office Manager</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CATR">
        <xs:annotation>
          <xs:documentation>Other Catering Staff</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OICT">
        <xs:annotation>
          <xs:documentation>Other ICT Support Staff</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PERI">
        <xs:annotation>
          <xs:documentation>Peripatetic Teacher (unattached)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PAHT">
        <xs:annotation>
          <xs:documentation>Personal Assistant to Headteacher</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PREM">
        <xs:annotation>
          <xs:documentation>Premises Manager</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RECP">
        <xs:annotation>
          <xs:documentation>Receptionist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RPRG">
        <xs:annotation>
          <xs:documentation>Reprographics Technician</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SSEC">
        <xs:annotation>
          <xs:documentation>School Secretary</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="STCH">
        <xs:annotation>
          <xs:documentation>Science Technician</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SENC">
        <xs:annotation>
          <xs:documentation>SEN co-ordinator</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TNON">
        <xs:annotation>
          <xs:documentation>Teacher: engaged for non-school education</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TPRU">
        <xs:annotation>
          <xs:documentation>Teacher: engaged to teach in a Pupil Referral Unit</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TMIS">
        <xs:annotation>
          <xs:documentation>Teacher: engaged to teach in miscellaneous establishments</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TASS">
        <xs:annotation>
          <xs:documentation>Teaching Assistant</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TTCH">
        <xs:annotation>
          <xs:documentation>Technology Technician</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="THER">
        <xs:annotation>
          <xs:documentation>Therapist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TRAV">
        <xs:annotation>
          <xs:documentation>Traveller support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VOLN">
        <xs:annotation>
          <xs:documentation>Volunteer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WELF">
        <xs:annotation>
          <xs:documentation>Welfare Assistant</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAttendanceCodesEnglandType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="/">
        <xs:annotation>
          <xs:documentation>Present (AM)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="\">
        <xs:annotation>
          <xs:documentation>Present (PM)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L">
        <xs:annotation>
          <xs:documentation>Late (before registers closed) marked as present</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="I">
        <xs:annotation>
          <xs:documentation>Authorised absence due to Illness (NOT medical or dental etc. appointments)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="M">
        <xs:annotation>
          <xs:documentation>Authorised absence due to medical/ dental appointments</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R">
        <xs:annotation>
          <xs:documentation>Authorised absence due to religious observance</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="S">
        <xs:annotation>
          <xs:documentation>Authorised absence due to study leave</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T">
        <xs:annotation>
          <xs:documentation>Authorised absence due to traveller absence</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H">
        <xs:annotation>
          <xs:documentation>Authorised absence due to agreed family holiday</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F">
        <xs:annotation>
          <xs:documentation>Authorised absence due to agreed extended family holiday</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="E">
        <xs:annotation>
          <xs:documentation>Authorised absence as pupil is excluded, with no alternative provision made</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C">
        <xs:annotation>
          <xs:documentation>Authorised absence as pupil is absent due to other authorised circumstances</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B">
        <xs:annotation>
          <xs:documentation>Approved education activity as pupil being educated off site (not dual registration)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D">
        <xs:annotation>
          <xs:documentation>Approved education activity as pupil is dual registered (i.e. attending another establishment)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J">
        <xs:annotation>
          <xs:documentation>Approved education activity as pupil is attending interview</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P">
        <xs:annotation>
          <xs:documentation>Approved education activity as pupil is attending an approved sporting activity</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="V">
        <xs:annotation>
          <xs:documentation>Approved education activity as pupil is away on an educational visit or trip </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W">
        <xs:annotation>
          <xs:documentation>Approved education activity as pupil is attending work experience</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G">
        <xs:annotation>
          <xs:documentation>Unauthorised absence as pupil is on a family holiday, not agreed, or is taking days in excess of an agreed family holiday</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="U">
        <xs:annotation>
          <xs:documentation>Unauthorised absence as pupil arrived after registers closed</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="O">
        <xs:annotation>
          <xs:documentation>Unauthorised absence as pupil missed sessions for an unauthorised absence not covered by any other code/description</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N">
        <xs:annotation>
          <xs:documentation>Unauthorised absence as pupil missed sessions for a reason that has not yet been provided</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="X">
        <xs:annotation>
          <xs:documentation>Non-compulsory school age absence - not counted in possible attendances</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Y">
        <xs:annotation>
          <xs:documentation>Enforced closure - not counted in possible attendances</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Z">
        <xs:annotation>
          <xs:documentation>Pupil not yet on roll - not counted in possible attendances</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="#">
        <xs:annotation>
          <xs:documentation>School closed to pupils - not counted in possible attendances</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKAttendanceCodesWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="/ \">
        <xs:annotation>
          <xs:documentation>Present: Pupils on the admissions register who are present at the start of each session.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D">
        <xs:annotation>
          <xs:documentation>Present: Part-time or short-term attendance at another school or Pupil Referral Unit; Attendance at alternative education programmes e.g. run by the LEA or a voluntary organisation; Part-time or short-term home tuition; essentially any approved flexible</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R">
        <xs:annotation>
          <xs:documentation>Present: Sporting activities (organised by the school or where a pupil is  representing the school); Field trips; Educational visits; Other activities where a pupil is representing the school.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W">
        <xs:annotation>
          <xs:documentation>Present: Work experience; Attending interviews e.g. for work placements and college / university places.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="O">
        <xs:annotation>
          <xs:documentation>Unauthorised absence: Any absence for which a satisfactory explanation, in the schools view, has not been provided.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L">
        <xs:annotation>
          <xs:documentation>Unauthorised absence: Late arrivals for registration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C">
        <xs:annotation>
          <xs:documentation>Authorised absense: Public performances and employment (licensed under regulations); Family bereavement; Days set aside for religious observance; Special occasions (in limited circumstances); Absences when Traveller children are attending another school </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="E">
        <xs:annotation>
          <xs:documentation>Authorised absense: Exclusion from school</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H">
        <xs:annotation>
          <xs:documentation>Authorised absense: Family holidays, not normally exceeding 10 school days</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="M">
        <xs:annotation>
          <xs:documentation>Authorised absense: Medical / dental appointments and illness</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="S">
        <xs:annotation>
          <xs:documentation>Authorised absense: Study leave</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKBasicSkillsWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="NS">
        <xs:annotation>
          <xs:documentation>Not screened</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NA">
        <xs:annotation>
          <xs:documentation>Not assessed since no basic skills identified through screening</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BE">
        <xs:annotation>
          <xs:documentation>Below entry level</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="E1">
        <xs:annotation>
          <xs:documentation>Entry level 1</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="E2">
        <xs:annotation>
          <xs:documentation>Entry level 2</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="E3">
        <xs:annotation>
          <xs:documentation>Entry level 3</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L1">
        <xs:annotation>
          <xs:documentation>Level 1</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L2">
        <xs:annotation>
          <xs:documentation>Above level 1</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="99">
        <xs:annotation>
          <xs:documentation>Not known (e.g. refusals or not assessed despite need)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKBasicSkillsSupportWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="00">
        <xs:annotation>
          <xs:documentation>Does not require support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="01">
        <xs:annotation>
          <xs:documentation>Specialist literacy support only</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="02">
        <xs:annotation>
          <xs:documentation>Specialist numeracy support only</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="03">
        <xs:annotation>
          <xs:documentation>specialist literacy and numeracy support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="04">
        <xs:annotation>
          <xs:documentation>other literacy support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="05">
        <xs:annotation>
          <xs:documentation>other numeracy support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="06">
        <xs:annotation>
          <xs:documentation>other literacy and numeracy support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="07">
        <xs:annotation>
          <xs:documentation>Needs support but has not/will not receive support</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="90">
        <xs:annotation>
          <xs:documentation>Basic Skills needs not assessed</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKBirthDateVerificationLevelType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="0">
        <xs:annotation>
          <xs:documentation>Not Verified</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>One or more of the following Secondary certificates: Certificate of Baptism; Marriage Certificate; National Health Service Medical Card; Child's Certificate of Vaccination; Child's Health Record Card; A certificate of Service in HM Forces or other employment under the Crown or in the Mercantile Marine; A certificate of membership of a Trade Union Friendly Society or any cards or papers relating to membership of an Approved Society or Unemployment Insurance Apprenticeship indentures; Early certificate or testimonial from employer; Aliens registration card, certificate of naturalisation, Home Office travel document or a passport; Life insurance policy; Certificate of confirmation; School certificate or report; A birthday book or old family record; Family Bible containing a record of birth.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>One of the following:  Full certificate; Birth certificate short form; Certificate of registry showing given names and family name; GRO copy; Adoption Order issued by the High Court, County Court or Juvenile Court; Certificate of adoption issued by the GRO; Foreign birth certificate issued by registration authority of the foreign country.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKBoarderTypeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="B">
        <xs:annotation>
          <xs:documentation>Boarder, nights per week not specified</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>Boarder, six nights or less a week</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="7">
        <xs:annotation>
          <xs:documentation>Boarder, seven nights a week</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N">
        <xs:annotation>
          <xs:documentation>Not a boarder</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKClassActivityType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="AR">
        <xs:annotation>
          <xs:documentation>Art, Craft or Design</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EN">
        <xs:annotation>
          <xs:documentation>English Literacy or Reading</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FL">
        <xs:annotation>
          <xs:documentation>Foreign Language</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="GP">
        <xs:annotation>
          <xs:documentation>Group Project work (including mixed activities in other categories and library work)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="GS">
        <xs:annotation>
          <xs:documentation>General Studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HU">
        <xs:annotation>
          <xs:documentation>Humanities (including Geography, History, Economics or Business Studies)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MA">
        <xs:annotation>
          <xs:documentation>Mathematics or Numeracy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MD">
        <xs:annotation>
          <xs:documentation>Music, Singing or Drama</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OT">
        <xs:annotation>
          <xs:documentation>Other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PE">
        <xs:annotation>
          <xs:documentation>PE or Games</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PL">
        <xs:annotation>
          <xs:documentation>Personal, Social or Leisure Education</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PS">
        <xs:annotation>
          <xs:documentation>Private Studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RE">
        <xs:annotation>
          <xs:documentation>Religious Education</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SC">
        <xs:annotation>
          <xs:documentation>Science</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TE">
        <xs:annotation>
          <xs:documentation>Technology, IT or Computing</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TV">
        <xs:annotation>
          <xs:documentation>Watching TV or listening to Radio</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKClassKeyStageType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="F">
        <xs:annotation>
          <xs:documentation>Foundation Stage (Nursery or Reception classes)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>Key Stage 1</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Key Stage 2</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Key Stage 3</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="M">
        <xs:annotation>
          <xs:documentation>Mixed class</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKClassTypeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="N">
        <xs:annotation>
          <xs:documentation>Nursery Class (England)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="O">
        <xs:annotation>
          <xs:documentation>Not a Nursery Class (England)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N">
        <xs:annotation>
          <xs:documentation>Nursery Class (not a Special Class/Unit) (Wales)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="O">
        <xs:annotation>
          <xs:documentation>Other Class (not a Special Class/Unit) (Wales)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="S">
        <xs:annotation>
          <xs:documentation>Nursery Special Class/Unit (Wales)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKCompletionStatusWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>continuing the learning activity</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>completed the learning activity</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>withdrawn from the learning activity</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>transferred to a new learning activity</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKConnexionsAgreementType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Yes">
        <xs:annotation>
          <xs:documentation>Permission has been given by the parent or guardian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="No">
        <xs:annotation>
          <xs:documentation>Parent or guardian has refused permission</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="UNS">
        <xs:annotation>
          <xs:documentation>Unsought - School has not yet sent out Fair Processing Notices (Data cannot be shared with Connexions)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SNR">
        <xs:annotation>
          <xs:documentation>Sought, No Reply - School has sent out Fair Processing Notices, but has received no reply from parent or guardian (Data can be shared with Connexions)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKContractTypeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="PRM">
        <xs:annotation>
          <xs:documentation>Permanent</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FXT">
        <xs:annotation>
          <xs:documentation>Fixed Term</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TMP">
        <xs:annotation>
          <xs:documentation>Temporary / open-ended</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SLA">
        <xs:annotation>
          <xs:documentation>Service Agreement with Local Authority</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SAG">
        <xs:annotation>
          <xs:documentation>Service Agreement with an Agency</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SOT">
        <xs:annotation>
          <xs:documentation>Service Agreement with other source</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKCurriculumAndTeachingMethodsWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="CT1">
        <xs:annotation>
          <xs:documentation>Some targeted differentiation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CT2">
        <xs:annotation>
          <xs:documentation>Significant and targeted differentiation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CT3">
        <xs:annotation>
          <xs:documentation>Some curriculum modifications</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CT4">
        <xs:annotation>
          <xs:documentation>Significant curriculum modifications</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKDegreeClassType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="01">
        <xs:annotation>
          <xs:documentation>First class honours</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="02">
        <xs:annotation>
          <xs:documentation>Upper second class honours</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="03">
        <xs:annotation>
          <xs:documentation>Lower second class honours</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="04">
        <xs:annotation>
          <xs:documentation>Undivided second class honours</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="05">
        <xs:annotation>
          <xs:documentation>Third class honours</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="06">
        <xs:annotation>
          <xs:documentation>Fourth class honours</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="07">
        <xs:annotation>
          <xs:documentation>Unclassified honours</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="08">
        <xs:annotation>
          <xs:documentation>Aegrotat (whether to honours or pass)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="09">
        <xs:annotation>
          <xs:documentation>Pass - degree awarded without honours following an honours degree course</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="10">
        <xs:annotation>
          <xs:documentation>Ordinary (to include divisions of ordinary, if any) - degree awarded following a non-honours course</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="11">
        <xs:annotation>
          <xs:documentation>General degree - degree awarded after following a non-honours course/degree that was not available to be classified</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="12">
        <xs:annotation>
          <xs:documentation>Degree awarded outside the UK and Eire</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="13">
        <xs:annotation>
          <xs:documentation>Masters Degree</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="14">
        <xs:annotation>
          <xs:documentation>Doctorate</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="15">
        <xs:annotation>
          <xs:documentation>Ordinary Or Pass - applicable for a non-degree course</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="99">
        <xs:annotation>
          <xs:documentation>Not known</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKDegreeSubjectType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="A100">
        <xs:annotation>
          <xs:documentation>Pre-clinical Medicine</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="A200">
        <xs:annotation>
          <xs:documentation>Pre-clinical Dentistry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="A300">
        <xs:annotation>
          <xs:documentation>Clinical Medicine</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="A400">
        <xs:annotation>
          <xs:documentation>Clinical Dentistry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="A900">
        <xs:annotation>
          <xs:documentation>Others in Medicine and Dentistry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B100">
        <xs:annotation>
          <xs:documentation>Anatomy, Physiology and Pathology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B200">
        <xs:annotation>
          <xs:documentation>Pharmacology, Toxicology and Pharmacy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B300">
        <xs:annotation>
          <xs:documentation>Complementary Medicine</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B400">
        <xs:annotation>
          <xs:documentation>Nutrition</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B500">
        <xs:annotation>
          <xs:documentation>Ophthalmics</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B600">
        <xs:annotation>
          <xs:documentation>Aural and Oral Sciences</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B700">
        <xs:annotation>
          <xs:documentation>Nursing</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B800">
        <xs:annotation>
          <xs:documentation>Medical Technology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B900">
        <xs:annotation>
          <xs:documentation>Others in Subjects allied to Medicine</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C100">
        <xs:annotation>
          <xs:documentation>Biology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C200">
        <xs:annotation>
          <xs:documentation>Botany</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C300">
        <xs:annotation>
          <xs:documentation>Zoology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C400">
        <xs:annotation>
          <xs:documentation>Genetics</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C500">
        <xs:annotation>
          <xs:documentation>Microbiology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C600">
        <xs:annotation>
          <xs:documentation>Sports Science</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C700">
        <xs:annotation>
          <xs:documentation>Molecular Biology, Biophysics and Biochemistry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C800">
        <xs:annotation>
          <xs:documentation>Psychology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C900">
        <xs:annotation>
          <xs:documentation>Others in Biological Sciences</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D100">
        <xs:annotation>
          <xs:documentation>Pre-clinical Veterinary Medicine</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D200">
        <xs:annotation>
          <xs:documentation>Clinical Veterinary Medicine and Dentistry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D300">
        <xs:annotation>
          <xs:documentation>Animal Science</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D400">
        <xs:annotation>
          <xs:documentation>Agriculture</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D500">
        <xs:annotation>
          <xs:documentation>Forestry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D600">
        <xs:annotation>
          <xs:documentation>Food and Beverage studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D700">
        <xs:annotation>
          <xs:documentation>Agricultural Sciences</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="D900">
        <xs:annotation>
          <xs:documentation>Others in Veterinary Sciences, Agriculture and related subjects</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F100">
        <xs:annotation>
          <xs:documentation>Chemistry</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F200">
        <xs:annotation>
          <xs:documentation>Materials Science</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F300">
        <xs:annotation>
          <xs:documentation>Physics</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F400">
        <xs:annotation>
          <xs:documentation>Forensic and Archaeological Science</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F500">
        <xs:annotation>
          <xs:documentation>Astronomy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F600">
        <xs:annotation>
          <xs:documentation>Geology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F700">
        <xs:annotation>
          <xs:documentation>Ocean Sciences</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F800">
        <xs:annotation>
          <xs:documentation>Physical and Terrestrial Geographical and Environmental Sciences</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F900">
        <xs:annotation>
          <xs:documentation>Others in Physical Sciences</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G100">
        <xs:annotation>
          <xs:documentation>Mathematics</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G200">
        <xs:annotation>
          <xs:documentation>Operational Research</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G300">
        <xs:annotation>
          <xs:documentation>Statistics</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G400">
        <xs:annotation>
          <xs:documentation>Computer Science</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G500">
        <xs:annotation>
          <xs:documentation>Information Systems</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G600">
        <xs:annotation>
          <xs:documentation>Software Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G700">
        <xs:annotation>
          <xs:documentation>Artificial Intelligence</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="G900">
        <xs:annotation>
          <xs:documentation>Others in Mathematical and Computing Sciences</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H100">
        <xs:annotation>
          <xs:documentation>General Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H200">
        <xs:annotation>
          <xs:documentation>Civil Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H300">
        <xs:annotation>
          <xs:documentation>Mechanical Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H400">
        <xs:annotation>
          <xs:documentation>Aerospace Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H500">
        <xs:annotation>
          <xs:documentation>Naval Architecture</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H600">
        <xs:annotation>
          <xs:documentation>Electronic and Electrical Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H700">
        <xs:annotation>
          <xs:documentation>Production and Manufacturing Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H800">
        <xs:annotation>
          <xs:documentation>Chemical, Process and Energy Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="H900">
        <xs:annotation>
          <xs:documentation>Others in Engineering</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J100">
        <xs:annotation>
          <xs:documentation>Minerals Technology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J200">
        <xs:annotation>
          <xs:documentation>Metallurgy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J300">
        <xs:annotation>
          <xs:documentation>Ceramics and Glasses</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J400">
        <xs:annotation>
          <xs:documentation>Polymers and Textiles</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J500">
        <xs:annotation>
          <xs:documentation>Materials Technology not otherwise specified</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J600">
        <xs:annotation>
          <xs:documentation>Maritime Technology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J700">
        <xs:annotation>
          <xs:documentation>Industrial Biotechnology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="J900">
        <xs:annotation>
          <xs:documentation>Others in Technology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="K100">
        <xs:annotation>
          <xs:documentation>Architecture</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="K200">
        <xs:annotation>
          <xs:documentation>Building</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="K300">
        <xs:annotation>
          <xs:documentation>Landscape Design</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="K400">
        <xs:annotation>
          <xs:documentation>Planning (Urban, Rural and Regional)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="K900">
        <xs:annotation>
          <xs:documentation>Others in Architecture, Building and Planning</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L100">
        <xs:annotation>
          <xs:documentation>Economics</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L200">
        <xs:annotation>
          <xs:documentation>Politics</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L300">
        <xs:annotation>
          <xs:documentation>Sociology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L400">
        <xs:annotation>
          <xs:documentation>Social Policy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L500">
        <xs:annotation>
          <xs:documentation>Social Work</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L600">
        <xs:annotation>
          <xs:documentation>Anthropology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L700">
        <xs:annotation>
          <xs:documentation>Human and Social Geography</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L900">
        <xs:annotation>
          <xs:documentation>Others in Social studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="M100">
        <xs:annotation>
          <xs:documentation>Law by area</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="M200">
        <xs:annotation>
          <xs:documentation>Law by Topic</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="M900">
        <xs:annotation>
          <xs:documentation>Other in Law</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N100">
        <xs:annotation>
          <xs:documentation>Business studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N200">
        <xs:annotation>
          <xs:documentation>Management studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N300">
        <xs:annotation>
          <xs:documentation>Finance</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N400">
        <xs:annotation>
          <xs:documentation>Accounting</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N500">
        <xs:annotation>
          <xs:documentation>Marketing</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N600">
        <xs:annotation>
          <xs:documentation>Human Resource Management</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N700">
        <xs:annotation>
          <xs:documentation>Office skills</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N800">
        <xs:annotation>
          <xs:documentation>Tourism, Transport and Travel</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N900">
        <xs:annotation>
          <xs:documentation>Others in Business and Administrative studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P100">
        <xs:annotation>
          <xs:documentation>Information Services</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P200">
        <xs:annotation>
          <xs:documentation>Publicity studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P300">
        <xs:annotation>
          <xs:documentation>Media studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P400">
        <xs:annotation>
          <xs:documentation>Publishing</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P500">
        <xs:annotation>
          <xs:documentation>Journalism</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P900">
        <xs:annotation>
          <xs:documentation>Others in Mass Communications and Documentation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q100">
        <xs:annotation>
          <xs:documentation>Linguistics</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q200">
        <xs:annotation>
          <xs:documentation>Comparative Literary studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q300">
        <xs:annotation>
          <xs:documentation>English studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q400">
        <xs:annotation>
          <xs:documentation>Ancient Language studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q500">
        <xs:annotation>
          <xs:documentation>Celtic studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q600">
        <xs:annotation>
          <xs:documentation>Latin studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q700">
        <xs:annotation>
          <xs:documentation>Classical Greek studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q800">
        <xs:annotation>
          <xs:documentation>Classical studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Q900">
        <xs:annotation>
          <xs:documentation>Others in Linguistics, Classics and related subjects</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R100">
        <xs:annotation>
          <xs:documentation>French studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R200">
        <xs:annotation>
          <xs:documentation>German studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R300">
        <xs:annotation>
          <xs:documentation>Italian studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R400">
        <xs:annotation>
          <xs:documentation>Spanish studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R500">
        <xs:annotation>
          <xs:documentation>Portuguese studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R600">
        <xs:annotation>
          <xs:documentation>Scandinavian studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R700">
        <xs:annotation>
          <xs:documentation>Russian and East European studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R900">
        <xs:annotation>
          <xs:documentation>Others in European Languages, Literature and related subjects</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T100">
        <xs:annotation>
          <xs:documentation>Chinese studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T200">
        <xs:annotation>
          <xs:documentation>Japanese studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T300">
        <xs:annotation>
          <xs:documentation>South Asian studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T400">
        <xs:annotation>
          <xs:documentation>Other Asian studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T500">
        <xs:annotation>
          <xs:documentation>African studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T600">
        <xs:annotation>
          <xs:documentation>Modern Middle Eastern studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T700">
        <xs:annotation>
          <xs:documentation>American studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T800">
        <xs:annotation>
          <xs:documentation>Australasian studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T900">
        <xs:annotation>
          <xs:documentation>Others in Eastern, Asiatic, African, American and Australasian Languages, Literature and related subjects</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="V100">
        <xs:annotation>
          <xs:documentation>History by period</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="V200">
        <xs:annotation>
          <xs:documentation>History by area</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="V300">
        <xs:annotation>
          <xs:documentation>History by topic</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="V400">
        <xs:annotation>
          <xs:documentation>Archaeology</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="V500">
        <xs:annotation>
          <xs:documentation>Philosophy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="V600">
        <xs:annotation>
          <xs:documentation>Theology and Religious studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="V900">
        <xs:annotation>
          <xs:documentation>Others in Historical and Philosophical studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W100">
        <xs:annotation>
          <xs:documentation>Fine Art</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W200">
        <xs:annotation>
          <xs:documentation>Design studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W300">
        <xs:annotation>
          <xs:documentation>Music</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W400">
        <xs:annotation>
          <xs:documentation>Drama</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W500">
        <xs:annotation>
          <xs:documentation>Dance</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W600">
        <xs:annotation>
          <xs:documentation>Cinematics and Photography</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W700">
        <xs:annotation>
          <xs:documentation>Crafts</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W800">
        <xs:annotation>
          <xs:documentation>Imaginative Writing</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="W900">
        <xs:annotation>
          <xs:documentation>Others in Creative Arts and Design</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="X100">
        <xs:annotation>
          <xs:documentation>Training Teachers</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="X200">
        <xs:annotation>
          <xs:documentation>Research and Study Skills in Education</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="X300">
        <xs:annotation>
          <xs:documentation>Academic studies in Education</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="X900">
        <xs:annotation>
          <xs:documentation>Others in Education</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKDenominationsType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="CE">
        <xs:annotation>
          <xs:documentation>Church of England</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CO">
        <xs:annotation>
          <xs:documentation>Congregational</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EC">
        <xs:annotation>
          <xs:documentation>Christian (Ecumenical)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FR">
        <xs:annotation>
          <xs:documentation>Free Church</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="GR">
        <xs:annotation>
          <xs:documentation>Greek</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="JE">
        <xs:annotation>
          <xs:documentation>Jewish</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ME">
        <xs:annotation>
          <xs:documentation>Methodist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MU">
        <xs:annotation>
          <xs:documentation>Muslim</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NO">
        <xs:annotation>
          <xs:documentation>Non-denominational/Secular</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OT">
        <xs:annotation>
          <xs:documentation>Other Religious Affiliation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="QU">
        <xs:annotation>
          <xs:documentation>Quaker</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RC">
        <xs:annotation>
          <xs:documentation>Roman Catholic</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SD">
        <xs:annotation>
          <xs:documentation>Seventh Day Adventist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SI">
        <xs:annotation>
          <xs:documentation>Sikh</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="UR">
        <xs:annotation>
          <xs:documentation>United Reform Church</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKEmployeeDestinationType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="LEAPRM">
        <xs:annotation>
          <xs:documentation>Remaining in the same LA - primary school</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LEASEC">
        <xs:annotation>
          <xs:documentation>Remaining in the same LA - secondary school</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LEAOTH">
        <xs:annotation>
          <xs:documentation>Remaining in the same LA - other (including central staff)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHPRM">
        <xs:annotation>
          <xs:documentation>Move to another LA - primary school</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHSEC">
        <xs:annotation>
          <xs:documentation>Move to another LA - secondary school</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHOTH">
        <xs:annotation>
          <xs:documentation>Move to another LA - other (including central staff)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LEASIX">
        <xs:annotation>
          <xs:documentation>Sixth form college - same LA area</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHSIX">
        <xs:annotation>
          <xs:documentation>Sixth form college - other LA area</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="INDEPN">
        <xs:annotation>
          <xs:documentation>Independent school  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FHEHUK">
        <xs:annotation>
          <xs:documentation>University, FE/HE college in UK  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NONUKP">
        <xs:annotation>
          <xs:documentation>Education post outside UK  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PUBSEC">
        <xs:annotation>
          <xs:documentation>Non-education employment - public sector</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SELFMP">
        <xs:annotation>
          <xs:documentation>Non-education employment - self-employment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHERE">
        <xs:annotation>
          <xs:documentation>Non-education employment - other employment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RETAGE">
        <xs:annotation>
          <xs:documentation>Retirement - normal age</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RETILL">
        <xs:annotation>
          <xs:documentation>Retirement - ill-health</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RETPRM">
        <xs:annotation>
          <xs:documentation>Retirement - premature</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MATFAM">
        <xs:annotation>
          <xs:documentation>Maternity/Paternity/Break for family reasons  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NAPPCH">
        <xs:annotation>
          <xs:documentation>Not Applicable - Change of Contract</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHERR">
        <xs:annotation>
          <xs:documentation>Other  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NTKNWN">
        <xs:annotation>
          <xs:documentation>Not known  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DECESD">
        <xs:annotation>
          <xs:documentation>Deceased</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKEmployeeEthnicityType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="WBRI">
        <xs:annotation>
          <xs:documentation>White, British</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WIRI">
        <xs:annotation>
          <xs:documentation>White, Irish</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WOTH">
        <xs:annotation>
          <xs:documentation>White, any other White Background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MWBC">
        <xs:annotation>
          <xs:documentation>Mixed, White and Black Caribbean</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MWBA">
        <xs:annotation>
          <xs:documentation>Mixed, White and Black African</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MWAS">
        <xs:annotation>
          <xs:documentation>Mixed White and Asian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MOTH">
        <xs:annotation>
          <xs:documentation>Mixed, any other mixed background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AIND">
        <xs:annotation>
          <xs:documentation>Asian or Asian British, Indian </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="APKN">
        <xs:annotation>
          <xs:documentation>Asian or Asian British, Pakistani</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ABAN">
        <xs:annotation>
          <xs:documentation>Asian or Asian British, Bangladeshi</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AOTH">
        <xs:annotation>
          <xs:documentation>Asian or Asian British, Any other Asian Background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BCRB">
        <xs:annotation>
          <xs:documentation>Black or Black British, Caribbean</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BAFR">
        <xs:annotation>
          <xs:documentation>Black or Black British, African</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BOTH">
        <xs:annotation>
          <xs:documentation>Black or Black British, Any other Black background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CHNE">
        <xs:annotation>
          <xs:documentation>Chinese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OOTH">
        <xs:annotation>
          <xs:documentation>Any other ethnic background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="REFU">
        <xs:annotation>
          <xs:documentation>Did not wish to be recorded</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NOBT">
        <xs:annotation>
          <xs:documentation>Not Obtained</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKEmployeeOriginType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="1STIMM">
        <xs:annotation>
          <xs:documentation>First employment in teaching - immediately after training</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1STAFT">
        <xs:annotation>
          <xs:documentation>First employment in teaching - not immediately after training</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1STEBR">
        <xs:annotation>
          <xs:documentation>First employment in teaching - employment based teacher training</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TCHLEA">
        <xs:annotation>
          <xs:documentation>Teaching post within the LA sector (school or central staff) in England or Wales</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TCH6TH">
        <xs:annotation>
          <xs:documentation>Teaching post within a Sixth form college in England or Wales</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TCHIND">
        <xs:annotation>
          <xs:documentation>Teaching post within an independent school in England or Wales</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TCHFHE">
        <xs:annotation>
          <xs:documentation>Teaching post within a University, FE/HE college in England or Wales</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHEDU">
        <xs:annotation>
          <xs:documentation>Other education post in England or Wales</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TCHSNI">
        <xs:annotation>
          <xs:documentation>Teaching post in Scotland or Northern Ireland</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHSNI">
        <xs:annotation>
          <xs:documentation>Other education post in Scotland or Northern Ireland</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TCHFOR">
        <xs:annotation>
          <xs:documentation>Teaching post outside the UK</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHFOR">
        <xs:annotation>
          <xs:documentation>Other education post outside the UK</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EMPPUB">
        <xs:annotation>
          <xs:documentation>Non-education employment - public sector</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EMPSLF">
        <xs:annotation>
          <xs:documentation>Non-education employment - self-employment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EMPOTH">
        <xs:annotation>
          <xs:documentation>Non-education employment - other employment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="UNEMPL">
        <xs:annotation>
          <xs:documentation>Unemployed and seeking work</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FAMBRK">
        <xs:annotation>
          <xs:documentation>Break for family reasons  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHBRK">
        <xs:annotation>
          <xs:documentation>Other break  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHERR">
        <xs:annotation>
          <xs:documentation>Other  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NOTKNW">
        <xs:annotation>
          <xs:documentation>Not known  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKEthnicCodesWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="WBRI">
        <xs:annotation>
          <xs:documentation>White - British</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WIRT">
        <xs:annotation>
          <xs:documentation>Traveller of Irish Heritage</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WROM">
        <xs:annotation>
          <xs:documentation>Gypsy/Roma</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WOTH">
        <xs:annotation>
          <xs:documentation>Any other white background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WALB">
        <xs:annotation>
          <xs:documentation>Albanian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WBOS">
        <xs:annotation>
          <xs:documentation>Bosnian-Herzegovinian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WCRO">
        <xs:annotation>
          <xs:documentation>Croatian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WGRE">
        <xs:annotation>
          <xs:documentation>Greek/Greek Cypriot</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WKOS">
        <xs:annotation>
          <xs:documentation>Kosovan</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WSER">
        <xs:annotation>
          <xs:documentation>Serbian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WTUR">
        <xs:annotation>
          <xs:documentation>Turkish/Turkish Cypriot</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WEUR">
        <xs:annotation>
          <xs:documentation>White European</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WEEU">
        <xs:annotation>
          <xs:documentation>White Eastern European</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WWEU">
        <xs:annotation>
          <xs:documentation>White Western European</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WOTW">
        <xs:annotation>
          <xs:documentation>Other White</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MWBC">
        <xs:annotation>
          <xs:documentation>White and Black Caribbean</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MWBA">
        <xs:annotation>
          <xs:documentation>White and Black African</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MWAS">
        <xs:annotation>
          <xs:documentation>White and Asian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MOTH">
        <xs:annotation>
          <xs:documentation>Any Other Mixed Background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MWCH">
        <xs:annotation>
          <xs:documentation>White and Chinese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MWOE">
        <xs:annotation>
          <xs:documentation>White and Any Other Ethnic Group</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MABL">
        <xs:annotation>
          <xs:documentation>Asian and Black</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MACH">
        <xs:annotation>
          <xs:documentation>Asian and Chinese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MAOE">
        <xs:annotation>
          <xs:documentation>Asian and Any Other Ethnic Group</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MBCH">
        <xs:annotation>
          <xs:documentation>Black and Chinese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MBOE">
        <xs:annotation>
          <xs:documentation>Black and Any Other Ethnic Group</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MCOE">
        <xs:annotation>
          <xs:documentation>Chinese and Any Other Ethnic Group</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MOTM">
        <xs:annotation>
          <xs:documentation>Other Mixed Background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AIND">
        <xs:annotation>
          <xs:documentation>Indian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="APKN">
        <xs:annotation>
          <xs:documentation>Pakistani</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AMPK">
        <xs:annotation>
          <xs:documentation>Mirpuri Pakistani</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AOPK">
        <xs:annotation>
          <xs:documentation>Other Pakistani</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ABAN">
        <xs:annotation>
          <xs:documentation>Bangladeshi</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AOTH">
        <xs:annotation>
          <xs:documentation>Any Other Asian Background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AAFR">
        <xs:annotation>
          <xs:documentation>African Asian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ANEP">
        <xs:annotation>
          <xs:documentation>Nepali</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ASNL">
        <xs:annotation>
          <xs:documentation>Sinhalese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ASLT">
        <xs:annotation>
          <xs:documentation>Sri Lankan Tamil</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AOTA">
        <xs:annotation>
          <xs:documentation>Other Asian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BCRB">
        <xs:annotation>
          <xs:documentation>Caribbean</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BAFR">
        <xs:annotation>
          <xs:documentation>African</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BGHA">
        <xs:annotation>
          <xs:documentation>Ghanaian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BNGN">
        <xs:annotation>
          <xs:documentation>Nigerian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BSLN">
        <xs:annotation>
          <xs:documentation>Sierra Leonian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BSOM">
        <xs:annotation>
          <xs:documentation>Somali</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BSUD">
        <xs:annotation>
          <xs:documentation>Sudanese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BAOF">
        <xs:annotation>
          <xs:documentation>Other Black African</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BOTH">
        <xs:annotation>
          <xs:documentation>Any Other Black Background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BEUR">
        <xs:annotation>
          <xs:documentation>Black European</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BNAM">
        <xs:annotation>
          <xs:documentation>Black North American</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BOTB">
        <xs:annotation>
          <xs:documentation>Other Black</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CHNE">
        <xs:annotation>
          <xs:documentation>Chinese or Chinese British</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CHKC">
        <xs:annotation>
          <xs:documentation>Hong Kong Chinese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CMAL">
        <xs:annotation>
          <xs:documentation>Malaysian Chinese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CSNG">
        <xs:annotation>
          <xs:documentation>Singaporean Chinese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CTWN">
        <xs:annotation>
          <xs:documentation>Taiwanese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="COCH">
        <xs:annotation>
          <xs:documentation>Other Chinese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OOTH">
        <xs:annotation>
          <xs:documentation>Any Other Ethnic Background</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OAFG">
        <xs:annotation>
          <xs:documentation>Afganistani</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OARA">
        <xs:annotation>
          <xs:documentation>Arab</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OEGY">
        <xs:annotation>
          <xs:documentation>Egyptian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OFIL">
        <xs:annotation>
          <xs:documentation>Filipino</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OIRN">
        <xs:annotation>
          <xs:documentation>Irani</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OIRQ">
        <xs:annotation>
          <xs:documentation>Iraqi</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OJPN">
        <xs:annotation>
          <xs:documentation>Japanese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OKOR">
        <xs:annotation>
          <xs:documentation>Korean</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OKRD">
        <xs:annotation>
          <xs:documentation>Kurdish</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OLAM">
        <xs:annotation>
          <xs:documentation>Latin American</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OLEB">
        <xs:annotation>
          <xs:documentation>Lebanese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OMAL">
        <xs:annotation>
          <xs:documentation>Malay</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OMRC">
        <xs:annotation>
          <xs:documentation>Moroccan</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OPOL">
        <xs:annotation>
          <xs:documentation>Polynesian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OTHA">
        <xs:annotation>
          <xs:documentation>Thai</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OVIE">
        <xs:annotation>
          <xs:documentation>Vietnamese</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OYEM">
        <xs:annotation>
          <xs:documentation>Yemeni</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OOEG">
        <xs:annotation>
          <xs:documentation>Other Ethnic Group</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="REFU">
        <xs:annotation>
          <xs:documentation>Information refused</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NOBT">
        <xs:annotation>
          <xs:documentation>Information not obtained</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKExclusionReasonEnglandType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="PP">
        <xs:annotation>
          <xs:documentation>Physical assault against a pupil</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PA">
        <xs:annotation>
          <xs:documentation>Physical assault against an adult</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VP">
        <xs:annotation>
          <xs:documentation>Verbal abuse/threatening behaviour against a pupil</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VA">
        <xs:annotation>
          <xs:documentation>Verbal abuse/threatening behaviour against an adult</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BU">
        <xs:annotation>
          <xs:documentation>Bullying</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RA">
        <xs:annotation>
          <xs:documentation>Racist abuse</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SM">
        <xs:annotation>
          <xs:documentation>Sexual misconduct</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DA">
        <xs:annotation>
          <xs:documentation>Drug and alcohol related</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DM">
        <xs:annotation>
          <xs:documentation>Damage</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TH">
        <xs:annotation>
          <xs:documentation>Theft</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DB">
        <xs:annotation>
          <xs:documentation>Persistent disruptive behaviour</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OT">
        <xs:annotation>
          <xs:documentation>Other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKExclusionReasonWalesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="PP">
        <xs:annotation>
          <xs:documentation>Assault/ Violence (pupil)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PA">
        <xs:annotation>
          <xs:documentation>Assault/ Violence (staff) </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DB">
        <xs:annotation>
          <xs:documentation>Disruptive behaviour</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BU">
        <xs:annotation>
          <xs:documentation>Bullying</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RA">
        <xs:annotation>
          <xs:documentation>Racial harassment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SM">
        <xs:annotation>
          <xs:documentation>Sexual harassment</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TH">
        <xs:annotation>
          <xs:documentation>Theft</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DM">
        <xs:annotation>
          <xs:documentation>Damage to property</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DA">
        <xs:annotation>
          <xs:documentation>Substance misuse</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OT">
        <xs:annotation>
          <xs:documentation>Other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DR">
        <xs:annotation>
          <xs:documentation>Defiance of rules/ discipline policy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VA">
        <xs:annotation>
          <xs:documentation>Verbal abuse</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="TB">
        <xs:annotation>
          <xs:documentation>Threatening or dangerous behaviour</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PW">
        <xs:annotation>
          <xs:documentation>Possession / use of weapon</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKExtendedServicesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="CH_BEFOR">
        <xs:annotation>
          <xs:documentation>Before-school childcare and/or activities for school-age children (term-time) </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_AFTER">
        <xs:annotation>
          <xs:documentation>After school childcare and/or activities, for school-age children (term-time)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_HOLS">
        <xs:annotation>
          <xs:documentation>Childcare and/or activities for school-age children during school holidays </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_INT_T">
        <xs:annotation>
          <xs:documentation>Childcare integrated with a nursery education place for three and four year olds (term-time)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_INT_H">
        <xs:annotation>
          <xs:documentation>Childcare during school holidays for three and four year olds in nursery education </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_OTH">
        <xs:annotation>
          <xs:documentation>Other forms of childcare including any childcare not covered by codes above </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_YEAR">
        <xs:annotation>
          <xs:documentation>Childcare or activities for school-age children are offered 8am-6pm 5 days per week, all year round </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_INT_Y">
        <xs:annotation>
          <xs:documentation>Childcare for 3 &amp; 4 yr olds in nursery education is offered 8am-6pm 5 days per week, all year round</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_0_3_Y">
        <xs:annotation>
          <xs:documentation>Childcare for children up to three years old, five days a week, all year round </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_SCH_P">
        <xs:annotation>
          <xs:documentation>Childcare or activities for children areoffered in partnership with other schools</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH_EXT_P">
        <xs:annotation>
          <xs:documentation>Childcare or activities for childrenareoffered in partnership with external providers </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="STUDY">
        <xs:annotation>
          <xs:documentation>Study support, sports, arts, music, ICT and/or volunteering opportunities for pupils outside sch hrs</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FACILITS">
        <xs:annotation>
          <xs:documentation>Community use of schools sports, arts, ICT or otherfacilities and spaces</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P_INFO_S">
        <xs:annotation>
          <xs:documentation>Information sessions for all parents of pupils entering Reception and Year 7 </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P_GROUPS">
        <xs:annotation>
          <xs:documentation>Parenting groups using structured manual-based parenting programmes </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P_SPEC">
        <xs:annotation>
          <xs:documentation>Specialised support, including for parents whose children have problems with attendance/behaviour</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P_INFO">
        <xs:annotation>
          <xs:documentation>Information on national/local advice and support for parents</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="P_OTHER">
        <xs:annotation>
          <xs:documentation>Any other parenting/family support which does not use structured manuals, a parents room, etc</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ADULT">
        <xs:annotation>
          <xs:documentation>Adult education (excluding family learning ie without children)  </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FAMILY">
        <xs:annotation>
          <xs:documentation>Family learning (ie parents/carers/other adultfamily members learning together with children)      </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HEALTH_C">
        <xs:annotation>
          <xs:documentation>Health/therapeutic services, health promotion activities and physical therapies for the community</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SOCIAL_C">
        <xs:annotation>
          <xs:documentation>Social care services for the community</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C_OTHER">
        <xs:annotation>
          <xs:documentation>Other advice and support services (eg financial, benefit and employment advice)  for the community</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HEALTH_P">
        <xs:annotation>
          <xs:documentation>Work with health professionals to support your pupils</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="S_CARE_P">
        <xs:annotation>
          <xs:documentation>Work with social care professionals to support your pupils</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EX_OTH">
        <xs:annotation>
          <xs:documentation>Other category of extended service in your school which are not covered by other codes</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NONE">
        <xs:annotation>
          <xs:documentation>None</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKFaithType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="BA">
        <xs:annotation>
          <xs:documentation>Baptist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BU">
        <xs:annotation>
          <xs:documentation>Buddhist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CE">
        <xs:annotation>
          <xs:documentation>Church of England</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CH">
        <xs:annotation>
          <xs:documentation>Christian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CO">
        <xs:annotation>
          <xs:documentation>Congregational</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="EC">
        <xs:annotation>
          <xs:documentation>Christian (Ecumenical)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FR">
        <xs:annotation>
          <xs:documentation>Free Church</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="GR">
        <xs:annotation>
          <xs:documentation>Greek Orthodox</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HI">
        <xs:annotation>
          <xs:documentation>Hindu</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="JE">
        <xs:annotation>
          <xs:documentation>Jewish</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="JW">
        <xs:annotation>
          <xs:documentation>Jehovah's Witness</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ME">
        <xs:annotation>
          <xs:documentation>Methodist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MU">
        <xs:annotation>
          <xs:documentation>Muslim</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="QU">
        <xs:annotation>
          <xs:documentation>Quaker</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RC">
        <xs:annotation>
          <xs:documentation>Roman Catholic</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RU">
        <xs:annotation>
          <xs:documentation>Russian Orthodox</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SA">
        <xs:annotation>
          <xs:documentation>Salvation Army</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SD">
        <xs:annotation>
          <xs:documentation>Seventh Day Adventist</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SI">
        <xs:annotation>
          <xs:documentation>Sikh</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="UR">
        <xs:annotation>
          <xs:documentation>United Reform Church</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKFamilyStructureType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="S">
        <xs:annotation>
          <xs:documentation>Single Parent</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="A">
        <xs:annotation>
          <xs:documentation>2 Adults</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F">
        <xs:annotation>
          <xs:documentation>Foster Parents</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C">
        <xs:annotation>
          <xs:documentation>In Residental Care</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="U">
        <xs:annotation>
          <xs:documentation>Unknown</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UKGeneralSubjectType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="AAD">
        <xs:annotation>
          <xs:documentation>Applied Art &amp; Design</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ABS">
        <xs:annotation>
          <xs:documentation>Applied Business Studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ACC">
        <xs:annotation>
          <xs:documentation>Accountancy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AHS">
        <xs:annotation>
          <xs:documentation>Combined Arts / Humanities / Social studies</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AIT">
   
