Schools Interoperability Framework™
SIF Implementation Specification (United Kingdom) 1.2

August 26, 2009






This version:
http://specification.sifinfo.org/Implementation/UK/1.2/
Previous version:
http://specification.sifinfo.org/Implementation/UK/1.1/
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 ©2009 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:

The SIF Implementation Specification defines:

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

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 software 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.2 leverages the SIF architecture and redefines the SIF infrastructure from SIF Implementation Specification 2.3 [SIF 2.3] 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.2, which uses version 2.3 from SIF Implementation Specification 2.3, upon which it is based.

1.1.2 Schools Interoperability Framework Association

The Schools Interoperability Framework Association (SIF Association) 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 the SIF Association's working groups and task forces. The SIF Association is designed to:

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. The SIF Association 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.

THE SIF ASSOCIATION, 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. THE SIF ASSOCIATION 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 THE SIF ASSOCIATION, 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 THE SIF ASSOCIATION, 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 the SIF Association and dedicating resources to the initiative may also use the designation SIF Participant to describe their involvement with the SIF Association 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

2.4 Highlighted Additions/Changes Since Version 1.1

2.4.1 Data Model

2.4.2 Infrastructure

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
3.3.7.3 SIF HTTP(S) Transport Compression
3.3.7.4 SIF_Protocol/SIF_Property Accept-Encoding
3.3.7.5 HTTP Client Requirements
3.3.7.6 HTTP Server Requirements
3.3.7.7 Push-Mode Agent Requirements
3.3.7.8 Zone Integration Server Requirements

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_CancelRequests
4.1.1.16 SIF_GetMessage (Pull-Mode only)
4.1.1.17 SIF_Ack (Push-Mode)
4.1.1.18 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.1.2.8 SIF_CancelRequests (Push-Mode only) (optional)

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.1.5 SIF_CancelRequests (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_CancelRequests
4.2.2.18 SIF_GetMessage
4.2.2.19 SIF_Ack (from a Push-Mode Agent)
4.2.2.20 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_CancelRequests

5.2.17 SIF_Unprovide

5.2.18 SIF_Unregister

5.2.19 SIF_Unsubscribe

5.3 Objects

5.3.1 SIF_AgentACL

5.3.2 SIF_LogEntry

5.3.3 SIF_ZoneStatus

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 LifeCycle

6.2.18 LocalId

6.2.19 LocationContext

6.2.20 MiddleName

6.2.21 Name

6.2.22 NCYearGroup

6.2.23 NCYearGroupList

6.2.24 Period

6.2.25 PersonalInformation

6.2.26 PhoneNumber

6.2.27 PhoneNumberList

6.2.28 SchoolURL

6.2.29 SchoolURN

6.2.30 SchoolYear

6.2.31 SIF_ExtendedElements

6.2.32 SIF_Metadata

6.2.33 SubjectAreaList

6.2.34 TimeElement

6.3 SIF UK

6.3.1 AssessmentLearnerSet

6.3.2 AssessmentResponseComponent

6.3.3 AssessmentResponseComponentGroup

6.3.4 AssessmentResultComponent

6.3.5 AssessmentResultComponentGroup

6.3.6 AssessmentResultGradeSet

6.3.7 AssessmentSession

6.3.8 ContactPersonal

6.3.9 Cycle

6.3.10 Identity

6.3.11 Junction

6.3.12 LAInfo

6.3.13 LearnerAssessmentResponseSet

6.3.14 LearnerAssessmentResult

6.3.15 LearnerAttendance

6.3.16 LearnerAttendanceSummary

6.3.17 LearnerBehaviourIncident

6.3.18 LearnerContact

6.3.19 LearnerEntitlement

6.3.20 LearnerExclusion

6.3.21 LearnerGroupEnrolment

6.3.22 LearnerPersonal

6.3.23 LearnerSchoolEnrolment

6.3.24 LearnerSpecialNeeds

6.3.25 Lesson

6.3.26 NonTeachingActivity

6.3.27 PersonDietaryPreference

6.3.28 PersonPicture

6.3.29 SchoolGroup

6.3.30 SchoolGroupType

6.3.31 SchoolInfo

6.3.32 SchoolMealStatus

6.3.33 Scope

6.3.34 TeachingGroup

6.3.35 TermInfo

6.3.36 TTRoom

6.3.37 TTSite

6.3.38 TTSubject

6.3.39 TTTeacher

6.3.40 WorkforcePersonal


A Common Types

A.1 AbstractContentPackageType

A.2 DefinedProtocolsType

A.3 ExtendedContentType

A.4 GUIDType

A.5 IdRefType

A.6 MonetaryAmountType

A.7 MsgIdType

A.8 ObjectNameType

A.9 RefIdType

A.10 ReportPackageType

A.11 SelectedContentType

A.12 SIF_EventObjectType

A.13 SIF_ExampleObjectType

A.14 SIF_LogEntryExtendedContentType

A.15 SIF_ProvideObjectNamesType

A.16 SIF_RequestObjectNamesType

A.17 SIF_ResponseObjectsType

A.18 SIF_ResponseObjectType

A.19 SIF_SubscribeObjectNamesType

A.20 URIOrBinaryType

A.21 VersionType

A.22 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

Office of National Statistics

Parish Council Name

Parliamentary Constituency Code

Parliamentary Constituency Name

Ward Code

Ward Name

SIF_LogEntry

Agent Error Condition

Data Issues with Failure Result

Data Issues with Success Result

Success Category

ZIS Error Condition

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

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

Assessment Method

Assessment Result Qualifier

Assessment Result Status

Assessment Stage

Assessment Subject

Assignment Post

Attendance Code

Attendance Domain

Attendance Session

Attendance Source

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

Locale

Marital Status

NC Year Group

Operational Status

Phase Type

Phone Type

Pupil Exclusion Reason

Relationship

Religious Affiliation

School Type

SEN Provision

SEN Type

Source Code

Specialised Resources (Wales)

Traveller/Gypsy Code

Tuition Category

Tuition Hours

Usual Mode of Travel

C External Code Sets

International Standards Organization (ISO)

4217 Currency names and code elements

SCED

Course Titles

Non-secondary Courses

Secondary Courses

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

Valid XHTML 1.0 Transitional