Systems Interoperability Framework™
SIF Implementation Specification (Australia) 1.0

November 20, 2009






This version:
http://specification.sifassociation.org/Implementation/AU/1.0/
Previous version:
http://specification.sifassociation.org/Implementation/AU/1.0/
Latest version:
http://specification.sifassociation.org/Implementation/AU/
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 Systems 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 (AU)?

SIF Implementation Specification (Australia) defines a set of data objects supporting the Australia'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 (Australia) 1.0 leverages the SIF architecture and redefines the SIF infrastructure from SIF Implementation Specification 2.3 [SIF 2.3] to support its data objects, with an Australia-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 (Australia) 1.0, 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 (AU)?

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 2.x

2.4.1 Data Model

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 AttendanceCode

6.2.4 BirthDate

6.2.5 ContactInfo

6.2.6 Country

6.2.7 Demographics

6.2.8 EducationalLevel

6.2.9 ElectronicId

6.2.10 ElectronicIdList

6.2.11 Email

6.2.12 EmailList

6.2.13 EnglishProficiency

6.2.14 GraduationDate

6.2.15 GridLocation

6.2.16 HomeroomNumber

6.2.17 LanguageList

6.2.18 LifeCycle

6.2.19 LocalId

6.2.20 Location

6.2.21 Name

6.2.22 OnTimeGraduationYear

6.2.23 OperationalStatus

6.2.24 OtherCodeList

6.2.25 OtherNames

6.2.26 PersonInfo

6.2.27 PhoneNumber

6.2.28 PhoneNumberList

6.2.29 PrincipalInfo

6.2.30 ProjectedGraduationYear

6.2.31 PublishInDirectory

6.2.32 Relationship

6.2.33 SchoolContactList

6.2.34 SchoolURL

6.2.35 SchoolYear

6.2.36 SIF_ExtendedElements

6.2.37 SIF_Metadata

6.2.38 StateProvince

6.2.39 StateProvinceId

6.2.40 SubjectArea

6.2.41 SubjectAreaList

6.2.42 TimeElement

6.2.43 YearLevel

6.2.44 YearLevels

6.3 SIF AU

6.3.1 CalendarDate

6.3.2 CalendarSummary

6.3.3 Identity

6.3.4 LEAInfo

6.3.5 PersonPicture

6.3.6 ReportAuthorityInfo

6.3.7 ReportManifest

6.3.8 RoomInfo

6.3.9 SchoolCourseInfo

6.3.10 SchoolInfo

6.3.11 SchoolPrograms

6.3.12 SessionInfo

6.3.13 SIF_ReportObject

6.3.14 StaffAssignment

6.3.15 StaffPersonal

6.3.16 StudentActivityInfo

6.3.17 StudentActivityParticipation

6.3.18 StudentAttendanceSummary

6.3.19 StudentContactPersonal

6.3.20 StudentContactRelationship

6.3.21 StudentDailyAttendance

6.3.22 StudentParticipation

6.3.23 StudentPeriodAttendance

6.3.24 StudentPersonal

6.3.25 StudentSchoolEnrollment

6.3.26 StudentSDTN

6.3.27 StudentSnapshot

6.3.28 SummaryEnrollmentInfo

6.3.29 TeachingGroup

6.3.30 TermInfo

6.3.31 TimeTable

6.3.32 TimeTableCell

6.3.33 TimeTableSubject


A Common Types

A.1 AbstractContentPackageType

A.2 BaseNameType

A.3 DefinedProtocolsType

A.4 ExtendedContentType

A.5 GUIDType

A.6 IdRefType

A.7 MonetaryAmountType

A.8 MsgIdType

A.9 NameOfRecordType

A.10 ObjectNameType

A.11 OtherNameType

A.12 PartialDateType

A.13 RefIdType

A.14 ReportDataObjectType

A.15 ReportPackageType

A.16 SelectedContentType

A.17 SIF_EventObjectType

A.18 SIF_ExampleObjectType

A.19 SIF_LogEntryExtendedContentType

A.20 SIF_ProvideObjectNamesType

A.21 SIF_RequestObjectNamesType

A.22 SIF_ResponseObjectsType

A.23 SIF_ResponseObjectType

A.24 SIF_SubscribeObjectNamesType

A.25 URIOrBinaryType

A.26 VersionType

A.27 VersionWithWildcardsType

B Code Sets

AU Code Sets

Activity Involvement Code

Activity Type

Address Role

Address Type

Attendance Code

Attendance Status

Australian Citizenship Status

Australian Standard Classification of Cultural and Ethnic Groups (ASCCEG)

Australian Standard Classification of Languages (ASCL)

Australian Standard Classification of Religious Groups (ASCRG)

Australian Standard Geographical Classification (ASGC)

Birthdate Verification

Calendar Event

Day Value Code

Dwelling Arrangement

Education Agency Type

Electronic Id Type

Email Type

Employment Type

English Proficiency

Enrollment Time Frame

Entry Type

Exit/Withdrawal Status

Exit/Withdrawal Type

Federal Electorate

FTPT Status Code

Immunisation Certificate Status

Indigenous Status

Language Type

Name Usage Type

Non-School Education

Operational Status

Permanent Resident Status

Picture Source

Program Funding Source Code

Progress Level

Public School Catchment Status

Relationship To Student

School Co-Ed Status

School Education Level Type

School Enrollment Type

School Focus Code

School Level

School Location

School Sector Code

School System

Session Type

Sex Code

Source Code Type

Standard Australian Classification of Countries (SACC)

State Territory Code

Student/Family Program Type

Systemic Status

Telephone Number Type

Visa Statistical Code

Visa Sub Class

Year Level Code

Yes Or No Category

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

C External Code Sets

International Standards Organization (ISO)

4217 Currency names and code elements

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