# Schools Interoperability Framework™
Implementation Specification (United Kingdom) 1.0

## June 27, 2007

This version:
  http://specification.sifinfo.org/Implementation/UK/1.0/
Previous version:
  http://specification.sifinfo.org/Implementation/UK/0.9/
Latest version:
  http://specification.sifinfo.org/Implementation/UK/
Schemas
  SIF_Message (single file, non-annotated) (ZIP archive)
  SIF_Message (single file, annotated) (ZIP archive)
  SIF_Message (includes, non-annotated) (ZIP archive)
  SIF_Message (includes, annotated) (ZIP archive)
  DataModel (single file, non-annotated) (ZIP archive)
  DataModel (single file, annotated) (ZIP archive)
  DataModel (includes, non-annotated) (ZIP archive)
  DataModel (includes, annotated) (ZIP archive)
  Note: SIF_Message schemas define every data object element as optional per SIF's Publish/Subscribe and SIF Request/Response Models; DataModel schemas maintain the cardinality of all data object elements.

Please refer to the errata for this document, which may include some normative corrections.

This document is also available in these non-normative formats: ZIP archive, PDF (for printing as a single file), Excel spreadsheet.

Copyright ©2007 Schools Interoperability Framework (SIF™) Association. All Rights Reserved.

# 1 Preamble

## 1.1 Abstract

### 1.1.1 What is SIF?

The Schools Interoperability Framework (SIF) is not a product, but a technical blueprint for enabling diverse applications to interact and share data related to entities in the pK-12 instructional and administrative environment. SIF is designed to:

- Facilitate data sharing and reporting between applications without incurring expensive customer development costs;
- Enhance product functionality efficiently; and
- Provide best-of-breed solutions to customers easily and seamlessly.

The SIF Implementation Specification defines:

- an XML-based messaging framework that allows diverse software applications to interoperate and share and report data related to entities in the pK-12 instructional and administrative environment;
- an HTTP(S)-based transport for conveying these SIF messages;
- an abstract, platform-independent definition of a message queue for reliable delivery of asynchronous SIF messages and related synchronous administrative functions—the Zone Integration Server (ZIS); and
- an abstract, platform-independent definition of the interface between a software application and the ZIS—the SIF Agent.

These are known collectively as the SIF Infrastructure. The SIF Implementation Specification also defines the SIF Data Model:

- an XML-based data model that models entities in the pK-12 environment as SIF Data Objects to be shared between applications.

A SIF Zone is a distributed system that consists of a ZIS and one or more software applications with a SIF Agent (a SIF-enabled application) sharing/reporting one or more SIF data objects over a network. A SIF Implementation consists of one or more SIF Zones deployed and configured to meet customer data sharing and reporting needs.

The SIF Implementation Specification defines architecture requirements and communication protocols for software components and the interfaces between them; it makes no assumption of specific hardware or sofware products needed to develop SIF-enabled applications and Zone Integration Server implementations, other than their ability to support technologies leveraged as the foundation for SIF, most prominently XML and HTTP(S).

#### 1.1.1.1 What is SIF (UK)?

SIF Implementation Specification (United Kingdom) defines a set of data objects supporting the United Kingdom's interoperability requirements for the education sector and combines this data model with established infrastructure protocols from the SIF Implementation Specification [SIF]. SIF Implementation Specification (United Kingdom) 1.0 leverages the SIF architecture and redefines the SIF infrastructure from SIF Implementation Specification 2.0r1 [SIF 2.0r1] to support its data objects, with a United Kingdom-specific namespace and the data objects defined in this specification. Until such time as the SIF infrastructure is defined separately from its data objects, technical readers should note that the version number internal to SIF XML messages may differ from the version number of the corresponding specification. This is the case for SIF Implementation Specification (United Kingdom) 1.0, which uses version `2.0r1` from SIF Implementation Specification 2.0r1, upon which it is based.

### 1.1.2 Schools Interoperability Framework Association

The Schools Interoperability Framework Association (SIFA) is an industry initiative to enable interoperability and data sharing between software applications in the pK-12 instructional and administrative environment, and the forum for companies and educators to participate in the development of SIF specifications in SIFA's working groups and task forces. SIFA is designed to:

- Join industry leaders in creating the next-generation framework for education technology; and
- Leverage co-marketing opportunities with partners and distributors.

## 1.2 Disclaimer

The information, software, products, and services included in the SIF Implementation Specification may include inaccuracies or typographical errors. Changes are periodically added to the information herein. SIFA may make improvements and/or changes in this document at any time without notification. Information contained in this document should not be relied upon for personal, medical, legal, or financial decisions. Appropriate professionals should be consulted for advice tailored to specific situations.

SIFA, ITS PARTICIPANT(S), AND THIRD PARTY CONTENT PROVIDERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY, RELIABILITY, TIMELINESS, AND ACCURACY OF THE INFORMATION, SOFTWARE, PRODUCTS, SERVICES, AND RELATED GRAPHICS CONTAINED IN THIS DOCUMENT FOR ANY PURPOSE. ALL SUCH INFORMATION, SOFTWARE, PRODUCTS, SERVICES, AND RELATED GRAPHICS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. SIFA AND/OR ITS PARTICIPANT(S) HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THIS INFORMATION, SOFTWARE, PRODUCTS, SERVICES, AND RELATED GRAPHICS, INCLUDING ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.

IN NO EVENT SHALL SIFA, ITS PARTICIPANT(S), OR THIRD PARTY CONTENT PROVIDERS BE LIABLE FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, SPECIAL, CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE, DATA, OR PROFITS, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OR PERFORMANCE OF THIS DOCUMENT, WITH THE DELAY OR INABILITY TO USE THE DOCUMENT, THE PROVISION OF OR FAILURE TO PROVIDE SERVICES, OR FOR ANY INFORMATION, SOFTWARE, PRODUCTS, SERVICES AND RELATED GRAPHICS OBTAINED THROUGH THIS DOCUMENT OR OTHERWISE ARISING OUT OF THE USE OF THIS DOCUMENT, WHETHER BASED ON CONTRACT, TORT, STRICT LIABILITY, OR OTHERWISE, EVEN IF SIFA, ITS PARTICIPANT(S), OR THIRD PARTY CONTENT PROVIDERS HAVE BEEN ADVISED OF THE POSSIBILITY OF DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU. IF YOU ARE DISSATISFIED WITH ANY PORTION OF THIS DOCUMENT OR WITH ANY OF THESE TERMS OF USE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USING THIS DOCUMENT.

This specification is released with the following provisos to developers and educators.

## 1.3 Certification and Compliance Claims

Though a product may be demonstrated to comply with this specification, no product may be designated as SIF Certified™ by an organization or individual until the product has been tested against and passed established compliance criteria, published separately [SIFCertification]. Organizations and individuals that are currently paying annual membership dues to SIFA and dedicating resources to the initiative may also use the designation SIF Participant to describe their involvement with SIFA and SIF in marketing, public relations and other materials.

# Quick Table of Contents

## 1 Preamble

## 2 Introduction

## 3 Architecture

## 4 Messaging

## 5 Infrastructure

## 6 Data Model

## A Common Types

## B Code Sets

## C External Code Sets

## D Notes on Related Technologies

## E Wildcard Version Support Implementation Notes

## F Selective Message Blocking (SMB) Example

## G Background/Supplementary Documentation (non-normative)

## H Index of Tables

## I Index of Examples

## J Index of Figures

## K Index of Objects

## L Index of Common Elements

## M Index of Common Types

## N Index of Elements

## O Index of Attributes

## P References

# Full Table of Contents

## 1 Preamble

### 1.1 Abstract

#### 1.1.1 What is SIF?

##### 1.1.1.1 What is SIF (UK)?

#### 1.1.2 Schools Interoperability Framework Association

### 1.2 Disclaimer

### 1.3 Certification and Compliance Claims

## 2 Introduction

### 2.1 Specification Organization

### 2.2 Document Conventions

#### 2.2.1 Definitions

#### 2.2.2 Structure and Values

#### 2.2.3 Examples

#### 2.2.4 References

#### 2.2.5 Terminology

#### 2.2.6 XML Diagrams

### 2.3 Version Numbers

## 3 Architecture

### 3.1 Assumptions

#### 3.1.1 Notes on Related Technologies

### 3.2 Concepts

#### 3.2.1 Data Model

#### 3.2.2 Zone Architecture

##### 3.2.2.1 Contexts

#### 3.2.3 Infrastructure and Messaging

#### 3.2.4 Data Provision: A Request/Response Model

#### 3.2.5 Event Reporting: A Publish/Subscribe Model

#### 3.2.6 Communication: An Asynchronous Model

#### 3.2.7 Security Model

##### 3.2.7.1 Encryption

##### 3.2.7.2 Authentication and Validation

##### 3.2.7.3 Access Control

### 3.3 SIF Architecture

#### 3.3.1 Architectural Components

#### 3.3.2 Naming Conventions for Agents and Zone Integration Servers

#### 3.3.3 Object Identifiers

##### 3.3.3.1 Persistence

#### 3.3.4 Agent/Application Requirements

##### 3.3.4.1 Communicate with the ZIS

##### 3.3.4.2 Transmit Application Changes to the ZIS

##### 3.3.4.3 Respond to Requests

##### 3.3.4.4 Changes Required to the Vendor's Application

##### 3.3.4.5 Support Authentication and Digital Signatures

##### 3.3.4.6 Agent Local Queue

##### 3.3.4.7 Wildcard Version Support

#### 3.3.5 Zone Integration Server Requirements

##### 3.3.5.1 Access Control List

##### 3.3.5.2 Zone Status

##### 3.3.5.3 Zone Context Registry

##### 3.3.5.4 Administration

##### 3.3.5.5 Support Selective Message Blocking (SMB) to Resolve Deadlocks

###### 3.3.5.5.1 Description

###### 3.3.5.5.2 Requirements

###### 3.3.5.5.3 Example

#### 3.3.6 Message Processing

##### 3.3.6.1 Message Validation

##### 3.3.6.2 Message Identification

##### 3.3.6.3 Message Security

###### 3.3.6.3.1 SIF_AuthenticationLevel

###### 3.3.6.3.2 SIF_EncryptionLevel

###### 3.3.6.3.3 Notes on SIF_AuthenticationLevel

###### 3.3.6.3.4 Notes on SIF_EncryptionLevel

##### 3.3.6.4 Message Robustness

##### 3.3.6.5 Message Cycle

##### 3.3.6.6 Message Delivery

###### 3.3.6.6.1 The "Push" Model

###### 3.3.6.6.2 The "Pull" Model

###### 3.3.6.6.3 "Multiple Version" Zones

#### 3.3.7 Infrastructure Transport Layer

##### 3.3.7.1 SIF HTTPS Transport

###### 3.3.7.1.1 HTTPS Request/Response Model

###### 3.3.7.1.2 HTTP Request Headers

###### 3.3.7.1.3 HTTP Response Headers

###### 3.3.7.1.4 100 (Continue)

###### 3.3.7.1.5 3XX, 4XX, 5XX Notices

##### 3.3.7.2 SIF HTTP Transport

## 4 Messaging

### 4.1 Agent Protocols

#### 4.1.1 Agent Messaging Protocols

##### 4.1.1.1 SIF_Register

##### 4.1.1.2 SIF_Unregister

##### 4.1.1.3 SIF_Provide

##### 4.1.1.4 SIF_Unprovide

##### 4.1.1.5 SIF_Subscribe

##### 4.1.1.6 SIF_Unsubscribe

##### 4.1.1.7 SIF_Provision

##### 4.1.1.8 SIF_Event

##### 4.1.1.9 SIF_Request

##### 4.1.1.10 SIF_Ping

##### 4.1.1.11 SIF_Sleep

##### 4.1.1.12 SIF_Wakeup

##### 4.1.1.13 SIF_GetZoneStatus

##### 4.1.1.14 SIF_GetAgentACL

##### 4.1.1.15 SIF_GetMessage (Pull-Mode only)

##### 4.1.1.16 SIF_Ack (Push-Mode)

##### 4.1.1.17 SIF_Ack (Pull-Mode)

#### 4.1.2 Agent Message Handling Protocols

##### 4.1.2.1 SIF_Message

##### 4.1.2.2 SIF_Event

##### 4.1.2.3 SIF_Request

##### 4.1.2.4 SIF_Response

##### 4.1.2.5 SIF_Ping (Push-Mode only)

##### 4.1.2.6 SIF_Sleep (Push-Mode only)

##### 4.1.2.7 SIF_Wakeup (Push-Mode only)

### 4.2 ZIS Protocols

#### 4.2.1 ZIS Messaging Protocols

##### 4.2.1.1 SIF_Message Delivery (SIF_Event, SIF_Request, SIF_Response to a Push-mode Agent)

##### 4.2.1.2 SIF_Ping (to a Push-mode Agent)

##### 4.2.1.3 SIF_Sleep (to a Push-mode Agent)

##### 4.2.1.4 SIF_Wakeup (to a Push-mode Agent)

#### 4.2.2 ZIS Message Handling Protocols

##### 4.2.2.1 SIF_Message

##### 4.2.2.2 SIF_Register

##### 4.2.2.3 SIF_Unregister

##### 4.2.2.4 SIF_Provide

##### 4.2.2.5 SIF_Unprovide

##### 4.2.2.6 SIF_Subscribe

##### 4.2.2.7 SIF_Unsubscribe

##### 4.2.2.8 SIF_Provision

##### 4.2.2.9 SIF_Event

##### 4.2.2.10 SIF_Request

##### 4.2.2.11 SIF_Response

###### 4.2.2.11.1 Implementation Notes

##### 4.2.2.12 SIF_Ping

##### 4.2.2.13 SIF_Sleep

##### 4.2.2.14 SIF_Wakeup

##### 4.2.2.15 SIF_GetZoneStatus

##### 4.2.2.16 SIF_GetAgentACL

##### 4.2.2.17 SIF_GetMessage

##### 4.2.2.18 SIF_Ack (from a Push-Mode Agent)

##### 4.2.2.19 SIF_Ack (from a Pull-Mode Agent)

## 5 Infrastructure

### 5.1 Common Elements

#### 5.1.1 SIF_Message

#### 5.1.2 SIF_Header

#### 5.1.3 SIF_EncryptionLevel

#### 5.1.4 SIF_AuthenticationLevel

#### 5.1.5 SIF_Contexts

#### 5.1.6 SIF_Context

#### 5.1.7 SIF_Protocol

#### 5.1.8 SIF_Status

#### 5.1.9 SIF_Error

#### 5.1.10 SIF_Query

##### 5.1.10.1 SIF_ConditionGroup

##### 5.1.10.2 SIF_Element Syntax

#### 5.1.11 SIF_ExtendedQuery

##### 5.1.11.1 Mapping SIF_Query to SIF_ExtendedQuery

#### 5.1.12 SIF_ExtendedQueryResults

### 5.2 Messages

#### 5.2.1 SIF_Ack

#### 5.2.2 SIF_Event

#### 5.2.3 SIF_Provide

#### 5.2.4 SIF_Provision

#### 5.2.5 SIF_Register

#### 5.2.6 SIF_Request

#### 5.2.7 SIF_Response

#### 5.2.8 SIF_Subscribe

#### 5.2.9 SIF_SystemControl

#### 5.2.10 SIF_Ping

#### 5.2.11 SIF_Sleep

#### 5.2.12 SIF_Wakeup

##### 5.2.12.1 SIF_Sleep/SIF_Wakeup versus SIF_Register/SIF_Unregister

#### 5.2.13 SIF_GetMessage

#### 5.2.14 SIF_GetZoneStatus

#### 5.2.15 SIF_GetAgentACL

#### 5.2.16 SIF_Unprovide

#### 5.2.17 SIF_Unregister

#### 5.2.18 SIF_Unsubscribe

### 5.3 Objects

#### 5.3.1 SIF_ZoneStatus

#### 5.3.2 SIF_AgentACL

## 6 Data Model

### 6.1 Introduction

#### 6.1.1 Format

#### 6.1.2 Conventions

##### 6.1.2.1 Object Attributes/Primary Keys

##### 6.1.2.2 Object References

##### 6.1.2.3 Lists/Repeatable Elements

###### 6.1.2.3.1 ActionList

###### 6.1.2.3.2 List

##### 6.1.2.4 Supported Optional Elements Without Values

##### 6.1.2.5 Externally-Defined XML

### 6.2 Common Elements

#### 6.2.1 Address

#### 6.2.2 AddressList

#### 6.2.3 ContactList

#### 6.2.4 Country

#### 6.2.5 Demographics

#### 6.2.6 ElectronicId

#### 6.2.7 ElectronicIdList

#### 6.2.8 Email

#### 6.2.9 EmailList

#### 6.2.10 EstablishmentId

#### 6.2.11 EthnicityList

#### 6.2.12 FirstName

#### 6.2.13 GridLocation

#### 6.2.14 LAId

#### 6.2.15 LAName

#### 6.2.16 LastName

#### 6.2.17 LocalId

#### 6.2.18 LocationContext

#### 6.2.19 MiddleName

#### 6.2.20 Name

#### 6.2.21 NCYearGroup

#### 6.2.22 NCYearGroupList

#### 6.2.23 PersonalInformation

#### 6.2.24 PhoneNumber

#### 6.2.25 PhoneNumberList

#### 6.2.26 SchoolURL

#### 6.2.27 SchoolURN

#### 6.2.28 SchoolYear

#### 6.2.29 SIF_ExtendedElements

#### 6.2.30 SubjectAreaList

### 6.3 Data Model Task Force

#### 6.3.1 SIF_Metadata

#### 6.3.2 TimeElement

#### 6.3.3 LifeCycle

#### 6.3.4 RightsElement

### 6.4 Infrastructure Working Group

#### 6.4.1 SIF_LogEntry

### 6.5 SIF UK

#### 6.5.1 ContactPersonal

#### 6.5.2 LAInfo

#### 6.5.3 LearnerAttendanceSummary

#### 6.5.4 LearnerContact

#### 6.5.5 LearnerExclusion

#### 6.5.6 LearnerGroupEnrolment

#### 6.5.7 LearnerPersonal

#### 6.5.8 LearnerSchoolEnrolment

#### 6.5.9 LearnerSpecialNeeds

#### 6.5.10 PersonPicture

#### 6.5.11 SchoolGroup

#### 6.5.12 SchoolGroupType

#### 6.5.13 SchoolInfo

#### 6.5.14 TermInfo

#### 6.5.15 WorkforcePersonal

## A Common Types

### A.1 DefinedProtocolsType

### A.2 ExtendedContentType

### A.3 GUIDType

### A.4 IdRefType

### A.5 MonetaryAmountType

### A.6 MsgIdType

### A.7 RefIdType

### A.8 SIF_EventObjectType

### A.9 SIF_ExampleObjectType

### A.10 SIF_ProvideObjectNamesType

### A.11 SIF_RequestObjectNamesType

### A.12 SIF_ResponseObjectsType

### A.13 SIF_ResponseObjectType

### A.14 SIF_SubscribeObjectNamesType

### A.15 URIOrBinaryType

### A.16 VersionType

### A.17 VersionWithWildcardsType

## B Code Sets

### Infrastructure

#### Status Code

#### Error Category

#### XML Validation Error

#### Encryption Error

#### Authentication Error

#### Access and Permission Error

#### Registration Error

#### Provision Error

#### Subscription Error

#### Request and Response Error

#### Event Reporting and Processing Error

#### Transport Error

#### System Error

#### Generic Message Handling Error

#### SMB Error

### SIF_LogEntry

#### Agent Error Condition

#### Data Issues with Failure Result

#### Data Issues with Success Result

#### Success Category

#### ZIS Error Condition

### UK

#### Absence Category

#### Additional Payment Type

#### Admissions Aptitude Code

#### Admissions Notify Method

#### Admissions Offer Status

#### Admissions Preband Category

#### Admissions Reason Code

#### ADT File Status Type

#### Advice and Assessment (Wales)

#### Alternative Tuition Provision Type

#### Assignment Post

#### Attendance Codes

#### Basic Skills Support (Wales)

#### Birth Date Verification Level

#### Boarder Type

#### Class Type

#### Connexions Agreement

#### Curriculum and Teaching Methods (Wales)

#### Exclusion Reason

#### Family Structure

#### General Subject

#### Governance Type

#### Group Role

#### Grouping and Support (Wales)

#### In Care Type

#### Language Study

#### Learner Enrolment Status

#### Learner Identity

#### Leaving Destination

#### Leaving Reason

#### Marital Status

#### NC Year Group

#### Operational Status

#### Phase Type

#### Phone Type

#### Relationship

#### Religious Affiliation

#### School Type

#### SEN Provision

#### SEN Type

#### Source Code

#### Specialised Resources (Wales)

#### Traveller/Gypsy Code

#### Tuition Category

#### Tuition Hours

## C External Code Sets

### International Standards Organization (ISO)

#### 4217 Currency names and code elements

### Office of National Statistics

#### Parish Council Name

#### Parliamentary Constituency Code

#### Parliamentary Constituency Name

#### Ward Code

#### Ward Name

### teachernet

#### Church of England Diocese

#### Ethnicity Code

#### LA Id

#### LA Name

#### Languages

#### Learning and Skills Council Area Code

#### Nation States and Countries

#### Roman Catholic Diocese

## D Notes on Related Technologies

### D.1 SIF and HTTP(S)

### D.2 SIF and URLs

### D.3 SIF and XML

### D.4 SIF and Unicode

### D.5 SIF and XPath

### D.6 SIF and XML Schema

#### D.6.1 xs:boolean

#### D.6.2 xs:time

#### D.6.3 xs:date

#### D.6.4 xs:dateTime

### D.7 SIF and XML Namespaces

### D.8 SIF and UUIDs/GUIDs

### D.9 SIF and Web Services

## E Wildcard Version Support Implementation Notes

### E.1 XML Parsing

### E.2 XML Validation

### E.3 SIF_Message Handling

## F Selective Message Blocking (SMB) Example

### F.1 Example

## G Background/Supplementary Documentation (non-normative)

## H Index of Tables

## I Index of Examples

## J Index of Figures

## K Index of Objects

## L Index of Common Elements

## M Index of Common Types

## N Index of Elements

## O Index of Attributes

## P References